La plataforma NET Aurelio Porras aureliopmicrosoft com Divisin

  • Slides: 84
Download presentation
La plataforma. NET Aurelio Porras aureliop@microsoft. com División de Desarrolladores y Plataforma Microsoft Ibérica

La plataforma. NET Aurelio Porras aureliop@microsoft. com División de Desarrolladores y Plataforma Microsoft Ibérica

Agenda. NET Framework y Visual Studio. NET Framework Visual Studio. NET Guías para desarrollar

Agenda. NET Framework y Visual Studio. 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 Mejores prácticas en el Ciclo de Vida software Recursos

Microsoft. NET

Microsoft. NET

Arquitectura. NET Retos del desarrollo en Microsoft Integración de aplicaciones Múltiples lenguajes de programación

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 Framework y Visual Studio. NET VB C++ C# J# … Common Language

Arquitectura. NET Framework y Visual Studio. NET VB C++ C# J# … Common Language Specification Web Forms Web Services Mobile Web Forms (MIT) Windows Forms XML, ADO. NET, Enterprise Services Base Class Library Common Language Runtime Sistema Operativo V i s u a l S tu d i o. N E T ASP. NET

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

. NET Framework Common Language Runtime VB C++ C# J# … Common Language Specification Web Forms Web Services Mobile Web Forms (MIT) Windows Forms XML, ADO. NET, Enterprise Services Base Class Library Common Language Runtime Sistema Operativo V i s u a l S tu d i o. N E T ASP. NET

. NET Framework Common Language Runtime El CLR es el entorno donde se ejecutan

. 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 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 Fuente Código Nativo Compilador lenguaje

Common Language Runtime Proceso del código gestionado Compilación Código Fuente Código Nativo Compilador lenguaje Compilador JIT Ejecución Código (IL) Assembly Metadatos En instalación o la primera vez que se llama a un método

Common Language Runtime Anatomía de un assembly Manifesto Código IL Tipo X Código IL

Common Language Runtime Anatomía de un assembly Manifesto Código IL Tipo X Código IL Tipo Y Código IL Tipo Z Metadatos para Tipos X, Y y Z Módulo 1 app 1. dll Assembly A Manifesto Código IL Tipo P Código IL Tipo Q Metadatos Tipos P y Q Módulo 2 app 2. exe Código IL Tipo R Recurso Metadatos Tipo R M. 3 Mod. netmodule Assembly B grafico. jpg

Common Language Runtime Beneficios Entorno de ejecución robusto Seguridad inherente Desarrollo simplificado Fácil gestión

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

El CLR

. NET Framework Class Library VB C++ C# J# … Common Language Specification Web

. NET Framework Class Library VB C++ C# J# … Common Language Specification Web Forms Web Services Mobile Web Forms (MIT) Windows Forms XML, ADO. NET, Enterprise Services Base Class Library Common Language Runtime Sistema Operativo V i s u a l S tu d i o. N E T ASP. NET

. NET Framework Class Library Modelo de programación unificado Disponibilidad de API consistente en

. NET Framework Class Library Modelo de programación unificado Disponibilidad de API consistente en cualquier lenguaje y modelo de programación . NET Framework RAD, Composición, Delegación VB Forms Subclassing, Potencia, Expresividad MFC/ATL Windows API Sin estado, Código embebido en páginas HTML ASP

. NET Framework Class Library System namespace System. Windows. Forms System. Web Services Description

. NET Framework Class Library System namespace System. Windows. Forms System. Web Services Description Discovery Protocols UI Html. Controls Web. Controls Caching Configuration Security Session. State Design Component. Model System. Drawing 2 D Imaging System. Data Ole. Db Common Printing Text System. Xml Sql. Client SQLTypes XSLT XPath Serialization System Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security Service. Process Text Threading Runtime Interop. Services Remoting Serialization

. NET Framework Class Library Beneficios Completa, Organizada, Extensible Para cualquier Arquitectura de Aplicación

. 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)

. NET Framework Lenguajes. NET VB C++ C# J# … Common Language Specification (CLS) Web Forms Web Services Mobile Web Forms (MIT) Windows Forms XML, ADO. NET, Enterprise Services Base Class Library Common Language Runtime Sistema Operativo V i s u a l S tu d i o. N E T ASP. NET

