May 31
Usando UpdatePanel con Triggers
icon1 Recursos Web | icon2 Ajax | icon4 05 31st, 2007| icon31 Comment »

Si estás usando en Ajax un UpdatePanel, es sencillo hacer que éste se actualize si colocas un botón dentro de él mismo, algo como:

ASP:
  1. <asp:UpdatePanel id="UpdatePanel1" runat="server">
  2.    <contenttemplate>
  3.       <asp:Button id="Buscar" runat="server" Text="Buscar"></asp:Button>
  4.       <asp:Label runat="server" Text="Label"></asp:Label>
  5.    </contenttemplate>
  6. </asp:UpdatePanel>

Sin embargo, ¿qué ocurre si el botón que debe desencadenar la actualización del UpdatePanel se encuentra fuera del mismo?

Entonces debes añadir un trigger al UpdatePanel para indicarle cuál o cuáles controles deben desencadenar su actualización. Hazlo así:

ASP:
  1. <asp:Button id="Buscar" runat="server" Text="Buscar"></asp:Button>
  2. <asp:UpdatePanel id="UpdatePanel1" runat="server">
  3.    <contenttemplate>
  4.       <asp:Label runat="server" Text="Label"></asp:Label>
  5.    </contenttemplate>
  6.    <triggers>
  7.       <asp:AsyncPostBackTrigger ControlID="Buscar" EventName="Click"></asp:AsyncPostBackTrigger>
  8.    </triggers>
  9. </asp:UpdatePanel>

May 31

Estoy usando .NET 2. Tengo mi archivo .XSD (Data Layer) y mi Business Logic.

El caso es que en el .XSD estoy poniendo esta consulta:

MySQL:
  1. SELECT * FROM tabla WHERE nombre LIKE ?

Yo quería encontrar cualquier campo que contuviera el string solicitado, es decir, si alguien buscaba "pa", la sentencia debía regresar valores como "paco", "palabra", "pais", etc. Pero con el LIKE solamente regresaba el valor si la coincidencia era exacta.

Otros intentos que hice fueron:

MySQL:
  1. SELECT * FROM tabla WHERE nombre LIKE '%?%'

MySQL:
  1. SELECT * FROM tabla WHERE nombre LIKE %?%

MySQL:
  1. SELECT * FROM tabla WHERE nombre LIKE \%?\%

Ninguno sirve porque al parecer al definir la sentencia SQL en el archivo .XSD, el signo de interrogación no puede tener ningún comodín.

Entonces busqué alguna función que pudiera ayudarme, y al final lo logré. La sentencia debe quedar así:

MySQL:
  1. SELECT * FROM tabla WHERE (INSTR(nombre,?)> 0)

INSTR(str,substr) devuelve la posición de la primera ocurrencia de substring en la cadena de texto str.

Así que si devuelve un número mayor a cero, significa que lo encontró.

Ahora bien, siendo más estrictos, lo que yo quería era que encontrara el principio de la palabra. Es decir, si alguien buscaba por "yo" debería encontrar "yolanda", pero no "pelayo". Entonces necesitaba algo que le indicara que buscara solamente al principio del campo.

Así es como lo logré:

MySQL:
  1. SELECT * FROM tabla WHERE nombre REGEXP CONCAT('^',?)

expr REGEXP pat realiza una búsqueda de expresiones regulares en la cadena expr usando el modelo pat.

CONCAT(cad1, cad2, ...) une cadenas de texto.

Es decir que al ejecutarse:
SELECT * from tabla where nombre REGEXP CONCAT('^','yo')
Se convierte en:
SELECT * from tabla where nombre REGEXP '^yo'

Como sabes, el símbolo ^ en expresiones regulares, significa el inicio de una palabra.

Para mayor información:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

May 30

Si usas un servidor local seguramente tienes la pura caja, sin monitor ni teclado. Cuando trabajas en el servidor lo haces usando Escritorio Remoto (Remote Desktop). Si es así, te gustará este tip para apagar tu servidor haciendo doble clic en un archivo .bat desde cualquier PC en tu red local.

Simplemente abre un bloc de notas y teclea lo siguiente:

