Blog de Jorge Pedraza

diciembre 31, 2009

Controladores y Modulos HTTP

Filed under: Aplicaciones Web — JorgePedraza @ 12:55 pm
Tags:

Modulo HTTP

Un Modulo HTTP es la llamada de un ensamblado  en toda y cada solicitud hecha por un aplicación. Esta Llamada es parte de la solicitud de ASP.NET pipeline. Puede tener acceso a eventos en el ciclo de vida de toda la solicitud. Un Modulo HTTP permite a usuarios inspeccionar las solicitudes entrantes y salientes y realizar la apropiada acción basada en la solicitud.  ASP.NET  usa este modulo para implementar varias característica de la aplicación Web como Autenticación formularios, Cache, Estado de Sesión  y servicios de script clientes.
Cuáles son los usos de un Modulo HTTP: Los usos de Modulo HTTP son los siguientes

  1. Seguridad: Como un usuarios puede inspeccionar la solicitudes entrantes;  un modulo HTTP puede cumplir con la autenticación personalizada u otro mecanismo de seguridad después que un Servicio Web XML, paginas solicitadas, o controlador es llamado. Sí está ejecutando modo integrado de IIS 7, los usuarios puede extender la autenticación de formulario para todos los tipos de contenido en cualquier aplicación.
  2. Estadística y Registro: Como un modulo HTTP es llamado en toda y cada solicitud; los usuarios puede reunir información de registro y estadísticas en un modulo centralizado, en vez de hacerlo por paginas separadas.
  3. Encabezado y pies de pagina personalizado: Los usuarios puede modificar la respuesta saliente; puede también inserta contenido como información de encabezado personalizado en todo y cada página o respuesta de un Servicio Web XML

Como crear un Modulo HTTP personalizado: Realiza los siguientes pasos para crear un Modulo HTTP.

  1. Crear un clase y implementa la interfaz IHttpModule.
  2. Escribe un controlador para el método Init. El método Init debe inicializa un modulo y suscribe a cualquier evento de la aplicación que esta requerida.
  3. Escribe código para eventos que necesita para ser suscripto.
  4. Opcionalmente ejecuta el método Dispose sí el modulo quiere hacer limpieza.
  5. Registra el modulo en el Web Config.

Para mayor detalles Aquí está un código de Ejemplo ModuloHTTP (ASP.NET 3.5 – Visual Basic 2008)

Controlador HTTP

Es un código que se ejecuta  cuando se realiza una solicitud HTTP para un recurso determinado en el servidor. Por ejemplo, cuando usuarios solicitad pagina .ASPX del IIS, el controlador de página ASP.NET es ejecutado. Cuando un Archivo .asmx es accedido, el controlador de servicio de ASP.NET es llamado. Tú puede crear tu propio controlador personalizado, registrar este con IIS y recibir notificaciones cuando una solicitud especifica se esté realizando. Esto permite interactuar con la solicitud y escribir tú propia salida personal en el navegador.
Cuáles son los Controladores HTTP incorporado en ASP.NET: Los controladores HTTP incorporado en ASP.NET son

  1. Controlador de página ASP.NET (*.aspx):  es el controlador HTTP por defecto para todas las paginas ASP.NET.
  2. Controlador de servicio Web (*.asmx):   es el controlador HTTP por defecto para paginas de servicio web creadas como archivos .asmx en ASP.NET.
  3. Controlador  de Web Genérico (*.ashx): es el controlador HTTP por defecto para todo los controladores web que ni tiene Interfaz de Usuarios ni la directiva @WebHandler.
  4. Controlador Trace (trace.axd) es usado para mostrar página actual de información traza.

Como crear un controlador HTTP Personalizado: Realiza los siguientes pasos para crear un Controlador HTTP personalizado

  1. Crear un clase y implementa la interfaz IHttpHandler.
  2. En la clase creada se escribe código personalizado en el procedimiento del evento ProcessRequest, cuyo método es invocado  en todas las peticiones relacionadas con determinado recurso. Adicionalmente se puede usar la propiedad IsReusable para consultar estado de reutilización del controlador.
  3. Se configura el Sitio Web o directorio virtual en el IIS con el registro del controlador HTTP personalizado, estableciendo la extensión y tipo para determinado recurso.
  4. Se configurar el controlador dentro del Web.Config para determinada aplicación Web o  Machine.Config  para todas las aplicaciones Web que alberga dentro de IIS.

