La plataforma.NET Aurelio Porras [email protected] [email protected] División de...

84
La plataforma .NET La plataforma .NET Aurelio Porras Aurelio Porras [email protected] [email protected] División de Desarrolladores y Plataforma División de Desarrolladores y Plataforma Microsoft Ibérica Microsoft Ibérica

Transcript of La plataforma.NET Aurelio Porras [email protected] [email protected] División de...

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

La plataforma .NETLa plataforma .NET

Aurelio Porras Aurelio Porras [email protected]@microsoft.com

División de Desarrolladores y PlataformaDivisión de Desarrolladores y PlataformaMicrosoft IbéricaMicrosoft Ibérica

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

AgendaAgenda.NET Framework y Visual Studio .NET.NET Framework y Visual Studio .NET

.NET Framework.NET Framework

Visual Studio .NETVisual Studio .NET

Guías para desarrollar mejor: Patterns & Guías para desarrollar mejor: Patterns & PracticesPractices

Arquitectura de Referencia en .NETArquitectura de Referencia en .NETOpciones para la capa lógica de DatosOpciones para la capa lógica de Datos

Opciones para la capa lógica de NegocioOpciones para la capa lógica de Negocio

Opciones para la capa lógica de PresentaciónOpciones para la capa lógica de Presentación

Despliegue de las capas lógicas en niveles físicosDespliegue de las capas lógicas en niveles físicos

Interoperabilidad o MigraciónInteroperabilidad o Migración

Mejores prácticas en el Ciclo de Vida softwareMejores prácticas en el Ciclo de Vida software

RecursosRecursos

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

Microsoft .NETMicrosoft .NET

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

Arquitectura .NETArquitectura .NETRetos del desarrollo en MicrosoftRetos del desarrollo en Microsoft

Integración de aplicacionesIntegración de aplicaciones

Múltiples lenguajes de programaciónMúltiples lenguajes de programación

Múltiples modelos de programaciónMúltiples modelos de programación

Complejidad del desarrollo y despliegueComplejidad del desarrollo y despliegue

Seguridad no inherenteSeguridad no inherente

Preservar la inversión del desarrolladorPreservar la inversión del desarrollador

Elevar la productividad del Elevar la productividad del desarrolladordesarrollador

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

Arquitectura .NETArquitectura .NET.NET Framework y Visual Studio .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

Mobile Web Forms (MIT)Mobile Web Forms (MIT)

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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

.NET Framework.NET FrameworkCommon Language RuntimeCommon 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

Mobile Web Forms (MIT)Mobile Web Forms (MIT)

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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

.NET Framework.NET FrameworkCommon Language RuntimeCommon Language Runtime

El CLR es el entorno donde se ejecutan El CLR es el entorno donde se ejecutan todas las aplicaciones .NETtodas las aplicaciones .NET

El CLR determina para las El CLR determina para las aplicaciones .NET:aplicaciones .NET:

Un conjunto de tipos de datos: Un conjunto de tipos de datos: CTSCTS

Un lenguaje intermedio: Un lenguaje intermedio: CILCIL

Un empaquetado de código: Un empaquetado de código: AssemblyAssembly

El código que ejecuta el CLR se llama El código que ejecuta el CLR se llama código gestionadocódigo gestionado ( (managed codemanaged code))

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

Common Language RuntimeCommon Language RuntimeProceso del código gestionadoProceso 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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Common Language RuntimeCommon Language RuntimeAnatomía de un assemblyAnatomí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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Common Language RuntimeCommon Language RuntimeBeneficiosBeneficios

Entorno de ejecución robustoEntorno de ejecución robusto

Seguridad inherenteSeguridad inherente

Desarrollo simplificadoDesarrollo simplificado

Fácil gestión y despliegue de Fácil gestión y despliegue de aplicacionesaplicaciones

Preserva inversión de desarrolladorPreserva inversión de desarrollador

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

El CLREl CLR

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

.NET Framework.NET Framework

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

Mobile Web Forms (MIT)Mobile Web Forms (MIT)

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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

.NET Framework Class Library.NET Framework Class LibraryModelo de programación unificadoModelo 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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

.NET Framework Class Library.NET Framework Class LibrarySystem namespaceSystem 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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

.NET Framework Class Library.NET Framework Class LibraryBeneficiosBeneficios