Lenguajes. NET CLS CLR Fujitsu COBOL Extensions C++ COBOL CLS Microsoft Managed C++ Extensions

Lenguajes. NET CLS CLR Fujitsu COBOL Extensions C++ COBOL CLS Microsoft Managed C++ Extensions Los lenguajes no tienen que exponer toda la funcionalidad definida por la CLR

Lenguajes. NET Múltiples lenguajes soportados. NET es neutral con respecto al lenguaje Microsoft suministra:

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

Lenguajes. NET Soporte multilenguaje Dim s as String VB. NET s = "authors" Dim cmd As New Sql. Command("select * from " & s, sqlconn) cmd. Execute. Reader() string s = "authors"; C# Sql. Command cmd = new Sql. Command("select * from "+s, sqlconn); cmd. Execute. Reader(); String *s = S"authors"; Sql. Command cmd = new Sql. Command(String: : Concat(S"select * from ", s), sqlconn); cmd. Execute. Reader(); C++

Lenguajes. NET Soporte multilenguaje String s = "authors"; Sql. Command cmd = new Sql.

Lenguajes. NET Soporte multilenguaje String s = "authors"; Sql. Command cmd = new Sql. Command("select * from "+s, sqlconn); cmd. Execute. Reader(); J# JScript var s = "authors" var cmd = new Sql. Command("select * from " + s, sqlconn) cmd. Execute. Reader() Perl String *s = S"authors"; Sql. Command cmd = new Sql. Command(String: : Concat (S"select * from ", s), sqlconn); cmd. Execute. Reader();

Lenguajes. NET Soporte multilenguaje Cobol ENVIRONMENT DIVISION. CONFIGURATION SECTION. REPOSITORY. CLASS Sql. Command AS

Lenguajes. NET Soporte multilenguaje Cobol ENVIRONMENT DIVISION. CONFIGURATION SECTION. REPOSITORY. CLASS Sql. Command AS "System. Data. Sql. Client. Sql. Command" CLASS Sql. Connection AS "System. Data. Sql. Client. Sql. Connection". DATA DIVISION. WORKING-STORAGE SECTION. 01 str PIC X(50). 01 cmd-string PIC X(50). 01 cmd OBJECT REFERENCE Sql. Command. 01 sqlconn OBJECT REFERENCE Sql. Connection. 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 Sql. Command "NEW" USING BY VALUE cmd-string sqlconn RETURNING cmd. INVOKE cmd "Execute. Reader".

Lenguajes. NET Beneficios Independencia de las aplicaciones del lenguaje de programación utilizado Desarrollo de

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

Multilenguaje

. NET Framework Estandarización CLI y C# Common Language Infrastructure, funcionalidad e interfaces del

. 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

. NET Compact Framework . NET Framework para dispositivos Diseñado para dispositivos inteligentes Pocket PC y Pocket PC Phone Edition (v 1. 1) Smart Phone Windows CE Amplia disponibilidad planeada Mismo modelo de desarrollo que. NET Framework Misma herramienta de desarrollo Visual Studio. NET

Visual Studio. NET Entorno de Desarrollo Integrado VB C++ C# J# … Common Language

Visual Studio. NET Entorno de Desarrollo Integrado VB C++ C# J# … Common Language Specification Web Forms Web Services Mobile Web Forms (MIT) Windows Forms XML, ADO. NET, Enterprise Services Base Class Library Common Language Runtime Sistema Operativo V i s u a l S tu d i o. N E T ASP. NET

Visual Studio. NET Productividad Única herramienta de desarrollo para todo Plataforma completa para creación,

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 Intelli. Sense y Ayuda Dinámica Extensible y Abierto

Visual Studio. NET Para todo el ciclo de vida Modelado de Sistemas y Bases

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 Source. Safe Diseño, Codificación y Depuración Visual Studio: Designers, Editors, Debugger Monitorización y Optimización Visual Studio Analyzer Pruebas Application Center Test Despliegue e Instalación Visual Studio: Setup Projects

