Template para las presentaciones del Foro

Document Sample
Template para las presentaciones del Foro Powered By Docstoc
					La plataforma .NET



          <Nombre>
           <e-mail>

          <Empresa>
Agenda
   .NET Framework y Visual Studio .NET
       .NET Framework
       Visual Studio .NET
   Guías para desarrollar mejor: Patterns &
    Practices
   Arquitectura de Referencia en .NET
       Opciones para la capa lógica de Datos
       Opciones para la capa lógica de Negocio
       Opciones para la capa lógica de Presentación
       Despliegue de las capas lógicas en niveles físicos
   Interoperabilidad o Migración
   Recursos
Microsoft .NET
Arquitectura .NET
Retos del desarrollo en Microsoft
   Integración de aplicaciones
   Múltiples lenguajes de programación
   Múltiples modelos de programación
   Complejidad del desarrollo y despliegue
   Seguridad no inherente

   Preservar la inversión del desarrollador
   Elevar la productividad del desarrollador
Arquitectura .NET
.NET Framework y Visual Studio .NET
  VB       C++       C#        J#           …

        Common Language Specification




                                                Visual Studio .NET
        ASP .NET                    Windows
 Web Forms Web Services              Forms

       XML, ADO .NET, Enterprise Services

               Base Class Library

          Common Language Runtime

               Sistema Operativo
.NET Framework
Common Language Runtime
 VB       C++       C#        J#           …

       Common Language Specification




                                               Visual Studio .NET
        ASP .NET                   Windows
 Web Forms Web Services             Forms

      XML, ADO .NET, Enterprise Services

              Base Class Library

         Common Language Runtime

              Sistema Operativo
.NET Framework
Common Language Runtime
   El CLR es el entorno donde se ejecutan
    todas las aplicaciones .NET
   El CLR determina para las aplicaciones
    .NET:
       Un conjunto de tipos de datos: CTS
       Un lenguaje intermedio: CIL (MSIL)
       Un empaquetado de código: Assembly
   El código que ejecuta el CLR se llama
    código gestionado (managed code)
Common Language Runtime
Proceso del código gestionado
                Compilación
  Código         Compilador       Código (IL)
                                  Assembly
  Fuente          lenguaje        Metadatos




    Código           Compilador
    Nativo              JIT           En instalación o la
                                      primera vez que se
             Ejecución                llama a un método
Common Language Runtime
Anatomía de un assembly
                            Código IL    Código IL   Código IL
              Manifesto      Tipo X       Tipo Y      Tipo Z

                              Metadatos para Tipos X, Y y Z
            Módulo 1                                   app1.dll
                               Assembly A

                Código IL    Código IL          Código IL
  Manifesto      Tipo P       Tipo Q             Tipo R           Recurso
               Metadatos Tipos P y Q        Metadatos Tipo R
 Módulo 2                      app2.exe    M. 3 Mod.netmodule     grafico.jpg
                               Assembly B
Common Language Runtime
Beneficios
   Entorno de ejecución robusto
   Seguridad inherente
   Desarrollo simplificado
   Fácil gestión y despliegue de
    aplicaciones
   Preserva inversión de desarrollador
El CLR
.NET Framework
.NET Framework Class Library
 VB       C++       C#        J#           …

       Common Language Specification




                                               Visual Studio .NET
        ASP .NET                   Windows
 Web Forms Web Services             Forms

      XML, ADO .NET, Enterprise Services

              Base Class Library

         Common Language Runtime

              Sistema Operativo
.NET Framework Class
Library
Modelo de programación unificado
    Disponibilidad de API consistente en cualquier lenguaje
                     y modelo de programación

                       .NET Framework

         RAD,            Subclassing,              Sin estado,
     Composición,         Potencia,             Código embebido
      Delegación         Expresividad           en páginas HTML


      VB Forms              MFC/ATL                  ASP




                         Windows API
.NET Framework Class
Library
System namespace
     System.Web                               System.Windows.Forms
Services         UI                       Design         ComponentModel
 Description      HtmlControls
 Discovery        WebControls
 Protocols                                         System.Drawing
Caching          Security                 Drawing2D         Printing
Configuration    SessionState             Imaging           Text

           System.Data                                System.Xml
OleDb            SqlClient                XSLT              Serialization
Common           SQLTypes                 XPath

                                 System
Collections       IO                Security              Runtime
Configuration     Net               ServiceProcess         InteropServices
Diagnostics       Reflection        Text                   Remoting
Globalization     Resources         Threading              Serialization
.NET Framework Class
Library
Beneficios
 Completa, Organizada, Extensible
   Para cualquier Arquitectura de Aplicación
       Acceso a Datos
           ADO.NET
           XML
       Lógica de Negocio
           Enterprise Services (COM+)
           Servicios Web XML
           .NET Remoting
       Presentación
           Windows Forms
           Web Forms y Mobile Web Forms