Para mayor detalles, Aquí está un código de Ejemplo ControladorHTTP (ASP.NET 3.5 – Visual Basic 2008). Nota Importante: Esta fuente puede ser probada desde el Servidor Web de ASP.NET que incorpora Visual Studio, sin necesidad de desplegar directamente en IIS.

Anuncios

diciembre 14, 2009

Novedades de Visual Basic 2010

Filed under: Visual Basic — JorgePedraza @ 10:17 pm
Tags: , ,

Lenguaje y Compilador Visual Basic 2010:

  1. Propiedades Auto Implementadas:
    • Public Property Nombre As String = “Jorge Pedraza
  2. Inicializadores de Colección:
    • Dim Nombres As New List(Of String) From {“Jorge“,”Mario“,”Pedro“}
  3. Continuación de Linea Implícita:
    • En la actualidad con Visual Basic 2008 o inferior permite la continuación de una sentencia en varias líneas usando el caracter underscore_“.
      Dim NombreVar As String
      NombreVar = “Jorge
      MsgBox(“Hola ” & NombreVar _
              & “. Como esta tú?“).
    • Ahora en Visual Basic 2010 encontramos “Continuación de Línea Implícita” el cual maneja el mismo principio representado arriba, pero con opción de otros caracteres especificos:
      • Despues de la Coma “,
      • Despues de Abrir un Paréntesis “(” o antes de cerrar un Paréntesis “)”
      • Despues de Abrir una llave “{” o antes de cerrar un llave “}
      • Despues del operador de Concatenación “&
      • Despues de los operadores de asignación “=” , “&=” , “:=” , “+=” , “-=” , “*=” , “/=” , “\=” , “^=” , “<<=” , “>>=
      • Despues de los operadores Binarios “+“, “” , “/” , “*” , “Mod” , “<>” , “<” , “>” , “<=” , “>=” , “^” , “>>” , “<<” , ” And” , “AndAlso” , “Or” , “OrElse” , “Like” , “Xor” dentro de una expresión.
      • Despues del operador Is y IsNot.
      • Dentro de la sentencia With …. End With, cuando inicialice un valor para un tipo; se puede usar despues del “=
      • Despues de un calificador de propiedad eje de  XML “.” 0 “.@” o “” sin embargo debe incluir el caracter “_” cuando especifique un miembro calificador, cuando use la palabra With.
      • Despues del Caracter menor “<” o antes del mayor “>” cuando especifique un atributo, sin embargo debe incluir en la línea de continuación el caracter “_”  cuando especifique el nivel del ensamblado o nivel del modulo de un atributo.
      • Antes y Despues del operador de consulta Aggregate, Distinct, From, Group By, Group Join, Join, Let, Order By, Select, Skip, Skip While, Take, Take While,  Where, In, Into, On, Ascending, y Descending.  No puede Interrupir una línea en medio de palabras de operador de consulta que este compuesta por varias palabras Order By, Group Join, Take While y Skip While.
      • Despues de la palabra In en un sentencia For Each
      • Despues de la palabra From en la inicialización de una colección
  4. Expresiones Lambda de Varias Líneas y Subrutinas
  5. Función:

    Dim incremento1 = Function(x) x + 1

    Dim incremento2 = Function(x)   ‘Aquí se observa la novedad
                              Return x + 2
                              End Function

    Console.WriteLine(incremento1(1)) ‘Escribe el Valor 2
    Console.WriteLine(incremento2(2)) ‘Escribe el valor 4
    Subrutina:
    Dim escribirlinea1 = Sub(x) Console.WriteLine(x)

    Dim escribirlinea2 = Sub(x)  ‘Aquí se observa la novedad
                               Console.WriteLine(x)
                               End Sub
    escribirlinea1(“Hola”)       ‘Escribe “Hola”
    escribirliena2(“Mundo”)  ‘Escribe “Mundo”

  6. Nueva Opción de línea de comando para especificar una versión de lenguaje (/Langversion):
    •  Hace que el compilador solo acepte sintaxis de una versión de lenguaje visual basic especificado.
      • vbc /langversion:9.0 Ejemplo.vb 
  7. Soporte de Equivalencia de Tipos:
    • Ahora puede implimentar una aplicación que ha incrustado información de tipo en vez de información de tipo que están importada desde un ensamblado de Interoperabilidad Primaria (PIA). Con información de tipos incrustada, su aplicación puede usar tipos en un tiempo de ejecución sin necesidad de una referencia  a ensamblado en tiempo de ejecución.
  8. Soporte Dinámico:
    • Visual Basic 2010 se une a los objetos de lenguaje dinámico como IronPython y IronRuby (Previamente debe tener referenciadas las librerias).
      Dim py = Python.CreateRuntime()
      Dim matlib As Object = py.UseFile(“math.py“)
      Dim M1 = 2
      Dim M2 = 3
      matlib.PowerOf(M1,M2)
  9. Covarianza y contra varianza:
    • Covarianza (Covariance) : Permite utilizar un tipo más derivado de lo especificado por el parámetro genérico. Un ejemplo de esto, son las Interfaz Genericas como : IEnumerable (Of (T)), IEnumerator (Of (T)), IQueryable (Of (T)), IGrouping (Of (TKey, TElement)) Donde T, Tkey, TElement son Convariante.
      Dim Cadenas As IEnumerable(Of String) = New List(Of String)
      Dim Objetos As IEnumerable(Of Object) = strings
      En versiones anteriores de .NET framework, este codigo causa error de compilación con Option Strict On. pero ahora puede usar strings en vez de Objects, como se muestra en el ejemplo previo, porque la interfaz IEnumerable (Of (T)) es covariante.  La varianción en tipo generico es soportado por solo tipo por referencia; o sea que los tipos de valor no soportar la varianción.
    • Contra Varianza (Contravariance) : Permite usar un tipo menos derivado. Un ejemplo de esto son las interfaz genericas como: IComparer (Of (T)), IEqualityComparer (Of (T)), IComparable (Of (T)). Para Mostrar la Contra varianza, asume que tiene creada una clase BaseComparer para comparar instancias de la clase BaseClass. La Clase BaseComparer implementa interfaz IEqualityComparer. Porque esta Interfaz es ahora contravariante:
  10. ‘ Simple Herencia de Clases.
    Class BaseClass
    End Class

    Class DerivedClass
        Inherits BaseClass
    End Class

    Class BaseComparer ‘ Clase Comparar.
        Implements IEqualityComparer(Of BaseClass)

        Public Function Equals1(ByVal x As BaseClass,
                                ByVal y As BaseClass) As Boolean _
                                Implements IEqualityComparer(Of BaseClass).Equals
            Return (x.Equals(y))
        End Function

        Public Function GetHashCode1(ByVal obj As BaseClass) As Integer _
            Implements IEqualityComparer(Of BaseClass).GetHashCode
            Return obj.GetHashCode
        End Function
    End Class
    Sub Prueba()
        Dim baseComparer As IEqualityComparer(Of BaseClass) = New BaseComparer
        ‘ Conversion Implicita de IEqualityComparer(Of BaseClass) a 
        ‘ IEqualityComparer(Of DerivedClass).
        Dim childComparer As IEqualityComparer(Of DerivedClass) = baseComparer
    End Sub