Completa, Organizada, ExtensibleCompleta, Organizada, ExtensiblePara cualquier Arquitectura de AplicaciónPara cualquier Arquitectura de Aplicación

Acceso a DatosAcceso a DatosADO.NETADO.NETXMLXML

Lógica de NegocioLógica de NegocioEnterprise Services (COM+)Enterprise Services (COM+)Servicios Web XMLServicios Web XML.NET Remoting.NET Remoting

PresentaciónPresentaciónWindows FormsWindows FormsWeb Forms y Mobile Web FormsWeb Forms y Mobile Web Forms

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

.NET Framework.NET FrameworkLenguajes .NETLenguajes .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

Mobile Web Forms (MIT)Mobile Web Forms (MIT)

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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Lenguajes .NETLenguajes .NETCLSCLS

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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

.NET es .NET es neutralneutral con respecto al lenguaje con respecto al lenguaje

Microsoft suministra: Microsoft suministra: Visual C# .NET, Visual Basic .NET, Visual C+Visual C# .NET, Visual Basic .NET, Visual C++ .NET, + .NET,

JScript, Visual J# .NETJScript, Visual J# .NET

Terceros suministran:Terceros suministran:COBOL, RPG, APL, Perl, Pascal, Smalltalk, Eiffel, COBOL, RPG, APL, Perl, Pascal, Smalltalk, Eiffel, Fortran, Haskell, Mercury, Oberon, Oz, Python, Fortran, Haskell, Mercury, Oberon, Oz, Python, Scheme, Standard ML, … hasta Scheme, Standard ML, … hasta +26 lenguajes+26 lenguajes

Lenguajes .NETLenguajes .NETMúltiples lenguajes soportadosMúltiples lenguajes soportados

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

Lenguajes .NETLenguajes .NETSoporte multilenguajeSoporte 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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Lenguajes .NETLenguajes .NETSoporte multilenguajeSoporte 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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Lenguajes .NETLenguajes .NETSoporte multilenguajeSoporte 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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Independencia de las aplicaciones del Independencia de las aplicaciones del lenguaje de programación utilizadolenguaje de programación utilizado

Desarrollo de aplicaciones multi-Desarrollo de aplicaciones multi-lenguajelenguaje

Preserva inversión del desarrolladorPreserva inversión del desarrollador

Facilita adopción de .NETFacilita adopción de .NET

Lenguajes .NETLenguajes .NETBeneficiosBeneficios

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

MultilenguajeMultilenguaje

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

.NET Framework.NET FrameworkEstandarizaciónEstandarización

CLI y C# CLI y C# Common Language Infrastructure, Common Language Infrastructure, funcionalidad e interfaces del CLR y la Base funcionalidad e interfaces del CLR y la Base Class LibraryClass Library

Lenguaje de programación C#Lenguaje de programación C#

CLI y C# cedidos a organismos de CLI y C# cedidos a organismos de estandarización (ECMA, ISO, IEEE)estandarización (ECMA, ISO, IEEE)

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

.NET Compact Framework.NET Compact Framework

.NET Framework para dispositivos.NET Framework para dispositivos

Diseñado para dispositivos inteligentesDiseñado para dispositivos inteligentesPocket PC y Pocket PC Phone Edition (v1.1)Pocket PC y Pocket PC Phone Edition (v1.1)

Smart PhoneSmart Phone

Windows CEWindows CE

Amplia disponibilidad planeadaAmplia disponibilidad planeada

Mismo modelo de desarrollo que .NET Mismo modelo de desarrollo que .NET FrameworkFramework

Misma herramienta de desarrollo Visual Misma herramienta de desarrollo Visual Studio .NETStudio .NET

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

Visual Studio .NETVisual Studio .NETEntorno de Desarrollo IntegradoEntorno 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

Mobile Web Forms (MIT)Mobile Web Forms (MIT)

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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Visual Studio .NETVisual Studio .NETProductividadProductividad

ÚnicaÚnica herramienta de desarrollo para todo herramienta de desarrollo para todo

Plataforma Plataforma completacompleta para creación, pruebas e para creación, pruebas e integración de Servicios Webintegración de Servicios Web

Plataforma RAD de alta Plataforma RAD de alta productividadproductividadDiseñadores visuales de FormulariosDiseñadores visuales de Formularios

