La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías...

90
La plataforma .NET <Nombre> <e-mail> <Empresa>

Transcript of La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías...

Page 1: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

La plataforma .NET

<Nombre>

<e-mail>

<Empresa>

Page 2: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

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

Page 3: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Microsoft .NET

Page 4: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Arquitectura .NETRetos 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

Page 5: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Arquitectura .NET.NET Framework y Visual Studio .NET

Sistema OperativoSistema Operativo

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

XML, ADO .NET, Enterprise ServicesXML, ADO .NET, Enterprise Services

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

WindowsWindowsFormsForms

Common Language SpecificationCommon Language Specification

VBVB C++C++ C#C# J#J# ……

Visu

al S

tud

io .N

ET

Visu

al S

tud

io .N

ET

Page 6: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

.NET FrameworkCommon Language Runtime

Sistema OperativoSistema Operativo

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

XML, ADO .NET, Enterprise ServicesXML, ADO .NET, Enterprise Services

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

WindowsWindowsFormsForms

Common Language SpecificationCommon Language Specification

VBVB C++C++ C#C# J#J# ……

Visu

al S

tud

io .N

ET

Visu

al S

tud

io .N

ET

Page 7: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

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

Page 8: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Common Language RuntimeProceso del código gestionado

Código Fuente

Compilación

En instalación o la primera vez que se llama a un método

Compiladorlenguaje

Assembly

Ejecución

Compilador JIT

Código Nativo

Código (IL)

Metadatos

Page 9: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Common Language RuntimeAnatomía de un assembly

Metadatos Tipos P y Q

app2.exe

Código IL Tipo P

Assembly B

Mod.netmodule

Manifesto

Módulo 2 M. 3

Código IL Tipo Q

Metadatos Tipo R

Código IL Tipo R Recurso

grafico.jpg

Assembly A

Metadatos para Tipos X, Y y Z

app1.dll

Código IL Tipo XManifesto

Módulo 1

Código IL Tipo Y

Código IL Tipo Z

Page 10: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Common Language RuntimeBeneficios Entorno de ejecución robusto Seguridad inherente Desarrollo simplificado Fácil gestión y despliegue de aplicaciones Preserva inversión de desarrollador

Page 11: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

El CLR

Page 12: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

.NET Framework

.NET Framework Class Library

Sistema OperativoSistema Operativo

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

XML, ADO .NET, Enterprise ServicesXML, ADO .NET, Enterprise Services

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

WindowsWindowsFormsForms

Common Language SpecificationCommon Language Specification

VBVB C++C++ C#C# J#J# ……

Visu

al S

tud

io .N

ET

Visu

al S

tud

io .N

ET

Page 13: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

.NET Framework Class LibraryModelo de programación unificado

Windows API

.NET Framework

Disponibilidad de API consistente en cualquier lenguaje y modelo de programación

ASP

Sin estado,Sin estado,Código embebido Código embebido en páginas HTMLen páginas HTML

MFC/ATL

Subclassing,Subclassing,Potencia,Potencia,

ExpresividadExpresividad

VB Forms

RAD,RAD,Composición,Composición,

DelegaciónDelegación

Page 14: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

.NET Framework Class LibrarySystem namespace

SystemSystem

System.DataSystem.Data System.XmlSystem.Xml

System.WebSystem.Web

GlobalizationGlobalization

DiagnosticsDiagnostics

ConfigurationConfiguration

CollectionsCollections

ResourcesResources

ReflectionReflection

NetNet

IOIO

ThreadingThreading

TextText

ServiceProcessServiceProcess

SecuritySecurity

CommonCommon

OleDbOleDb

SQLTypesSQLTypes

SqlClientSqlClient

XPathXPath

XSLTXSLT

RuntimeRuntimeInteropServices

Remoting

Serialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionState

CachingCaching SecuritySecurity

ServicesServicesDescription

Discovery

Protocols

UIUIHtmlControls

WebControls