.NET Framework
Lenguajes .NET
 VB       C++       C#        J#           …

   Common Language Specification (CLS)




                                               Visual Studio .NET
        ASP .NET                   Windows
 Web Forms Web Services             Forms

      XML, ADO .NET, Enterprise Services

              Base Class Library

         Common Language Runtime

              Sistema Operativo
Lenguajes .NET
CLS
                         CLR



Fujitsu
COBOL                           C++
Extensions     COBOL                        Microsoft
                                            Managed
                        CLS                 C++
                                            Extensions




       Los lenguajes no tienen que exponer toda la
        funcionalidad definida por el CLR
Lenguajes .NET
Múltiples lenguajes soportados
   .NET es neutral con respecto al lenguaje
   Microsoft suministra:
       Visual C# .NET, Visual Basic .NET, Visual C++ .NET,
        JScript, Visual J# .NET
   Terceros suministran:
       COBOL, RPG, APL, Perl, Pascal, Smalltalk, Eiffel,
        Fortran, Haskell, Mercury, Oberon, Oz, Python,
        Scheme, Standard ML, … hasta +26 lenguajes
Lenguajes .NET
Soporte multilenguaje
Dim s as String                               VB.NET
s = "authors"
Dim cmd As New SqlCommand("select * from " & s,
                              sqlconn)
cmd.ExecuteReader()

string s = "authors";                               C#
SqlCommand cmd = new SqlCommand("select * from "+s,
                              sqlconn);
cmd.ExecuteReader();

String *s = S"authors";                            C++
SqlCommand cmd = new
SqlCommand(String::Concat(S"select * from ", s),
            sqlconn);
cmd.ExecuteReader();
Lenguajes .NET
Soporte multilenguaje
String s = "authors";                               J#
SqlCommand cmd = new SqlCommand("select * from "+s,
                  sqlconn);
cmd.ExecuteReader();

                                              JScript
var s = "authors"
var cmd = new SqlCommand("select * from " + s, sqlconn)
cmd.ExecuteReader()

                                                 Perl
String *s = S"authors";
SqlCommand cmd = new SqlCommand(String::Concat
                  (S"select * from ", s), sqlconn);
cmd.ExecuteReader();
Lenguajes .NET
Soporte multilenguaje
                                                              Cobol
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
REPOSITORY.
    CLASS SqlCommand AS "System.Data.SqlClient.SqlCommand"
    CLASS SqlConnection AS "System.Data.SqlClient.SqlConnection".
DATA DIVISION.
WORKING-STORAGE SECTION.
01 str PIC X(50).
01 cmd-string PIC X(50).
01 cmd OBJECT REFERENCE SqlCommand.
01 sqlconn OBJECT REFERENCE SqlConnection.
PROCEDURE DIVISION.
 *> Establish the SQL connection here somewhere.
MOVE "authors" TO str.
STRING "select * from " DELIMITED BY SIZE,
   str DELIMITED BY " " INTO cmd-string.
INVOKE SqlCommand "NEW" USING BY VALUE cmd-string sqlconn RETURNING cmd.
INVOKE cmd "ExecuteReader".
Lenguajes .NET
Beneficios
   Independencia de las aplicaciones del
    lenguaje de programación utilizado
   Desarrollo de aplicaciones multi-lenguaje
   Preserva inversión del desarrollador
   Facilita adopción de .NET
Multilenguaje
.NET Framework
Estandarización
   CLI y C#
       Common Language Infrastructure,
        funcionalidad e interfaces del CLR y la Base
        Class Library
       Lenguaje de programación C#


   CLI y C# cedidos a organismos de
    estandarización (ECMA, ISO, IEEE)
.NET Compact Framework
.NET Framework para dispositivos
   Diseñado para dispositivos inteligentes
       Pocket PC y Pocket PC Phone Edition (v1.1)
       Smart Phone
       Windows CE
       Amplia disponibilidad planeada
   Mismo modelo de desarrollo que .NET Fw.
   Mismo modelo de ejecución que .NET
    Fw.
   Misma herramienta de desarrollo VS .NET
Visual Studio .NET
Entorno de Desarrollo Integrado
  VB       C++       C#        J#           …

        Common Language Specification




                                                Visual Studio .NET
         ASP .NET                   Windows
  Web Forms Web Services             Forms

       XML, ADO .NET, Enterprise Services

               Base Class Library

          Common Language Runtime

               Sistema Operativo
Visual Studio .NET
Productividad
   Única herramienta de desarrollo para todo
   Plataforma completa para creación, pruebas e
    integración de Servicios Web
   Plataforma RAD de alta productividad
       Diseñadores visuales de Formularios
       Diseñadores visuales de Componentes
       Depuración extremo a extremo, a través de lenguajes
       Tecnología IntelliSense y Ayuda Dinámica
   Extensible y Abierto
Visual Studio .NET
Para todo el ciclo de vida
    Modelado de Sistemas y Bases de
     Datos
        Visio for Enterprise Architects
    Patrones de Arquitectura
        Enterprise Templates, Application
         Building Blocks
    Gestión de Versiones del código
        Visual SourceSafe
    Diseño, Codificación y Depuración
        Visual Studio: Designers, Editors,
         Debugger
    Monitorización y Optimización
