Download Visual Studio .NET - Microsoft Center

Document related concepts
Transcript
La plataforma .NET
Aurelio Porras [email protected]
División de Desarrolladores y Plataforma
Microsoft Ibérica
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
Mejores prácticas en el Ciclo de Vida software
Recursos
Microsoft .NET
Arquitectura .NET
Retos del desarrollo en Microsoft
Integración de aplicaciones
Múltiples lenguajes de programación
Múltiples modelos de programación
Complejidad del desarrollo y despliegue
Seguridad no inherente
Preservar la inversión del desarrollador
Elevar la productividad del desarrollador
Arquitectura .NET
.NET Framework y Visual Studio .NET
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Mobile Web Forms (MIT)
Windows
Forms
XML, ADO .NET, Enterprise Services
Base Class Library
Common Language Runtime
Sistema Operativo
Visual Studio .NET
ASP .NET
.NET Framework
Common Language Runtime
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Mobile Web Forms (MIT)
Windows
Forms
XML, ADO .NET, Enterprise Services
Base Class Library
Common Language Runtime
Sistema Operativo
Visual Studio .NET
ASP .NET
.NET Framework
Common Language Runtime
El CLR es el entorno donde se ejecutan todas
las aplicaciones .NET
El CLR determina para las aplicaciones .NET:
Un conjunto de tipos de datos: CTS
Un lenguaje intermedio: CIL
Un empaquetado de código: Assembly
El código que ejecuta el CLR se llama código
gestionado (managed code)
Common Language Runtime
Proceso del código gestionado
Compilación
Código
Fuente
Código
Nativo
Compilador
lenguaje
Compilador
JIT
Ejecución
Código (IL)
Assembly
Metadatos
En instalación o la
primera vez que se
llama a un método
Common Language Runtime
Anatomía de un assembly
Manifesto
Código IL
Tipo X
Código IL
Tipo Y
Código IL
Tipo Z
Metadatos para Tipos X, Y y Z
Módulo 1
app1.dll
Assembly A
Manifesto
Código IL
Tipo P
Código IL
Tipo Q
Metadatos Tipos P y Q
Módulo 2
app2.exe
Código IL
Tipo R
Recurso
Metadatos Tipo R
M. 3 Mod.netmodule
Assembly B
grafico.jpg
Common Language Runtime
Beneficios
Entorno de ejecución robusto
Seguridad inherente
Desarrollo simplificado
Fácil gestión y despliegue de aplicaciones
Preserva inversión de desarrollador
El CLR
.NET Framework
.NET Framework Class Library
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Mobile Web Forms (MIT)
Windows
Forms
XML, ADO .NET, Enterprise Services
Base Class Library
Common Language Runtime
Sistema Operativo
Visual Studio .NET
ASP .NET
.NET Framework Class Library
Modelo de programación unificado
Disponibilidad de API consistente en cualquier lenguaje
y modelo de programación
.NET Framework
RAD,
Composición,
Delegación
VB Forms
Subclassing,
Potencia,
Expresividad
MFC/ATL
Windows API
Sin estado,
Código embebido
en páginas HTML
ASP
.NET Framework Class Library
System namespace
System.Web
Services
Description
Discovery
Protocols
UI
HtmlControls
WebControls
Caching
Configuration
Security
SessionState
System.Windows.Forms
Design
ComponentModel
System.Drawing
Drawing2D
Imaging
System.Data
OleDb
Common
Printing
Text
System.Xml
SqlClient
SQLTypes
XSLT
XPath
Serialization
System
Collections
Configuration
Diagnostics
Globalization
IO
Net
Reflection
Resources
Security
ServiceProcess
Text
Threading
Runtime
InteropServices
Remoting
Serialization
.NET Framework Class Library
Beneficios
Completa, Organizada, Extensible
Para cualquier Arquitectura de Aplicación
Acceso a Datos
ADO.NET
XML
Lógica de Negocio
Enterprise Services (COM+)
Servicios Web XML
.NET Remoting
Presentación
Windows Forms
Web Forms y Mobile Web Forms
.NET Framework
Lenguajes .NET
VB
C++
C#
…
J#
Common Language Specification (CLS)
Web Forms Web Services
Mobile Web Forms (MIT)
Windows
Forms
XML, ADO .NET, Enterprise Services
Base Class Library
Common Language Runtime
Sistema Operativo
Visual Studio .NET
ASP .NET
Lenguajes .NET
CLS
CLR
Fujitsu
COBOL
Extensions
C++
COBOL
CLS
Los lenguajes no tienen que exponer toda la
funcionalidad definida por la CLR
Microsoft
Managed
C++
Extensions
Lenguajes .NET
Múltiples lenguajes soportados
.NET es neutral con respecto al lenguaje
Microsoft suministra:
Visual C# .NET, Visual Basic .NET, Visual C++ .NET,
JScript, Visual J# .NET
Terceros suministran:
COBOL, RPG, APL, Perl, Pascal, Smalltalk, Eiffel, Fortran,
Haskell, Mercury, Oberon, Oz, Python, Scheme, Standard ML,
… hasta +26 lenguajes
Lenguajes .NET
Soporte multilenguaje
Dim s as String
VB.NET
s = "authors"
Dim cmd As New SqlCommand("select * from " & s,
sqlconn)
cmd.ExecuteReader()
string s = "authors";
C#
SqlCommand cmd = new SqlCommand("select * from "+s,
sqlconn);
cmd.ExecuteReader();
String *s = S"authors";
SqlCommand cmd = new
SqlCommand(String::Concat(S"select * from ", s),
sqlconn);
cmd.ExecuteReader();
C++
Lenguajes .NET
Soporte multilenguaje
String s = "authors";
J#
SqlCommand cmd = new SqlCommand("select * from "+s,
sqlconn);
cmd.ExecuteReader();
JScript
var s = "authors"
var cmd = new SqlCommand("select * from " + s, sqlconn)
cmd.ExecuteReader()
Perl
String *s = S"authors";
SqlCommand cmd = new SqlCommand(String::Concat
(S"select * from ", s), sqlconn);
cmd.ExecuteReader();
Lenguajes .NET
Soporte multilenguaje
Cobol
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
REPOSITORY.
CLASS SqlCommand AS "System.Data.SqlClient.SqlCommand"
CLASS SqlConnection AS "System.Data.SqlClient.SqlConnection".
DATA DIVISION.
WORKING-STORAGE SECTION.
01 str PIC X(50).
01 cmd-string PIC X(50).
01 cmd OBJECT REFERENCE SqlCommand.
01 sqlconn OBJECT REFERENCE SqlConnection.
PROCEDURE DIVISION.
*> Establish the SQL connection here somewhere.
MOVE "authors" TO str.
STRING "select * from " DELIMITED BY SIZE,
str DELIMITED BY " " INTO cmd-string.
INVOKE SqlCommand "NEW" USING BY VALUE cmd-string sqlconn RETURNING cmd.
INVOKE cmd "ExecuteReader".
Lenguajes .NET
Beneficios
Independencia de las aplicaciones del lenguaje
de programación utilizado
Desarrollo de aplicaciones multi-lenguaje
Preserva inversión del desarrollador
Facilita adopción de .NET
Multilenguaje
.NET Framework
Estandarización
CLI y C#
Common Language Infrastructure, funcionalidad e
interfaces del CLR y la Base Class Library
Lenguaje de programación C#
CLI y C# cedidos a organismos de
estandarización (ECMA, ISO, IEEE)
.NET Compact Framework
.NET Framework para dispositivos
Diseñado para dispositivos inteligentes
Pocket PC y Pocket PC Phone Edition (v1.1)
Smart Phone
Windows CE
Amplia disponibilidad planeada
Mismo modelo de desarrollo que .NET
Framework
Misma herramienta de desarrollo Visual Studio
.NET
Visual Studio .NET
Entorno de Desarrollo Integrado
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Mobile Web Forms (MIT)
Windows
Forms
XML, ADO .NET, Enterprise Services
Base Class Library
Common Language Runtime
Sistema Operativo
Visual Studio .NET
ASP .NET
Visual Studio .NET
Productividad
Única herramienta de desarrollo para todo
Plataforma completa para creación, pruebas e
integración de Servicios Web
Plataforma RAD de alta productividad
Diseñadores visuales de Formularios
Diseñadores visuales de Componentes
Depuración extremo a extremo, a través de lenguajes
Tecnología IntelliSense y Ayuda Dinámica
Extensible y Abierto
Visual Studio .NET
Para todo el ciclo de vida
Modelado de Sistemas y Bases de Datos
Visio for Enterprise Architects
Patrones de Arquitectura
Enterprise Templates, Application Building Blocks
Gestión de Versiones del código
Visual SourceSafe
Diseño, Codificación y Depuración
Visual Studio: Designers, Editors, Debugger
Monitorización y Optimización
Visual Studio Analyzer
Pruebas
Application Center Test
Despliegue e Instalación
Visual Studio: Setup Projects
Arquitectura .NET
Retos del desarrollo
Integración de aplicaciones
Múltiples lenguajes de
programación
Múltiples modelos de
programación
Complejidad del desarrollo y
despliegue
Seguridad no inherente
Preservar la inversión del
desarrollador