Arquitectura. NET Retos del desarrollo Integración de aplicaciones Múltiples lenguajes de programación Múltiples modelos

Arquitectura. NET Retos del desarrollo 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 ü Servicios Web XML ü . NET Framework ü ü Elevar la productividad del desarrollador ü Common Language Runtime. NET Framework Class Library Componentes. NET assemblies Lenguajes. NET Interoperatividad COM Visual Studio. NET

Patterns & Practices Proven Based on field experience Authoritative Best advice available Accurate Technically

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 y próximas Reference Architectures Reference Building Blocks Lifecycle Practices

Patterns & Practices Guías publicadas y próximas Reference Architectures Reference Building Blocks Lifecycle Practices Application Architecture for. NET Exception Management App Block Microsoft Systems Architecture Logging App Block Team Development with Visual Studio. NET & Visual Source. Safe Configuration App Block Debugging Microsoft. NET Applications . NET and J 2 EE Interoperability Data Access App Block Deploying. NET Applications WSI Base Profile and Security Updater App Block Operating. NET-Based Applications . NET Line of Business Application User Process Interface App Block §Enterprise Data Center §Internet Data Center UNIX Migration … Designing Data Tier Components and Passing Data Through Tiers Building Secure ASP. NET Applications Authoring ASP. NET Applications … Patterns. NET Enterprise Patterns Data Patterns Network Infrastructure Patterns … Operations Guides (…) Security Operations Guides (…) Backup and Restore for MSA Operations …

Patterns & Practices Arquitectura de Aplicaciones DNA Interop Users En desarrollo Instrumentation Rich Client

Patterns & Practices Arquitectura de Aplicaciones DNA Interop Users En desarrollo Instrumentation Rich Client Web Client UI Components User Interface Process. UI Process Components Operational Management Exception Mgmt Communication Authentication Service Interfaces Data Exchange & Format. Business Workflows Caching Business Service Data Aggregation & Components Caching Business Entities Persistent Asynch Data Access Components Invocation Service Agents Data Sources Team Dev Secure ASP. NET Application Auth. Z Configuration Services Debugging Profiling Deployment Development Lifecycle Security End-to-end Application & Service Design Disponibles . NET Ops

Patterns & Practices Disponibilidad Online en MSDN y Tech. Net: http: //www. microsoft. com/resources/practices

Patterns & Practices Disponibilidad Online en MSDN y Tech. Net: http: //www. microsoft. com/resources/practices Guías escritas disponibles en: http: //shop. microsoft. com/practices Distribuidas en CD-ROM Library en eventos

Arquitectura de Referencia. NET Arquitectura de Aplicación en capas lógicas Seguridad Administración Operativa Comunicaciones

Arquitectura de Referencia. NET Arquitectura de Aplicación en capas lógicas Seguridad Administración Operativa Comunicaciones Arquitectura. Tradicional Orientada 3 capas A Servicios lógicas Componentes de Interfaz de Usuario Componentes de Proceso de IU Procesos de Negocio Componentes de Negocio Entidades de Negocio Componentes de Acceso a Recursos CAPA DE PRESENTACIÓN Agentes Servicios Interfaces Servicios CAPA DE NEGOCIO Agentes Servicios Interfaces Servicios CAPA DE DATOS Agentes Servicios Recursos Servicios Ciclo de Vida del software

Arquitectura de Aplicación. NET Capas en aplicaciones y servicios 2 4 1 Credit Authorization

Arquitectura de Aplicación. NET Capas en aplicaciones y servicios 2 4 1 Credit Authorization Orders 3 Courier 1. 2. 3. Comunicación débilmente acoplada Aplicaciones/Servicios con arquitectura en capas Algunos servicios pueden no tener IU

Arquitectura de Referencia. NET Capa de Datos Seguridad Administración Operativa Comunicaciones Usuarios Capa de

Arquitectura de Referencia. NET Capa de Datos Seguridad Administración Operativa Comunicaciones Usuarios 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

Capa de Datos XML Funcionalidad tradicional Acceso en memoria: DOM niveles 1 y 2 Acceso secuencial: Xml. Reader 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 Xml. Serializer: Instancias de objetos XML XSD. EXE: Clases XSD