Diseñadores visuales de ComponentesDiseñadores visuales de Componentes

Depuración extremo a extremo, a través de Depuración extremo a extremo, a través de lenguajeslenguajes

Tecnología Tecnología IntelliSense IntelliSense y Ayuda Dinámicay Ayuda Dinámica

Extensible y AbiertoExtensible y Abierto

Page 28: La plataforma.NET Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma 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 DatosVisio for Enterprise ArchitectsVisio for Enterprise Architects

Patrones de ArquitecturaPatrones de ArquitecturaEnterprise Templates, Application Building BlocksEnterprise Templates, Application Building Blocks

Gestión de Versiones del códigoGestión de Versiones del códigoVisual SourceSafeVisual SourceSafe

Diseño, Codificación y DepuraciónDiseño, Codificación y DepuraciónVisual Studio: Designers, Editors, DebuggerVisual Studio: Designers, Editors, Debugger

Monitorización y OptimizaciónMonitorización y OptimizaciónVisual Studio AnalyzerVisual Studio Analyzer

PruebasPruebasApplication Center TestApplication Center Test

Despliegue e InstalaciónDespliegue e InstalaciónVisual Studio: Setup ProjectsVisual Studio: Setup Projects

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

Arquitectura .NETArquitectura .NETRetos del desarrolloRetos del desarrollo

Integración de Integración de aplicacionesaplicaciones

Servicios Web XMLServicios Web XML

Múltiples lenguajes de Múltiples lenguajes de programaciónprogramación

Múltiples modelos de Múltiples modelos de programaciónprogramación

Complejidad del desarrollo Complejidad del desarrollo y desplieguey despliegue

Seguridad no inherenteSeguridad no inherente

Preservar la inversión del Preservar la inversión del desarrolladordesarrollador

Elevar la productividad del Elevar la productividad del desarrolladordesarrollador

.NET Framework.NET Framework Common Language Common Language

RuntimeRuntime .NET Framework Class .NET Framework Class

LibraryLibrary Componentes .NET Componentes .NET

assembliesassemblies

.NET Framework.NET Framework Lenguajes .NETLenguajes .NET Interoperatividad COMInteroperatividad COM

Visual Studio .NETVisual Studio .NET

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

Patterns & Practices

ProvenBased 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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Patterns & Practices

Guías publicadas y próximasReference Architectures Reference Building Blocks 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

Patterns

.NET Enterprise Patterns

Data Patterns

Network Infrastructure Patterns

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

UI Components

UI Process Components

Data Access Components

Business Workflows

Business Components

Users

Business Entities

Service Agents

Service Interfaces

Data Sources

Services

Ope

rational Managem

ent

Security

Com

munication

Development LifecycleDevelopment Lifecycle

Disponibles

En desarrollo

ProfilingProfilingTeam DevTeam Dev DeploymentDeployment DebuggingDebugging .NET Ops.NET Ops

Persistent Asynch InvocationPersistent Asynch Invocation

CachingCaching

Service Data Aggregation & CachingService Data Aggregation & Caching

Rich ClientRich Client

User Interface ProcessUser Interface Process

Web ClientWeb Client

Configuration Configuration

Data Exchange & FormatData Exchange & Format

En

d-to

-en

d A

pp

licatio

n &

Se

rvice D

esig

nE

nd

-to-e

nd

Ap

plica

tion

& S

ervice

De

sign

Data AccessData Access

DNA InteropDNA Interop

AuthenticationAuthentication

InstrumentationInstrumentation

Exception MgmtException Mgmt

Application AuthZApplication AuthZ

Secure ASP.NETSecure ASP.NET

Patterns & PracticesArquitectura de Aplicaciones

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

Patterns & Practices

Disponibilidad

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

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

Distribuidas en CD-ROM Library en eventos

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

Arquitectura de Arquitectura de Referencia .NETReferencia .NETArquitectura de Aplicación en capas Arquitectura de Aplicación en capas lógicasló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

Arquitectura Tradicional3 capas lógicas

CAPA DE PRESENTACIÓN

CAPA DE NEGOCIO

CAPA DE DATOS

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

Arquitectura de Arquitectura de Aplicación .NETAplicación .NETCapas en aplicaciones y serviciosCapas en aplicaciones y servicios

