26 octubre 2006

Diseñador de menús CSS

Bueno, después de unos cuantos días sin publicar nada en el blog (a veces no doy más) y unos cuantos post pendientes aquí va el más fácil de escribir.
He encontrado esta página web desde donde nos podemos bajar un programita gratuito para hacer distintos tipos de menús 100% CSS. La verdad es que en un momento dado te ahorra algo de trabajito ...

20 octubre 2006

ASP.Net Ajax Beta 1.0 liberado

Hoy Microsoft ha liberado la primera beta de su ASP.Net Ajax. Esta beta incluye los siguientes archivos:

Los cambios con respecto a la CTP anterior han sido muchos, muchos. Tanto que han puesto a nuestra disposición una guía de migración. una disponible como documento de Word y otra en formato PDF.

Lo primero que llama la atención es que ahora tenemos tres proyectos en vez de los dos anteriores. La diferencia estriba en que hay controles en el Value-Add y en el Toolkit. Según Microsoft en la versión definitiva irán juntos.
Si lo que comenta el documento de cambios es cierto, realmente hay muchas mejoras como por ejemplo:

  • Mejoras en el rendimiento. Lo que han hecho, entre otras, es dividir los ficheros javascript en otros más pequeños y más numerosos que además se descargarán sólo si hacen falta.
  • Mejoras en la depuración de proyectos.
  • Mayor compatibilidad con navegadores.
  • etc.

17 octubre 2006

Pasar valores entre formularios windows

Este post viene a cuento de una pregunta que me hicieron esta mañana, aun cuando la contesté, pensé que quizás fuera bueno incluirlo en el blog.
Mostraré dos ejemplos, en el primero simplemente un formulario (Origen) pasará dos valores a otro (Destino). En el segundo ejemplo iremos un poco más allá, el primer formulario (OrigenDialog) le pasará a un segundo (DestinoDialog) dos valores, pero este último le devolverá a su vez al primero estos dos valores, se hayan modificado o no, siempre que se pulse en el botón Aceptar.

En .Net hay varias formas de pasar valores entre formularios, mostraré la que según la documentación de Visual Studio 2005 Professional Edition es la más correcta y consume menos recursos.

- Ejemplo 1.
Como ya comenté, en este ejemplo un formulario le pasa dos valores a otro y se terminó.

En el formulario Origen incluiremos dos textbox cuyo contenido será lo que pasemos al form Destino y un botón para abrirlo.
En el formulario Destino, nos crearemos un procedimiento que será el encargado de recoger los valores.
En el evento click de dicho botón crearemos una variable de trabajo apuntando al form Destino y antes de abrirlo, le pasaremos dos parámentos al procedimiento creado para recoger los valores. Y ya está, esto es todo.

Aquí van las imágenes.
Código Form Origen:



Código Form Destino:

Resultado final:




- Ejemplo 2.
Para este ejemplo utilizaremos el método ShowDialog de la clase Form. Esto nos asegura que el primer formulario no se cierra sin haber cerrado previamente el segundo.
En el evento Click del botón del formuario OrigenDialog haremos lo siguiente:
1. Declararemos una variable para crear el segundo formulario.
2. Le pasaremos los valores al segundo formulario utilizando el mismo procedimiento que el primer ejemplo.
3. Declararemos una variable para saber si en el segundo formulario se ha pulsado el botón Aceptar o el Cancelar.
4. Si se pulsa Aceptar en el segundo formualario actualizaremos los textbox del primero con lo tecleado en el segundo.
5. Destruiremos el segundo formulario.




Formulario Destino.
A tener en cuenta de este formulario es que tenemos que asignar la propiedad DialogResult a los botones de Aceptar y Cancelar, asignándole al primero el valor OK y al segundo Cancel. Como se habrá entendido esta propiedad nos dirá si el usuario a aceptado o no los cambios realizados en este formulario.
El código de este segundo formulario es exactamente igual que el del primer ejemplo, solo tendremos el procedimiento de recolectar los valores pasados.
Imágenes:
Código OrigenDialog:

Código DestinoDialog:




Resultado final:



Espero no haberme liado, ya saben si hay dudas escribid en comentarios.

Petición

Escribo este post para hacer una petición propia. Me gustaría escribiaran algún comentario indicando que les gustaría ver en este blog sobre cualquier asunto .Net.
¿más código? ¿sobre qué? ¿más noticias? No sé, la verdad es que me gustaría saber algo sobre los que leen este blog.

Gracias y a animarse

16 octubre 2006

Cambio a Blogger Beta

Estoy cambiando el blog a la nueva beta de Blogger, si encuentran algún error, ya saben, es beta ....

14 octubre 2006

Unión de bloggers hispanos

Este proyecto lo encontré en un blog que pretender aunar cuantos más blogs hispanos mejor, Unión de Bloggers Hispanos, se trata del proyecto GoMeme 4.0, desde luego me parece una idea estupenda. A continuación indico de lo que se trata el proyecto.

Creo que sería interesante ver como nuestro ranking crece en Google y cualquier buscador de blogs. Para ello es que se creó GoMeme 4.0. Parece además interesante que cada bloggero en el círculo de UBH, se adhiera al proyecto y ayude a que su propio blog sea mas visible a las máqinas de búsqueda, no por el simple link, sino por la múltiple interrelación entre los enlaces que se generan gracias a todos aquellos que entran en el ‘juego’. Fervientemente los invito a continuar y a ayudarnos en el experimento, porque éste nos es un artículo ordinario. Se ha agregado información especial al final. Lea el artículo completamente y trate de seguir las instrucciones para su debida propagación.
La fuente siempre merece el crédito. Por qué no continuamos los enlacen en español?
NOTA: Asegúrese de agregar links reales en el listado de abajo.
Por ahora se estima que existen mas de un millon de bitácoras. Pero la mayoria de ellas no son visibles para los robots de búsqueda. Solo algunas “A-List” bitácoras aparecen a la cabeza en los resultados mostrados para un dterminado tópico, mientras que la mayoria de las bitácoras ni siquiera son identificados. La razón es que las bitácoras mas pequeñas no tienen suficientes enlaces(links) que se dirijan a ellos mismo. Pero este post podria solucionar eso!. Ayudemos a que las bitácoras mas pequeñas sean mas visibles a las maquinas de búsqueda!
El post aunque esta en Inglés es GoMeme 4.0. Esto es parte de un experimento para ver si nosotros podemos crear un post que ayude a 1000 bitácoras, a obtener posicionamientos mas altos en Google. Hasta ahora hemos tratado tres primeras variaciones. Nuestro primera prueba, GoMeme 1.0, se difundió a cerca de 740 bitácoras en dos y medio dias. Esta nueva version 4.0 es mas corta, mas simple, y encaja mas fácilmente dentro de tu bitácora.
Por qué estamos haciendo esto? Queremos ayudar a que miles de bitácoras obtengan mayor visibilidad en Google y otras máquinas de búsqueda. Cómo funciona? Solo sigue las instrucciones de abajo y republica este post en tu propia bitácora y agrega tu URL al final de la lista mostrada abajo. De la misma manera que este “meme” se propague en forma progresiva desde tu bitácora, asi mismo lo hará tu URL. Mas tarde, cuando tu bitácora sea puesta enlistada en las máquinas de búsqueda, ellas verán los enlaces apuntando hacia tu bitácora desde todo ese flujo de bitácoras que se enlazaron a través de ti, lo cual hará que ubiquen tu bitácora en una posicion superior cuando se muestren los resultados. Todos los que estan en la lista de abajo se beneficiarán en forma similar cuando este “meme” se difunda. Unete!
Instrucciones: Copia y pega este post completamente en un post de tu bitácora. A continuación agrega tu URL al final de la lista, y continúa la cadena!
Lista de Origen
1. Memes en español
2. Madurando con sentido
3. Cavaju
4. Momentanea
5. Imagenes de un talibano
6. MordorBlog
7. El oso
8. Sin imprenta
9. ALT1040
10. WR276
11. El Ecuador de hoy
12. Juan Javier
13. kevinhurlt
14. metablog
15. Mi mundo
16. Derrames intelectuales
17. Fatima Protesta
18. Erebe
19. Calú
20. Alex Vera
21. Bloggus
22. DeVilSoulBlack
23. Solo dehajo ser
24. Cero Cuatro
25. Enfoque de usuario
26. Jesús Nieves Montero
27. Gandika
28. El Catalejo
29. Curioseando
30. El especialista
31. Victor Solano
32. Alvaro Sanchez
33. A veces hace falta
34. Un mundo de ideas
35. Ciberescrituras
36. Cuarenton
37. Not etra be
38. Blogófago
39. Urbe y existencia
40. Blogpocket
41. eCuaderno
42. El ventanuco
42. Opiniones
43. Si puedo
44. El arbol de Diana
45. Desarrollo en la red
46. Sergio Rastafurbi
47. Hipótesis21
48. Con valor
49. My Space
50. Un poco de cada
51. Rufadas
52. La paradoja posible
53. Oabareload
54. Territorio enemigo
55. Hachemuda
56. il Maistro
57. Apocalypsofacto
58. Cladestinidad Pedagógica
59. Methos 189
60. Colombia Hoy
61. Redtales
62. Alambre
63. Domingo 1967
64. Veo y pienso
65. Unión de Bloggers Hispanos
66. NetCodigo e Internet
67.(Tu URL va aquí! Pero primeramente, por favor copia esta linea y múevela un espacio hacia abajo para que sea usada por la próxima persona).