XML Serialización XML C#, VB, JS Xml. Serializer XSD. EXE XML XSD Validator

XML Serialización XML C#, VB, JS Xml. Serializer XSD. EXE XML XSD Validator

Serialización XML

Serialización XML

Capa de Datos ADO. NET Independiente de la fuente de datos IDb. Connection Conexión

Capa de Datos ADO. NET Independiente de la fuente de datos IDb. Connection Conexión a cualquier base de datos con proveedores Generales: . NET OLE DB y. NET ODBC Específicos: . NET SQL Client, . NET Oracle Client Modelo conectado de acceso a datos IDb. Command: sentencias SQL (parametrizables con IDb. Parameter), procedimientos almacenados IDb. Data. Reader: para recuperar resultados

Acceso conectado con ADO. NET

Acceso conectado con ADO. NET

Capa de Datos ADO. NET (II) Modelo Desconectado de acceso a datos Dataset Modelo

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 Data. Adapter 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 de presentación Windows forms Aplicación. Exe

Capa de Datos ADO. NET: Modelo desconectado Capa de presentación Windows forms Aplicación. Exe Dataset IE Web forms Dataset Internet intranet Xml Capa de negocios Dataset Data. Adapter Capa de datos Negocio a Negocio

Acceso desconectado con ADO. NET

Acceso desconectado con ADO. NET

Arquitectura de Referencia. NET Capa de Negocio Seguridad Administración Operativa Comunicaciones Usuarios Capa de

Arquitectura de Referencia. NET Capa de Negocio Seguridad Administración Operativa Comunicaciones Usuarios Capa de Presentación Agentes Servicios Capa de Negocio Procesos de Negocio Componentes de Negocio Entidades de Negocio Capa de Datos Recursos Ciclo de Vida del software Interfaces Servicios Agentes Servicios

Capa de Negocio Consumidores de componentes de Negocio Llamadas desde otros Agentes de Servicios

Capa de Negocio Consumidores de componentes de Negocio Llamadas desde otros Agentes de Servicios Capa de Presentación Interfaz de Servicios Componente de Negocio Proceso de Negocio Llamadas a otros Servicios Componente de Negocio Datos Componentes de Acceso a Datos Agentes de Servicios Llamadas a otros Servicios

Capa de Negocio Integrando servicios en un flujo de proceso Capa de Presentación Proceso

Capa de Negocio Integrando servicios en un flujo de proceso Capa de Presentación Proceso de Negocio Interfaz de Servicio Agente de Servicio Componentes de Negocio Interfaz de Servicio Agente de Servicio Interfaz de Servicio Componentes de Acceso a Datos Servicios

Capa de Negocio Servicios Web: reduciendo dependencias Arquitectura Orientadafuertemente a Servicio (SOA) Ejemplo de

Capa de Negocio Servicios Web: reduciendo dependencias Arquitectura Orientadafuertemente a Servicio (SOA) Ejemplo de una solucion acoplada Aplicación B Aplicación A Lenguaje de programacion Base de datos Lenguaje de programacion Acuerdos Base de datos Esquemas Modelo de objetos Sistema operativo Servidor de aplicaciones

Capa de Negocio ASP. NET Web Services Servici o. Web Protocolos Internet Abiertos Componente

Capa de Negocio ASP. NET Web Services Servici o. Web Protocolos Internet Abiertos Componente de aplicación n programable, accesible a través de protocolos estándar de Internet UDDI Suministra un Directorio de Servicios en La Red n Los Servicios Web se definen en términos de formatos y ordenación de mensajes n Los consumidores de Servicios Web pueden enviar y recibir mensajes XML n Construido empleando protocolos abiertos de Internet Universal Description, Discovery, and Integration WSDL Web Services Description Language SOAP XML & HTTP

Capa de Negocio ASP. NET Web Services (II) Servicios publicados Descubrimiento mediante UDDI Servicio

