|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Temas - sergiotarrillo
126
« en: Martes 17 de Agosto de 2004, 01:16 »
Muchas veces cuadno queremos darle a un control el tipo de letra, tenemos que poner "Courrier New", quisiera saber si existe alguna clase, o variable que tenga todos los tipos de letra ........?
127
« en: Lunes 9 de Agosto de 2004, 06:40 »
Visual Basic .Net: Hacer una linea con el mouse, y moverla como un objeto con el teclado. -------------------------------------------------------------------------------- Autor: supersergioman@hotmail.com Universidad Nacional de Trujillo --- Peru Puede parecer facil el titulo propuesto, pero podemos aprender muchos temas con este reto. A ver piensen un poco cual seria como seria el programa, aver..........., facil, capturo los click del mouse, claro serian dos, uno para el punto inicial y otro para el punto final, listo ahora lo dibujo. Pero como puedo mover esa linea a donde yo quiera?, dibujo una nueva linea, puede ser, muevo el fondo, puede ser, etc. Si quiero mover a la linea creada tengo que tratarla como un objeto, es decir hacer uso de P.O.O. (programacion orientada a objetos). Auque paresca muy tedioso hacer clases, -si lo puedo hacer en el windows.form, si puede hacer pero la P.O.O, le da muchas caracteristicas a tu programa, cuando mas cresca tu programa no se te hara tan díficil si usaste P.O.O. Yo para este programa solo voy a usar dos clases: DrawLine.vb (formulario windows), y Linea.vb. Clase Linea.vb Public Class Linea 'atributos de la clase Private iniX As Integer Private iniY As Integer Private finX As Integer Private finY As Integer 'lapiz del pincel Private myPen As Pen '------------------------ 'aqui falta las declaraciones Property, en el zip esta todo '--------------------- 'constructor Public Sub New(ByVal iX As Integer, ByVal iY As Integer, ByVal fX As Integer, ByVal fY As Integer) iniX = iX iniY = iY finX = fX finY = fY 'estableciendo el lapiz por defecto myPen = New Pen(Color.Gold, 4) End Sub 'ahora si metodos principales de la clase Public Sub Move(ByVal str As String) Select Case str Case "U" 'mover arriba iniY -= 2 finY -= 2 Case "D" 'mover abajo iniY += 2 finY += 2 Case "R" 'mover derecha iniX += 2 finX += 2 Case "L" 'mover izquierda iniX -= 2 finX -= 2 End Select End Sub End Class
Clase DrawLine.vb 'mi objeto para dibujar Private g As Graphics Public Sub DrawMyLine() 'creando el objeto g = PicFondo.CreateGraphics() g.Clear(Color.White) 'ahora dibujando la lina g.DrawLine(myLine.Pincel, myLine.pIniX, myLine.pIniY, myLine.pFinX, myLine.pFinY) End Sub Private Sub CmdDraw_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdDraw.Click MsgBox("hacer un click en el Picture, mantenerlo presionado y mover el mouse") dibujar = True 'creando el objeto a usar myLine = New Linea(0, 0, 0, 0) End Sub '---------------------------------------------- 'Con los tres modos del mouse se dibuja la linea Private Sub PicFondo_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PicFondo.MouseDown If dibujar Then If Not dibujando Then myLine.pIniX = e.X myLine.pIniY = e.Y 'ya se hizo el primer punto dibujando = True End If End If End Sub Private Sub PicFondo_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PicFondo.MouseMove If dibujando Then myLine.pFinX = e.X myLine.pFinY = e.Y Me.DrawMyLine() End If End Sub Private Sub PicFondo_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PicFondo.MouseUp 'se termino de dibujar la linea dibujando = False 'ahora mover la linea Me.Panel1.Visible = True End Sub '-------------------------------------------------- '---------------------------------------------- 'ahora se lo va amover Private Sub CmdMove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdMove.Click 'ya no crear otra linea Me.dibujar = False 'CmdDraw.Enabled = False 'cambiar el ancho Try If (TxtAncho.Text <> "") Then myLine.Ancho = Integer.Parse(TxtAncho.Text) End If Catch er As Exception MsgBox("no ingreso un ancho correcto, se tomara el anterior") End Try 'mandano un mensaje MsgBox("mover la linea con el teclado") 'mover Me.mover = True 'mandando el foco Me.TxtKeyCode.Focus() End Sub Private Sub TxtKeyCode_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtKeyCode.KeyDown 'si se puede mover el objeto If Me.mover Then Select Case e.KeyCode Case Keys.Up myLine.Move("U") Me.DrawMyLine() Case Keys.Down myLine.Move("D") Me.DrawMyLine() Case Keys.Left myLine.Move("L") Me.DrawMyLine() Case Keys.Right myLine.Move("R") Me.DrawMyLine() End Select End If End Sub '------------------------------------------------------ End Class
Autor: sergio
128
« en: Domingo 8 de Agosto de 2004, 06:39 »
se puede usar el Office 2003 con el vs.net 2002?, o que problemas implicaria usar estos o como se los deberia usar.....
129
« en: Sábado 31 de Julio de 2004, 08:02 »
¿Es posible hospedar a más de un sitio Web en un sólo IIS?
¿cuál es la diferencia entre Server.Transfer y Response.Redirect?
130
« en: Sábado 31 de Julio de 2004, 07:53 »
Desarrollar aplicaciones ASP.NET de alto rendimiento
Autor: Sergio - mail: supersergioman@hotmail.com Universidad Nacional de Trujillo (U.N.T.) – Peru
Como en todas las aplicaciones, siempre ocurre problemas al intentar optimizar el rendimiento de una aplicación, y en ASP.NET no se escapa, es por eso que ciertas pautas a seguir para lograr un rendimiento aceptable.
• Deshabilite el estado de sesión cuando no lo utilice. No todas las aplicaciones requieren un estado de sesión por cada usuario, es este caso se debe deshabilitar el estado de sesión. Para deshabilitar el estado de sesión de una página se pone establece false el atributo EnableSessionState de la directiva @ Page: <%@ Page EnableSessionState=”false” %> . Por defecto, si falta, este atributo tiene el valor true, en el caso de que solo se vayan a usar o leer, pero no crear ni modificar, variables de sesión se pone en el atributo de EnableSessionState ReadOnly.
• Elija con cuidado el proveedor de Estados de Sesión. Hay tres formas de almacenar los datos de sesión: en proceso, fuera de proceso como servicio windows, y fuera de proceso en una base de datos de SQL Server. Cada opción tiene sus ventajas: la primera es la mas rápida y sencilla. Las dos últimas son recomendadas si la aplicación se va a ejecutar en varios procesadores o equipos, y cuando no se desean que se pierdan los datos de sesión cuñado se reinicie el servidor o equipo.
• Evite los viajes innecesarios de ida y vuelta al servidor. Muchas veces resulta tentador, llenar de eventos de controles de servidor a nuestra pagina web. Muchas veces hacer esto hace que pierda tiempo en cada ida y vuelta al servidor. Esto solo debe hacer cuando es necesario acceder a los datos de la base de datos. Muchos procesos no necesitan viajar al servidor para procesarse. Como por ejemplo la validación de campos ingresados por el usuario, este proceso se puede en client-side (lado cliente), con lo cual nos ahorraríamos viajes de ida y vuelta al servidor.
• Utilice Page.IsPostBack para evitar el procesamiento innecesario en los viajes de ida y vuelta. Nosotros queremos que solo al cargar la página se conecte a una base de datos, y devuelva la respuesta en una grilla, DataGrid, y que no lo haga en cada ida y vuelta al servidor. El evento Page_Load, se ejecuta en cada ida y vuelta al servidor, si nosotros queremos llenar la grilla dentro de este evento, y que solo se cargue la primera vez, se usa la propiedad IsPostBack, para preguntar si es que se carga por primera vez (false), o si viene de un evento en un control de servidor (true). En caso de que Page.IsPostBack=false, se hace la conexión a la base de datos y se llena la grilla.
• Usar controles de servidor en las circunstancias adecuadas. Muchas veces parece más fácil usar los controles de servidor, pero muchas veces no es lo más recomendable. Supongamos que queremos cargar una imagen que el usuario a pedido. Este se puede hacer en el lado cliente, sin necesidad de ir al servidor. Recordar que cada evento dentro del Page_Load implica un viaje al servidor.
• Guarde el estado de vista de los controles de servidor únicamente cuando sean necesarios. Todos los controles tienen la característica de enviar información del control, sus propiedades, al servidor sin escribir código. Pero hay que evaluar si el envió es necesario, si por ejemplo enviamos una grilla que después de la vuelta sus propiedades van a ser reemplazadas, degradaría innecesariamente el rendimiento de la página. Esta propiedad lo tienen todos los controles de servidor, por defecto es true si deseamos desactivarla, tendríamos que colocar false en la propiedad EnableViewState del control del servidor <asp:datagrid EnableViewSate=”false” ... runat=”server”/>. De manera general se puede desactivar el envió de los estados de los controles de servidor, colocando en la directiva Page, <%@ Page EnableViewState=”false” %>.
• Utilice Response.Write para la concatenación de cadenas. Según la documentación de ASP.NET, para concatenar cadenas complejas es mas rápido hacerlo por separado, varias llamadas al método, que hacerlo todo de una sola vez.
Response.Write(“strBegin”) Response.Write(myTexto) Response.Write(“strEnd”) ‘hacer los 3 llamados anteriores es mas rapido que hacerlo asi: Response.Write(“strBegin” & myTexto & “strEnd”) Conocen alguna forma de probar, cuál es más rápido?
• No base el código en excepciones. El tratamiento de excepciones degrada significativamente el rendimiento de la aplicación. Si es posible detectar una posible excepción, solo con condicionales hágalo.
‘remplace esto try res = 100 / num End Try ‘por esto if ( num <> 0 ) res = 100 / num • Utilice el enlace en tiempo de compilación de Visual Basic .NET o JScript. Muchas veces uno decía que bacán, que fácil, es trabajar con Visual Basic 6.0, porque no te exige declarar las variables y tampoco exige conversión de tipos. Muchas veces esto parece una ventaja, pero a la larga característica difícil de controlar. El nuevo Visual Basic .NET, exige la declaración de variables y la conversión explicita de tipos. ASP.NET por compatibilidad con versiones anteriores, deshabilita esta opción, para habilitarla colocamos en la directiva Page lo siguiente, <%@ Page Strict=”true” %>. En el caso JScript, permita la conversión de tipos, pero esto disminuye el rendimiento en los procesos, es recomendable decirle que tipo de variable es, a que el compilador tarde en averiguar el tipo que debería ser.
• Transforme en código administrado los componentes COM llamados frecuentemente. .Net Framework permite trabajar con los componentes COM, tradicionales, pero usar versiones antiguas no mejora el rendimiento. En algunos casos actúa de manera desfavorable al rendimiento de la aplicación. Cada caso es particular por lo que la mejor manera de decidir si transformar un componente es verificar las numero de llamadas a las funciones del código administrado desde el código no administrado. Es recomendable transformar en código administrado todos los componentes COM que requieran un gran numero de llamadas para interactuar.
• Utilice procedimientos almacenados de SQL Server para el acceso a datos. El rendimiento de una aplicación mejorara si se usa procedimientos almacenados en lugar de consultas ad-hoc.
• Utilice la clase SqlDataReader para obtener cursores de datos rápido de sólo avance. Esta clase ofrece un mejor rendimiento que el DataSet, esto se debe a que SqlDataReader utiliza el formato de transferencia de datos de red nativo de SQL Server para leer los datos directamente de una conexión de base de datos.
• Almacene en caché los datos y resultados de páginas siempre que sea posible. Esto le mas rendimiento a la página, que otras características del .Net Framework. Esta opción es más necesaria para los páginas de mayor tráfico. Esta opción le da al sitio alto rendimiento, dándole a la aplicación la característica de ser escalable.
• En las aplicaciones ampliamente basadas en recursos externos, considere la posibilidad de habilitar una matriz de procesos Web en los equipos multiprocesador. El modelo de procesamiento de ASP.NET ayuda a habilitar la estabilidad en los equipos multiprocesador mediante la distribución de trabajos en varios procesos.
• Asegúrese de deshabilitar el modo de depuración. Recuerde siempre deshabilitar el modo depuración al distribuir una aplicación de producción, ya que cuando esta habilitado el rendimiento de la aplicación se ve muy reducido.
Fuente: Documentación Microsoft ASP.NET
Autor: Sergioman
131
« en: Miércoles 14 de Julio de 2004, 03:58 »
El siguiente Codigo, es usando Windows.Form. En diseño agregas un StatusBar. En el codigo haces el resto. Para esto crearas dos variables StatusBarPanel, una para la fecha y otra para la hora, para actualizar constatemente la hora, se usa un objeto timer, en el cual se cambia la propiedad text. Parte Principal del Codigo, el resto en el zip #Region "mis variables " Private PanelTime As New StatusBarPanel() Private PanelDate As New StatusBarPanel() #End Region Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'caragando los satatus panel para la hora PanelTime.BorderStyle = StatusBarPanelBorderStyle.Sunken PanelTime.AutoSize = StatusBarPanelAutoSize.Spring PanelTime.Alignment = HorizontalAlignment.Right 'cargando los Status para la Fecha PanelDate.BorderStyle = StatusBarPanelBorderStyle.Raised PanelDate.ToolTipText = System.DateTime.Today.ToShortDateString() PanelDate.Text = System.DateTime.Today.ToLongDateString() PanelDate.AutoSize = StatusBarPanelAutoSize.Contents 'llenandolos al statusBar stBarTimeDate.ShowPanels = True 'para q muestre varios paneles stBarTimeDate.Panels.Add(PanelTime) stBarTimeDate.Panels.Add(PanelDate) 'para que cambie la hora y la fecha TmrStatus.Start() End Sub Private Sub TmrStatus_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TmrStatus.Tick Dim myTime As String = "" Dim myState As String = " " Dim myHor As Integer Dim myMin As String Dim mySec As String With Now() myHor = IIf(.Hour > 12, .Hour Mod 12, .Hour) myState += IIf(.Hour >= 12, "p", "a") & ".m. " myMin = IIf(.Minute > 10, "", "0") & .Minute mySec = IIf(.Second > 10, "", "0") & .Second myTime += myHor & ":" & myMin & ":" & mySec & myState End With PanelTime.Text = myTime End Sub
Autor: Sergioman
132
« en: Lunes 12 de Julio de 2004, 05:45 »
me baje un articulo alucinante que trata la seguridad integrada entre .Net Framework y NTFS, pero tengo un problema con un ejemplo de codigo: Imports System.DirectoryServices
La sentencia que coloco me sale error, ya verifique el NameSpace en la ayuda y si existe no entiendo que pasa........
133
« en: Lunes 12 de Julio de 2004, 05:27 »
me baje un articulo alucinante que trata la seguridad integrada entre .Net Framework y NTFS, pero tengo un problema con un ejemplo de codigo: Imports System.DirectoryServices
La sentencia que coloco me sale error, ya verifique el NameSpace en la ayuda y si existe no entiendo que pasa........
134
« en: Lunes 12 de Julio de 2004, 05:26 »
me baje un articulo alucinante que trata la seguridad integrada entre .Net Framework y NTFS, pero tengo un problema con un ejemplo de codigo: Imports System.DirectoryServices
La sentencia que coloco me sale error, ya verifique el NameSpace en la ayuda y si existe no entiendo que pasa........
135
« en: Viernes 9 de Julio de 2004, 23:31 »
 aqui hice el clasico juego de la Vibora en .Net, el cual pongo a su dispocicion para que lo critiquen, cualquier cosa que crean que esta mal, solo me escriben ............. El juego hace uso de Picture, en el cual es dibujado la Vibora, que va creciendo conforme va comiendo, pruebalo y logra el maximo puntaje que puedas....