shutdown /s /m \\servidor

Guarda el archivo como apagar.bat. Listo, ahora dale doble clic y tu servidor se apagará.

Nota: Debes estar autenticado en el servidor. Es decir, conéctate al servidor tecleando \\servidor en el explorador de windows y proporciona tu nombre de usuario y contraseña.

Si ejecutaste el archivo apagar.bat e inmediatamente después te das cuenta de que no lo querías apagar, debes ejecutar el siguiente comando para abortar el apagado:

shutdown /a /m \\servidor

Solamente funciona si lo haces en 30 segundos o menos después de haber enviado el primer comando.

Igual que antes, puedes teclear esto en un archivo y llamarlo abortar.bat para tenerlo a la mano en caso de que te arrepientas.

May 30

Cuando intentas conectarte a tu servidor con Escritorio Remoto (Remote Desktop) obtienes el siguiente error:

Servicios de Terminal Server ha sobrepasado el número máximo de conexiones permitidas. El sistema no puede iniciar su sesión en (1B8E). Vuelva a intentarlo o consulte a su administrador del sistema.

En inglés:
The terminal server has exceeded the maximum number of allowed connections. The system cannot log you on (1B8E). Please try again or consult your system administrator.

La razón es que el servidor solamente acepta 2 sesiones remotas, ya sea activas o desconectadas. Es decir, abriste dos sesiones y las dejaste abiertas (simplemente cerraste las conexiones cerrando la ventana de Escritorio Remoto en vez de hacer clic en Inicio -> Cerrar sesión).

Afortunadamente puedes crear una tercera sesión ejecutando este comando desde una ventana de MS-DOS:

c:>mstsc /v:ip_del_servidor /console

Esto te permitirá conectarte a la sesión de consola de tu servidor, y una vez dentro te recomiendo matar las sesiones que se quedaron activas.

Por cierto, si piensas reiniciar tu servidor, la manera más confiable de hacerlo es desde la sesión de consola.

May 30

Puedes añadir un icono a tu página web, como este:

Favicon

Para hacerlo, primero necesitas poner esta línea entre los tags head de tus páginas web:

HTML:
  1. <link rel="shortcut icon" href="favicon.ico">

Después necesitas crear una imagen de 16X16 pixeles y exportarla con la extensión .ico. Lo puedes hacer con el programa Microangelo, pero lo tendrías que comprar, descargar e instalar, y no creo que sea algo que estés deseando.

Te doy una alternativa: Utiliza tu editor de imágenes favorito y haz una imagen de 16X16 pixeles y expórtala como gif. Para convertirla a ico simplemente entra a esta página:

http://www.html-kit.com/favicon/

En ella simplemente haz clic en el botón Examinar, escoge tu imagen y la página web te generará el archivo ico.

Después, si quieres revisar que todo está en orden, puedes validar tu página en esta dirección:

http://www.html-kit.com/favicon/validator/

Para Wordpress

Si quieres añadir tu favicon a Wordpress, inserta el código arriba mencionado en el archivo header.php del tema que estés utilizando. Ejemplo: c:\miblog\wp-content\themes\mitema\header.php

May 28

Para enviar mails con ASP.NET 2 necesitas utilizar System.Net.Mail.

Antes que nada, no olvides importar la librería:

VB.NET:
  1. Imports System.Net.Mail

Para enviar el e-mail la sintaxis es la siguiente:

VB.NET:
  1. Dim mail As New MailMessage()
  2. 'Para enviar mensaje en HTML
  3. mail.IsBodyHtml = True
  4.  
  5. 'A quien se le envia
  6. mail.To.Add("destinatario@ejemplo.com")
  7. mail.To.Add("OtroDestinatario@ejemplo.com")
  8. 'Con copia para
  9. mail.CC.Add("Copia@ejemplo.com")
  10. 'Con copia oculta
  11. mail.Bcc.Add("CopiaOculta@ejemplo.com")
  12. 'De parte de quien
  13. mail.From = New MailAddress("DeParteDeQuien@ejemplo.com", "Juan Pérez")
  14.  
  15. 'Si necesitas agregar una direccion de respuesta distinta
  16. mail.ReplyTo = New MailAddress("AQuienResponder@ejemplo.com", "Elisa Romero")
  17. 'Asunto
  18. mail.Subject = "Hola amigos"
  19. 'Cuerpo
  20. mail.Body = "<b>Hola, como están</b> todos?"
  21.  
  22. 'Por si necesitas aniadir archivos adjuntos
  23. mail.Attachments.Add(New Attachment("c:\archivo1.jpg"))
  24. mail.Attachments.Add(New Attachment("c:\archivo2.jpg"))
  25.  
  26. Dim smtp As New SmtpClient("127.0.0.1")  'La direccion IP del servidor SMTP
  27. 'Si deseas autenticacion usa la siguiente linea
  28. smtp.Credentials = New Net.NetworkCredential("login", "password")
  29. 'Listo, envia el mail
  30. smtp.Send(mail)

May 27
Guía para Principiantes
Guía para Avanzados

1. Apaga la opción de Restaurar el Sistema
La restauración del sistema puede ser muy útil si tu computadora tiene problemas, pero almacenar la información de todos los puntos de restauración puede tomar muchos Gigabytes de espacio en tu disco duro. Si deseas apagar la Restauración del Sistema ve a:

Panel de Control (vista clásica) -> Sistema -> Restaurar sistema y desmarca la opción que dice Desactivar Restaurar sistema en todas las unidades.

Desactivar Restaurar sistema


2. Desfragmenta tu Archivo de Paginación

Mantener tu Archivo de Paginación desfragmentado puede significar un fuerte impacto en el desempeño de tu computadora. Una de las mejores maneras de lograr esto es crear una partición separada en tu disco duro donde solamente viva el Archivo de Paginación. De esta manera este archivo no sería impactado por el uso regular del disco duro.

Otra manera de hacerlo es correr la utilidad PageDefrag. Esta aplicación puede ser usada para desfragmentar tu Archivo de Paginación, y puedes elegir la opción de hacerlo cada vez que tu computadora inicia.

Si no sirve la liga anterior, intenta descargarlo de download.com.

Para usarlo, primero descárgalo, luego córrelo, marca la opción Defragment at next boot, oprime Ok y reinicia.

PageDefrag

Nota: La idea es que todos los archivos estén en un solo fragmento, es decir, que todas las columnas de la derecha digan 1.

3. Haz que tus menús carguen más rápidamente

Por default existe una pequeña demora desde el momento en que haces clic en algún submenu desplegable hasta el momento en el que se muestra. Es posible eliminar esta pequeña demora, lo que te permitirá trabajar más rápidamente.

No establezcas este valor en 0 ya que puede resultar incómodo porque los submenús desplegables se abriran en el mismo instante en que pases el mouse sobre ellos. Un buen valor es entre 50 y 150.

Para hacer este cambio ve a Inicio -> Ejecutar -> Teclea 'Regedit' -> Aceptar

Una vez en el Editor del Registro busca la siguiente clave (con icono de carpeta):
HKEY_CURRENT_USER\Control Panel\Desktop y hazle clic. En los valores que aparecen a la derecha, busca el llamado MenuShowDelay.

Dale doble clic y modifica el valor a 100.

Reinicia.

5. Asegúrate de que Windows XP está usando el modo DMA

XP habilita el DMA para discos duros y CD-Roms por default en la mayoría de los dispositivos ATA o ATAPI (IDE). De cualquier forma, en ocasiones las computadoras cambian al modo PIO, el cual es más lenta para transferir datos. Una típica razón es algún virus.

Para asegurarte de que tu computadora usa DMS ve a Inicio-> Botón derecho en Mi PC -> Hardware -> Administrador de dispositivos -> Expande la rama Controladores IDE ATA/ATAPI -> Botón derecho en Canal IDE Principal -> Propiedades -> Configuración avanzada.

Asegúrate de que para todos los dispositivos esté seleccionada la opción DMA si está disponible, y si no, selecciónala.

DMA


Traducido y adaptado del artículo The Complete Guide To Optimising Windows XP.

www.connectedinternet.co.uk

May 25