Capa de Negocio ASP. NET Web Services (II) Servicios publicados Descubrimiento mediante UDDI Servicio 1 t. Model Publicación mediante UDDI Registro UDDI Aplicación Cliente Descripción mediante WSDL Servicio Web XML Schema WSDL Invocación / Acceso mediante SOAP Transporte mediante HTTP / SMTP / … Mensaje SOAP

Capa de Negocio ASP. NET Web Services (III). NET Framework facilita Un mapeo bi-direccional

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

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 [Web. Service], [Web. Method] 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

Web Services

Web Services

Capa de Negocio. NET Remoting Acceso remoto a objetos 3 modelos de acceso remoto:

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

Capa de Negocio Enterprise Services y System. Messaging Enterprise Services Modelo de programación simplificado para el uso de servicios COM+ Servicios empresariales: Transacciones Interoperabilidad XA Seguridad basada en roles Pooling de objetos Componentes encolados … System. Messaging Modelo de programación para el uso de colas MSMQ

Arquitectura de Referencia. NET Capa de Presentación Seguridad Administración Operativa Comunicaciones Usuarios Capa de

Arquitectura de Referencia. NET Capa de Presentación Seguridad Administración Operativa Comunicaciones Usuarios 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 código Modelo de programación similar

Capa de Presentación ASP. NET Web Forms: modelo de código Modelo de programación similar a Win. Forms RAD Visual: Formularios, Controles servidor, Eventos El código “está detrás” Separación entre lógica y presentación ASP. NET código <tags> código Form 1. aspx Form 1. vb

Capa de Presentación ASP. NET: modelo de ejecución Parsing Petición Fichero ASPX ó ASMX

Capa de Presentación ASP. NET: modelo de ejecución Parsing Petición Fichero ASPX ó ASMX Respuesta Motor Generar ASP. NET Instanciar Clase compilada Clase Codebehind Clase de página generada Compilar

Capa de Presentación ASP. NET: Sesión y Caché Sesión Soporta granjas de servidores No

Capa de Presentación ASP. NET: Sesión y Caché Sesión Soporta granjas de servidores No requiere obligatoriamente cookies Mejor tolerancia a fallos (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

ASP. NET Web Forms

ASP. NET Web Forms

Capa de Presentación Windows Forms Combinación de productividad formularios VB con potencia MFC C++

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, …

Windows Forms ¿Otra? pero si ya los hemos visto … (pesao!)

Windows Forms ¿Otra? pero si ya los hemos visto … (pesao!)

Capa de Presentación Cliente Rico o Cliente Ligero: “Smart Client” Cliente Rico Instalación costosa

Capa de Presentación Cliente Rico o Cliente Ligero: “Smart Client” Cliente Rico Instalación costosa Dificultad de despliegue Infierno de las DLLs Cliente Inteligente Experiencia rica de usuario Productividad desarrollo Respuesta rápida Cliente Ligero Mínima/nula instalación Facilidad de despliegue Versionado y mantenimiento Dependencia de la red Experiencia pobre de usuario Complejidad de desarrollo

Cliente Rico o Cliente Ligero Despliegue de aplicaciones Opción 1: File Copy (XCOPY, FTP)

Cliente Rico o Cliente Ligero Despliegue de aplicaciones 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 Intelli. Mirror® Opción 3: Despliegue “sin tocar” desde Internet Explorer (“No-Touch” Deployment) Descarga de Controles Windows en páginas Web Descarga de Aplicaciones Windows de Intranet El código se mantiene y se versiona en un único punto: el servidor de Intranet

Cliente Rico o Cliente Ligero Despliegue sin tocar (No-Touch Deployment) Sin instalación ni desinstalación

Cliente Rico o Cliente Ligero Despliegue sin tocar (No-Touch Deployment) Sin instalación ni desinstalación Aplicaciones. NET son ligeras “Hello World” = ~3. 5 Kb No se instala nada en la carpeta System No se escribe 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)

Cliente Rico o Cliente Ligero Despliegue de aplicaciones Windows Web Server Client Form 1

Cliente Rico o Cliente Ligero Despliegue de aplicaciones Windows Web Server Client Form 1 Windows App HTTP Web Server Form 2 Assembly Cache

Cliente Rico o Cliente Ligero Despliegue de controles Windows Client Web Server Chart. html