136
« en: Domingo 20 de Junio de 2004, 04:29 »
En un ejemplo de .Net, vi que cargaban un PictureBox, con una imagen pero en tiempo de ejecucion,... y lo jalaban desde un archivo... Dim file as String = "C:\Nose.jpg" ahora mi pregunta es si puedo copiar la imagen a mi directorio, de mi proyecto Net, y jalarlo directamente algo asi como: Dim file as String = "Nose.jpg".... alguien sabe.....
137
« en: Lunes 24 de Mayo de 2004, 19:14 »
En la Ayuda del Delphi, te dan un ejemplo de como trabajr con el REgEdit, especificamente recuperar el valor de un registro y este es el codigo:
//-------------------------------------------- uses Registry; function GetRegistryValue: string; var Registry: TRegistry; S: string; begin Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_LOCAL_MACHINE; //False because we do not want to create it if it doesn’t exist Registry.OpenKey('MYKEY',False); Result :=Registry.ReadString('VALUE1');
Registry.Free; end; //-------------------------------------------------
Claro tienes que cmabiar el valor de 'MIKEY', y el 'VALUE1', por tus datos, lo unico que conseguii era colgar mi maquina cuando lo corria ...... :pensando:
138
« en: Lunes 24 de Mayo de 2004, 03:48 »
 hola a todos, recien soy un calichin en delphi, y quisiera saber como carajo enlazo un TDBGrid con un TDataSet.........
139
« en: Lunes 15 de Marzo de 2004, 21:57 »
 Hola gente, estaba probando el PHP, en mi maquina y hay algo que no me cuadra, osea que no entiendo, en lso tutoriales y en algunas clases si mal no me acuerdo el caracter '\n' es un salto de linea veamos: <?PHP echo "Hola \n Mundo"; ?> ese codigo mostraria el siguiente mensaje Hola Mundo eso seria lo logico, verdad, pero no se porque carajo en mi mauina no pasa eso, si alguien sabe de esto pasen la voz pe, a pique es por el tipo de S.O. o no se que carajo puede ser
140
« en: Miércoles 4 de Febrero de 2004, 15:38 »
 , hola gente recien estoy entrando al mundo del XML, me podrian dar algunos alcances sobre que es el DOM, o e lpaquete DOM,......?
|
|
|