Entorno de Desarrollo Integrado:

  1. Modo de Sugerencia de IntelliSense: IntelliSense ahora suministra dos alternativas para completación de sentencia intelliSense: Modo completación y Modo sugerencia.
    • Modo Completación:.  Modo Sugerencia:
  2. Generar desde Uso: La característica generar desde uso, permite usar miembros y clases, antes de definirlas. Puede generar codigo auxiliar de una clase, constructor, metodo, propiedad, campo, o enumerado que desea utilizar, pero que no está definido previamente. Puede generar miembros y tipos sin dejar la ubicación actual en codigo.
    •  
  3. Resaltador de Referencia: Esta mejora permite resaltar todas las instancias de un simbolo especifico en un documento haciendo click en este simbolo. Para navegar las referencias, puede usar CRTL+SHIFT+FLECHA ABAJO o CRTL+SHIFT+ FLECHA ARRIBA.
  4. (Desplácese a) Navegate To: Puede usar la caracteristica Navegate To para buscar un simbolo o archivo de codigo fuente.

diciembre 11, 2009

Novedades en ASP.NET 4 Beta 2 y Visual Web Developer

Filed under: Aplicaciones Web — JorgePedraza @ 4:31 pm
Tags:

Este artículo tiene como finalidad ofrecer una visión general de las nuevas características que están incluidas en ASP.NET 4.0 y la herramienta de desarrollo Visual Web Developer, próxima a lanzamiento.