Cliente Rico o Cliente Ligero Despliegue de controles Windows Client Web Server Chart. html HTTP Internet Explorer 5. 5 HTTP Web Server Charting. DLL Assembly Cache Customizer. DLL Chart. Engine. DLL

Windows Forms Smart Client y el despliegue sin tocar

Windows Forms Smart Client y el despliegue sin tocar

Escenarios de Aplicaciones Móviles Visión general Experiencia Web móvil Dispositivo Inteligente Todo el potencial

Escenarios de Aplicaciones Móviles Visión general 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 Servicios Web XML 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

Escenarios de aplicaciones móviles Retos tradicionales Aplicaciones multi-dispositivo difícil: • Diferentes dimensiones • Diferentes

Escenarios de aplicaciones móviles Retos tradicionales Aplicaciones multi-dispositivo difícil: • Diferentes dimensiones • Diferentes características • Diferentes estándares Web Poca reutilización • Diferentes plataformas • Diferentes APIs • Diferentes lenguajes Página Web Móvil Código Local Navegador Web del Dispositivo Sistema Operativo del Dispositivo

Escenarios de aplicaciones móviles Ventajas arquitectónicas Ventajas de apl. Web móvil Presentación adaptable Soporte

Escenarios de aplicaciones móviles Ventajas arquitectónicas Ventajas de apl. Web móvil Presentación adaptable Soporte dinámico de múltiples navegadores de dispositivos Soporte navegador en dispositivos bajo coste Código base único Mantenimiento simplificado Extensión natural de las apl. Web existentes Ejecución en servidor Sin instalación en cliente Sin ejecución en cliente Ventajas de apl. cliente inteligente Operativa “off-line” Ejecución Local Datos Locales IU enriquecido Multimedia IU elaborado Integración con elementos dispositivo Lectores tarjetas Lectores código barras Receptores GPS Telefonía / mensajería

Escenarios de aplicaciones móviles Desarrollo Microsoft para dispositivos Controles Web Móviles ASP. NET Extensiones

Escenarios de aplicaciones móviles Desarrollo Microsoft para dispositivos Controles Web Móviles ASP. NET Extensiones para Dispositivos Inteligentes Página Web Móvil Código Local Navegador Web del Dispositivo . NET Compact Framework Sistema Operativo del Dispositivo

Capa de Presentación Desarrollo para dispositivos Desarrollo del lado del cliente Windows Forms de.

Capa de Presentación Desarrollo para dispositivos Desarrollo del lado del cliente Windows Forms de. NET Compact Framework Desarrollo del lado del servidor ASP. NET Mobile Web Forms Soporte multi-cliente automático WML, HTML 3. 2, c. HTML, XML

Desarrollo para dispositivos ASP. NET Mobile Web Forms Windows Forms de. NET Compact Framework

Desarrollo para dispositivos ASP. NET Mobile Web Forms Windows Forms de. NET Compact Framework

Arquitectura de Referencia. NET Arquitectura de Aplicación en capas lógicas Seguridad Administración Operativa Comunicaciones

Arquitectura de Referencia. NET Arquitectura de Aplicación en capas lógicas Seguridad Administración Operativa Comunicaciones Arquitectura Orientada A Servicios Componentes de Interfaz de Usuario Componentes de Proceso de IU Procesos de Negocio Componentes de Negocio Entidades de Negocio Componentes de Acceso a Recursos Agentes Servicios Interfaces Servicios Agentes Servicios Recursos Servicios Ciclo de Vida del software

Arquitectura de Referencia. NET Entornos de Despliegue Físico DMZ Infrastructure VLAN Data & Management

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

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 Microsoft Cluster Service (MSCS) Tolerancia a fallos (failover) 2 ó 4 nodos Proporciona alta disponibilidad

Interoperabilidad o Migración Interoperabilidad con COM y código nativo COM Interop bidireccional Utilizar componentes