12 octubre 2006

Añadir sumarios a un GridView ASP Net 2.0

En este post intentaré explicar cómo añadir sumarios a cualquier columna de un GridView. Estos sumarios pueden ser totales de una o más columnas o simplemente un texto.
En el ejemplo lo que haremos será:
  1. Incluir un sumario de texto a una columna
  2. Incluir una sumatoria de una columna.

Para ello primero tenemos que modificar la propiedad ShowFooter del GridView a True ya que por defecto está a False.


Simplemente con esto ya le hemos indicado al GridView que muestre una fila para los sumarios.
Ahora toca modificar el código, en el evento RowDataBound del GridView es donde lo incluiremos. Este evento se dispara cuando se crea el Header, Footer y por cada Row de la consulta asociada al GridView.
Para saber, dentro de este evento, porqué se ha disparado, contamos con la propiedad RowType del argumento e del evento. El código sería el siguiente:


Pasos:

  1. Declaramos una variable privada a nivel del módulo para acumular el total de la columna deseada.
  2. Si el RowType del argumento e es DataRow entonces acumularemos el total. Para poder recoger el valor de la row debemos declarar una variable del tipo DataRowView para poder acceder a los valores del GridView y poder así realizar los cálculos pertinentes.
  3. Si el RowType del argumento e es del tipo Footer, entonces asignaremos a la primera columna un literal como "Totales" y a la segunda columna le asignaremos nuestra variable privada que contiene el acumulado.

Resultado:

Ya saben, si tienen alguna duda dejar un comentario.

Encontrada vulnerabilidad en .Net FrameWork 2.0





En el boletín de seguridad de Microsoft MS06-056, comentan que:

Existe una vulnerabilidad de secuencias de comandos que implican a varios sitios en un servidor que ejecuta una versión vulnerable de .Net Framework 2.0 que podría infiltrar una secuencia de comandos de cliente en el explorador del usuario. La secuencia de comandos podría suplantar contenido, divulgar información o realizar las mismas acciones permitidas al usuario en el sitio Web afectado. Los intentos de aprovechar esta vulnerabilidad requieren la interacción del usuario.

