la plataforma.net david carmona [email protected] microsoft ibérica

50
La plataforma .NET La plataforma .NET David Carmona David Carmona [email protected] Microsoft Microsoft Ibérica Ibérica

Upload: theresa-barcena

Post on 18-Apr-2015

10 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

La plataforma .NETLa plataforma .NET

David CarmonaDavid [email protected] Ibérica Ibérica

Page 2: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

AgendaAgendaEstrategia y arquitectura .NETEstrategia y arquitectura .NETLa plataforma .NETLa plataforma .NET Interoperabilidad y migraciónInteroperabilidad y migraciónEnterprise ServersEnterprise ServersMicrosoft ServicesMicrosoft Services

Page 3: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Estrategia y Estrategia y arquitectura .NETarquitectura .NET

Page 4: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Primera generación Primera generación

Servicios SOServicios SO

LógicaLógicaClienteCliente

Capa de Capa de negocionegocio

Modelo cliente / servidor. El Modelo cliente / servidor. El servidor de datos se enfocaba servidor de datos se enfocaba a la conexión.a la conexión.

Page 5: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Segunda generaciónSegunda generación

Cliente ricoCliente ricoServidores deServidores dedatos, hostsdatos, hosts

ServiciosServiciosSOSO

ServiciosServiciosSOSO

Capa deCapa denegocionegocio

Capa deCapa denegocionegocio

BrowsersBrowsers

Page 6: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Generación .NETGeneración .NET

En cualquier sitio,En cualquier sitio, a cualquier hora,a cualquier hora,

en cualquier dispositivoen cualquier dispositivo

Servicios web Servicios web disponibles disponibles globalmenteglobalmente

OS OS ServicesServices

BizBizTier LogicTier Logic

BizBizTier LogicTier Logic

Servicios SOServicios SOServicios SOServicios SO

Otros serviciosOtros servicios

ServiciosServiciosbuilding blocksbuilding blocks

XMLXML

XMLXML

XMLXML

OtrosOtrosserviciosservicios

XMLXML

HTMLHTML

XMLXML

XMLXML

BrowsersBrowsersestándarestándar

DispositivosDispositivosmóvilesmóviles

ClientesClientesricosricos

Capa de negocioCapa de negocioCapa de negocioCapa de negocio

Web ServicesWeb ServicesWeb ServicesWeb Services

Page 7: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

La plataforma .NETLa plataforma .NET

Page 8: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

La plataforma .NETLa plataforma .NET

Base Class LibraryBase Class Library

Common Language SpecificationCommon Language Specification

Common Language RuntimeCommon Language Runtime

ADO.NET, XML, Enterprise ServicesADO.NET, XML, Enterprise Services

VBVB C++C++ C#C#

Visu

al Stu

dio

.NE

TV

isual S

tud

io.N

ET

ASP.NET: Web ServicesASP.NET: Web Servicesand Web Formsand Web Forms

JScriptJScript ……

WindowsWindowsFormsForms

Page 9: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

Common Language SpecificationCommon Language Specification

Common Language RuntimeCommon Language Runtime

ADO.NET, XML, Enterprise ServicesADO.NET, XML, Enterprise Services

VBVB C++C++ C#C#

Visu

al Stu

dio

.NE

TV

isual S

tud

io.N

ET

ASP.NET: Web ServicesASP.NET: Web Servicesand Web Formsand Web Forms

JScriptJScript ……

WindowsWindowsFormsForms

Page 10: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Common Language Runtime Common Language Runtime CompilaciónCompilación

Código fuenteCódigo fuente

C++, C#, VB o C++, C#, VB o cualquier otro cualquier otro lenguaje .NETlenguaje .NET

CompilaciónCompilaciónAssemblyAssembly

DLL o EXEDLL o EXE

(Strong name opcional)(Strong name opcional)

Page 11: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Common Language Runtime Common Language Runtime AssembliesAssemblies

Cabecera PE / COFFCabecera PE / COFF

Cabecera CLRCabecera CLR