Interoperabilidad o Migración Interoperabilidad con COM y código nativo COM Interop bidireccional Utilizar componentes COM desde. NET Tlb. Imp. exe: genera un proxy. NET de un componente COM (early binding) Ax. Imp. exe: genera proxy. NET de un control Active. X System. Reflection (late binding) Utilizar componentes. NET desde COM Tlb. Exp. exe: genera una librería de tipos de un componente. NET (early binding) Reg. Asm. exe: registra un componente. NET en el registro del sistema (late binding) Platform Invoke (P/Invoke) Llamadas a puntos de entrada estáticas en DLLs de código nativo desde código gestionado Class Ejemplo. PInvoke { // Declarar la función externa no gestionada [sysimport(dll=“user 32. dll”)] public static extern int Message. Box. A (int modal, string mensaje, string titulo, int opciones); public static void Main (string[] args) { // Invocar a la función externa no gestionada Message. A(0, “P/Invoke funciona!”, “Ejemplo P/Invoke”, 0); } }

Interoperabilidad o Migración Actualizar de DNA a. NET Visual C++. NET: MFC, ATL y

Interoperabilidad o Migración Actualizar de DNA a. NET Visual C++. NET: MFC, ATL y extensiones manejadas. NET Visual Basic. NET: asistente de migración automática en VS. NET ASP. NET: Compatible casi al 100% con ASP JScript no sufre cambios, VBScript se reemplaza por Visual Basic. NET Se soporta Late Binding con COM (Server. Create. Object / Create. Object) Posibilidad de ejecución ASP y ASP. NET en la misma máquina Guía de migración con recomendaciones y mejores prácticas Asistente de migración automática (versión beta) en www. asp. net ADO. NET es la tecnología de acceso a datos en. NET ADO está soportado vía COM Interop RDO y DAO también están soportados vía COM Interop Data Binding a controles sólo soportado en ADO (no RDO ni DAO)

Migración de ASP a ASP. NET Estrategia de Migración Coexistencia de DNA y. NET

Migración de ASP a ASP. NET Estrategia de Migración Coexistencia de DNA y. NET Componentes COM y Componentes. NET Interoperabilidad bidireccional COM . NET vía COM Interop ASP y ASP. NET en el mismo IIS Permite desarrollar nuevas páginas y aplicaciones Web ASP. NET No comparten Session ni Application… pero ¿pueden? ¿Cómo migro de DNA a. NET? una estrategia: 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

Recursos Guías de Arquitectura “Patterns & Practices” http: //www. microsoft. com/resources/practices Desarrollo Web “Server

Recursos 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 Got. Dot. Net http: //www. gotdotnet. com

Crea tu web. . . ¡y al cine! Concurso de programación web con ASP.

Crea tu web. . . ¡y al cine! Concurso de programación web con ASP. NET Un concurso ¿Te gusta la programación? ¿Te gusta el cine? ¿Lo tuyo es crear sitios web? Pues esta es tu oportunidad de hacerlo y llevarte premios ¡de película! Del 1 de abril al 15 de junio de 2004 participa en el concurso de programación web con ASP. NET (el alojamiento de los sitios web participantes es gratuito durante el concurso), y solo por hacerlo ya tienes dos entradas para ir al cine cuando quieras en más de 2. 000 salas en toda España. Y si tu web es una de las ganadoras en alguna de las seis categorías contempladas, te esperan fantásticos premios: consolas y juegos Xbox, mandos para ver DVDs en la consola, películas en DVD, cajas de Visual Studio. NET, alojamiento gratuito ASP. NET durante un año y suscripciones a revistas patrocinadoras durante un año. Más información en www. microsoft. com/spanish/msdn/concuasp Patrocinan: Empresas de alojamiento web patrocinadoras:

Amsterdam, Holanda 29 junio – 2 julio ¡Adéntrate! El evento definitivo de Microsoft en

Amsterdam, Holanda 29 junio – 2 julio ¡Adéntrate! El evento definitivo de Microsoft en Europa sobre creación, implantación, protección y gestión de soluciones conectadas

© 2004 Microsoft Corporation. Todos los derechos reservados. Esta presentación tiene propósitos informativos únicamente.

© 2004 Microsoft Corporation. Todos los derechos reservados. Esta presentación tiene propósitos informativos únicamente. Microsoft no ofrece garantías, implícitas o explícitas, de este contenido.