February 2007 - Artículos

En ASP.NET 1.x existen en el ciclo de vida de una página los eventos Init, Load, Prerender y Unload que se disparaban en este orden y podiamos escribir código asociado a dichos eventos para poder modificar la salida de la página y el estado de los controles que la constituían.

La nueva versión de ASP.NET añade nuevos eventos para seguir el procesamiento de las peticiones de forma más precisa. Estos nuevos eventos son:

PreInit  Ocurre antes de que la página empiece a inicializarse y es el primer evento en el ciclo de vida de una página ASP.NET 2.0

Initcomplete Tiene lugar cuando se completa la inicialización de una página

PreLoad  Ocurre después de la inicialización y antes de que la página empiece a cargar la información del estado.

LoadComplete Ocurre despues de cargarse la página

PreRenderComplete Tiene lugar cuando la fase de Prerender esta acabada y todos los controles han sido creados. Despues de este evento el ViewState es guardado y se genera el HTML de la página.

Publicado por Sergio Vazquez | 1 comment(s)
Archivado en:

ASP.NET 1.x soporta compilación dinamica de los ficheros (.aspx), (.asmx),  (.ascx),  (.ashx), y global.asax. Estos tipos de ficheros son compilados automáticamente bajo demanda cuando se solicitan por primera vez en una aplicación web. La copia compilada es invalidada tan pronto como se detecta un cambio en el código fuente mientras que en ASP.NET 2.0 la característica de compilación bajo demanda se extiende a otros tipos de ficheros como los (.vb and .cs),  (.resx), (.wsdl),  (.xsd).  Despues de cambiar estos ficheros no es necesario forzar una compilación en VS.

Mediante la siguiente tabla trato de reflejar las principales diferencias entre el famoso Code -Behind (usa el atributo Codebehind) de las paginas ASP.NET 1.x y el Code-Separation de las paginas ASP.NET 2.0 en  las dos versiones de Visual Studio que mas se usan hoy en día. El nuevo modelo de código se implementa usando clases parciales usando el atributo CodeFile.

Modelo Code-Behind en Visual Studio .NET 2003.  Modelo clases parciales en Visual Studio 2005.

Necesita un directorio virtual IIS.

Puede acceder directamente a la instalación local de  IIS.

Carece de soporte FTP, acceso al sistema de archivos e IIS.

Tiene varias formas de abrir sitios web.

Necesita IIS en el pc de desarrollo.

Tiene su propio servidor web Cassini.

No permite abrir páginas individuales fuera de un proyecto.

No necesita abrir el proyecto entero; las páginas idividuales puede ser abiertas sin ser compiladas.

Necesita añadir explícitamente los ficheros al proyecto,

Elimina la necesidad de añadir explícitamente ficheros al proyecto.

 

Saludos

Sergio

Publicado por Sergio Vazquez | con no comments
Archivado en:

Hay veces que en vez de instalar un certificado digital SSL en el servidor web IIS, tal y como expliqué en el número 19 de Dotnetmania hace algún tiempo (próximamente estará disponible para su descarga gratuita en PDF), tenemos que leer un certificado digital de cliente que se instala en Internet Explorer para asegurarnos la identidad del visitante leyendo su nombre y DNI. Estos certificados los puede expedir una Entidad emisora de certificados como puede ser la Fábrica nacional de Moneda FNMT. Si lo que quieres es obtener la firma digital como ciudaddno puedes hacerlo en esta url http://www.cert.fnmt.es/index.php?cha=cit&sec=obtain_cert donde están todas las intrucciones detalladas. Ya sabéis que estos certificados se renuevan periódicamente como los SSL de servidor (puede no ser válido si ha caducado) y se pueden exportar en formato pfx de un pc a otro e incluso ponerle una clave o PIN.

 Aqui os copio un código sencillo en ASP.NET que os lee las características del certificado del cliente  en una petición http a través del famoso objeto Request que os puede ser de utilidad a más de uno:

Dim cert As HttpClientCertificate = Request.ClientCertificate

If cert.IsPresent Then

'Get the Organization (O) field from the Subject section.

' certData.Text = cert.Get("Subject O")

Response.Write("ServerSubject = " & cert.ServerSubject & "<br>")

Response.Write("Subject = " & cert.Subject & "<br>")

Response.Write("issuer = " & cert.Issuer & "<br>")

Response.Write("Valido desde = " & cert.ValidFrom & "<br>")

Response.Write("valido hasta = " & cert.ValidUntil & "<br>")

Response.Write("valido ? = " & cert.IsValid & "<br>")

Response.Write("tamaño de la clave secreta = " & cert.SecretKeySize & "<br>")

Response.Write("Server issuer = " & cert.ServerIssuer & "<br>")

Response.Write("Serial number hasta = " & cert.SerialNumber & "<br>")

Response.Write("Codificacion = " & cert.CertEncoding & "<br>")

ElseIf Not cert.IsValid Then

Response.Write("el certificado no es valido")

 

Else

Response.Write("No se ha encontrado certificado")

 

End If

Dim desc As New X509Certificate(cert.Certificate)

Dim resultsTrue As String = desc.ToString(True)

Response.Write("<br>despues de sacar flujo de bytes : " & resultsTrue)

Response.Write("<br>Hash string : " & desc.GetCertHashString)

Response.Write("<br>Algoritmo (parametros): " & desc.GetKeyAlgorithmParametersString)

Response.Write("<br>Clave publica: " & desc.GetPublicKeyString)

Saludos

Sergio Vázquez

Publicado por Sergio Vazquez | 4 comment(s)
Archivado en:

Viernes 23 de febrero: “dotNet day”

- 16:00 / 16:30: Bienvenida y registro
- 16:30 / 17:30: La platorma .Net, overview y evolución hasta 3.0. Sergio Vázquez
- 17:30 / 18:15: Descanso
- 18:15 / 19:00: Windows Presentation Fundation (WPF): Diseñas o Desarrollas ? Óscar Montesinos
- 19:00 / 19:30: Organización de LABs en próximos eventos, ofertas de empleo, y otros

Lugar:   Universidad de Murcia

            Campus de Espinardo

Aula A.04 bis

            Aulario Norte

Plano del lugar: (es en el edificio nº 6 del plano)

http://www.um.es/universidad/planos/plano-espinardo/espinardo.php

 Saludos

Publicado por Sergio Vazquez | con no comments
Archivado en: ,