Arquitectura .NET
Retos del desarrollo
    Integración de aplicaciones      Servicios Web
    Múltiples lenguajes de           .NET Framework
     programación                         Common Language Runtime
    Múltiples modelos de                 .NET Framework Class Library
     programación                         Lenguajes .NET
    Complejidad del desarrollo       .NET Framework
     y despliegue                         CLR: Assembly (componentes
                                           .NET)
    Seguridad no inherente           .NET Framework
                                          CLR: Seguridad Acceso
                                           Código (CAS)
    Preservar la inversión del       .NET Framework
     desarrollador                        Lenguajes .NET
                                          CLR: COM-Interop y P/Invoke
    Elevar la productividad del      Visual Studio .NET
     desarrollador
Patterns & Practices
 Proven
 Based on field experience
 Authoritative
 Best advice available
 Accurate
 Technically validated and tested
 Actionable
 Provide the steps to success
 Relevant
 Address real world scenarios



     “Proven practices for predictable results”
Patterns & Practices
Guías publicadas
Arquitecturas de Referencia             Componentes de Aplicación                 Prácticas de Ciclo de Vida
Reference Architectures)                (Application Blocks)                      (Lifecycle Practices)
Application Architecture for .NET       Exception Management App Block            Team Development with Visual
                                                                                    Studio.NET & Visual SourceSafe
Microsoft Systems Architecture          Logging App Block
      Enterprise Data Center
                                                                                  Debugging Microsoft .NET
                                        Configuration App Block                     Applications
      Internet Data Center
                                        Data Access App Block                     Deploying .NET Applications
.NET and J2EE Interoperability
                                        Updater App Block                         Operating .NET-Based Applications
WSI Base Profile and Security
.NET Line of Business Application                                                 Operations Guides (…)
                                        User Process Interface App Block
UNIX Migration                                                                    Security Operations Guides (…)
                                        Designing Data Tier Components and
…                                         Passing Data Through Tiers              Backup and Restore for MSA
                                                                                    Operations
                                        Building Secure ASP.NET Applications
                                                                                  …
                                        Authoring ASP.NET Applications …
                                                 Patrones (Patterns)
                                    Enterprise Solution Patterns using Microsoft .NET
                                                     Data Patterns
                                                 Integration Patterns …
Patterns & Practices
Cobertura de las guías de desarrollo
  Arquitectura de Referencia en .NET
   Diseño de aplicaciones y servicios
 Comunicaciones




                                                                                    Cliente Windows
                                                  Seguridad
                       Administración Operativa




             Interop. DNA                                       Cliente Web
                                                                  Componentes         Interfaz de
                                                                                   deSmart Client Usuario
                  Excepciones                                        Componentes de Proceso            de IU              Agentes Servicios
                                                                Proceso de Interfaz de Usuario (UIP)

             Trazas (logs)
                                                                                                                                       Fachadas de
                                                                Agregación y
                                                                Procesos                             Entidades           Interfaces Servicios
                                                                                                                         Invocación      Servicios
                                                                                 Componentes              Caché
           Configuración                                      Formato de Datos                                          Asincrónica        para
                                                               de Negocio         de Negocio              Datos
                                                                                                     de Negocio                        aplicaciones
                                                                                                                        de Servicios Servicios
                                                                                                                          Agentes
                                                                                                                                        heredadas
            Autenticación                                                          Paso de Datos
                                                                                   entre Capas

                  Autorización                                               Componentes de                              Interfaces Servicios
                                                               Acceso a Datos
                                                                            Acceso a Recursos                             Agentes Servicios
         Monitorización


          Com. Seguras
                                                              Recursos
Auto-actualización                                                                                                                                    Servicios

    Desarrollo                                                                        Depuración
                       Despliegue
Ciclo de Vida del software                                                                                     Optimización          Operaciones
    en equipo                                                                        en producción
Patterns & Practices
Disponibilidad
 Online en MSDN y TechNet:
 http://www.microsoft.com/resources/practices




 Guías escritas disponibles en:
 http://shop.microsoft.com/practices
Arquitectura de Referencia
.NET
Arquitectura de Aplicación en capas lógicas
                                                                                                        Arquitectura Orientada
                                                                                                        Arquitectura Tradicional
                                                                                                              A Servicios
                                                                                                           3 capas lógicas
 Comunicaciones




                                             Seguridad
                  Administración Operativa




                                                           Componentes de Interfaz de Usuario
                                                                                                     CAPA DE PRESENTACIÓN
                                                             Componentes de Proceso de IU           Agentes Servicios


                                                                                                    Interfaces Servicios
                                                         Procesos      Componentes     Entidades          CAPA DE NEGOCIO
                                                         de Negocio     de Negocio     de Negocio   Agentes Servicios


                                                                                                    Interfaces Servicios
                                                                      Componentes de                        CAPA DE DATOS
                                                                      Acceso a Datos                Agentes Servicios



                                                            Datos
                                                                                                                           Servicios