System.DrawingSystem.Drawing

ImagingImaging

Drawing2DDrawing2D

TextText

PrintingPrinting

System.Windows.FormsSystem.Windows.Forms

DesignDesign ComponentModelComponentModel

Page 15: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

.NET Framework Class LibraryBeneficios 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

Page 16: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

.NET FrameworkLenguajes .NET

Sistema OperativoSistema Operativo

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

XML, ADO .NET, Enterprise ServicesXML, ADO .NET, Enterprise Services

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

WindowsWindowsFormsForms

Common Language Specification (CLS)Common Language Specification (CLS)

VBVB C++C++ C#C# J#J# ……

Visu

al S

tud

io .N

ET

Visu

al S

tud

io .N

ET

Page 17: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Lenguajes .NETCLS

COBOLCOBOL C++C++

CLRCLR

MicrosoftMicrosoftManaged Managed C++C++ExtensionsExtensions

FujitsuFujitsuCOBOLCOBOLExtensionsExtensions

CLS

Los lenguajes no tienen que exponer toda la funcionalidad definida por el CLR

Page 18: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

.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 .NETMúltiples lenguajes soportados

Page 19: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Lenguajes .NETSoporte multilenguaje

string s = "authors";SqlCommand cmd = new SqlCommand("select * from "+s,

sqlconn);cmd.ExecuteReader();

C#

Dim s as Strings = "authors"Dim cmd As New SqlCommand("select * from " & s,

sqlconn)cmd.ExecuteReader()

VB.NET

C++String *s = S"authors"; SqlCommand cmd = new SqlCommand(String::Concat(S"select * from ", s),

sqlconn); cmd.ExecuteReader();

Page 20: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Lenguajes .NETSoporte multilenguaje

J#String s = "authors";SqlCommand cmd = new SqlCommand("select * from "+s,

sqlconn);cmd.ExecuteReader();

String *s = S"authors"; SqlCommand cmd = new SqlCommand(String::Concat

(S"select * from ", s), sqlconn); cmd.ExecuteReader();

Perl

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

JScript

Page 21: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Lenguajes .NETSoporte multilenguaje

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

CobolCobol

Page 22: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

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

Lenguajes .NETBeneficios

Page 23: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Multilenguaje

Page 24: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

.NET FrameworkEstandarizació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)

Page 25: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

.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

Page 26: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Visual Studio .NETEntorno de Desarrollo Integrado

Sistema OperativoSistema Operativo

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

XML, ADO .NET, Enterprise ServicesXML, ADO .NET, Enterprise Services

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

WindowsWindowsFormsForms

Common Language SpecificationCommon Language Specification

VBVB C++C++ C#C# J#J# ……

Visu

al S

tud

io .N

ET

Visu

al S

tud

io .N

ET

Page 27: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Visual Studio .NETProductividad Ú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

Page 28: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Visual Studio .NETPara 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 Visual Studio Analyzer

Pruebas Application Center Test

Despliegue e Instalación Visual Studio: Setup Projects

Page 29: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Arquitectura .NETRetos del desarrollo

Integración de aplicaciones Servicios Web

Múltiples lenguajes de programación

Múltiples modelos de programación

Preservar la inversión del desarrollador

Elevar la productividad del desarrollador

.NET Framework Common Language Runtime .NET Framework Class Library Lenguajes .NET

.NET Framework Lenguajes .NET CLR: COM-Interop y P/Invoke

Visual Studio .NET

.NET Framework CLR: Assembly (componentes .NET)

Complejidad del desarrollo y despliegue

Seguridad no inherente .NET Framework CLR: Seguridad Acceso Código (CAS)

Page 30: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Patterns & PracticesProvenBased on field experience

AuthoritativeBest advice available

AccurateTechnically validated and tested

ActionableProvide the steps to success

RelevantAddress real world scenarios

“Proven practices for predictable results”

Page 31: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Patterns & PracticesGuías publicadasArquitecturas de ReferenciaReference Architectures)