Código y recursos nativosCódigo y recursos nativos

Datos CLRDatos CLR

MetadatosMetadatosMetadatosMetadatos

RecursosRecursosRecursosRecursos

Código ILCódigo ILCódigo ILCódigo IL

Page 12: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Common Language Runtime Common Language Runtime EjecuciónEjecución

VBVBVBVB

VCVCVCVC

............

ILILILILNativeNativeCodeCode

NativeNativeCodeCode

““Econo”-JITEcono”-JITCompilerCompiler

““Econo”-JITEcono”-JITCompilerCompiler

Standard JITStandard JITCompilerCompiler

Standard JITStandard JITCompilerCompiler

NativeNativeCodeCode

NativeNativeCodeCode

Install timeInstall timeCode GenCode Gen

Install timeInstall timeCode GenCode Gen

CLRCLR VerificaciónVerificaciónVerificaciónVerificación

Page 13: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Common Language Runtime Common Language Runtime ¿Por qué verificación?¿Por qué verificación?

Application DomainsApplication Domains Aislamiento real entre aplicaciones dentro Aislamiento real entre aplicaciones dentro

de un mismo procesode un mismo proceso Sólo código 100% type safe y manejadoSólo código 100% type safe y manejado

Proceso Nativo 1Proceso Nativo 1

Application Application Domain 1Domain 1

Application Application Domain 1Domain 1

Application Application Domain 2Domain 2

Application Application Domain 2Domain 2

Proceso Nativo 2Proceso Nativo 2

Application Application Domain 1Domain 1

Application Application Domain 1Domain 1

Page 14: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

El CLREl CLR

Page 15: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Lenguajes .NETLenguajes .NET

Base Class LibraryBase Class Library

Common Language SpecificationCommon Language Specification

Common Language RuntimeCommon Language Runtime

ADO.NET, XML, Enterprise ServicesADO.NET, XML, Enterprise Services

VBVB C++C++ C#C#

Visu

al Stu

dio

.NE

TV

isual S

tud

io.N

ET

ASP.NET: Web ServicesASP.NET: Web Servicesand Web Formsand Web Forms

JScriptJScript ……

WindowsWindowsFormsForms

Page 16: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Requisitos mínimos para compiladores Requisitos mínimos para compiladores de lenguajes .NETde lenguajes .NET Conjunto mínimo de funcionalidad que Conjunto mínimo de funcionalidad que

deben implementardeben implementar

Su objetivo es facilitar la Su objetivo es facilitar la interoperabilidad entre lenguajesinteroperabilidad entre lenguajes

Lenguajes .NET Lenguajes .NET CLS (Common Language Specification)CLS (Common Language Specification)

Page 17: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Lenguajes .NET Lenguajes .NET CLS (II)CLS (II)

COBOLCOBOL C++C++

CLRCLR

MicrosoftMicrosoftManaged Managed C++C++ExtensionsExtensions

FujitsuFujitsuCOBOLCOBOLExtensionsExtensions

CLS

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

Page 18: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Lenguajes .NET Lenguajes .NET ComparativaComparativa

LenguajeLenguaje Código Código manejadomanejado

Código Código type-safetype-safe

Llamadas a Llamadas a código no código no manejadomanejado

Código no Código no manejadomanejado

VB.NETVB.NET SíSí SiempreSiempre SíSí NoNo

C#C# SíSí OpcionalOpcional SíSí NoNo

C++C++ SíSí NuncaNunca SíSí SíSí

J#J# SíSí SiempreSiempre SíSí NoNo

OtrosOtrosAPL, Cobol, Component Pascal, Delta Forth, compiler, Eiffel, Fortran, Haskell, Mercury, Oberon, PERL, Python, Salford FTN95, Scheme SmallScript, Standard ML ,TMT Pascal, F#, AVR, ASML

Page 19: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

MultilenguajeMultilenguaje

Page 20: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Librería de clasesLibrería de clases

Base Class LibraryBase Class Library

Common Language SpecificationCommon Language Specification