Ciclo de Vida del software
Arquitectura de Aplicación
.NET
Capas en aplicaciones y servicios
            2
                      1                                 4

                                           Transporte


                                          3
        Pedidos




                               Autorización Crédito

  1.   Cada servicio gestiona sus propios datos
  2.   Comunicación débilmente acoplada
  3.   Cada servicio tiene su arquitectura en capas
  4.   Las aplicaciones son servicios con IU
Arquitectura de Referencia
.NET
Capa de Datos
                                                                             Usuarios
 Comunicaciones




                                             Seguridad
                  Administración Operativa




                                                                               Capa de Presentación


                                                                                 Capa de Negocio


                                                                                  Capa de Datos

                                                                   Componentes de Acceso a Datos (Recursos)



                                                         Fuentes de Datos (Recursos)
                                                                                                              Servicios

Ciclo de Vida del software
Capa de Datos
XML
   Funcionalidad tradicional
       Acceso en memoria: DOM niveles 1 y 2
       Acceso secuencial: XmlReader
       Búsquedas: XPath, con posibilidad de
        compilación
       Definición y validación de esquemas XSD
       Transformaciones XSLT
   Funcionalidad en .NET: Serialización XML
       Controlable con atributos
       XmlSerializer: Instancias de objetos  XML
       XSD.EXE: Clases  XSD
XML
Serialización XML


                      C#, VB, JS


      XmlSerializer                XSD.EXE


                      XSD.EXE

               XML                 XSD



                      Validator
Serialización XML
Capa de Datos
ADO.NET (I)
   Soporte de cualquier fuente de datos a través de
    diferentes proveedores de acceso a datos:
     Generales: .NET OLE DB y .NET ODBC
     Específicos: .NET SQL Client, .NET Oracle Client
   Modelo conectado de acceso a datos
     IDbConnection
     IDbCommand: sentencias SQL (parametrizables
       con IDbParameter), procedimientos
       almacenados
     IDataReader: para recuperar resultados
Acceso conectado con
ADO.NET
Capa de Datos
ADO.NET (II)
   Modelo Desconectado de acceso a datos
       DataSet
           Modelo de datos en memoria
           Desconectado de la base de datos
           Mantiene memoria de los cambios
           Es serializable en XML
       IDataAdapter
           Rellenan un Dataset desde la fuente de datos
           Concilian los cambios de un Dataset hacia la
            fuente de datos
Capa de Datos
ADO.NET: Modelo desconectado
 Capa Presentación
    Windows forms
  Aplicación.Exe

                   DataSet


                              Internet   Capa Negocio
       Web forms              Intranet
  IE                                     DataSet        DataAdapter
                   DataSet   Xml
                                                        DataAdapter   Capa
                                                                      Datos

 Negocio a Negocio
Acceso desconectado con
ADO.NET
Arquitectura de Referencia
.NET
Capa de Negocio
                                                                           Usuarios
 Comunicaciones




                                             Seguridad
                  Administración Operativa




                                                                             Capa de Presentación   Agentes Servicios

                                                                               Capa de Negocio

                                                          Procesos                    Entidades     Interfaces Servicios
                                                                       Componentes
                                                          de Negocio    de Negocio    de Negocio    Agentes Servicios


                                                                                                    Interfaces Servicios
                                                                                Capa de Datos
                                                                                                    Agentes Servicios



                                                         Recursos
                                                                                                                           Servicios

Ciclo de Vida del software
Capa de Negocio
Consumidores de componentes de Negocio
                                          Llamadas desde otros
          Capa de Presentación             Agentes de Servicios


                                 Interfaz de Servicios



                     Componente             Proceso
                     de Negocio            de Negocio


                                                           Llamadas a otros Servicios
            Componente              Agentes de Servicios
            de Negocio



                                                           Llamadas a otros Servicios
  Datos           Componentes de
                   Acceso a Datos
Capa de Negocio
Integrando servicios en un flujo de proceso
                        Capa de Presentación
                                                                Servicios


                         Proceso         Interfaz de Servicio
                        de Negocio


                                          Agente de Servicio


     Componentes                         Interfaz de Servicio
      de Negocio


                                          Agente de Servicio


                                         Interfaz de Servicio




            Componentes de
             Acceso a Datos
Capa de Negocio
Servicios Web: reduciendo dependencias
           Arquitectura Orientada a Servicio acoplada
        Ejemplo de una solucion fuertemente (SOA)

 Aplicación A                                Aplicación B

                    Lenguaje de                  Lenguaje de
                   programacion                 programacion


       Base de                    Acuerdos      Base de
        datos                                    datos

                  Modelo de                        Modelo de
                   objetos                           objetos
      Sistema                     Esquemas      Sistema
      operativo                                 operativo

                   Servidor de                  Servidor de
                   aplicaciones                 aplicaciones
