Académique Documents
Professionnel Documents
Culture Documents
NET
Agenda
.NET Framework y Visual Studio .NET
.NET Framework Visual Studio .NET
Guas para desarrollar mejor: Patterns & Practices Arquitectura de Referencia en .NET
Opciones para la capa lgica de Datos Opciones para la capa lgica de Negocio Opciones para la capa lgica de Presentacin Despliegue de las capas lgicas en niveles fsicos
Microsoft .NET
Arquitectura .NET
Arquitectura .NET
VB C++ C#
Windows Forms
.NET Framework
VB C++ C#
Windows Forms
XML, ADO .NET, Enterprise Services Base Class Library Common Language Runtime Sistema Operativo
.NET Framework
Assembly
Metadatos
Cdigo Nativo
Compilador JIT
Ejecucin
Cdigo IL Tipo X
Cdigo IL Tipo Y
Cdigo IL Tipo Z
Assembly A
Cdigo IL Tipo P Cdigo IL Tipo Q Cdigo IL Tipo R Metadatos Tipo R M. 3 Mod.netmodule grafico.jpg
Manifesto
Recurso
Assembly B
El CLR
.NET Framework
VB C++ C#
Windows Forms
XML, ADO .NET, Enterprise Services Base Class Library Common Language Runtime Sistema Operativo
VB Forms
MFC/ATL
ASP
Windows API
System.Windows.Forms
Design ComponentModel
System.Drawing
Drawing2D Imaging Printing Text
System.Data
OleDb Common SqlClient SQLTypes XSLT XPath
System.Xml
Serialization
System
Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security ServiceProcess Text Threading Runtime InteropServices Remoting Serialization
Lgica de Negocio
Enterprise Services (COM+) Servicios Web XML .NET Remoting
Presentacin
Windows Forms Web Forms y Mobile Web Forms
.NET Framework
Lenguajes .NET
VB C++ C# J#
Windows Forms
XML, ADO .NET, Enterprise Services Base Class Library Common Language Runtime Sistema Operativo
Lenguajes .NET
CLS
CLR
COBOL
CLS
C++
Los lenguajes no tienen que exponer toda la funcionalidad definida por la CLR
Lenguajes .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();
var s = "authors" var cmd = new SqlCommand("select * from " + s, sqlconn) cmd.ExecuteReader()
JScript
String *s = S"authors"; SqlCommand cmd = new SqlCommand(String::Concat (S"select * from ", s), sqlconn); cmd.ExecuteReader();
Perl
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 programacin utilizado Desarrollo de aplicaciones multi-lenguaje Preserva inversin del desarrollador Facilita adopcin de .NET
Multilenguaje
.NET Framework
Estandarizacin
CLI y C#
Common Language Infrastructure, funcionalidad e interfaces del CLR y la Base Class Library Lenguaje de programacin C#
Mismo modelo de desarrollo que .NET Framework Misma herramienta de desarrollo Visual Studio .NET
ASP .NET
Web Forms Web Services Mobile Web Forms (MIT)
Windows Forms
XML, ADO .NET, Enterprise Services Base Class Library Common Language Runtime Sistema Operativo
Extensible y Abierto
Patrones de Arquitectura
Enterprise Templates, Application Building Blocks
Monitorizacin y Optimizacin
Visual Studio Analyzer
Pruebas
Application Center Test
Despliegue e Instalacin
Visual Studio: Setup Projects
Arquitectura .NET
Retos del desarrollo
Integracin de aplicaciones
Mltiples lenguajes de programacin Mltiples modelos de programacin Complejidad del desarrollo y despliegue Seguridad no inherente
Common Language Runtime .NET Framework Class Library Componentes .NET assemblies
.NET Framework
Lifecycle Practices
Team Development with Visual Studio.NET & Visual SourceSafe Debugging Microsoft .NET Applications Deploying .NET Applications
.NET and J2EE Interoperability WSI Base Profile and Security .NET Line of Business Application UNIX Migration
Patterns
.NET Enterprise Patterns Data Patterns Network Infrastructure Patterns
Users
DNA Interop
En desarrollo
Operational Management
Authentication
Workflows
Business Entities
Secure ASP.NET
Application AuthZ Data Access Data Access Components Persistent Asynch Invocation Service Agents
Security
Configuration
Data Sources
Services
Team Dev
.NET Ops
Disponibilidad
Online en MSDN y TechNet:
http://www.microsoft.com/resources/practices
Agentes Servicios
CAPA DE PRESENTACIN
Procesos de Negocio
Componentes de Negocio
Entidades de Negocio
CAPA DE NEGOCIO
CAPA DE DATOS
Orders
Courier
1. 2. 3. 4.
Comunicacin dbilmente acoplada Aplicaciones/Servicios con arquitectura en capas Algunos servicios pueden no tener IU Cada servicio gestiona sus propios datos
Capa de Presentacin
Capa de Datos
XML
Funcionalidad tradicional
Acceso en memoria: DOM niveles 1 y 2 Acceso secuencial: XmlReader Bsquedas: XPath, con posibilidad de compilacin Definicin y validacin de esquemas XSD Transformaciones XSLT
XML
Serializacin XML
C#, VB, JS
XmlSerializer
XSD.EXE
Validator
Serializacin XML
Capa de Datos
ADO.NET
Independiente de la fuente de datos
IDbConnection Conexin a cualquier base de datos con proveedores
Generales: .NET OLE DB y .NET ODBC Especficos: .NET SQL Client, .NET Oracle Client
Capa de Datos
ADO.NET (II)
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
Capa de presentacin Windows forms
Aplicacin.Exe
Dataset
Web forms
IE
Internet intranet
Xml
Dataset
Capa de datos
Negocio a Negocio
Capa de Presentacin Capa de Negocio Procesos de Negocio Componentes de Negocio Entidades de Negocio
Agentes Servicios
Capa de Negocio
Interfaz de Servicios
Componente de Negocio
Proceso de Negocio
Datos
Capa de Negocio
Servicios
Proceso de Negocio
Interfaz de Servicio
Capa de Negocio
Aplicacin A
Lenguaje de programacion Base de datos
Aplicacin B
Lenguaje de programacion Base de datos
Acuerdos
Modelo de objetos
Sistema operativo Servidor de aplicaciones Esquemas
Capa de Negocio
Protocolos Internet Abiertos
Componente de aplicacin programable, accesible a travs de protocolos estndar de Internet UDDI Suministra un Directorio de Servicios en
La Red Los Servicios Web se definen en trminos de formatos y ordenacin de mensajes
WSDL
Web Services Description Language
SOAP
XML & HTTP
Capa de Negocio
Registro UDDI
Aplicacin Cliente
Servicio Web
Capa de Negocio
Web
XML
Framework
Objetos
Esquemas
Servicios Invocaciones
XSD
WSDL SOAP
Clases
Mtodos Llamadas
Capa de Negocio
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
Capa de Negocio
Enterprise Services
System.Messaging
Modelo de programacin para el uso de colas MSMQ
Comunicaciones
Administracin Operativa
Seguridad
Capa de Presentacin Componentes de Interfaz de Usuario Componentes de Proceso de Interfaz de Usuario Capa de Negocio
Capa de Datos
Capa de Presentacin
ASP .NET
Form1.asp
Form1.aspx
Form1.vb
Capa de Presentacin
Motor
ASP.NET
Peticin Peticin
Instanciar
Respuesta Respuesta
Clase compilada
Compilar
Capa de Presentacin
ASP.NET: Sesin y Cach
Sesin
Soporta granjas de servidores No requiere obligatoriamente cookies Mejor tolerancia a fallos (ms opciones para guardar estado):
Servicio Windows en otro equipo (alta disponibilidad) SQL Server (alta disponibilidad + tolerancia a fallos)
Cach
a nivel de pgina Cach fragmentado Modos cliente y servidor Dependencias de cach (tiempo, fichero, consulta SQL) Cache API
Capa de Presentacin
Windows Forms
Combinacin de productividad formularios VB con potencia MFC C++ Herencia visual de controles y formularios Soporte grfico mejorado GDI+ Fcil enlazado de datos con ADO.NET Fcil consumo de Servicios Web XML Controles Windows hospedados en IE Impresin de formularios, ayuda,
Windows Forms
Otra? pero si ya los hemos visto (pesao!)
Capa de Presentacin
Cliente Rico
Instalacin costosa Experiencia rica de usuario Productividad desarrollo Infierno de las DLLs Respuesta rpida
Dificultad de despliegue
Complejidad de desarrollo
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)
HTTP
Assembly Cache
Web Server
Form2
Web Server
Chart.html
HTTP
Assembly Cache
Web Server
Charting.DLL
Customizer.DLL
ChartEngine.DLL
Windows Forms
Smart Client y el despliegue sin tocar
Dispositivo Inteligente Ejemplo: trabajo de campo Funcionalidad online y offline Servicios Web XML Integracin de dispositivos Interfaz de usuario enriquecida
Todo el potencial del PC Ejemplo: gestin de conocimiento Pantalla a tamao completo Aplicaciones compatibles PC Anotacin y edicin enriquecidas
Poca reutilizacin
Diferentes plataformas Diferentes APIs Diferentes lenguajes
Cdigo Local
Presentacin adaptable
Soporte dinmico de mltiples navegadores de dispositivos Soporte navegador en dispositivos bajo coste
Operativa off-line
Ejecucin Local Datos Locales
IU enriquecido
Multimedia IU elaborado
Ejecucin en servidor
Sin instalacin en cliente Sin ejecucin en cliente
Cdigo Local
Capa de Presentacin
Procesos de Negocio
Componentes de Negocio
Entidades de Negocio
DMZ
Infrastructure VLAN
VPN
Interoperabilidad o Migracin
COM Interop bidireccional
Utilizar componentes COM desde .NET
Interoperabilidad o Migracin
Actualizar de DNA a .NET
Visual C++
Visual C++ .NET: MFC, ATL y extensiones manejadas .NET
Visual Basic
Visual Basic .NET: asistente de migracin automtica 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 ejecucin ASP y ASP.NET en la misma mquina Gua de migracin con recomendaciones y mejores prcticas Asistente de migracin automtica (versin beta) en www.asp.net
ADO
ADO.NET es la tecnologa de acceso a datos en .NET ADO est soportado va COM Interop RDO y DAO tambin estn soportados va COM Interop Data Binding a controles slo soportado en ADO (no RDO ni DAO)
Recursos
Guas de Arquitectura Patterns & Practices http://www.microsoft.com/resources/practices Desarrollo Web Server Side
http://www.asp.net
Comunidad de GotDotNet
http://www.gotdotnet.com
Un concurso
Del 1 de abril al 15 de junio de 2004 participa en el concurso de programacin 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 ms de 2.000 salas en toda Espaa. Y si tu web es una de las ganadoras en alguna de las seis categoras contempladas, te esperan fantsticos premios: consolas y juegos Xbox, mandos para ver DVDs en la consola, pelculas en DVD, cajas de Visual Studio .NET, alojamiento gratuito ASP.NET durante un ao y suscripciones a revistas patrocinadoras durante un ao.
Ms informacin en www.microsoft.com/spanish/msdn/concuasp
Patrocinan:
Adntrate!
El evento definitivo de Microsoft en Europa sobre creacin, implantacin, proteccin y gestin de soluciones conectadas