en

MSGuayaquil

Recursos esenciales para el desarrollador .NET

Blog Comunitario

January 2007 - Posts

  • Criptografia (Conocimiento Encriptado)

    Desde los orígenes de la humanidad el Hombre ha tratado de codificar u ocultar la información que trata de transmitir a segundas personas sin que un tercero lo entienda; hoy en día con el uso constante de las Telecomunicaciones y el creciente uso del Internet y nuevas Tecnologías se hace indispensable manejar la información que transmitimos bajo esquemas de Encriptación.

  • .Net Remoting

    .Net Remoting

    ¿Qué es?
    .Net Remoting es parte del .Net Framework y nos permite construir aplicaciones distribuidas fácilmente, ya sea que los componentes estén en el mismo equipo o repartidos alrededor del mundo. También nos permite comunicarnos con otros dominios de aplicaciones incluso dentro del mismo proceso.


    ¿Sus características?
    .Net Remoting es una plataforma construida dentro del CLR que ofrece un conjunto único de características que no están disponibles en ningún otro lugar:

    Canales
    Son los que permiten el transporte de datos desde y hacia los objetos remotos, toda invocación y su correspondiente respuesta viaja por esta vía.

    Se pueden utilizar 2 tipos de canales: HTTP ó TCP (mi preferido). El canal TCP tiene mucho mayor rendimiento ya que se conecta directamente a un socket indicado. El canal HTTP es mayormente utilizado por las comunicaciones por Internet.

    Serialización
    Para poder realizar la transferencia de los objetos por los canales estos primero deben ser transformados en un formato que pueda ser transportado e identificado desde el otro sitio, es allí donde entra la serialización.
    Existen 2 formateadores predefinidos que pueden ser utilizados con el fin de serializar: SOAP ó Binario (aunque cada desarrollador puede también crear su propio formateador para utilizarlo con cualquier canal).
    El canal HTTP utiliza de manera predeterminada el formateador SOAP y el canal TCP utiliza serialización binaria.

    Objetos Proxy
    Cuando un cliente crea una instancia de un objeto remoto recibe un proxy de la clase instanciada en el servidor. Desde la perspectiva del cliente esto no es tan diferente a realizar una llamada local.

    Paso de Objetos
    Para el paso de objetos es importante saber que todos los objetos creados remotamente deben heredar de MarshalByRefObject. Los objetos pasados como parámetros pueden ser pasados por valor o por referencia.

    Tiempo de Vida
    El tiempo de vida de un objeto es controlado por un mecanismo de leasing. Esta “licencia” tiene un tiempo permitido de uso, cuando el tiempo de la licencia llega a cero el objeto es desconectado y en la próxima pasada del Garbage Collector el objeto será destruido.

    Hospedaje de Objetos en IIS
    Los objetos remotos pueden ser hospedados en el IIS, lo que permite que cualquier cliente que utilice HTTP con el puerto correspondiente conectarse al objeto.

    Modelos de Activación
    SingleCall
    - Es una tipo de activación de objetos que crea al objeto y lo destruye en cada llamada.
    Singleton
    - Los objetos Singleton dan servicio a múltiples clientes y comparten información entre las distintas invocaciones.
    Client-Activated Objects
    - Esta modalidad permite a la aplicación instanciar el objeto para su uso exclusivo. Cuando el cliente crea una instancia utilizando el operador "new" un pedido de activación es enviado al servidor. Luego el servidor crea el objeto y devuelve una referencia al mismo. Entonces en la aplicación cliente se crea un objeto proxy y todas las invocaciones de los métodos serán ejecutadas en el proxy.


    ¿Cómo trabaja?
    Primero necesitamos saber que existen ciertas reglas que se deben aplicar:
    1. Todos los objetos remotos deben heredar de MarshalByRefObject
    2. Toda interacción con el objeto remoto ocurre por referencia a través de un Proxy. Los clientes deben obtener dicho Proxy activando un objeto remoto por medio de los modelos de activación antes descritos.
    3. Objetos locales pueden ser pasados por valor como parámetro cuando se realiza una llamada remota.
    4. Todos los objetos pasados por valor deben ser serializables, puede ser implementando la interfaz ISerializable ó marcando la clase con el atributo [serializable]


    Ahora, existen 2 participantes en el concepto de .Net Remoting, Servidor y Cliente. El Servidor es quien va a escuchar los requerimientos de objetos del cliente.

    Para desarrollar un servidor:
    • Es necesario registrar todos los canales que los clientes utilizarán para comunicarse con el objeto, cada canal utiliza un protocolo específico.
    • Se debe detallar cuales son las clases que se desean exponer en el servidor e indicar el tiempo de vida de los objetos.
    • Listo, ahora el servidor puede empezar a escuchar las conexiones de los clientes.

    Una vez que tenemos el servidor que expone los objetos los clientes pueden conectar e invocar métodos en el objeto servidor:
    • El cliente registra un canal que será utilizado para la comunicación con el objeto remoto. (El servidor debe estar escuchando en el mismo canal)
    • El cliente activa el objeto.
    • Se provee información suficiente sobre el tipo y la localización del objeto remoto con el requerimiento de activación para que el .Net Framework cree el objeto Proxy que representa el objeto remoto. Es importante agregar que todo este proceso es local y que no se han realizado llamadas al objeto remoto. El objeto Proxy es almacenado en una tabla cualquier activación adicional hecha por el cliente recibe el mismo Proxy.
    • En el caso de objetos activados por el servidor el cliente llama un método en el objeto remoto usando el Proxy que recibe en la activación. El canal cliente entonces intenta establecer una conexión con el canal remoto si no está conectado.
    • Detalles del método llamado son cargados en un objeto Message que es serializado y transportado al servidor el tipo de serialización depende del canal.
    • Una vez que el mensaje llega al servidor el .Net Framework rearma la llamada original activa el objeto destino si no está actualmente activado y reenvía la llamada al objeto. Un resultado regresa al cliente de manera opuesta a la llamada (el resultado es empaquetado en un Message que es enviado al cliente). Si el objeto destino es de tipo SingleCall será inmediatamente enviado al Garbage para que lo destruya.

  • Exploración de un sitio sin código y sin enlaces de datos explícitos

    SiteMapPath 

    El control SiteMapPath muestra una ruta de desplazamiento que indica al usuario la ubicación de la página actual y muestra los vínculos como una ruta de retorno a la página principal. El control proporciona muchas opciones para personalizar el aspecto de los vínculos. 

    El control SiteMapPath obtiene los datos de desplazamiento de un mapa del sitio. Este datos incluyen información sobre las páginas del sitio Web, como la dirección URL, el título, la descripción y la ubicación en la jerarquía de exploración. Si los datos de desplazamiento se almacenan en un solo lugar, será más fácil agregar y quitar elementos en los menús de desplazamiento del sitio Web.

    En versiones anteriores de ASP y ASP.NET, cuando se agregaba una página al sitio Web y, a continuación, se agregaba un vínculo a esa nueva página desde cada una de las otras páginas del sitio Web, tenía que agregar los vínculos manualmente, incluir un archivo común o desarrollar una funcionalidad de desplazamiento personalizada. La versión 2.0 de ASP.NET incluye controles de exploración que facilitan la creación, personalización y mantenimiento de los menús de desplazamiento.

Más envíos
© 2007 MSGuayaquil. Todos los derechos reservados.
Powered By IIS 6 Powered By ASP.NET 2.0 Ofrecido por Community Server (Commercial Edition) Powered By SQL Server 2005
Creado y Administrado por Julio Casal