Common Language RuntimeCommon Language Runtime

ADO.NET, XML, Enterprise ServicesADO.NET, XML, Enterprise Services

VBVB C++C++ C#C#

Visu

al Stu

dio

.NE

TV

isual S

tud

io.N

ET

ASP.NET: Web ServicesASP.NET: Web Servicesand Web Formsand Web Forms

JScriptJScript ……

WindowsWindowsFormsForms

Page 21: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Implementadas en el propio CLRImplementadas en el propio CLR Hilos, sincronizaciónHilos, sincronización AppDomainsAppDomains ……

Implementadas en código manejadoImplementadas en código manejado FicherosFicheros RedRed CriptografíaCriptografía ……

Librería de clases Librería de clases Base Class LibraryBase Class Library Base Class LibraryBase Class Library

Page 22: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Acceso a cualquier base de datosAcceso a cualquier base de datos OLEDB, ODBC, SQL Server, Oracle…OLEDB, ODBC, SQL Server, Oracle…

Caché de datos en memoria (Dataset)Caché de datos en memoria (Dataset) Facilita aplicaciones desconectadasFacilita aplicaciones desconectadas Serializable en XMLSerializable en XML Definidos por XSDDefinidos por XSD

Librería de clases Librería de clases ADO.NETADO.NET ADO.NETADO.NET

Page 23: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Acceso en memoriaAcceso en memoria DOM niveles 1 y 2DOM niveles 1 y 2

Acceso secuencialAcceso secuencial XmlReaderXmlReader

XPathXPath Con posibilidad de compilaciónCon posibilidad de compilación

Definición y validación de esquemas XSDDefinición y validación de esquemas XSDTransformaciones XSLTTransformaciones XSLT

Librería de clases Librería de clases XMLXML XMLXML

Page 24: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Todos los tipos .NET son serializables en Todos los tipos .NET son serializables en XMLXML Controlable con atributosControlable con atributos

HerramientasHerramientas XmlSerializerXmlSerializer

Serializa instancias en XMLSerializa instancias en XML Deserializa instancias desde XMLDeserializa instancias desde XML

Xsd.exeXsd.exe Genera clases a partir de un XSDGenera clases a partir de un XSD Genera un XSD a partir de una claseGenera un XSD a partir de una clase

Librería de clases Librería de clases Serialización XMLSerialización XML XMLXML

Page 25: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

.NET y XML.NET y XML

Librería de clases Librería de clases Serialización XML (II)Serialización XML (II) XMLXML

XSDXSDXSDXSDXMLXMLXMLXML

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

Xsd.exeXsd.exe

Xsd.exeXsd.exe

ValidatorValidator

XmlSerializerXmlSerializer

Page 26: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Serialización XMLSerialización XML

Page 27: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Acceso a servicios COM+Acceso a servicios COM+ TransaccionesTransacciones Object poolingObject pooling Activación JITActivación JIT Queued componentsQueued components Eventos poco acopladosEventos poco acoplados ……

Fácil desarrollo con atributosFácil desarrollo con atributos

Librería de clases Librería de clases Enterprise ServicesEnterprise Services Enterprise ServicesEnterprise Services

Page 28: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Librería de clasesLibrería de clases

Base Class LibraryBase Class Library

Common Language SpecificationCommon Language Specification

Common Language RuntimeCommon Language Runtime

ADO.NET, XML, Enterprise ServicesADO.NET, XML, Enterprise Services

VBVB C++C++ C#C#

Visu

al Stu

dio

.NE

TV

isual S

tud

io.N

ET

ASP.NET: Web ServicesASP.NET: Web Servicesand Web Formsand Web Forms

JScriptJScript ……

WindowsWindowsFormsForms

Page 29: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Desarrollo de Desarrollo de smart clientssmart clients Potencia WindowsPotencia Windows Deployment Web con poca huellaDeployment Web con poca huella AutoactualizaciónAutoactualización Consumo Web ServicesConsumo Web Services

Librería de clases Librería de clases Windows FormsWindows Forms Windows FormsWindows Forms