Capa de Negocio
ASP.NET Web Services (I)
                                      Servicio
      Protocolos                       Web
       Internet
         Abiertos        Componente de aplicación programable,
                         accesible a través de protocolos estándar de
                         Internet
    Suministra un Directorio de Servicios en             UDDI
     La Red                                       Universal Description,
                                                 Discovery, and Integration

    Los Servicios Web se definen en términos            WSDL
                                                      Web Services
     de formatos y ordenación de mensajes          Description Language

    Los consumidores de Servicios Web                   SOAP
     pueden enviar y recibir mensajes XML
    Construido empleando protocolos
     abiertos de Internet
                                                    XML & HTTP
Capa de Negocio
ASP.NET Web Services (II)

                                          Servicios publicados


                                             Servicio 1              Publicación
                Descubrimiento                 Servicio 1             mediante
                   mediante                        tModel
                                                                       UDDI
                    UDDI

                                          Registro UDDI



   Aplicación                       Descripción mediante WSDL                      Servicio Web
    Cliente                                                              XML
                                                                        Schema
                                                                        WSDL



                                 Invocación / Acceso mediante SOAP
                                                                        Mensaje
                             Transporte mediante HTTP / SMTP / …        SOAP
Capa de Negocio
ASP.NET Web Services (III)
                  .NET Framework facilita
                  Un mapeo bi-direccional
Conceptos de
 Aplicación     Web              Framework

   Datos         XML                 Objetos

 Esquemas        XSD                 Clases

  Servicios     WSDL                Métodos

Invocaciones    SOAP                Llamadas
Capa de Negocio
ASP.NET Web Services (IV)
   Sencillo modelo de programación
       Aplicación Web especial (.asmx), sin interfaz de
        usuario
   En el servidor: ASP.NET permite exponer clases
    .NET como servicios web
       Atributos [WebService], [WebMethod]
       Traduce peticiones SOAP
       Genera automáticamente WSDL y páginas de prueba
   En el cliente: .NET genera un proxy para
    comunicar con el servidor
       Integrado con Visual Studio
   La serialización XML hace el resto
Servicio Web con
ASP.NET Web Services
Capa de Negocio
ASP.NET Web Services

   ASP.NET Web Services de .NET Fx 1.0/1.1
       Servicios Web Básicos
           basado en estándares abiertos
           Mensajería SOAP
           Transporte HTTP
       Hospedados en ASP.NET / IIS
       Soporte de servicios Web “interoperables”
           WS-I Basic Profile 1.0
Capa de Negocio
.NET Remoting
   Acceso remoto a objetos
   3 modelos de acceso remoto:
       Objetos activados por el cliente (similar a DCOM)
       Objetos activados por el servidor
           Single-Call
           Singleton
   Hospedaje de objetos de acceso remoto:
       ASP.NET
       Aplicación dedicada .EXE
Capa de Negocio
Enterprise Services y System.Messaging
   Enterprise Services
       Modelo de programación simplificado para el uso de
        servicios COM+
       Transacciones heterogéneas
       Otros servicios empresariales:
           Interoperabilidad XA
           Seguridad basada en roles
           Pooling de objetos
           Componentes encolados
           …
   System.Messaging
       Modelo de programación para el uso de colas MSMQ
       Mensajería fiable
Capa de Negocio
Tecnologías distribuidas en .NET
   ASP.NET Web Services (ASMX)
       Orientación a mensajes, SOA,
        interoperabilidad
   .NET Remoting
       Orientado a objetos, amplia visión, extensible
   Enterprise Services
       Orientado a objetos, componentes,
        transacciones
   System.Messaging               ¿Cual usar?
       Orientación a mensajes, fiable, colas
Capa de Negocio
Arquitectura de Servicios Web y Microsoft
                                        Aplicaciones

    WS-Discovery             WS-Federation
   WS-MetadataExchange                                                       WS-BusinessActivity
                                                                            WS-AtomicTransaction
          Metadatos




       WS-Policy            Seguridad
                               WS-Trust
                         WS-SecureConversation
                                                    Fiabilidad
                                                 WS-ReliableMessaging       Transaccional
                                                                             WS-Coordination
                                                                               WS-Transaction
    WS-Inspection             WS-Security



         UDDI                SOAP
                                            “Indigo”
                                       WS-Routing
                                                   WS-Addressing                 MTOM
         WSDL                XSD
                                       WS-Referral  Mensajería
                                       (con “Longhorn”)
                                                   WS-Attachments              WS-Eventing
                                         DIME


   ASP.NET Web Services
     .NET FX 1.0 / 1.1
                                       WSE 1.0   XML     WSE 2.0



                                                                  TCP
                              HTTP      Transportes            in-process
Capa de Negocio
“Indigo” y la unificación
  ASMX + WSE        .NET Remoting     Enterprise Services   System.Messaging



 Simple Config       Broad Vision        Attributes            Queuing
 Interoperable       Extensibility      Transactions         Reliable Msg
