Category Archives: Uncategorized

Visual Studio 2008 y .NET Framework 3.5 Service Pack 1 Beta están disponibles


 


A partir de hoy (Lunes 12 de Mayo) está disponible para la descarga la versión beta de lo que será el Service Pack 1 del .NET Framework y VS 2008. Esta actualización contiene soluciones a las anomalías reportadas y mejoras al rendimiento sobre la versión liberada en Noviembre del año pasado. También contiene algunas características adicionales y mejoras que para contruir aplicaciones .NET.


Se planea liberar la versión final del .NET 3.5 SP1 y VS 2008 SP1 a finales de Septiembre del presente año como actualizaciones gratuitas.


Más información sobre la instalación y descripción de las nuevas mejoras se pueden encontrar aquí. El equipo de desarrollo de Visual Web Developer ha publicado un post sobre este tema aquí. Brad Adams (miembro fundador del equipo que desarrolló el Common Language Runtime y el .NET Framework) ha escrito sobre este tema aquí. Finalmente, .NET Rocks! el show de Internet radio para desarrolladores .NET tiene un podcast de 72 minutos con Brad Adams y Omar Khan aquí.


Descargas:


Visual Studio 2008 Service Pack 1 Beta


.NET Framework 3.5 Service Pack 1 Beta


Visual Studio 2008 Express Editions with Service Pack 1 Beta


Visual Studio Team System 2008 Team Foundation Server Service Pack 1


Saludos!


Carlos Figueroa – Quito, Ecuador

Implementando Cross-Page Posting en Aplicaciones Web


Una de las características que los desarrolladores de ASP.NET 1.x necesitábamos en el ambiente de desarrollo era que cuando se navegaba de una página a la siguiente; en la siguiente página se pudiese recuperar los valores de la página y de los controles que se encuentran en ella. Esto es posible en ASP.NET 2.0 y 3.5, y es realmente un proceso muy simple.


Para demostrar esto, primero crear una página llamada Page1.aspx simple como esta:



Aquí se puede identificar claramente un objeto Textbox para capturar el nombre, un objeto Calendar para capturar la fecha de vuelo, un objeto Button para postear la página a sí misma (Page1.aspx), un objeto Button para postear la página hacia otra página distinta (Page2.aspx) y un objeto Label para mostrar la información cuando la página es posteada a sí misma.


Es importante notar que el objeto Button2 tiene un atributo llamado PostBackUrl cuyo valor es la página hacia la cual se va a postear cuando este botón sea presionado.


Este código debe ser agregado a la página Page1.aspx para implementar el comportamiento del objeto Button1 cuando es presionado:



En este momento es posible correr la aplicación y ver lo que hace el primer botón:



Este es el comportamiento tradicional, cualquier página creada en ASP.NET 1.0/1.1 simplemente era posteada contra sí misma, y se podía manejar los valores de los controles dentro de la instancia de la página. El objeto Button2 puede hacer visibles los valores de la página y los controles de Page1.aspx dentro de Page2.aspx; de tal forma de Page2.aspx puede acceder a estos valores desde cualquier parte. Esta es la forma en la cual tiene que estar implementada la página Page2.aspx:



Existen dos formas de recuperar los valores de la página anterior. La primera es usando el método FindControl de la propiedad PreviousPage usando el texto del nombre del control de la página anterior como parámetro, haciendo el casting correspondiente para asignarlo a una variable local. De esta forma nos podemos olvidar de la página anterior y trabajar con la variable local como siempre. Pero como mencioné anteriormente, existe otra forma de hacerlo…


Para hacer esto es necesario exponer los controles de la página anterior (Page1.aspx) como propiedades públicas de esta forma:


 


Ahora es posible referirse a estas propiedades desde la página Page2.aspx. Para hacer esto es importante incluir la directiva PreviousPageType (Línea 2) y el valor del atributo VirtualPath debe ser el nombre de la página anterior. Una vez hecho esto se puede acceder a los controles de la página anterior desde la propiedad PreviousPage:



Cuando ejecutamos esta aplicación seleccionando “Submit page to Page2.aspx”, el resultado será el siguiente:



Finalmente, que pasaría si alguien accede a la página Page2.aspx sin antes haber pasado por la página Page1.aspx?. Pues, es fácil determinar si una petición está llegando desde Page1.aspx o si alguien accedió a la página Page2.aspx directamente. Se puede trabajar sobre el objeto Request a través del uso de la propiedad IsCrossPagePostBack la cual es similar a la propiedad IsPostBack de ASP.NET 1.x. La propiedad IsCrossPagePostBack permite verificar si el request viene desde Page1.aspx


Saludos!


Carlos Figueroa – Quito, Ecuador