Page 30: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Máxima productividadMáxima productividad Enlazado a ADO.NETEnlazado a ADO.NET Diseño visual muy potenteDiseño visual muy potente

Características WindowsCaracterísticas Windows Gráficos GDI+Gráficos GDI+ AccesibilidadAccesibilidad ImpresiónImpresión AyudaAyuda

Librería de clases Librería de clases Windows Forms (II)Windows Forms (II)

Page 31: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

ADO.NET y smart clientsADO.NET y smart clients

Page 32: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Librería de clasesLibrería de clases

Base Class LibraryBase Class Library

Common Language SpecificationCommon Language Specification

Common Language RuntimeCommon Language Runtime

ADO.NET, XML, Enterprise ServicesADO.NET, XML, Enterprise Services

VBVB C++C++ C#C#

Visu

al Stu

dio

.NE

TV

isual S

tud

io.N

ET

ASP.NET: Web ServicesASP.NET: Web Servicesand Web Formsand Web Forms

JScriptJScript ……

WindowsWindowsFormsForms

Page 33: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Modelo de programación similar a Modelo de programación similar a WinFormsWinForms RAD visualRAD visual ComponentesComponentes

DiseñadoresDiseñadores Propiedades, eventos, estadoPropiedades, eventos, estado

Enlazado a datosEnlazado a datos

Separación lógica - presentaciónSeparación lógica - presentación

Librería de clases Librería de clases ASP.NETASP.NET ASP.NET Web FormsASP.NET Web Forms

Page 34: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Características avanzadasCaracterísticas avanzadas CompilaciónCompilación Soporte múltiples browsers automáticoSoporte múltiples browsers automático Soporte dispositivos móvilesSoporte dispositivos móviles Sesión distribuidaSesión distribuida CachéCaché

De páginasDe páginas De controlesDe controles De datosDe datos

Librería de clases Librería de clases ASP.NETASP.NET ASP.NET Web FormsASP.NET Web Forms

Page 35: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

ASP.NETASP.NET

Page 36: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

¿Qué son?¿Qué son? ““Hosting” de aplicaciones y servicios a Hosting” de aplicaciones y servicios a

través de Internettravés de Internet Una infraestructura de integración de Una infraestructura de integración de

aplicacionesaplicaciones Una plataforma software adecuada para Una plataforma software adecuada para

internetinternet

Librería de clases Librería de clases Web ServicesWeb Services ASP.NET Web ServicesASP.NET Web Services

Page 37: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Librería de clases Librería de clases Web Services (II)Web Services (II) ASP.NET Web ServicesASP.NET Web Services

Servicios publicados

Registro UDDI

AplicaciónCliente

Descubrimientomediante

UDDI

Servicio 1Servicio 1

tModel

Servicio Web

Invocación/Acceso mediante SOAPTransporte mediante HTTP / SMTP / WAP Mensaje

SOAP

Publicaciónmediante

UDDI

Descripción mediante WSDLXMLSchemaWSDL

Page 38: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Librería de clases Librería de clases Web Services (III)Web Services (III) ASP.NET Web ServicesASP.NET Web Services

ASP.NET permite exponer clases .NET ASP.NET permite exponer clases .NET como servicios webcomo servicios web Atributos [WebService], [WebMethod]Atributos [WebService], [WebMethod] Traduce peticiones SOAPTraduce peticiones SOAP Genera automáticamente WSDLGenera automáticamente WSDL

.NET genera un proxy al otro extremo.NET genera un proxy al otro extremo Integrado con Visual StudioIntegrado con Visual Studio

La serialización XML hace el restoLa serialización XML hace el resto

Page 39: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Web servicesWeb services

Page 40: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Visual Studio .NETVisual Studio .NET

Base Class LibraryBase Class Library

Common Language SpecificationCommon Language Specification

Common Language RuntimeCommon Language Runtime

ADO.NET, XML, Enterprise ServicesADO.NET, XML, Enterprise Services

VBVB C++C++ C#C#