Para implementar tu propia lógica en un validador utiliza un CustomValidator.

En la página aspx agrega la propiedad OnServerValidate al validador y dale como valor el nombre de una función que tú mismo escribirás.

ASP:
  1. <asp:customvalidator id="CustomValidator1" runat="server" CssClass="validador" Display="Dynamic" ErrorMessage="Debe seleccionar al menos un grupo" OnServerValidate="validaGrupos"></asp:customvalidator>

En el archivo aspx.vb (o en la porción de código de servidor de tu archivo aspx) implementa la función, como se muestra a continuación. Si tu lógica indica que el dato es aceptado, establece args.IsValid a true, y si no, a false.

VB.NET:
  1. Sub validaGrupos(ByVal sender As Object, ByVal args As ServerValidateEventArgs)
  2.  
  3.         Dim vacio As Boolean
  4.         vacio = True
  5.         Dim elemento As ListItem
  6.         For Each elemento In Grupos.Items
  7.             If elemento.Selected = True Then
  8.                 vacio = False
  9.             End If
  10.         Next
  11.  
  12.         args.IsValid = Not vacio
  13.  
  14.     End Sub

May 25

La herramienta de búsqueda de Firefox me gusta más que la de Internet Explorer porque viene integrada a la ventana del explorador mediante una barra que aparece en la parte inferior.

Búsqueda de Firefox

La de Internet Explorer (IE) aparece en una ventanita aparte, bastante molesta.

Sin embargo, existe un Add-on para IE que permite contar con una búsqueda al estilo de Firefox.

Se llama InlineSearch (fabricado por IEForge) y lo puedes descargar de aquí.

En este ejemplo, estamos buscando la palabra "ventana".

InlineSearch

May 24

1. Deshabilita los mensajes de confirmación

Puedes deshabilitar los mensajes de confirmación (¿Está seguro?) cuando borras algún archivo. Para hacerlo haz clic con el botón derecho en la Papelera de Reciclaje y selecciona Propiedades. Haz clic en la pestaña Global y quita la paloma a la opción Mostrar cuadro de diálogo para confirmar eliminación.

Papelera de reciclaje

Si accidentalmente eliminas un archivo solamente ve a la Papelera de reciclaje y restáuralo.


2. Deshabilita el Servicio de Index Server

El Index Server es un programa que utiliza bastante memoria RAM. Procesa índices y mantiene actualizaciones de todos los archivos que hay en tu computadora con el fin de que cuando buscas algo, la búsqueda ocurra más rápidamente. Si no utilizas la búsqueda frecuentemente, y aún cuando lo hagas, este sistema es completamente innecesario. Para deshabilitarlo, ve a:

Inicio -> Panel de control -> Agregar o quitar programas -> Agregar o quitar componentes de Windows

Haz clic en Siguiente.

Deshabilitar Servicio de Index Server


3. Optimiza los Efectos Visuales

Si bien los efectos visuales son agradables, quitan muchos recursos. Para deshabilitarlos ve a:

Inicio -> Panel de Control -> Sistema -> Opciones Avanzadas

Oprime el botón Configuración que está en la sección titulada Rendimiento.

En esa nueva ventana, en la pestaña Efectos visuales encontrarás varias opciones que puedes deshabilitar.

Yo me fui al extremo y dejé habilitada solamente la de Usar estilos visuales en ventanas y botones para no verme muy noventero.

Deshabilita efectos visuales


4. Acelera la examinación de carpetas

Te habrás dado cuenta de que cada vez que abres Mi PC para examinar carpetas, existe una pequeña demora. Esto se debe a que Windows XP automáticamente busca por archivos e impresoras en la red local cada vez que abres el explorador de Windows. Para incrementar significativamente la rapidez cuando examinas carpetas, ve a:

Inicio -> Mi PC -> Herramientas -> Opciones de carpeta -> Ver

Quita la paloma a la opción Buscar automáticamente carpetas e impresoras de red.

Haz clic en Aplicar y reinicia tu computadora.

Deshabilita la búsqueda de carpetas e impresoras de red


5. Deshabilita los contadores de desempeño