Service-Oriented    Object-Oriented     Components           Durable Msg




                                 Indigo

            Indigo será el superconjunto de las capacidades de
                las tecnologías de comunicaciones actuales
Capa de Negocio
Tecnologías distribuidas en .NET ¿Cuál
usar?
 Guía Prescriptiva (1)
     Construir servicios con ASMX
         WSE si es necesario (ej. seguridad)
     Usar objetos remotos dentro de servicios
         Enterprise Services si es necesario (ej.
          transacciones)
         .NET Remoting si no es necesario servicios
          empresariales
     Usar System.Messaging si es necesaria
      fiabilidad
Capa de Negocio
Tecnologías distribuidas en .NET ¿Cómo
usar?
 Guía Prescriptiva (2) – Migración a Indigo
      El código existente funcionará sin cambios, por
       interoperabilidad con tecnologías anteriores
      Si se quiere migrar el código:
        Evitar o abstraer el uso de la extensibilidad de
          bajo nivel de ASMX (ej. HTTP Context)
        Evitar o abstraer el uso de la extensibilidad de
          bajo nivel de .NET Remoting (ej. Sinks y
          Channels)
        Evitar el paso de referencias de objetos dentro
          Enterprise Services
        No usar APIs de COM+ – usar Enterprise Services
        No usar APIs de MSMQ – usar System.Messaging
Arquitectura de Referencia
.NET
Capa de Presentación
                                                                          Usuarios
 Comunicaciones




                                             Seguridad
                  Administración Operativa




                                                                             Capa de Presentación
                                                                     Componentes de Interfaz de Usuario

                                                                Componentes de Proceso de Interfaz de Usuario


                                                                                Capa de Negocio


                                                                                 Capa de Datos



                                                         Recursos
                                                                                                                Servicios

Ciclo de Vida del software
Capa de Presentación
ASP.NET Web Forms: modelo de desarrollo
   Modelo de programación similar a WinForms
     RAD Visual: Formularios, Controles servidor,
      Eventos
     El código “está detrás”
   Separación entre lógica y presentación
          ASP                   ASP .NET

         código

         <tags>             <tags>         código


       Form1.asp         Form1.aspx   Form1.aspx.vb
Capa de Presentación
ASP.NET: modelo de ejecución

                                                        Clase
                               Motor      Generar
                   Parsing                              Code-
                             ASP.NET                    behind




                                             Clase de
   Petición       Fichero                     página
                   ASPX
                             Instanciar      generada
                     ó
   Petición        ASMX




          Respuesta            Clase            Compilar
                             compilada
              Respuesta
Capa de Presentación
ASP.NET: Sesión y Caché
   Sesión
     No requiere obligatoriamente cookies
     Soporta granjas de servidores
     Más opciones para guardar estado:
       Servicio Windows en otro equipo (alta disponibilidad)
       SQL Server (alta disponibilidad + tolerancia a fallos)
   Caché
     a nivel de página
     Caché fragmentado
     Modos cliente y servidor
     Dependencias de caché (tiempo, fichero, consulta SQL)
     Cache API
Aplicación Web con
ASP.NET Web Forms
Capa de Presentación
Windows Forms
   Combinación de productividad
    formularios VB con potencia MFC C++
   Herencia visual de controles y
    formularios
   Soporte gráfico mejorado GDI+
   Fácil enlazado de datos con ADO.NET
   Fácil consumo de Servicios Web XML
   Controles Windows hospedados en IE
   Impresión de formularios, ayuda, …
Capa de Presentación
Cliente Rico o Cliente Ligero: “Smart Client”
          Cliente Rico
                             “Smart Client”
             Instalación
               costosa                          Cliente Ligero
                      Experiencia
   Dificultad de     de usuario rica     Instalación
    despliegue                           mínima/nula
                      Desarrollo                         Dependencia
                      productivo                           de la red
                                       Facilidad de
       Infierno de                     despliegue
                     Interactivo                         Experiencia de
       las DLLs
                                                         usuario pobre
                                       Versionado
                                       centralizado
                                                      Desarrollo
                                                      complejo
Aplicación Windows
“Smart Client”
con Windows Forms
Capa de Presentación
“Smart Client”: atributos clave
   Utiliza la potencia del procesador local
       Experiencia de usuario rica, interactiva
   Consume servicios
       Servicios Web y SOA
   Puede funcionar de forma desconectada
       Exige incorpora lógica de negocio y acceso a
        datos en el cliente
   Se despliega y actualiza de forma
    centralizada
Capa de Presentación
Despliegue de aplicaciones .NET
    Opción 1: File Copy (XCOPY, FTP)
        Instalación sin ejecutar nada en el cliente
    Opción 2: paquetes Windows® Installer
        Incluyendo o no .NET Framework Redistributable
        Ejecutar Setup en el cliente o desplegar con
         Systems Management Server o IntelliMirror®
    Opción 3: Despliegue “sin tocar” con Internet
     Explorer (“No-Touch” Deployment)
        Descarga de Aplicaciones Windows de Intranet
        Descarga de Controles Windows en páginas Web
        El código se mantiene y se versiona en un único
         punto: servidor de Intranet