Componentes de Aplicación(Application Blocks)

Prácticas de Ciclo de Vida(Lifecycle Practices)

Application Architecture for .NET

Microsoft Systems Architecture

Enterprise Data Center

Internet Data Center

.NET and J2EE Interoperability

WSI Base Profile and Security

.NET Line of Business Application

UNIX Migration

Exception Management App Block

Logging App Block

Configuration App Block

Data Access App Block

Updater App Block

User Process Interface App Block

Designing Data Tier Components and Passing Data Through Tiers

Building Secure ASP.NET Applications

Authoring ASP.NET Applications …

Team Development with Visual Studio.NET & Visual SourceSafe

Debugging Microsoft .NET Applications

Deploying .NET Applications

Operating .NET-Based Applications

Operations Guides (…)

Security Operations Guides (…)

Backup and Restore for MSA Operations

Patrones (Patterns)

Enterprise Solution Patterns using Microsoft .NET

Data Patterns

Integration Patterns …

Page 32: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Patterns & PracticesCobertura de las guías de desarrollo

Ciclo de Vida del software

Servicios

Recursos

Componentes de Interfaz de Usuario

Componentes de Proceso de IU

Procesos de Negocio

Componentesde Negocio

Entidadesde Negocio

Componentes deAcceso a Recursos

Ad

min

istr

aci

ón

Op

erat

iva

Co

mu

nic

aci

on

es

Agentes Servicios

Agentes Servicios

Interfaces Servicios

Agentes Servicios

Interfaces Servicios

Seg

uri

dad

Arquitectura de Referencia en .NETDiseño de aplicaciones y servicios

Arquitectura de Referencia en .NETDiseño de aplicaciones y servicios

Proceso de Interfaz de Usuario (UIP)Proceso de Interfaz de Usuario (UIP)

Cliente WebCliente WebInterop. DNAInterop. DNA

ExcepcionesExcepciones

ConfiguraciónConfiguración

AutenticaciónAutenticación

AutorizaciónAutorización

MonitorizaciónMonitorización

Trazas (logs)Trazas (logs)

Acceso a DatosAcceso a Datos

Agregación y Formato de Datos

Agregación y Formato de Datos

Desarrollo en equipo

Desarrollo en equipo DespliegueDespliegue Depuración

en producciónDepuración

en producción OptimizaciónOptimización OperacionesOperaciones

Com. SegurasCom. Seguras

Auto-actualizaciónAuto-actualización

Paso de Datosentre CapasPaso de Datosentre Capas

CachéDatosCachéDatos

Invocación Asincrónicade Servicios

Invocación Asincrónicade Servicios

Fachadas deServicios

paraaplicacionesheredadas

Fachadas deServicios

paraaplicacionesheredadas

Cliente WindowsSmart Client

Cliente WindowsSmart Client

Page 33: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Online en MSDN y TechNet:http://www.microsoft.com/resources/practices

Guías escritas disponibles en:http://shop.microsoft.com/practices

Patterns & PracticesDisponibilidad

Page 34: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Arquitectura de Referencia .NETArquitectura de Aplicación en capas lógicas

Servicios

Datos

Componentes de Interfaz de Usuario

Componentes de Proceso de IU

Procesos de Negocio

Componentesde Negocio

Entidadesde Negocio

Componentes deAcceso a Datos

Ciclo de Vida del software

Ad

min

istr

aci

ón

Op

erat

iva

Co

mu

nic

aci

on

es

Agentes Servicios

Agentes Servicios

Interfaces Servicios

Agentes Servicios

Interfaces Servicios

Seg

uri

dad

Arquitectura OrientadaA Servicios

Arquitectura Tradicional3 capas lógicas

CAPA DE PRESENTACIÓN

CAPA DE NEGOCIO

CAPA DE DATOS

Page 35: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Arquitectura de Aplicación .NETCapas en aplicaciones y servicios