Windows XP tiene una utilidad que monitorea el desempeño en diferentes áreas de tu PC. Estas utilidades ocupan recursos, así que deshabilitarlas es una buena idea. Para hacerlo:

  • Descarga e instala el Extensible Performance Counter List
  • Abre la carpeta en donde lo instalaste y dale doble clic al archivo exctrlst.exe
  • Selecciona cada uno de los contadores y desmarca la opción Performance counter enabled. Lo tienes que hacer uno por uno
  • Cierra el programa, los cambios se guardan automáticamente

Deshabilita los contadores de desempeño


6. Mejora el uso de la memoria con Cacheman

Cacheman mejora el desempeño de tu computadora optimizando el caché de disco, la memoria y otras configuraciones. Descárgalo e instálalo.

Una vez instalado, ejecuta la opción Auto-optimize y reinicia tu computadora.


7. Optimiza tu conexión a Internet

Hay muchas maneras de hacer esto pero la más sencilla es correo TCP/IP Optimizer.

  1. Descárgalo y ejecútalo (no se instala)
  2. En la pestaña General settings selecciona tu velocidad de conexión a Internet en Kbps. Si no la sabes, chécalo con tu proveedor de servicios de Internet o haz una prueba de velocidad.
  3. Asegúrate de que está seleccionada tu tarjeta de red bajo el título Network Adapter selection
  4. Marca la opcion Optimal settings
  5. Oprime Apply changes
  6. Oprime Ok cuando se te pregunte si estás seguro
  7. Reinicia

TCP/IP Optimizer


8. Optimiza tu archivo de paginación

Si le das a tu archivo de paginación un tamaño fijo, le quitar la tarea al sistema operativo de tenerle que cambiar el tamaño.

Windows XP le da al archivo de paginación el tamaño de apróximadamente 1.5 veces la memoria física. Mientras esto es bueno en algunos sistemas con pequeñas cantidades de memoria (menos de 512MB) es improbable que un sistema típico necesite 1.5 X 512MB o más de memoria virtual.

Si tienes menos de 512MB de memoria, bríncate este punto. Si tienes 512MB o más, cambia la relación a 1:1.

Para hacerlo ve a:

Inicio -> Clic con el botón derecho a Mi PC -> Propiedades -> Opciones Avanzadas -> Rendimiento: Configuración -> Opciones avanzadas -> Memoria virtual: Cambiar.

Selecciona la unidad que contenga tu archivo de paginación (la que tenga valores numéricos) y copia el valor Tamaño máximo al valor Tamaño inicial.

Es decir, si tus valores son estos:

Tamaño inicial: 1536
Tamaño máximo: 3072

Cámbialos a estos:

Tamaño inicial: 3072
Tamaño máximo: 3072

Modifica tu archivo de paginación


9. Mejora los tiempos de arranque de tu computadora

El programa BootVis incremente significativamente los tiempos de arranque (boot).

Descárgalo e instálalo.

Ve a File -> New -> Next Boot + Drivers Trace y en la ventana de repeticiones que aparece simplemente oprime Ok. Lo que va a ocurrir es que tu sistema se va a reiniciar y BootVis va a analizar el proceso de arranque de tu computadora.

Cuando haya reiniciado, el programa correrá automáticamente. Cuando haya terminado el análisis, selecciona: Trace -> Optimize system.

El sistema se reiniciará nuevamente.

Cuando tu PC haya reiniciado, ten paciencia y espera a que el proceso termine. Verás esta ventana:

BootVis


10. Borra algunas fuentes

Las fuentes, o tipos de letra, especialmente las del tipo True Type, usan muchos recursos. Elimina las fuentes que ya no utilices, dejando solamente las que uses a diario o que sean usadas por algunas de tus aplicaciones.

Para eliminar fuentes:

Ve a Inicio -> Panel de control -> Fuentes.

Arrastra las fuentes que no estás usando a alguna carpeta de respaldo, así las podrás volver a copiar al fólder Fuentes si las vuelves a necesitar. Mientras más fuentes quites, mejor.


Traducido y adaptado del artículo The Complete Guide To Optimising Windows XP.

www.connectedinternet.co.uk

« Previous Entries