Visu

al Stu

dio

.NE

TV

isual S

tud

io.N

ET

ASP.NET: Web ServicesASP.NET: Web Servicesand Web Formsand Web Forms

JScriptJScript ……

WindowsWindowsFormsForms

Page 41: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Visual Studio .NETVisual Studio .NET

UnaUna herramienta para herramienta para todotodoPlataforma RAD de alta Plataforma RAD de alta productividadproductividad

Diseñadores visuales win, web, mobileDiseñadores visuales win, web, mobile Editores de entidades, XSD, XMLEditores de entidades, XSD, XML Desarrollo bases de datosDesarrollo bases de datos Depuración extremo a extremoDepuración extremo a extremo Tecnología Tecnología IntelliSense IntelliSense y Ayuda Dinámicay Ayuda Dinámica

Extensible y AbiertoExtensible y Abierto

Page 42: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Visual Studio .NETVisual Studio .NETPara todo el ciclo de vidaPara todo el ciclo de vida

Modelado de sistemas y bases de datosModelado de sistemas y bases de datosPatrones de arquitecturaPatrones de arquitecturaVersionado de códigoVersionado de códigoMonitorización y optimizaciónMonitorización y optimizaciónSimulación de cargaSimulación de cargaDespliegue e instalaciónDespliegue e instalación

Page 43: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Interoperabilidad y Interoperabilidad y migraciónmigración

Page 44: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

DNA y .NETDNA y .NETInteroperabilidadInteroperabilidad

Objetivos de .NETObjetivos de .NET Reaprovechar conocimientos desarrolladorReaprovechar conocimientos desarrollador Conservar inversión desarrolloConservar inversión desarrollo

Presentación

Negocio

Datos

ASPASP

COM+COM+

ADOADO

Aplicación mixtaAplicación mixta

Presentación

Negocio

Datos

ASP.NETASP.NET

Enterprise ServicesEnterprise Services

ADO.NETADO.NET

Page 45: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

DNA y .NETDNA y .NETMigraciónMigración

Migración de códigoMigración de código Visual Basic 6.0 Visual Basic 6.0 Visual Basic .NET Visual Basic .NET

Asistente de migraciónAsistente de migración

Visual C++ Visual C++ Visual C++ .NET Visual C++ .NET CompatibleCompatible

ASP ASP ASP.NET ASP.NET Asistente de migración Asistente de migración

Page 46: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

DNA y .NETDNA y .NETMigración (II)Migración (II)

Migración de conceptosMigración de conceptos Utilizar otros patrones de diseño Utilizar otros patrones de diseño EjemplosEjemplos

Separación HTML – código de presentaciónSeparación HTML – código de presentación Controles ASP.NETControles ASP.NET Entidades de negocio serializables en BDEntidades de negocio serializables en BD Acceso desconectadoAcceso desconectado Acceso por servicio webAcceso por servicio web

Page 47: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Migración ASP Migración ASP ASP.NET ASP.NET

Page 48: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Otras tecnologíasOtras tecnologíasJavaJava

Visual J#Visual J# Sintaxis y clases Java en .NETSintaxis y clases Java en .NET

Compatible JDK 1.1.4Compatible JDK 1.1.4

Asistente de migración JavaAsistente de migración Java Java + JDK Java + JDK C# + .NET Framework C# + .NET Framework Servlets, JSPs, AWT, appletsServlets, JSPs, AWT, applets

InteroperabilidadInteroperabilidad Vía servicios web o recurso compartidoVía servicios web o recurso compartido

Page 49: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

Otras tecnologíasOtras tecnologías

PHPPHP Herramienta de migraciónHerramienta de migración

HostHost Host Integration ServerHost Integration Server

Acceso a datosAcceso a datos TransaccionesTransacciones Single Log-onSingle Log-on

Page 50: La plataforma.NET David Carmona davidcsa@microsoft.com Microsoft Ibérica

© 2004 Microsoft Corporation. All rights reserved.© 2004 Microsoft Corporation. All rights reserved.