1.1. Comunicación débilmente acopladaComunicación débilmente acoplada

2.2. Aplicaciones/Servicios con arquitectura en Aplicaciones/Servicios con arquitectura en capascapas

3.3. Algunos servicios pueden no tener IUAlgunos servicios pueden no tener IU

4.4. Cada servicio gestiona sus propios datosCada servicio gestiona sus propios datos

Orders

Credit Authorization

Courier

12

3

4

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

Arquitectura de Arquitectura de Referencia .NETReferencia .NETCapa de DatosCapa 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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Capa de DatosCapa de DatosXMLXML

Funcionalidad tradicionalFuncionalidad tradicionalAcceso en memoria: DOM niveles 1 y 2Acceso en memoria: DOM niveles 1 y 2Acceso secuencial: XmlReaderAcceso secuencial: XmlReaderBúsquedas: XPath, con posibilidad de Búsquedas: XPath, con posibilidad de compilacióncompilaciónDefinición y validación de esquemas XSDDefinición y validación de esquemas XSDTransformaciones XSLTTransformaciones XSLT

Funcionalidad en .NET: Serialización XMLFuncionalidad en .NET: Serialización XMLControlable con atributosControlable con atributosXmlSerializer: Instancias de objetos XmlSerializer: Instancias de objetos XMLXMLXSD.EXE: Clases XSD.EXE: Clases XSD XSD

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

XMLXMLSerialización 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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Serialización XMLSerialización XML

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

Capa de DatosCapa de DatosADO.NETADO.NET

Independiente de la fuente de datosIndependiente de la fuente de datosIDbConnectionIDbConnection

Conexión a cualquier base de datos con Conexión a cualquier base de datos con proveedores proveedores

Generales: .NET OLE DB y .NET ODBCGenerales: .NET OLE DB y .NET ODBC

Específicos: .NET SQL Client, .NET Oracle ClientEspecíficos: .NET SQL Client, .NET Oracle Client

Modelo conectado de acceso a datosModelo conectado de acceso a datosIDbCommand: sentencias SQL IDbCommand: sentencias SQL (parametrizables con IDbParameter), (parametrizables con IDbParameter), procedimientos almacenados procedimientos almacenados

IDbDataReader: para recuperar resultadosIDbDataReader: para recuperar resultados

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

Acceso conectado con Acceso conectado con ADO.NETADO.NET

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

Capa de DatosCapa de DatosADO.NET (II)ADO.NET (II)

Modelo Desconectado de acceso a datosModelo Desconectado de acceso a datosDatasetDataset

Modelo de datos en memoriaModelo de datos en memoria

Desconectado de la base de datos Desconectado de la base de datos

Mantiene memoria de los cambiosMantiene memoria de los cambios

Es serializable en XMLEs serializable en XML

DataAdapterDataAdapterRellenan un Dataset desde la fuente de datosRellenan un Dataset desde la fuente de datos

Concilian los cambios de un Dataset hacia la Concilian los cambios de un Dataset hacia la fuente de datosfuente de datos

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

Capa de DatosCapa de DatosADO.NET: Modelo desconectadoADO.NET: Modelo desconectado

Capa de negociosCapa de negocios

Capa deCapa dedatosdatos

Capa de presentaciónCapa de 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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Acceso desconectado Acceso desconectado con ADO.NETcon ADO.NET

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

Arquitectura de Arquitectura de Referencia .NETReferencia .NETCapa de NegocioCapa 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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Capa de NegocioCapa de NegocioConsumidores de componentes de Consumidores de componentes de NegocioNegocio

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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Capa de NegocioCapa de NegocioIntegrando servicios en un flujo de Integrando servicios en un flujo de procesoproceso

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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

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 NegocioCapa de NegocioServicios Web: reduciendo Servicios Web: reduciendo dependenciasdependencias

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

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 Componente de aplicación programable, accesible a través de programable, accesible a través de protocolos estándar de Internetprotocolos estándar de Internet

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 NegocioCapa de NegocioASP.NET Web ServicesASP.NET Web Services

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

Capa de NegocioCapa de NegocioASP.NET Web Services (II)ASP.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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Capa de NegocioCapa de NegocioASP.NET Web Services (III)ASP.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 Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Capa de NegocioCapa de NegocioASP.NET Web Services (IV)ASP.NET Web Services (IV)