Capa de Presentación
Despliegue sin tocar (No-Touch Deployment)
   Sin instalación ni desinstalación
   Aplicaciones .NET son ligeras
       código gestionado IL < código nativo
   No se instala nada en la carpeta System
   No se escribe nada en el Windows Registry
   Requerimientos del cliente
       Windows 98/Windows NT® 4.0 o superior
       Internet Explorer 5.5 o superior
       .NET Framework Redistributable (~20 MB)
   El futuro del despliegue de aplicaciones
    (“Whidbey”)
       Click-Once = No-Touch Deployment + Updater App.
Capa de Presentación
Despliegue de aplicaciones Windows

        Client                 Web Server

                                      Form1
  Windows App

                           Web
                   HTTP   Server
                                      Form2
        Assembly
         Cache
Capa de Presentación
Despliegue de controles Windows

                       Client               Web Server
                                                   Chart.html

                           HTTP
 Internet Explorer 5.5

                                       Web
                           HTTP       Server
                                                     Charting.DLL
            Assembly
             Cache



                                                      ChartEngine.DLL
                                  Customizer.DLL
Aplicación Windows
“Smart Client” y
el despliegue sin tocar
Capa de Presentación
Escenarios de Aplicaciones Móviles




Experiencia Web móvil            Dispositivo Inteligente           Todo el potencial del PC
Ejemplo: titulares de noticias   Ejemplo: trabajo de campo         Ejemplo: gestión de conocimiento
Muchos tipos de dispositivos     Funcionalidad online y offline    Pantalla a tamaño completo
Entrada de datos muy limitada    Integración de dispositivos       Aplicaciones compatibles PC
Uso breve e intermintente        Interfaz de usuario enriquecida   Anotación y edición enriquecidas
Capa de Presentación
Ventajas arquitectónicas de apl. móviles
     Ventajas de apl. Web móvil        Ventajas de apl. cliente inteligente

     Presentación adaptable               Operativa “off-line”
         Soporte dinámico de                   Ejecución Local
          múltiples navegadores                 Datos Locales
          de dispositivos
         Soporte navegador en             IU enriquecido
          dispositivos bajo coste               Multimedia
     Código base único                         IU elaborado
         Mantenimiento                    Integración con
          simplificado                      elementos dispositivo
         Extensión natural de las              Lectores tarjetas
          apl. Web existentes
                                                Lectores código barras
     Ejecución en servidor                     Receptores GPS
         Sin instalación en cliente            Telefonía / mensajería
         Sin ejecución en cliente
Capa de Presentación
Retos tradicionales de aplicaciones móviles
     Soporte multi-dispositivo complejo
     • Diferentes dimensiones
     • Diferentes características
                                              Poca reutilización
     • Diferentes estándares Web
                                             • Diferentes plataformas
                                             • Diferentes APIs
                                             • Diferentes lenguajes


                Página Web Móvil
                                          Código Local



              Navegador Web
              del Dispositivo


                   Sistema Operativo del Dispositivo
Capa de Presentación
Soluciones Microsoft para apl. móviles


         Controles Web        Extensiones para
                                Dispositivos
        Móviles ASP.NET         Inteligentes


          Página Web Móvil
                                  Código Local



         Navegador Web          .NET Compact
         del Dispositivo          Framework

           Sistema Operativo del Dispositivo
Aplicaciones para
dispositivos
Aplicación Web para dispositivos
con ASP.NET Mobile Web Forms

Aplicación Windows “Smart Client” para dispositivos
con Windows Forms de .NET Compact Framework
Capa de Presentación
Amplio abanico de posibilidades
   Cliente ligero, basado en Web
       Navegador estándar: ASP.NET Web Forms
       Navegador de dispositivo: ASP.NET Mobile Web
        Forms
   Cliente inteligente (“smart client”) basado en
    Windows
       PC: Windows Forms de .NET Framework
       TabletPC: Windows Forms de .NET Framework +
        controles especiales de manejo de tinta y de lápiz
       Pocket PC, Pocket PC PE, Smartphone, Windows CE:
        Windows Forms de .NET Compact Framework
   Cliente inteligente (“smart client”) basado en
    Office
       Word y Excel: Visual Studio Tools for Office (VSTO)
       InfoPath
Arquitectura de Referencia
.NET
Arquitectura de Aplicación en capas lógicas
                                                                                                       Arquitectura Orientada
                                                                                                             A Servicios
 Comunicaciones




                                             Seguridad
                  Administración Operativa




                                                            Componentes de Interfaz de Usuario

                                                              Componentes de Proceso de IU        Agentes Servicios



                                                          Procesos                   Entidades    Interfaces Servicios
                                                                       Componentes
                                                          de Negocio    de Negocio   de Negocio   Agentes Servicios



                                                                     Componentes de               Interfaces Servicios
                                                                    Acceso a Recursos             Agentes Servicios



                                                         Recursos
                                                                                                                         Servicios


