.NET para Programadores Java Angel “Java” Lopez http://www.ajlopez.com/
Agenda Introducción a .NET Framework .NET Herramientas de Desarrollo El lenguaje J# Windows Forms Acceso a Datos ASP.NET Servicios Web J2EE y .NET Integrando Java y .NET
La anterior tecnología DNA: Digital Network Architecture Basada en capas Cada capa se programaba con distintas tecnologías y lenguajes VB, VC, VJ, VBScript, Jscript, DHTML, WebClasses, ASP..... COM, DCOM, COM+
.NET Independiente del lenguaje Amplia biblioteca de clases Soporte de Remoting y Servicios Web Orientación a Objetos completa Metadatos
La nueva tecnología DNA: sigue siendo el marco de desarrollo Capas y Servicios COM sigue siendo soportado .Net aparece independiente de COM Todos los lenguajes pueden usarse en distintos tipos de proyectos Se pueden incorporar nuevos lenguajes
.NET y su framework
Objetivos de Diseño Facilitar el desarrollo Facilitar la comunicación entre componentes, procesos y máquinas Herramientas de desarrollo (integradas a cualquier lenguaje) Instalación más fácil y segura (el viejo XCOPY....) Escalabilidad
.NET Framework Base Classes Common Language Runtime ASP.NET Windows Forms .NET Framework Base Classes Common Language Runtime
Common Language Runtime Common Type System Manejo de memoria (“garbage collector”) Intermediate Language (IL) Cargador de clases JIT Compilers Verificador
Características de todos los lenguajes Metadata de distribución Integración y soporte de múltiples lenguajes Clases, objetos, herencia Espacios de nombres (“namespaces”) Administración de la memoria
Clases de Soporte Windows Forms Web Forms Server Controls Acceso a la consola Servicios Web Soporte de XML Acceso a Datos Acceso a Archivos y a la Red
Assemblies Describen una aplicación No hay registración, el assembly es autodescriptivo Respuesta al infierno de las .DLL Assemblies globales (compartidos) Seguridad Compatibilidad entre versiones
Visual Studio.Net
Nueva Interfaz de Desarrollo IDE derivada de VB6 Start Page Solution Explorer Varios proyectos en una solución Uno puede ser el principal
Ventanas Class View Properties Window Toolbox Server Explorer Web Form Designer Code Window
Ventanas Help dinámico Object Browser Compilando: Output Window Depurando: Command, Locals, Autos, Breakpoints Windows Disassembly, Memory Windows
Windows Forms
Desarrollo Visual Nuevo System.Windows Los formularios son clases Los controles son clases Posicionamiento de los controles Propiedades Ciclo de vida de controles y formularios
Aplicación Windows Proyecto Aplicación Windows Formulario Diseñador de Formulario Código automático Controles Eventos
Controles y Formularios Nuevos controles Nuevas propiedades MDI Herencia de Formularios Uso de controles OCX Controles propios
Acceso a Datos con ADO.NET
ADO.NET El nuevo mundo de acceso a datos Múltiples fuentes de datos Acceso a datos con DataReaders y DataSets Permite trabajar desconectado Soporte de XML
DataReader Opera conectado Sólo hacia delante Sólo lectura Nos recuerda al Recordset Firehose de ADO
DataSet Lo nuevo de ADO.NET Puede contener varias tablas Trabaja desconectado Datos en memoria Recuperados de distintas fuentes Serializable a XML
DataSet DataSet DataTable DataTable DataColumn DataColumn DataColumn DataRow DataRow DataRelation
System.Data.SqlClient System Data SqlClient SqlCommand SqlConnection SqlDataReader SqlDataAdapter
Desarrollo Web con ASP.NET
¿Qué es ASP.NET? Sucesor más flexible de ASP Páginas dinámicas en el servidor Acceden a recursos del servidor (bases de datos, archivos) Servicios Web en XML Independencia del browser Independencia del lenguaje de programación
Conceptos centrales de ASP.NET Plataforma de desarrollo de Web Nuevo modelo de programación Cliente Web Sistema Operativo Aplicaciones ASP.NET IIS .NET Framework
Conceptos centrales de ASP.NET Separar presentación de lógica del negocio Usar servicios provistos por el .NET Framework El código es compilado la primera vez que se accede a una página Administración de estado Utilización de cualquier lenguaje Integración entre varios Actualizar archivos mientras se está ejecutando la aplicación
Presentación y lógica de negocios No hay más mezcla entre HTML y código ejecutable Mayor facilidad en el mantenimiento Separación completa entre la presentación y la lógica Sin código en los archivos HTML Archivos para diseñadores y Archivos para programadores Así y todo, todavía es posible mezclar HTML y código si es necesario .aspx .cs .vb o
Archivos Diferentes archivos, distinguibles por su extensión Archivos ASP.NET estándar: .aspx o .ascx Servicios Web : .asmx Archivos de código: .cs, .vb, ... Configuración: Config.web Aplicaciones Web : Global.asax Son todos Archivos de texto
Proceso de ejecución Compilación, la primera vez que se pide una página Microsoft intermediate language (MSIL) Lenguaje de estilo Assembly Independiente de la CPU Provee una capa de independencia del hardware MSIL es ejecutado por el Motor Común de ejecución (common language runtime) Motor de ejecución común Compilador “justo en el momento” (JIT) Código administrado
Web Services Expone componentes via HTTP Usa SOAP No expone objetos remotos, sino métodos de esos objetos (una RPC, Remote Procedure Call) El cliente o el servidor pueden estar en otra plataforma Protocolo UDDI para descubrir servicios
Otras Tecnologías
Manejo de Entrada, Salida, Archivos Namespace System.IO Hay clases que representan archivos y directorioes (FileInfo, DirectoryInfo, File, Directory) Hay corrientes de entrada y salida (no necesariamente de archivos) (StreamReader, StreamWriter)
Remoting Acceso a objetos remotos Más amplio que un Web Services Usa serializadores y canales El objeto remoto serializa una referencia remota Los objetos normales se serializan de un punto a otro Puede usar HTTP, TPC, SOAP…
.Net en otras plataformas Los documentos ECMA El proyecto Mono El proyecto DotGNU Rotor, la implementación abierta de Microsoft
Interoperabilidad Java y .NET
Interoperabilidad en la capa del medio Presentation Tier Middle Tier Database Tier JSPs Servlets POJOs/EJBs Oracle Client ASP.NET Serviced Components SQL Server
Interoperabilidad Middle Tier Web Services Ventajas Poco acoplado, operación sincrónica o asincrónica Amistoso para Firewalls Respaldado por la industria Extensible Desventajas Sin Eventos No hay manejo de estado Tipos simples WSE, WS-Transaction, WS-Security son nuevos
Diseñando para interoperabilidad con Servicios Web Considerar los problemas de HTTP XML SOAP Mantener los tipos simples Proveer esquemas XML
Interoperabilidad Middle Tier Por cable (Wire Level) Opciones de Tecnología Janeva (Borland) Ja.NET, JNBridge Pro Ventajas Bajo nivel, rendimiento binario Mantienen la conexión Desventajas Interface acoplada Problemas con Firewalls / proxies
Interoperabilidad Middle Tier Proveedores de J2EE Web Services Apache Axis, Apache SOAP IBM IBM WSTK – Based on Apache AXIS IBM WSAD – Limited Integration The Mind Electric Glue Borland Web Services for Java
Interoperabilidad Middle Tier Cola de Mensajería Opciones de Tecnología MSMQ, IBM WebSphere MQ Host Integration Server 2000, BizTalk Server 2002 Ventajas Bajo acoplamiento, escenarios N a N Soporte inmediato de transacciones, seguridad Desventajas Operación sincrónica es limitada Posilbles problemas con Port / Firewall Message Queue entre Organizaciones?
Conclusiones y Preguntas
Recursos
Recursos http://www.ajlopez.com/ Esta presentación y otros recursos http://msdn.microsoft.com/vjsharp El lenguaje J# http://msdn.microsoft.com/vstudio/java/interop/ Interoperabilidad http://ja.net.intrinsyc.com/ Ja.Net http://msdn.microsoft.com/webservices/building/interop/ http://www.jnbridge.com/ JnBridget
Recursos http://www.asp.net/ Starter Kits en ASP.NET, muchos con versión J# http://msdn.microsoft.com/vjsharp/downloads/codenotes/default.aspx CodeNotes for J#, libro gratuito http://www.ws-i.org/ Web Service Interoperabilitity Organization http://ws.apache.org/axis/ Apache Axis
© 2003 Microsoft Corporation. All rights reserved.