Sencillo modelo de programaciónSencillo modelo de programaciónAplicación Web especial (.asmx), sin interfaz de Aplicación Web especial (.asmx), sin interfaz de usuariousuario

En el servidor: ASP.NET permite exponer En el servidor: ASP.NET permite exponer clases .NET como servicios webclases .NET como servicios web

Atributos [WebService], [WebMethod]Atributos [WebService], [WebMethod]Traduce peticiones SOAPTraduce peticiones SOAPGenera automáticamente WSDL y páginas de Genera automáticamente WSDL y páginas de pruebaprueba

En el cliente: .NET genera un proxy para En el cliente: .NET genera un proxy para comunicar con el servidorcomunicar con el servidor

Integrado con Visual StudioIntegrado con Visual Studio

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

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

Web ServicesWeb Services

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

Capa de NegocioCapa de Negocio.NET Remoting.NET Remoting

Acceso remoto a objetosAcceso remoto a objetos

3 modelos de acceso remoto:3 modelos de acceso remoto:Objetos activados por el cliente (similar a DCOM)Objetos activados por el cliente (similar a DCOM)

Objetos activados por el servidorObjetos activados por el servidorSingle-CallSingle-Call

SingletonSingleton

Hospedaje de objetos de acceso remoto:Hospedaje de objetos de acceso remoto:ASP.NETASP.NET

Aplicación dedicada .EXEAplicación dedicada .EXE

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

Capa de NegocioCapa de NegocioEnterprise Services y Enterprise Services y System.MessagingSystem.Messaging

Enterprise ServicesEnterprise ServicesModelo de programación simplificado para el uso Modelo de programación simplificado para el uso de servicios COM+de servicios COM+Servicios empresariales:Servicios empresariales:

TransaccionesTransaccionesInteroperabilidad XA Interoperabilidad XA Seguridad basada en rolesSeguridad basada en rolesPooling Pooling de objetosde objetosComponentes encoladosComponentes encolados……

System.MessagingSystem.MessagingModelo de programación para el uso de colas Modelo de programación para el uso de colas MSMQMSMQ

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

Arquitectura de Arquitectura de Referencia .NETReferencia .NETCapa de PresentaciónCapa 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 57: La plataforma.NET Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Capa de PresentaciónCapa de PresentaciónASP.NET Web Forms: modelo de ASP.NET Web Forms: modelo de códigocódigoModelo de programación similar a Modelo de programación similar a

WinFormsWinFormsRAD Visual: Formularios, Controles servidor, RAD Visual: Formularios, Controles servidor, EventosEventos

El código “está detrás”El código “está detrás”

Separación entre lógica y presentaciónSeparación entre lógica y presentación

<tags><tags>

Form1.asp

códigocódigocódigocódigo

<tags><tags>

Form1.aspx

códigocódigo

Form1.vbForm1.vb

ASPASP ASP .NETASP .NET

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

Capa de PresentaciónCapa de PresentaciónASP.NET: modelo de ejecució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 59: La plataforma.NET Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Capa de PresentaciónCapa de PresentaciónASP.NET: Sesión y CachéASP.NET: Sesión y Caché

SesiónSesiónSoporta granjas de servidoresSoporta granjas de servidores

No requiere obligatoriamente cookiesNo requiere obligatoriamente cookies

Mejor tolerancia a fallos (más opciones para guardar estado):Mejor tolerancia a fallos (más opciones para guardar estado):Servicio Windows en otro equipo (alta disponibilidad)Servicio Windows en otro equipo (alta disponibilidad)

SQL Server (alta disponibilidad + tolerancia a fallos)SQL Server (alta disponibilidad + tolerancia a fallos)

CachéCachéa nivel de páginaa nivel de página

Caché fragmentadoCaché fragmentado

Modos cliente y servidorModos cliente y servidor

Dependencias de caché (tiempo, fichero, consulta SQL)Dependencias de caché (tiempo, fichero, consulta SQL)

Cache APICache API

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

ASP.NET Web FormsASP.NET Web Forms

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

Capa de PresentaciónCapa de PresentaciónWindows FormsWindows Forms

Combinación de productividad Combinación de productividad formularios VB con potencia MFC C++formularios VB con potencia MFC C++

Herencia visual de controles y Herencia visual de controles y formulariosformularios