1. Cada servicio gestiona sus propios datos2. Comunicación débilmente acoplada3. Cada servicio tiene su arquitectura en capas4. Las aplicaciones son servicios con IU

Pedidos

Transporte

Autorización Crédito

12

3

4

Page 36: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Arquitectura de Referencia .NETCapa de Datos

ServiciosFuentes de Datos (Recursos)

Capa de Datos

Capa de Presentación

Capa de Negocio

Componentes de Acceso a Datos (Recursos)

Ciclo de Vida del software

Adm

inis

trac

ión

Ope

rativ

a

Com

uni

caci

ones

Seg

urid

ad

Usuarios

Page 37: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de DatosXML

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

Page 38: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

XMLSerialización XML

XSDXSDXSDXSDXMLXMLXMLXML

C#, VB, JSC#, VB, JSC#, VB, JSC#, VB, JS

XSD.EXEXSD.EXE

XSD.EXEXSD.EXE

ValidatorValidator

XmlSerializerXmlSerializer

Page 39: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Serialización XML

Page 40: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de DatosADO.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

Page 41: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Acceso conectado con ADO.NET

Page 42: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de DatosADO.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

Page 43: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de DatosADO.NET: Modelo desconectado

Capa NegocioCapa Negocio

CapaCapaDatosDatos

Capa PresentaciónCapa Presentación

Web formsWeb forms

Negocio a NegocioNegocio a Negocio

DataSetDataSetDataSetDataSet

InternetInternetIntranetIntranet

DataAdapterDataAdapter

DataAdapterDataAdapterXmlXml

Aplicación.ExeAplicación.Exe

IEIE

DataSetDataSet

Windows formsWindows forms

Page 44: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Acceso desconectado con ADO.NET

Page 45: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Arquitectura de Referencia .NETCapa de Negocio

Servicios

Capa de Datos

Capa de Presentación

Capa de Negocio

Procesos de Negocio

Componentesde Negocio

Entidadesde Negocio

Ciclo de Vida del software

Adm

inis

trac

ión

Ope

rativ

a

Com

uni

caci

ones Agentes Servicios

Agentes Servicios

Interfaces Servicios

Agentes Servicios

Interfaces Servicios

Seg

urid

ad

Recursos

Usuarios

Page 46: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de NegocioConsumidores de componentes de Negocio

Capa de Presentación

Interfaz de Servicios

Componentede Negocio

Componentes de Acceso a Datos

Componentede Negocio

Proceso de Negocio

Llamadas desde otros Agentes de Servicios

Llamadas a otros ServiciosDatos

Llamadas a otros Servicios

Agentes de Servicios

Page 47: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de NegocioIntegrando servicios en un flujo de proceso

Interfaz de Servicio

Capa de Presentación

Agente de Servicio

Componentes de Acceso a Datos

Agente de Servicio

Interfaz de Servicio

Interfaz de Servicio

Componentesde Negocio

Procesode Negocio

Servicios

Page 48: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Esquemas

Acuerdos

Lenguaje deprogramacion

Modelo deobjetos

Servidor deaplicaciones

Base de datos

Sistema operativo

Base dedatos

Sistemaoperativo

Lenguaje deprogramacion

Modelo deobjetos

Servidor deaplicaciones

Aplicación A Aplicación B

Ejemplo de una solucion fuertemente acopladaArquitectura Orientada a Servicio (SOA)

Capa de NegocioServicios Web: reduciendo dependencias

Page 49: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

SOAPSOAPSOAPSOAP Los consumidores de Servicios Web Los consumidores de Servicios Web

pueden enviar y recibir mensajes XMLpueden enviar y recibir mensajes XML

WSDLWSDLWeb Services Web Services

Description LanguageDescription Language

WSDLWSDLWeb Services Web Services

Description LanguageDescription Language

Los Servicios Web se definen en términos Los Servicios Web se definen en términos de formatos y ordenación de mensajesde formatos y ordenación de mensajes