Servicios Web XML

.NET Framework




.NET Framework


Elevar la productividad del
desarrollador

Common Language Runtime
.NET Framework Class Library
Componentes .NET
assemblies
Lenguajes .NET
Interoperatividad COM
Visual Studio .NET
Patterns & Practices
Proven
Based on field experience
Authoritative
Best advice available
Accurate
Technically validated and tested
Actionable
Provide the steps to success
Relevant
Address real world scenarios
“Proven practices for predictable results”
Patterns & Practices
Guías publicadas y próximas
Reference Architectures
Reference Building Blocks
Lifecycle Practices
Application Architecture for .NET
Exception Management App Block
Microsoft Systems Architecture
Team Development with Visual
Studio.NET & Visual SourceSafe
Logging App Block
Configuration App Block
Debugging Microsoft .NET
Applications
.NET and J2EE Interoperability
Data Access App Block
Deploying .NET Applications
WSI Base Profile and Security
Updater App Block
Operating .NET-Based Applications
.NET Line of Business Application
User Process Interface App Block
Enterprise Data Center
Internet Data Center
UNIX Migration
…
Operations Guides (…)
Security Operations Guides (…)
Designing Data Tier Components and
Passing Data Through Tiers
Building Secure ASP.NET Applications
Authoring ASP.NET Applications …
Patterns
.NET Enterprise Patterns
Data Patterns
Network Infrastructure Patterns
…
Backup and Restore for MSA
Operations
…
Patterns & Practices
Arquitectura de Aplicaciones
DNA Interop
Users
En desarrollo
Instrumentation
Rich Client
Web Client
UI Components
User Interface ProcessUI Process Components
Operational Management
Exception Mgmt
Communication
Authentication
Service Interfaces
Data Exchange &
FormatBusiness
Workflows
Caching
Business
Service
Data Aggregation &
Components
Caching
Business
Entities
Security
End-to-end Application & Service Design
Disponibles
Secure ASP.NET
Application AuthZ
Data
Access
Data
Access Components
Data
Sources
Team Dev
Persistent Asynch
Invocation Service Agents
Configuration
Services
Debugging
Profiling
Deployment
Development
Lifecycle
.NET Ops
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
Arquitectura de Referencia .NET
Arquitectura de Aplicación en capas lógicas
Seguridad
Administración Operativa
Comunicaciones
Arquitectura
Arquitectura Tradicional
Orientada
3 capas
A Servicios
lógicas
Componentes de Interfaz de Usuario
Componentes de Proceso de IU
Procesos
de Negocio
Componentes
de Negocio
Entidades
de Negocio
Componentes de
Acceso a Recursos
CAPA DE PRESENTACIÓN
Agentes Servicios
Interfaces Servicios
CAPA DE NEGOCIO
Agentes Servicios
Interfaces Servicios
CAPA DE DATOS
Agentes Servicios
Recursos
Servicios
Ciclo de Vida del software
Arquitectura de Aplicación .NET
Capas en aplicaciones y servicios
2
4
1
Credit Authorization
Orders
3
Courier
1.
2.
3.
4.
Comunicación débilmente acoplada
Aplicaciones/Servicios con arquitectura en capas
Algunos servicios pueden no tener IU
Cada servicio gestiona sus propios datos
Arquitectura de Referencia .NET
Capa de Datos
Seguridad
Administración Operativa
Comunicaciones
Usuarios
Capa de Presentación
Capa de Negocio
Capa de Datos
Componentes de Acceso a Datos (Recursos)
Fuentes de Datos (Recursos)
Servicios
Ciclo de Vida del software
Capa de Datos
XML
Funcionalidad tradicional
Acceso en memoria: DOM niveles 1 y 2
Acceso secuencial: XmlReader
Búsquedas: XPath, con posibilidad de compilación
Definición y validación de esquemas XSD
Transformaciones XSLT
Funcionalidad en .NET: Serialización XML
Controlable con atributos
XmlSerializer: Instancias de objetos  XML
XSD.EXE: Clases  XSD
XML
Serialización XML
C#, VB, JS
XmlSerializer
XSD.EXE
XSD.EXE
XML
XSD
Validator
Serialización XML
Capa de Datos
ADO.NET
Independiente de la fuente de datos
IDbConnection
Conexión a cualquier base de datos con
proveedores
Generales: .NET OLE DB y .NET ODBC
Específicos: .NET SQL Client, .NET Oracle Client
Modelo conectado de acceso a datos
IDbCommand: sentencias SQL (parametrizables con
IDbParameter), procedimientos almacenados
IDbDataReader: para recuperar resultados
Acceso conectado con
ADO.NET
Capa de Datos
ADO.NET (II)
Modelo Desconectado de acceso a datos
Dataset
Modelo de datos en memoria
Desconectado de la base de datos
Mantiene memoria de los cambios
Es serializable en XML
DataAdapter
Rellenan un Dataset desde la fuente de datos
Concilian los cambios de un Dataset hacia la fuente de
datos
Capa de Datos
ADO.NET: Modelo desconectado
Capa de presentación
Windows forms
Aplicación.Exe
Dataset
Web forms
IE
Dataset
Internet
intranet
Xml
Capa de negocios
Dataset
DataAdapter
DataAdapter
Capa de
datos
Negocio a Negocio
Acceso desconectado con
ADO.NET
Arquitectura de Referencia .NET
Capa de Negocio
Seguridad
Administración Operativa
Comunicaciones
Usuarios
Capa de Presentación
Agentes Servicios
Capa de Negocio
Procesos
de Negocio
Componentes
de Negocio
Entidades
de Negocio
Interfaces Servicios
Agentes Servicios
Interfaces Servicios
Capa de Datos
Agentes Servicios
Recursos
Servicios
Ciclo de Vida del software
Capa de Negocio
Consumidores de componentes de Negocio
Llamadas desde otros
Agentes de Servicios
Capa de Presentación
Interfaz de Servicios
Componente
de Negocio
Proceso
de Negocio
Llamadas a otros Servicios
Componente
de Negocio
Datos
Componentes de
Acceso a Datos
Agentes de Servicios
Llamadas a otros Servicios
Capa de Negocio
Integrando servicios en un flujo de proceso
Capa de Presentación
Proceso
de Negocio
Interfaz de Servicio
Agente de Servicio
Componentes
de Negocio
Interfaz de Servicio
Agente de Servicio
Interfaz de Servicio
Componentes de
Acceso a Datos
Servicios
Capa de Negocio
Servicios Web: reduciendo dependencias
Arquitectura
Orientadafuertemente
a Servicio (SOA)
Ejemplo
de una solucion
acoplada
Aplicación B
Aplicación A
Lenguaje de
programacion
Base de
datos
Lenguaje de
programacion
Acuerdos
Base de
datos
Esquemas
Modelo de
objetos
Sistema
operativo
Modelo de
objetos
Sistema
operativo
Servidor de
aplicaciones
Servidor de
aplicaciones
Capa de Negocio
ASP.NET Web Services
Protocolos
Internet
Abiertos