Recuperar Special Folders

El siguiente código muestra como recuperar las carpetas especiales de un sistema windows. Ententiendo como carpetas especiales a "Archivos de Programa", "Temporal de Windows", "Mis Documentos", etc.
Para recuperarlas usaremos el espacio de nombres system, espacio que contiene clases fundamentales y clases base que definen tipos de datos de referencia y de valor de uso frecuente, eventos y controladores de eventos, interfaces, atributos y excepciones de procesamiento (según Microsoft).
En este espacio de nombre tenemos la clase Enviorment proporciona información acerca del entorno y la plataforma actuales, y la forma de manipularlos (también según Microsoft). Esta clase tiene un método denominado GetFolderPath que es el que utilizaremos para el tema de este post.
La clase Enviroment tiene a su vez un método denominado SpecialFolder que será el que le pasaremos como parámetro a GetFolderPath.
Verán que es muy sencillo, en el ejemplo rellenaremos un listbox con unas cuantas carpetas especiales.
Resultado:



Código:



Sencillito ...

11 octubre 2006

Aplicaciones que ralentizan Windows

ThePCSpy ha publicado un artículo en el que muestras las aplicaciones que más ralentizan los sistemas Microsoft Windows. Para realizar el estudio han utilizado una máquina virtual y hecho pruebas a las aplicaciones más conocidas del mercado.
Para realizar las pruebas a cada una de las aplicaciones se reinstalaba dicha máquina virtual para comenzar con sistema operativo totalmente limpio.
Si estudian un poco el gráfico podrán ver datos interesantes.
Estos son los resultados publicados:


Genera tu logo Web 2.0

Con esta herramienta podrás generar tu logo al estilo de la Web 2.0
Simplemente haz de introducir el nombre que deseas ponerle al logo y elegir entre un par de opciones.
Con reflejo y beta:

Con reflejo sin beta:

Muy sencillito ...

09 octubre 2006

Pasar datos entre páginas web ASP Net 2.0

En este post me gustaría mostrarles que, además de en la url (lease querystrings), hay otra forma de pasar datos entre páginas asp.
Lo bueno que tiene esta otra forma, que por cierto solo funciona con ASP Net 2.0, es que en la url no va a mostrar ninguna información sobre los datos con los que queremos trabajar, esto se consigue usando Cross Page Postback.
Para trabajar con el ejemplo necesitaremos dos páginas, la origen (Default.aspx) y la de destino (Default2.aspx), la primera será la encargada de enviar los datos y la segunda de recorgerlos y mostrarlos.
Para ver el ejemplo completo aquí están las dos páginas
1. Origen:

2. Destino: Si se fijan, en la página de destino, en la url no aparece ningún tipo de querystring.

Cómo se hace:

1. En la página de origen lo único que hay que hacer es asignar la propiedad PostBackURL al botón encargado de lanzar la segunda página para que apunte a esta última.

2. En la página destino hay que hacer dos cosas:
2.1 Añadir la directiva @PreviousPageType apuntando a la página desde la que se ha llamado a la de destino.

2.2 En el evento load de esta segunda página ahora podremos insertar el código necesario para capturar los valores de la página de origen.


Bueno, espero que lo hayan pillado, ya saben para cualquier cuestión al respecto no duden en agregar comentarios.

08 octubre 2006

Página de entrada personalizada

¿Conocen Netvibes?
Es otro servicio que nos permite diseñarnos nuestra página de inicio cuando accedemos a la web. Me gusta más que Pageflakes porque nos permite más cosas, (sobre gustos no hay nada escrito), todo es cuestión de probarlo.


Gracioso y curioso