Construido empleando protocolos Construido empleando protocolos abiertos de Internetabiertos de Internet XML & HTTPXML & HTTP

Componente de aplicación programable, Componente de aplicación programable, accesible a través de protocolos estándar de accesible a través de protocolos estándar de InternetInternet

ProtocolosProtocolos InternetInternet Abiertos Abiertos

ServicioServicioWebWeb

UDDIUDDIUniversal Description, Universal Description,

Discovery, and IntegrationDiscovery, and Integration

UDDIUDDIUniversal Description, Universal Description,

Discovery, and IntegrationDiscovery, and Integration

Suministra un Directorio de Servicios en Suministra un Directorio de Servicios en La RedLa Red

Capa de NegocioASP.NET Web Services (I)

Page 50: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de NegocioASP.NET Web Services (II)

Servicios publicados

Registro UDDI

AplicaciónCliente

Descubrimientomediante

UDDI

Servicio 1Servicio 1

tModel

Servicio Web

Invocación / Acceso mediante SOAP

Transporte mediante HTTP / SMTP / …MensajeSOAP

Publicaciónmediante

UDDI

Descripción mediante WSDLXMLSchemaWSDL

Page 51: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de NegocioASP.NET Web Services (III)

Datos

Esquemas

Servicios

Invocaciones

Framework

Objetos

Clases

Métodos

Llamadas

Web

XML

XSD

WSDL

SOAP

Conceptos de Aplicación

.NET Framework facilitaUn mapeo bi-direccional

Page 52: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de NegocioASP.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

Page 53: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Servicio Web con ASP.NET Web Services

Page 54: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de NegocioASP.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

Page 55: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

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

Page 56: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de NegocioEnterprise 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

Page 57: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de NegocioTecnologí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 Orientación a mensajes, fiable, colas¿Cual usar?

Page 58: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Seguridad Fiabilidad Transaccional

Mensajería

XML

Meta

dato

s

TransportesTransportes

AplicacionesAplicaciones

Capa de NegocioArquitectura de Servicios Web y Microsoft

SOAPXSD

SOAPXSD

HTTPHTTP

UDDIWSDLUDDIWSDL

WS-SecurityWS-Security

WS-RoutingWS-Referral

DIME

WS-RoutingWS-Referral

DIME

TCPin-process

TCPin-process

WS-AddressingWS-AttachmentsWS-Addressing

WS-Attachments

WS-PolicyWS-Policy WS-TrustWS-SecureConversation

WS-TrustWS-SecureConversation

WS-ReliableMessagingWS-ReliableMessaging

WS-DiscoveryWS-MetadataExchange

WS-DiscoveryWS-MetadataExchange WS-BusinessActivity

WS-AtomicTransactionWS-BusinessActivity

WS-AtomicTransaction

MTOMWS-Eventing

MTOMWS-Eventing

WS-FederationWS-Federation

WS-InspectionWS-Inspection

WS-CoordinationWS-Transaction

WS-CoordinationWS-Transaction

ASP.NET Web Services.NET FX 1.0 / 1.1

ASP.NET Web Services.NET FX 1.0 / 1.1

WSE 1.0WSE 1.0 WSE 2.0WSE 2.0

“Indigo”(con “Longhorn”)

“Indigo”(con “Longhorn”)

Page 59: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

IndigoIndigo

ASMX + WSEASMX + WSE .NET Remoting.NET Remoting Enterprise ServicesEnterprise Services

Simple ConfigSimple ConfigInteroperableInteroperable

Service-OrientedService-Oriented

AttributesAttributesTransactionsTransactionsComponentsComponents

Broad VisionBroad VisionExtensibilityExtensibility

Object-OrientedObject-Oriented

Indigo será el superconjunto de las capacidades de Indigo será el superconjunto de las capacidades de las tecnologías de comunicaciones actualeslas tecnologías de comunicaciones actuales

System.MessagingSystem.Messaging