Soporte gráfico mejorado GDI+Soporte gráfico mejorado GDI+

Fácil enlazado de datos con ADO.NETFácil enlazado de datos con ADO.NET

Fácil consumo de Servicios Web XMLFácil consumo de Servicios Web XML

Controles Windows hospedados en IEControles Windows hospedados en IE

Impresión de formularios, ayuda, …Impresión de formularios, ayuda, …

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

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

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

Cliente Rico

Cliente Ligero

Cliente Inteligente

Experienciarica de usuario

Productividaddesarrollo

Infierno delas DLLs

Instalacióncostosa

Mínima/nulainstalación

Respuestarápida

Dependenciade la red

Facilidad dedespliegue

Experienciapobre de usuarioVersionado y

mantenimiento

Dificultad dedespliegue

Complejidad dedesarrollo

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

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

Opción 1: File Copy (XCOPY, FTP)Opción 1: File Copy (XCOPY, FTP)Instalación sin ejecutar nada en el clienteInstalación sin ejecutar nada en el cliente

Opción 2: paquetes WindowsOpción 2: paquetes Windows®® Installer InstallerIncluyendo o no .NET Framework RedistributableIncluyendo o no .NET Framework Redistributable

Ejecutar Setup en el cliente o desplegar con Systems Ejecutar Setup en el cliente o desplegar con Systems Management Server o IntelliMirrorManagement Server o IntelliMirror®®

Opción 3: Despliegue “sin tocar” desde Internet Opción 3: Despliegue “sin tocar” desde Internet Explorer (“No-Touch” Deployment)Explorer (“No-Touch” Deployment)

Descarga de Controles Windows en páginas WebDescarga de Controles Windows en páginas Web

Descarga de Aplicaciones Windows de IntranetDescarga de Aplicaciones Windows de Intranet

El código se mantiene y se versiona en un único punto: El código se mantiene y se versiona en un único punto: el el servidor de Intranetservidor de Intranet

Cliente Rico o Cliente LigeroCliente Rico o Cliente LigeroDespliegue de aplicacionesDespliegue de aplicaciones

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

Sin instalación ni desinstalaciónSin instalación ni desinstalación

Aplicaciones .NET son ligeras Aplicaciones .NET son ligeras ““Hello World” = ~3.5 KbHello World” = ~3.5 Kb

No se instala nada en la carpeta SystemNo se instala nada en la carpeta System

No se escribe en el Windows RegistryNo se escribe en el Windows Registry

Requerimientos del clienteRequerimientos del clienteWindows 98/Windows NTWindows 98/Windows NT®® 4.0 o superior 4.0 o superior

Internet Explorer 5.5 o superiorInternet Explorer 5.5 o superior

.NET Framework Redistributable (~20 MB).NET Framework Redistributable (~20 MB)

Cliente Rico o Cliente LigeroCliente Rico o Cliente LigeroDespliegue sin tocar (No-Touch Despliegue sin tocar (No-Touch Deployment)Deployment)

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

Web ServerWeb Server

Web Web ServerServer

Assembly Assembly CacheCache

HTTPHTTP

ClientClient

Windows AppWindows App

Form1Form1

Form2Form2

Cliente Rico o Cliente LigeroCliente Rico o Cliente LigeroDespliegue de aplicaciones WindowsDespliegue de aplicaciones Windows

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

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

Cliente Rico o Cliente LigeroCliente Rico o Cliente LigeroDespliegue de controles WindowsDespliegue de controles Windows

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

Windows FormsWindows FormsSmart Client y el despliegue sin tocarSmart Client y el despliegue sin tocar

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

Escenarios de Aplicaciones Escenarios de Aplicaciones MóvilesMóvilesVisión generalVisión general

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

Servicios Web XMLServicios Web XML

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

Aplicaciones multi-dispositivo difícil:Aplicaciones multi-dispositivo difícil:• 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

Escenarios de aplicaciones Escenarios de aplicaciones móvilesmóvilesRetos tradicionalesRetos tradicionales

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

Operativa “off-line”Operativa “off-line”Ejecución LocalEjecución LocalDatos LocalesDatos Locales

IU enriquecidoIU enriquecidoMultimediaMultimediaIU elaboradoIU elaborado

Integración con Integración con elementos dispositivoelementos dispositivo