Servicio
Web
Componente de aplicación
programable, accesible a través de
protocolos estándar de Internet
UDDI
Suministra un Directorio de Servicios en
La Red

Los Servicios Web se definen en términos
de formatos y ordenación de mensajes

Los consumidores de Servicios Web
pueden enviar y recibir mensajes XML

Construido empleando protocolos
abiertos de Internet
Universal Description,
Discovery, and Integration
WSDL
Web Services
Description Language
SOAP
XML & HTTP
Capa de Negocio
ASP.NET Web Services (II)
Servicios publicados
Descubrimiento
mediante
UDDI
Servicio 1
Servicio 1
tModel
Publicación
mediante
UDDI
Registro UDDI
Aplicación
Cliente
Servicio Web
Descripción mediante WSDL
XML
Schema
WSDL
Invocación / Acceso mediante SOAP
Transporte mediante HTTP / SMTP / …
Mensaje
SOAP
Capa de Negocio
ASP.NET Web Services (III)
.NET Framework facilita
Un mapeo bi-direccional
Conceptos de
Aplicación
Web
Framework
Datos
XML
Objetos
Esquemas
XSD
Clases
Servicios
WSDL
Métodos
Invocaciones
SOAP
Llamadas
Capa de Negocio
ASP.NET Web Services (IV)
Sencillo modelo de programación
Aplicación Web especial (.asmx), sin interfaz de usuario
En el servidor: ASP.NET permite exponer clases .NET
como servicios web
Atributos [WebService], [WebMethod]
Traduce peticiones SOAP
Genera automáticamente WSDL y páginas de prueba
En el cliente: .NET genera un proxy para comunicar con
el servidor
Integrado con Visual Studio
La serialización XML hace el resto
Web Services
Capa de Negocio
.NET Remoting
Acceso remoto a objetos
3 modelos de acceso remoto:
Objetos activados por el cliente (similar a DCOM)
Objetos activados por el servidor
Single-Call
Singleton
Hospedaje de objetos de acceso remoto:
ASP.NET
Aplicación dedicada .EXE
Capa de Negocio
Enterprise Services y System.Messaging
Enterprise Services
Modelo de programación simplificado para el uso de
servicios COM+
Servicios empresariales:
Transacciones
Interoperabilidad XA
Seguridad basada en roles
Pooling de objetos
Componentes encolados
…
System.Messaging
Modelo de programación para el uso de colas MSMQ
Arquitectura de Referencia .NET
Capa de Presentación
Seguridad
Administración Operativa
Comunicaciones
Usuarios
Capa de Presentación
Componentes de Interfaz de Usuario
Componentes de Proceso de Interfaz de Usuario
Capa de Negocio
Capa de Datos
Recursos
Servicios
Ciclo de Vida del software
Capa de Presentación
ASP.NET Web Forms: modelo de código
Modelo de programación similar a WinForms
RAD Visual: Formularios, Controles servidor, Eventos
El código “está detrás”
Separación entre lógica y presentación
ASP
ASP .NET
código
<tags>
<tags>
código
Form1.asp
Form1.aspx
Form1.vb
Capa de Presentación
ASP.NET: modelo de ejecución
Parsing
Motor
Generar
ASP.NET
Petición
Petición
Fichero
ASPX
ó
ASMX
Respuesta
Respuesta
Instanciar
Clase
compilada
Clase
Codebehind
Clase de
página
generada
Compilar
Capa de Presentación
ASP.NET: Sesión y Caché
Sesión
Soporta granjas de servidores
No requiere obligatoriamente cookies
Mejor tolerancia a fallos (más opciones para guardar estado):
Servicio Windows en otro equipo (alta disponibilidad)
SQL Server (alta disponibilidad + tolerancia a fallos)
Caché
a nivel de página
Caché fragmentado
Modos cliente y servidor
Dependencias de caché (tiempo, fichero, consulta SQL)
Cache API
ASP.NET Web Forms
Capa de Presentación
Windows Forms
Combinación de productividad formularios VB
con potencia MFC C++
Herencia visual de controles y formularios
Soporte gráfico mejorado GDI+
Fácil enlazado de datos con ADO.NET
Fácil consumo de Servicios Web XML
Controles Windows hospedados en IE
Impresión de formularios, ayuda, …
Windows Forms
¿Otra? pero si ya los hemos visto … (pesao!)
Capa de Presentación
Cliente Rico o Cliente Ligero: “Smart Client”
Cliente Rico
Cliente Inteligente
Instalación
costosa
Dificultad de
despliegue
Experiencia
rica de usuario
Productividad
desarrollo
Infierno de
las DLLs
Respuesta
rápida
Cliente Ligero
Mínima/nula
instalación
Facilidad de
despliegue
Versionado y
mantenimiento
Dependencia
de la red
Experiencia
pobre de usuario
Complejidad de
desarrollo
Cliente Rico o Cliente Ligero
Despliegue de aplicaciones
Opción 1: File Copy (XCOPY, FTP)
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” desde Internet Explorer
(“No-Touch” Deployment)
Descarga de Controles Windows en páginas Web
Descarga de Aplicaciones Windows de Intranet
El código se mantiene y se versiona en un único punto: el servidor de
Intranet
Cliente Rico o Cliente Ligero
Despliegue sin tocar (No-Touch Deployment)
Sin instalación ni desinstalación
Aplicaciones .NET son ligeras
“Hello World” = ~3.5 Kb
No se instala nada en la carpeta System
No se escribe en el Windows Registry
Requerimientos del cliente
Windows 98/Windows NT® 4.0 o superior
Internet Explorer 5.5 o superior
.NET Framework Redistributable (~20 MB)
Cliente Rico o Cliente Ligero
Despliegue de aplicaciones Windows
Web Server
Client
Form1
Windows App
HTTP
Web
Server
Form2
Assembly
Cache
Cliente Rico o Cliente Ligero
Despliegue de controles Windows
Client
Web Server
Chart.html
HTTP
Internet Explorer 5.5
HTTP
Web
Server
Charting.DLL
Assembly
Cache
Customizer.DLL
ChartEngine.DLL
Windows Forms
Smart Client y el despliegue sin tocar
Escenarios de Aplicaciones Móviles
Visión general
Experiencia Web móvil
Dispositivo Inteligente
Todo el potencial del PC
Ejemplo: titulares de noticias
Ejemplo: trabajo de campo
Ejemplo: gestión de conocimiento
Muchos tipos de dispositivos
Funcionalidad online y offline
Servicios
Web XML
Pantalla a tamaño completo
Entrada de datos muy limitada
Integración de dispositivos
Aplicaciones compatibles PC
Uso breve e intermintente
Interfaz de usuario enriquecida
Anotación y edición enriquecidas
Escenarios de aplicaciones móviles
Retos tradicionales
Aplicaciones multi-dispositivo difícil:
• Diferentes dimensiones
• Diferentes características
• Diferentes estándares Web
Poca reutilización
• Diferentes plataformas
• Diferentes APIs
• Diferentes lenguajes
Página Web Móvil
Código Local
Navegador Web
del Dispositivo
Sistema Operativo del Dispositivo
Escenarios de aplicaciones móviles
Ventajas arquitectónicas
Ventajas de apl. Web móvil
Presentación adaptable
Soporte dinámico de
múltiples navegadores de
dispositivos
Soporte navegador en
dispositivos bajo coste
Código base único
Mantenimiento simplificado
Extensión natural de las
apl. Web existentes
Ejecución en servidor
Sin instalación en cliente
Sin ejecución en cliente
Ventajas de apl. cliente inteligente
Operativa “off-line”
Ejecución Local
Datos Locales
IU enriquecido
Multimedia
IU elaborado
Integración con
elementos dispositivo
Lectores tarjetas
Lectores código barras
Receptores GPS
Telefonía / mensajería
Escenarios de aplicaciones móviles
Desarrollo Microsoft para dispositivos
Controles Web
Móviles ASP.NET
Extensiones para
Dispositivos
Inteligentes
Página Web Móvil
Código Local
Navegador Web
del Dispositivo
.NET Compact
Framework
Sistema Operativo del Dispositivo
Capa de Presentación
Desarrollo para dispositivos
Desarrollo del lado del cliente
Windows Forms de .NET Compact Framework
Desarrollo del lado del servidor
ASP.NET Mobile Web Forms
Soporte multi-cliente automático
WML, HTML 3.2, cHTML, XHTML, XML
Desarrollo para dispositivos
ASP.NET Mobile Web Forms
Windows Forms de .NET Compact Framework
Arquitectura de Referencia .NET
Arquitectura de Aplicación en capas lógicas
Seguridad
Administración Operativa
Comunicaciones
Arquitectura Orientada
A Servicios
Componentes de Interfaz de Usuario
Componentes de Proceso de IU
Procesos
de Negocio
Componentes
de Negocio
Entidades
de Negocio
Componentes de
Acceso a Recursos
Agentes Servicios
Interfaces Servicios
Agentes Servicios
Interfaces Servicios
Agentes Servicios
Recursos
Servicios
Ciclo de Vida del software
Arquitectura de Referencia .NET
Entornos de Despliegue Físico
DMZ
Infrastructure VLAN
Data & Management VLAN
VPN
Entornos de Despliegue Físico
Tecnologías de Clustering Microsoft
Network Load Balancing (NLB)
Balancea tráfico TCP/IP entre múltiples servidores
Hasta 32 nodos
Proporciona alta disponibilidad y escalabilidad
Microsoft Cluster Service (MSCS)
Tolerancia a fallos (failover)
2 ó 4 nodos
Proporciona alta disponibilidad
Interoperabilidad o Migración
Interoperabilidad con COM y código nativo
COM Interop bidireccional
Utilizar componentes 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)
Platform Invoke (P/Invoke)
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);
}
}
Interoperabilidad o Migración
Actualizar de DNA a .NET
Visual C++
Visual C++ .NET: MFC, ATL y extensiones manejadas .NET
Visual Basic
Visual Basic .NET: asistente de migración automática en VS.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)
Posibilidad de ejecución ASP y ASP.NET en la misma máquina
Guía de migración con recomendaciones y mejores prácticas
Asistente de migración automática (versión beta) en www.asp.net
ADO
ADO.NET es la tecnología de acceso a datos en .NET
ADO está soportado vía COM Interop
RDO y DAO también están soportados vía COM Interop
Data Binding a controles sólo soportado en ADO (no RDO ni DAO)
Migración de ASP a ASP.NET
Estrategia de Migración
Coexistencia de DNA y .NET
Componentes COM y Componentes .NET
Interoperabilidad bidireccional COM.NET vía COM Interop
ASP y ASP.NET en el mismo IIS
Permite desarrollar nuevas páginas y aplicaciones Web ASP.NET
No comparten Session ni Application… pero ¿pueden?
¿Cómo migro de DNA a .NET? una estrategia:
1º migración de código: herramientas automáticas de
migración sintáctica que hace gran parte del trabajo
2º migración de componentes: manualmente, usar
componentes .NET en lugar de componentes COM
3º migración de conceptos: refactorización, arquitectura
Recursos
Guías de Arquitectura “Patterns & Practices”
http://www.microsoft.com/resources/practices
Desarrollo Web “Server 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
Crea tu web... ¡y al cine!
Concurso de programación web con ASP.NET
Un concurso
¿Te gusta la programación? ¿Te gusta el cine? ¿Lo tuyo es
crear sitios web? Pues esta es tu oportunidad de hacerlo y
llevarte premios ¡de película!
Del 1 de abril al 15 de junio de 2004 participa en el concurso de programación web con ASP.NET
(el alojamiento de los sitios web participantes es gratuito durante el concurso), y solo por hacerlo
ya tienes dos entradas para ir al cine cuando quieras en más de 2.000 salas en toda España. Y
si tu web es una de las ganadoras en alguna de las seis categorías contempladas, te esperan
fantásticos premios: consolas y juegos Xbox, mandos para ver DVDs en la consola, películas en
DVD, cajas de Visual Studio .NET, alojamiento gratuito ASP.NET durante un año y suscripciones a
revistas patrocinadoras durante un año.
Más información en www.microsoft.com/spanish/msdn/concuasp
Patrocinan:
Empresas de alojamiento web patrocinadoras:
Amsterdam, Holanda
29 junio – 2 julio
¡Adéntrate!
El evento definitivo de Microsoft en Europa
sobre creación, implantación, protección y
gestión de soluciones conectadas
© 2004 Microsoft Corporation. Todos los derechos reservados.
Esta presentación tiene propósitos informativos únicamente. Microsoft no ofrece garantías, implícitas o explícitas, de este contenido.