QueuingQueuingReliable MsgReliable MsgDurable MsgDurable Msg

Capa de Negocio“Indigo” y la unificación

Page 60: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de NegocioTecnologí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

Page 61: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de NegocioTecnologí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

Page 62: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Arquitectura de Referencia .NETCapa de Presentación

Capa de Datos

Capa de Presentación

Componentes de Interfaz de Usuario

Componentes de Proceso de Interfaz de Usuario

Capa de Negocio

Ciclo de Vida del software

Adm

inis

trac

ión

Ope

rativ

a

Com

uni

caci

ones

Seg

urid

ad

ServiciosRecursos

Usuarios

Page 63: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de PresentaciónASP.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

<tags><tags>

Form1.asp

códigocódigocódigocódigo

<tags><tags>

Form1.aspx

códigocódigo

Form1.aspx.vbForm1.aspx.vb

ASPASP ASP .NETASP .NET

Page 64: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de PresentaciónASP.NET: modelo de ejecución

FicheroFicheroASPXASPX

óóASMXASMX

PeticiónPetición

MotorMotor

ASP.NETASP.NETParsingParsing

Clase de Clase de página página

generadagenerada

RespuestaRespuesta

PeticiónPetición

InstanciarInstanciar

RespuestaRespuesta

ClaseClaseCode-Code-behindbehind

Clase Clase compiladacompilada

CompilarCompilar

GenerarGenerar

Page 65: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de PresentaciónASP.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

Page 66: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Aplicación Web conASP.NET Web Forms

Page 67: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de PresentaciónWindows 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, …

Page 68: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Cliente Rico

Cliente Ligero

“Smart Client”

Experienciade usuario rica

Desarrolloproductivo

Infierno delas DLLs

Instalacióncostosa

Instalaciónmínima/nula

Interactivo

Dependenciade la red

Facilidad dedespliegue

Experiencia de usuario pobre

Versionadocentralizado

Dificultad dedespliegue

Desarrollocomplejo

Capa de PresentaciónCliente Rico o Cliente Ligero: “Smart Client”

Page 69: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Aplicación Windows “Smart Client” con Windows Forms

Page 70: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

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

Page 71: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

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ónDespliegue de aplicaciones .NET

Page 72: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de PresentaciónDespliegue 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. Block

Page 73: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Web ServerWeb Server

Web Web ServerServer

Assembly Assembly CacheCache

HTTPHTTP

ClientClient

Windows AppWindows App

Form1Form1

Form2Form2

Capa de PresentaciónDespliegue de aplicaciones Windows

Page 74: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Web ServerWeb Server

Web Web ServerServer

Assembly Assembly CacheCache

HTTPHTTP

Chart.htmlChart.html

ChartEngine.DLLChartEngine.DLLCustomizer.DLLCustomizer.DLL

ClientClient

HTTPHTTP

Internet Explorer 5.5Internet Explorer 5.5

Charting.DLLCharting.DLL

Capa de PresentaciónDespliegue de controles Windows

Page 75: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Aplicación Windows“Smart Client” yel despliegue sin tocar

Page 76: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de PresentaciónEscenarios de Aplicaciones Móviles

Experiencia Web móvil

Ejemplo: titulares de noticias

Muchos tipos de dispositivos

Entrada de datos muy limitada

Uso breve e intermintente

Dispositivo Inteligente

Ejemplo: trabajo de campo

Funcionalidad online y offline

Integración de dispositivos

Interfaz de usuario enriquecida

Todo el potencial del PC

Ejemplo: gestión de conocimiento

Pantalla a tamaño completo

Aplicaciones compatibles PC

Anotación y edición enriquecidas

Page 77: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

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

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. Web móvilVentajas de apl. Web móvil Ventajas de apl. cliente inteligenteVentajas de apl. cliente inteligente

Capa de PresentaciónVentajas arquitectónicas de apl. móviles