Lectores tarjetasLectores tarjetasLectores código Lectores código barrasbarrasReceptores GPSReceptores GPSTelefonía / mensajeríaTelefonía / mensajería

Presentación Presentación adaptableadaptable

Soporte dinámico de Soporte dinámico de múltiples navegadores múltiples navegadores de dispositivosde dispositivosSoporte navegador en Soporte navegador en dispositivos bajo costedispositivos bajo coste

Código base únicoCódigo base únicoMantenimiento Mantenimiento simplificadosimplificadoExtensión natural de Extensión natural de las apl. Web existenteslas apl. Web existentes

Ejecución en servidorEjecución en servidorSin instalación en Sin instalación en clienteclienteSin ejecució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

Escenarios de aplicaciones Escenarios de aplicaciones móvilesmóvilesVentajas arquitectónicasVentajas arquitectónicas

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

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

Escenarios de aplicaciones Escenarios de aplicaciones móviles móviles Desarrollo Microsoft para Desarrollo Microsoft para dispositivos dispositivos

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

Capa de PresentaciónCapa de PresentaciónDesarrollo para dispositivosDesarrollo para dispositivos

Desarrollo del lado del clienteDesarrollo del lado del clienteWindows Forms de .NET Compact Windows Forms de .NET Compact FrameworkFramework

Desarrollo del lado del servidorDesarrollo del lado del servidorASP.NET Mobile Web FormsASP.NET Mobile Web Forms

Soporte multi-cliente automáticoSoporte multi-cliente automáticoWML, HTML 3.2, cHTML, XHTML, XMLWML, HTML 3.2, cHTML, XHTML, XML

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

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

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

Arquitectura de Arquitectura de Referencia .NETReferencia .NETArquitectura de Aplicación en capas Arquitectura de Aplicación en capas lógicasló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 76: La plataforma.NET Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Arquitectura de Arquitectura de Referencia .NETReferencia .NETEntornos de Despliegue FísicoEntornos de Despliegue Físico

Infrastructure VLAN Data & Management VLAN

DMZ

VPN

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

Entornos de Despliegue FísicoEntornos de Despliegue FísicoTecnologías de Clustering MicrosoftTecnologías de Clustering Microsoft

Network Load BalancingNetwork Load Balancing ( (NLBNLB))Balancea tráfico TCP/IP entre múltiples Balancea tráfico TCP/IP entre múltiples servidoresservidores

Hasta 32 nodosHasta 32 nodos

Proporciona Proporciona alta disponibilidadalta disponibilidad y y escalabilidadescalabilidad

Microsoft Cluster Service Microsoft Cluster Service (MSCS)(MSCS)Tolerancia a fallos (Tolerancia a fallos (failoverfailover))

2 ó 4 nodos2 ó 4 nodos

Proporciona Proporciona alta disponibilidadalta disponibilidad

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

Interoperabilidad o MigraciónInteroperabilidad o MigraciónInteroperabilidad con COM y código Interoperabilidad con COM y código nativonativoCOM Interop bidireccionalCOM Interop bidireccional

Utilizar componentes COM desde .NETUtilizar componentes COM desde .NETTlbImp.exeTlbImp.exe: genera un proxy .NET de un componente COM (: genera un proxy .NET de un componente COM (early bindingearly binding))

AxImp.exeAxImp.exe: genera proxy .NET de un control ActiveX: genera proxy .NET de un control ActiveX

System.ReflectionSystem.Reflection ( (late bindinglate binding))

Utilizar componentes .NET desde COMUtilizar componentes .NET desde COMTlbExp.exeTlbExp.exe: genera una librería de tipos de un componente .NET (: genera una librería de tipos de un componente .NET (early early bindingbinding))

RegAsm.exeRegAsm.exe: registra un componente .NET en el registro del sistema (: registra un componente .NET en el registro del sistema (late late bindingbinding))

Platform InvokePlatform Invoke (P/Invoke) (P/Invoke)Llamadas a puntos de Llamadas a puntos de

entrada estáticas en entrada estáticas en

DLLs de código nativoDLLs de código nativo

desde código gestionadodesde 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 79: La plataforma.NET Aurelio Porras aureliop@microsoft.com aureliop@microsoft.com División de Desarrolladores y Plataforma Microsoft Ibérica.