Microsoft anuncia que el entorno de desarrollo de Visual Basic 6 funcionará con Windows Vista, pero, Visual Studio 2005 no, para solucionarlo sacarán un service pack del que ya se puede bajar la primera beta.
Para poder bajarlo hay que estar inscrito en el programa Connect de Microsoft.

Apuntes sobre Master Pages

1. ¿Se les ha dado el caso de tener que utilizar una master page que no está en el mismo directorio que la página que la utiliza?
El primer problema con el que nos encontraremos será que todo aquello que haga uso de un path relativo no nos funcionará, por ejemplo las imágenes. Para corregirlo, con FrameWork 2.0, tenemos el método "ResolveClientUrl". En el ejemplo siguiente la primera imagen no será mostrada y la segunda sí ya que los path varían.




2. Acceder a controles de la Master Page desde nuestra página.
Cuando necesitemos acceder a cualquier propiedad, valor o lo que sea de un control alojado en la master desde la página en cuestión utilizaremos en nuestro código:

Dim Pie As Label = Me.Master.FindControl("LabelPie")
Pie.Text = "valor"

Enumerar procesos en memoria

Con el siguiente código podremos llenar un listview con los procesos que se ejecutan en un sistema.

Imports System.Diagnostics.Process
Public Class Form1
Dim Procesos As Process()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
ListView1.Items.Clear()
Dim Proceso As Process
Procesos = Process.GetProcesses()
Dim proclength As Integer
For proclength = 0 To Procesos.Length - 1
Proceso = Procesos(proclength)
Dim InfProceso(2) As String
InfProceso(0) = Proceso.ProcessName
InfProceso(1) = Proceso.Id.ToString()
InfProceso(2) = Proceso.PagedMemorySize64.ToString()
Dim process_Listview As ListViewItem = New ListViewItem(InfProceso)
ListView1.Items.Add(process_Listview)
Next
Catch ex As Exception
MessageBox.Show(ex.Message())
End Try
End Sub
End Class

05 octubre 2006

Conseguida 3ª Estrella Microsoft

Después de bastante tiempo sin poder examinarme, hoy he conseguido mi 3ª Estrella del Progama "Desarrollador 5 Estrellas" de Microsoft. Aquí os muestro el certificado, ahora, a esperar que publiquen los dos últimas.
Si no conocéis el programa, animaros.

02 octubre 2006

Oracle Developer Tools for Visual Studio .Net

Oracle ha liberado lo que han denominado "Oracle Developer Tools for Visual Studio .Net". Es un plug-in que se integra en el entorno de Visual Studio y pensado para facilitar el desarrollo contra bases de datos Oracle.
Entre otras cosas incluye:
  • Use the Oracle Explorer to browse your Oracle schema, launch one of the many powerful designers and wizards to create and alter schema objects, and drag and drop schema objects onto your form to automatically generate .NET code.
  • The integrated context sensitive online help, including the Oracle SQL and PL/SQL Users Guides puts the Oracle documentation at your fingertips. And with the Oracle Data Window you won't have to leave the Visual Studio environment for routine database tasks like inserting and updating Oracle data or testing stored procedures! For maximum flexibility, there's also a SQL Query Window for executing any SQL statement or SQL script you choose.
  • The .NET Deployment Wizard makes it easy to deploy .NET stored procedures and functions into Oracle Database 10g Release 2.
Por supuesto es de descarga gratuita

WebCast sobre Application Blocks

Leo en blog de Williy Mejía la publicación por parte de Microsoft Latanoamérica de tres webcast sobre Applications Blocks.

He visto los tres primeros y la verdad es que los temas está muy bien explicados, vale la pena echarles un vistazo.

Microsoft Pre-release Software Visual Studio Code Name "Orcas"

Microsoft ha publicado y puesto a disposición de todo el que lo desee la futura versión de Visual Studio (Orcas). Se puede descargar desde aquí.

La descarga es en formato iso para su instalación en Virtual-PC 2004 SP1 o Virtual Server 2005 R2.