Page 78: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Soporte multi-dispositivo complejoSoporte multi-dispositivo complejo• Diferentes dimensionesDiferentes dimensiones

• Diferentes característicasDiferentes características

• Diferentes estándares WebDiferentes estándares Web

Código Código LocalLocal

Página Web Página Web MóvilMóvil

Sistema Operativo del DispositivoSistema Operativo del Dispositivo

Navegador Web Navegador Web del Dispositivodel Dispositivo

Poca reutilizaciónPoca reutilización

• Diferentes plataformasDiferentes plataformas

• Diferentes APIsDiferentes APIs

• Diferentes lenguajesDiferentes lenguajes

Capa de PresentaciónRetos tradicionales de aplicaciones móviles

Page 79: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Código Código LocalLocal

Página Web Página Web MóvilMóvil

Sistema Operativo del DispositivoSistema Operativo del Dispositivo

Navegador Web Navegador Web del Dispositivodel Dispositivo

Controles Web Controles Web Móviles ASP.NETMóviles ASP.NET

.NET Compact .NET Compact FrameworkFramework

Extensiones para Extensiones para Dispositivos Dispositivos InteligentesInteligentes

Capa de PresentaciónSoluciones Microsoft para apl. móviles

Page 80: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Aplicaciones para dispositivosAplicación Web para dispositivos con ASP.NET Mobile Web Forms

Aplicación Windows “Smart Client” para dispositivos con Windows Forms de .NET Compact Framework

Page 81: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Capa de PresentaciónAmplio 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

Page 82: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Arquitectura de Referencia .NETArquitectura de Aplicación en capas lógicas

Servicios

Recursos

Componentes de Interfaz de Usuario

Componentes de Proceso de IU

Procesos de Negocio

Componentesde Negocio

Entidadesde Negocio

Componentes deAcceso a Recursos

Ciclo de Vida del software

Ad

min

istr

aci

ón

Op

erat

iva

Co

mu

nic

aci

on

es

Agentes Servicios

Agentes Servicios

Interfaces Servicios

Agentes Servicios

Interfaces Servicios

Seg

uri

dad

Arquitectura OrientadaA Servicios

Page 83: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Arquitectura de Referencia .NETEntornos de Despliegue Físico

Infrastructure VLAN Data & Management VLAN

DMZ

VPN

Page 84: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Entornos de Despliegue FísicoTecnologí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)

Page 85: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Interoperabilidad o MigraciónCoexistencia 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 Páginas .aspx y .asmx son procesadas por ASP.NET ASP y ASP.NET no comparten Session ni Application (aunque es

posible hacerlo)

Page 86: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Interoperabilidad o MigraciónInteroperabilidad 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)

P/Invoke: interoperabilidad código nativo Llamadas a puntos de

entrada estáticas en

DLLs de código nativo

desde código gestionado

Class EjemploPInvoke{ // Declarar la función externa no gestionada [sysimport(dll=“user32.dll”)] public static extern int MessageBoxA (int modal, string mensaje, string titulo, int opciones); public static void Main (string[] args) { // Invocar a la función externa no gestionada MessageA(0, “P/Invoke funciona!”, “Ejemplo P/Invoke”, 0); }}

Page 87: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Interoperabilidad o MigraciónActualizació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 Se soporta Late Binding con COM (Server.CreateObject / CreateObject) Asistente de migración automática ASP a ASP.NET [http://www.asp.net]

ADO ADO.NET: tecnología de acceso a datos en .NET ADO está soportado vía COM Interop DAO y RDO también están soportados vía COM Interop Data Binding a controles sólo soportado con ADO (no con DAO ni RDO)

Page 88: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Interoperabilidad o MigraciónActualizació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

Page 89: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

Interoperabilidad o MigraciónJava 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”)

Page 90: La plataforma.NET. Agenda.NET Framework y Visual Studio.NET.NET Framework Visual Studio.NET Guías para desarrollar mejor: Patterns & Practices Arquitectura.

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