Novedades en ASP.NET 4 Beta 2 y Visual Web Developer:

  1.  Servicios principales de ASP.NET:
    • Cache de salida extensible. 
    • Auto Inicio de Aplicaciones Web. 
    • Re direccionamiento Permanente a páginas.
    • La Reducción increíble de estado de sesión.
  2. Formularios Web de ASP.NET:
    • La habilidad para establecer Meta Etiquetas.
    • Más control sobre View State.
    • Soporte para dispositivos y navegadores introducido recientemente.
    • La forma más fácil de trabajar con capacidades de Navegadores. 
    • Compatibilidad con el uso de Enrutamiento ASP.NET con Formularios Web.
    • Más control sobre IDs de controles Generado.
    • La habilidad de persistir filas seleccionada en un control de datos.
    • Más control sobre el HTML representado en los controles  FormView y ListView.
    • Soporte de filtrado para controles de Origines de datos.
    • Mejorado soporte para accesibilidad y estándares Web. 
  3. Datos Dinámicos:
    • Nuevas plantillas de campos para URL y Direcciones de email.
    • Creación de enlaces con el control DynamicHyperLink.
    • Soporte para herencia en modelos de datos.
    • Soporte para relaciones muchos a muchos (Solo Entity Framework)
    • Nuevos atributos de control de pantalla  y soporte de enumeraciones.
    • Soporte mejorado para filtros.
  4. Control de Grafica de ASP.NET:
    • Series de datos, Áreas de Grafico, Ejes, Leyendas, Etiqueta, títulos y más.
    • Enlace a datos.
    • Manipulación de datos, como Copiar, Dividir, Fusionar, Alinear, Agrupaciones, ordenación, búsqueda, y Filtrado.
    • Formulas Estáticas y Formulas Financieras.
    • Apariencia Graficas Avanzada como: 3-D, Iluminación, anti-aliasing y perspectivas.
    • Eventos y Personalizaciones.
    • Interactividad y Microsoft Ajax.
  5. Funcionalidades de Microsoft Ajax:
    • La habilidad de representar datos JSON desde el servidor como HTML.
    • Plantilla de lado del cliente que habilita mostrar datos usando solo código basado en el navegador.
    • Instanciación declarativa de controles y comportamiento de lado del cliente.
    • Un Control DataView Cliente que permite crear manejo datos dinámicos UI.
    • Enlace directo entre datos y controles clientes o elementos HTML.
    • Propagación de Comando de lado del Cliente.
    • Integración completa de Servicios de Datos de ADO.NET y WCF con Script Cliente, incluso con rastreo de cambios de lado del cliente.
  6. Mejoras en Visual Web Developer:
    • Mejoras en capacidades CSS.
    • Fragmentos de codigo HTML y JScript.
    • Mejoras de IntelliSense de JScript.
  7. Implementación de Aplicaciones Web con Visual Studio 2010:
    • Empaquetamiento Web.
    • Transformación de Archivos de Configuración Web.
    • Implementación de Base de Datos.
    • Publicaciones One-Click
  8. Soporte de Aplicaciones Web Basada en MVC:
    • ASP.NET MVC ayuda a los desarrolladores Web construir sitios web estándares completo que son fáciles de mantener porque disminuye  la dependencia capa entre capas de la aplicación usando patrón modelo controlador de vista (MVC). MVC entrega completo control sobre el marcado de página.  Mejoras también la capacidades de prueba inherentemente soportado por Test Driven Development (TDD).
  9. Mejoras para Multi-Targeting en ASP.NET:
    • ASP.NET 4 se agrega nuevas características a la especificación Multi-targeting  para hacer más fácil el trabajo con proyecto dirigidos en versiones anteriores del .NET framework.

Próximamente este artículo se estará actualizando con mayor detalle; para establecer una forma directa y segura de aprovechar al máximo cada una de las bondades que incorpora la próxima versión de ASP.NET y Visual Web Developer.

Crea un blog o un sitio web gratuitos con WordPress.com.