Ciclo de Vida del software
Arquitectura de Referencia
.NET
Entornos de Despliegue Físico



                      DMZ




        Infrastructure VLAN   Data & Management VLAN




                                                       VPN
Entornos de Despliegue
Físico
Tecnologías de Clustering Microsoft
   Network Load Balancing (NLB)
     Balancea tráfico TCP/IP entre múltiples
       servidores
     Hasta 32 nodos
     Proporciona alta disponibilidad y escalabilidad
     Con Windows Server 2003 (todas las ediciones)
   Cluster Service (MSCS)
     Tolerancia a fallos (failover)
     Hasta 8 nodos
     Proporciona alta disponibilidad
     Con Windows Server 2003 (sólo las ediciones
       Enterprise, DataCenter y 64-bit)
Interoperabilidad o Migración
Coexistencia de DNA y .NET
 Aplicaciones DNA y aplicaciones .NET
  coexisten en la misma máquina (tanto
  Web como Windows)
 Componentes COM y Componentes .NET
  coexisten en la misma máquina
 Componentes COM y Componentes .NET
  pueden usar los servicios de COM+ en la
  misma máquina
 ASP y ASP.NET pueden ejecutarse en el
  IIS de la misma máquina
     Páginas .asp son procesadas por ASP
Interoperabilidad o Migración
Interoperabilidad entre DNA y .NET
   COM Interop: interoperabilidad COM
     bidireccional
        Utilizar componentes COM desde .NET
            TlbImp.exe: genera un proxy .NET de un componente COM (early binding)
            AxImp.exe: genera proxy .NET de un control ActiveX
            System.Reflection (late binding)


        Utilizar componentes .NET desde COM
            TlbExp.exe: genera una librería de tipos de un componente .NET (early binding)
            RegAsm.exe: registra un componente .NET en el registro del sistema (late binding)

                                                   Class EjemploPInvoke
    P/Invoke: interoperabilidad código            {
                                                       // Declarar la función externa no gestionada

     nativo                                            [sysimport(dll=“user32.dll”)]
                                                       public static extern int MessageBoxA (int modal,
                                                         string mensaje, string titulo, int opciones);


        Llamadas a puntos de                          public static void Main (string[] args)
                                                       {
                                                         // Invocar a la función externa no gestionada

         entrada estáticas en                          }
                                                         MessageA(0, “P/Invoke funciona!”,
                                                                  “Ejemplo P/Invoke”, 0);

                                                   }
Interoperabilidad o Migración
Actualización de DNA a .NET (I)
 Visual C++
       Visual C++ .NET: MFC, ATL y extensiones
        gestionadas .NET
   Visual Basic
       Visual Basic .NET: lenguaje orientado a
        objetos puro
       Asistente de migración automática VB a
        VB.NET [Visual Studio .NET]
   ASP
       ASP.NET: Compatible casi al 100% con ASP
       JScript no sufre cambios, VBScript se
        reemplaza por Visual Basic.NET
Interoperabilidad o Migración
Actualización de DNA a .NET (II)
   Gracias a la coexistencia y la interoperabilidad
    entre DNA y .NET
       Es posible construir nueva funcionalidad en .NET
       Es posible actualizar de DNA a .NET gradualmente
   ¿Cómo migro de DNA a .NET? una estrategia:
       Utilizar .NET para desarrollo de nueva funcionalidad
       1º migración de código: herramientas automáticas de
        migración sintáctica que hace gran parte del trabajo
       2º migración de componentes: manualmente, usar
        componentes .NET en lugar de componentes COM
       3º migración de conceptos: refactorización,
        arquitectura
Interoperabilidad o Migración
Java y Visual J++
   Interoperabilidad con Java
       Servicios Web (WS-I)
       Brokers de mensajes (tipo BizTalk Server)
       Puentes de tecnología (Bridges: Janeva, Ja.Net, …)
   Migración de Visual J++ y Java a .NET
       Visual J# .NET
           Sintaxis Java en .NET
           Visual J# .NET 2003: soporte JDK 1.1.4
           Visual J# .NET 2005: soporte JDK 1.3 (con “Whidbey”)
       JLCA
           Conversión de Java y JDK a Visual C# y .NET Framework
           JLCA 2.0: conversión JDK 1.1.4
           JLCA 3.0: conversión JDK 1.3 (con “Whidbey”)
Referencias
   Guías de Arquitectura “Patterns & Practices”
       http://www.microsoft.com/resources/practices
   Desarrollo Web “Server Side”
       http://www.asp.net
   Desarrollo Windows “Smart Client”
       http://www.windowsforms.net
   Servicios Web de Microsoft
       http://www.microsoft.com/webservices
   MSDN Online, “El Recurso” del desarrollador
       http://www.microsoft.com/Spanish/msdn/spain
       http://msdn.microsoft.com
   Comunidad de GotDotNet
       http://www.gotdotnet.com

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:18
posted:11/4/2012
language:Esperanto
pages:90