Interoperabilidad o MigraciónInteroperabilidad o MigraciónActualizar de DNA a .NETActualizar de DNA a .NET

Visual C++Visual C++Visual C++ .NETVisual C++ .NET: MFC, ATL y extensiones manejadas .NET: MFC, ATL y extensiones manejadas .NET

Visual BasicVisual BasicVisual Basic .NETVisual Basic .NET: asistente de migración automática en : asistente de migración automática en VS.NETVS.NET

ASPASPASP.NETASP.NET: Compatible casi al 100% con ASP: Compatible casi al 100% con ASPJScript no sufre cambios, VBScript se reemplaza por Visual JScript no sufre cambios, VBScript se reemplaza por Visual Basic.NETBasic.NETSe soporta Late Binding con COM (Server.CreateObject / Se soporta Late Binding con COM (Server.CreateObject / CreateObject)CreateObject)Posibilidad de ejecución ASP y ASP.NET en la misma máquinaPosibilidad de ejecución ASP y ASP.NET en la misma máquinaGuía de migración con recomendaciones y mejores prácticasGuía de migración con recomendaciones y mejores prácticasAsistente de migración automática (versión beta) en Asistente de migración automática (versión beta) en www.asp.netwww.asp.net

ADOADOADO.NETADO.NET es la tecnología de acceso a datos en .NET es la tecnología de acceso a datos en .NETADO está soportado vía COM InteropADO está soportado vía COM InteropRDO y DAO también están soportados vía COM InteropRDO y DAO también están soportados vía COM InteropData Binding a controles sólo soportado en ADO (no RDO ni Data Binding a controles sólo soportado en ADO (no RDO ni DAO)DAO)

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

Migración de ASP a ASP.NETMigración de ASP a ASP.NETEstrategia de MigraciónEstrategia de Migración

Coexistencia de DNA y .NETCoexistencia de DNA y .NETComponentes COM y Componentes .NETComponentes COM y Componentes .NET

Interoperabilidad bidireccional COMInteroperabilidad bidireccional COM.NET vía COM .NET vía COM InteropInterop

ASP y ASP.NET en el mismo IISASP y ASP.NET en el mismo IISPermite desarrollar nuevas páginas y aplicaciones Web Permite desarrollar nuevas páginas y aplicaciones Web ASP.NETASP.NET

No comparten Session ni Application… pero ¿pueden?No comparten Session ni Application… pero ¿pueden?

¿Cómo migro de DNA a .NET? una estrategia:¿Cómo migro de DNA a .NET? una estrategia:1º migración de código1º migración de código: herramientas : herramientas automáticas de migración sintáctica que hace gran automáticas de migración sintáctica que hace gran parte del trabajoparte del trabajo

2º migración de componentes2º migración de componentes: manualmente, : manualmente, usar componentes .NET en lugar de componentes usar componentes .NET en lugar de componentes COMCOM

3º migración de conceptos3º migración de conceptos: refactorización, : refactorización, arquitecturaarquitectura

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

RecursosRecursos

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

http://www.asp.nethttp://www.asp.net

Desarrollo Windows “Smart Client”Desarrollo Windows “Smart Client”http://www.windowsforms.nethttp://www.windowsforms.net

Servicios Web de MicrosoftServicios Web de Microsofthttp://www.microsoft.com/webserviceshttp://www.microsoft.com/webservices

MSDN Online, “El Recurso” del desarrolladorMSDN Online, “El Recurso” del desarrolladorhttp://www.microsoft.com/Spanish/msdn/spainhttp://www.microsoft.com/Spanish/msdn/spainhttp://http://msdn.microsoft.commsdn.microsoft.com

Comunidad de GotDotNetComunidad de GotDotNethttp://http://www.gotdotnet.comwww.gotdotnet.com

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

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

¿Te gusta la programación? ¿Te gusta el cine? ¿Lo tuyo escrear sitios web? Pues esta es tu oportunidad de hacerlo yllevarte premios ¡de película!

Empresas de alojamiento web patrocinadoras:

Patrocinan:

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.

Un concurso

Más información en www.microsoft.com/spanish/msdn/concuasp

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

¡Adéntrate!

Amsterdam, Holanda29 junio – 2 julio

El evento definitivo de Microsoft en Europa sobre creación, implantación, protección y

gestión de soluciones conectadas

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

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