.NET para Programadores Java Angel Java Lopez

50
.NET para .NET para Programadores Java Programadores Java Angel “Java” Lopez Angel “Java” Lopez http http :// :// www.ajlopez.com www.ajlopez.com / /

Transcript of .NET para Programadores Java Angel Java Lopez

Page 1: .NET para Programadores Java Angel Java Lopez

.NET para Programadores .NET para Programadores JavaJava

Angel “Java” LopezAngel “Java” Lopezhttphttp://://www.ajlopez.comwww.ajlopez.com//

Page 2: .NET para Programadores Java Angel Java Lopez

AgendaAgenda

Introducción a .NETIntroducción a .NET Framework .NETFramework .NET Herramientas de DesarrolloHerramientas de Desarrollo El lenguaje J#El lenguaje J# Windows FormsWindows Forms Acceso a DatosAcceso a Datos ASP.NETASP.NET Servicios WebServicios Web J2EE y .NETJ2EE y .NET Integrando Java y .NETIntegrando Java y .NET

Page 3: .NET para Programadores Java Angel Java Lopez

La anterior tecnologíaLa anterior tecnología

DNA: Digital Network ArchitectureDNA: Digital Network Architecture Basada en capasBasada en capas Cada capa se programaba con distintas Cada capa se programaba con distintas

tecnologías y lenguajestecnologías y lenguajes VB, VC, VJ, VBScript, Jscript, DHTML, VB, VC, VJ, VBScript, Jscript, DHTML,

WebClasses, ASP.....WebClasses, ASP..... COM, DCOM, COM+COM, DCOM, COM+

Page 4: .NET para Programadores Java Angel Java Lopez

.NET.NET

Independiente del lenguajeIndependiente del lenguajeAmplia biblioteca de clasesAmplia biblioteca de clasesSoporte de Remoting y Servicios WebSoporte de Remoting y Servicios WebOrientación a Objetos completaOrientación a Objetos completaMetadatosMetadatos

Page 5: .NET para Programadores Java Angel Java Lopez

La nueva tecnologíaLa nueva tecnología

DNA: sigue siendo el marco de DNA: sigue siendo el marco de desarrollodesarrollo

Capas y ServiciosCapas y Servicios COM sigue siendo soportadoCOM sigue siendo soportado .Net aparece independiente de COM.Net aparece independiente de COM Todos los lenguajes pueden usarse en Todos los lenguajes pueden usarse en

distintos tipos de proyectosdistintos tipos de proyectos Se pueden incorporar nuevos lenguajesSe pueden incorporar nuevos lenguajes

Page 6: .NET para Programadores Java Angel Java Lopez

.NET y su framework.NET y su framework

Page 7: .NET para Programadores Java Angel Java Lopez

Objetivos de DiseñoObjetivos de Diseño

Facilitar el desarrolloFacilitar el desarrollo Facilitar la comunicación entre Facilitar la comunicación entre

componentes, procesos y máquinascomponentes, procesos y máquinas Herramientas de desarrollo (integradas Herramientas de desarrollo (integradas

a cualquier lenguaje)a cualquier lenguaje) Instalación más fácil y segura (el viejo Instalación más fácil y segura (el viejo

XCOPY....)XCOPY....) EscalabilidadEscalabilidad

Page 8: .NET para Programadores Java Angel Java Lopez

.NET.NET

ASP.NET Windows Forms

.NET Framework Base Classes

Common Language Runtime

Page 9: .NET para Programadores Java Angel Java Lopez

Common Language RuntimeCommon Language Runtime

Common Type SystemCommon Type System Manejo de memoria (“garbage Manejo de memoria (“garbage

collector”)collector”) Intermediate Language (IL)Intermediate Language (IL) Cargador de clasesCargador de clases JIT CompilersJIT Compilers VerificadorVerificador

Page 10: .NET para Programadores Java Angel Java Lopez

Características de todos los Características de todos los lenguajeslenguajes

Metadata de distribuciónMetadata de distribución Integración y soporte de múltiples Integración y soporte de múltiples

lenguajeslenguajes Clases, objetos, herenciaClases, objetos, herencia Espacios de nombres (“namespaces”)Espacios de nombres (“namespaces”) Administración de la memoriaAdministración de la memoria

Page 11: .NET para Programadores Java Angel Java Lopez

Clases de SoporteClases de Soporte

Windows FormsWindows Forms Web FormsWeb Forms Server ControlsServer Controls Acceso a la consolaAcceso a la consola Servicios WebServicios Web Soporte de XMLSoporte de XML Acceso a DatosAcceso a Datos Acceso a Archivos y a la RedAcceso a Archivos y a la Red

Page 12: .NET para Programadores Java Angel Java Lopez

AssembliesAssemblies

Describen una aplicaciónDescriben una aplicación No hay registración, el assembly es No hay registración, el assembly es

autodescriptivoautodescriptivo Respuesta al infierno de las .DLLRespuesta al infierno de las .DLL Assemblies globales (compartidos)Assemblies globales (compartidos) SeguridadSeguridad Compatibilidad entre versionesCompatibilidad entre versiones

Page 13: .NET para Programadores Java Angel Java Lopez

Visual Studio.NetVisual Studio.Net

Page 14: .NET para Programadores Java Angel Java Lopez

Nueva Interfaz de DesarrolloNueva Interfaz de Desarrollo

IDE derivada de VB6IDE derivada de VB6 Start PageStart Page Solution ExplorerSolution Explorer Varios proyectos en una soluciónVarios proyectos en una solución Uno puede ser el principalUno puede ser el principal

Page 15: .NET para Programadores Java Angel Java Lopez

VentanasVentanas

Class ViewClass View Properties WindowProperties Window ToolboxToolbox Server ExplorerServer Explorer Web Form DesignerWeb Form Designer Code WindowCode Window

Page 16: .NET para Programadores Java Angel Java Lopez

VentanasVentanas

Help dinámicoHelp dinámico Object BrowserObject Browser Compilando: Output WindowCompilando: Output Window Depurando: Command, Locals, Autos, Depurando: Command, Locals, Autos,

Breakpoints WindowsBreakpoints Windows Disassembly, Memory WindowsDisassembly, Memory Windows

Page 17: .NET para Programadores Java Angel Java Lopez

Windows FormsWindows Forms

Page 18: .NET para Programadores Java Angel Java Lopez

Desarrollo VisualDesarrollo Visual

Nuevo System.WindowsNuevo System.Windows Los formularios son clasesLos formularios son clases Los controles son clasesLos controles son clases Posicionamiento de los controlesPosicionamiento de los controles PropiedadesPropiedades Ciclo de vida de controles y formulariosCiclo de vida de controles y formularios

Page 19: .NET para Programadores Java Angel Java Lopez

Aplicación WindowsAplicación Windows

Proyecto Aplicación WindowsProyecto Aplicación Windows FormularioFormulario Diseñador de FormularioDiseñador de Formulario Código automáticoCódigo automático ControlesControles EventosEventos

Page 20: .NET para Programadores Java Angel Java Lopez

Controles y FormulariosControles y Formularios

Nuevos controlesNuevos controles Nuevas propiedadesNuevas propiedades MDIMDI Herencia de FormulariosHerencia de Formularios Uso de controles OCXUso de controles OCX Controles propiosControles propios

Page 21: .NET para Programadores Java Angel Java Lopez

Acceso a Datos con Acceso a Datos con ADO.NETADO.NET

Page 22: .NET para Programadores Java Angel Java Lopez

ADO.NETADO.NET

El nuevo mundo de acceso a datosEl nuevo mundo de acceso a datos Múltiples fuentes de datosMúltiples fuentes de datos Acceso a datos con DataReaders y Acceso a datos con DataReaders y

DataSetsDataSets Permite trabajar desconectadoPermite trabajar desconectado Soporte de XMLSoporte de XML

Page 23: .NET para Programadores Java Angel Java Lopez

DataReaderDataReader

Opera conectadoOpera conectado Sólo hacia delanteSólo hacia delante Sólo lecturaSólo lectura Nos recuerda al Recordset Firehose de Nos recuerda al Recordset Firehose de

ADOADO

Page 24: .NET para Programadores Java Angel Java Lopez

DataSetDataSet

Lo nuevo de ADO.NETLo nuevo de ADO.NET Puede contener varias tablasPuede contener varias tablas Trabaja desconectadoTrabaja desconectado Datos en memoriaDatos en memoria Recuperados de distintas fuentesRecuperados de distintas fuentes Serializable a XMLSerializable a XML

Page 25: .NET para Programadores Java Angel Java Lopez

DataSetDataSet

DataColumn

DataRow

DataSet

DataTable

DataColumn DataColumn

DataRow

DataTable

DataColumn

DataRelation

Page 26: .NET para Programadores Java Angel Java Lopez

System.Data.SqlClientSystem.Data.SqlClient

System

Data

SqlClient

SqlCommand

SqlConnection

SqlDataReader

SqlDataAdapter

Page 27: .NET para Programadores Java Angel Java Lopez

Desarrollo Web con Desarrollo Web con ASP.NETASP.NET

Page 28: .NET para Programadores Java Angel Java Lopez

¿Qué es ASP.NET?¿Qué es ASP.NET?

Sucesor más flexible de ASPSucesor más flexible de ASP Páginas dinámicas en el servidorPáginas dinámicas en el servidor Acceden a recursos del servidor (bases Acceden a recursos del servidor (bases

de datos, archivos)de datos, archivos) Servicios Web en XMLServicios Web en XML Independencia del browserIndependencia del browser Independencia del lenguaje de Independencia del lenguaje de

programaciónprogramación

Page 29: .NET para Programadores Java Angel Java Lopez

Conceptos centrales de ASPConceptos centrales de ASP..NETNET Plataforma de desarrollo de WebPlataforma de desarrollo de Web Nuevo modelo de programaciónNuevo modelo de programación

Cliente Web

Sistema Operativo

AplicacionesASP.NET

IIS

.NET Framework

Page 30: .NET para Programadores Java Angel Java Lopez

Conceptos centrales de ASP.NETConceptos centrales de ASP.NET

Separar presentación de lógica del Separar presentación de lógica del negocionegocio

Usar servicios provistos por el .NET Usar servicios provistos por el .NET FrameworkFramework

El código es compilado la primera vez El código es compilado la primera vez que se accede a una páginaque se accede a una página

Administración de estadoAdministración de estado Utilización de cualquier lenguajeUtilización de cualquier lenguaje

Integración entre variosIntegración entre varios Actualizar archivos mientras se está Actualizar archivos mientras se está

ejecutando la aplicaciónejecutando la aplicación

Page 31: .NET para Programadores Java Angel Java Lopez

Presentación y lógica de negociosPresentación y lógica de negocios No hay más mezcla entre HTML y código No hay más mezcla entre HTML y código

ejecutableejecutable Mayor facilidad en el mantenimientoMayor facilidad en el mantenimiento

Separación completa entre la presentación y la Separación completa entre la presentación y la lógicalógica Sin código en los archivos HTMLSin código en los archivos HTML Archivos para diseñadores y Archivos para diseñadores y

Archivos para programadoresArchivos para programadores Así y todo, todavía Así y todo, todavía

es posible mezclar es posible mezclar HTML y código HTML y código si es necesariosi es necesario

.aspx

.cs

.vb

o

Page 32: .NET para Programadores Java Angel Java Lopez

ArchivosArchivos Diferentes archivos, distinguibles por su Diferentes archivos, distinguibles por su

extensiónextensión Archivos ASP.NET estándar: .aspxArchivos ASP.NET estándar: .aspx oo .ascx.ascx Servicios Web : .asmxServicios Web : .asmx Archivos de código: .csArchivos de código: .cs, , .vb.vb, , ...... Configuración: Config.webConfiguración: Config.web Aplicaciones Web : Global.asaxAplicaciones Web : Global.asax

Son todos Archivos de textoSon todos Archivos de texto

Page 33: .NET para Programadores Java Angel Java Lopez

Proceso de ejecuciónProceso de ejecución Compilación, la primera vez que se pide Compilación, la primera vez que se pide

una página una página Microsoft intermediate language Microsoft intermediate language (MSIL)(MSIL)

Lenguaje de estilo AssemblyLenguaje de estilo Assembly Independiente de la CPUIndependiente de la CPU Provee una capa de independencia del Provee una capa de independencia del

hardwarehardware MSIL es ejecutado por el Motor Común de MSIL es ejecutado por el Motor Común de

ejecución (ejecución (common language runtimecommon language runtime)) Motor de ejecución comúnMotor de ejecución común

Compilador “justo en el momento” (JIT)Compilador “justo en el momento” (JIT) Código administradoCódigo administrado

Page 34: .NET para Programadores Java Angel Java Lopez

Web ServicesWeb Services

Expone componentes via HTTPExpone componentes via HTTPUsa SOAPUsa SOAPNo expone objetos remotos, sino No expone objetos remotos, sino

métodos de esos objetos (una RPC, métodos de esos objetos (una RPC, Remote Procedure Call)Remote Procedure Call)

El cliente o el servidor pueden estar en El cliente o el servidor pueden estar en otra plataformaotra plataforma

Protocolo UDDI para descubrir serviciosProtocolo UDDI para descubrir servicios

Page 35: .NET para Programadores Java Angel Java Lopez

Otras TecnologíasOtras Tecnologías

Page 36: .NET para Programadores Java Angel Java Lopez

Manejo de Entrada, Salida, Manejo de Entrada, Salida, ArchivosArchivos

Namespace System.IONamespace System.IO Hay clases que representan archivos y Hay clases que representan archivos y

directorioes (FileInfo, DirectoryInfo, directorioes (FileInfo, DirectoryInfo, File, Directory)File, Directory)

Hay corrientes de entrada y salida (no Hay corrientes de entrada y salida (no necesariamente de archivos) necesariamente de archivos) (StreamReader, StreamWriter)(StreamReader, StreamWriter)

Page 37: .NET para Programadores Java Angel Java Lopez

RemotingRemoting

Acceso a objetos remotosAcceso a objetos remotos Más amplio que un Web ServicesMás amplio que un Web Services Usa serializadores y canalesUsa serializadores y canales El objeto remoto serializa una El objeto remoto serializa una

referencia remotareferencia remota Los objetos normales se serializan de Los objetos normales se serializan de

un punto a otroun punto a otro Puede usar HTTP, TPC, SOAP…Puede usar HTTP, TPC, SOAP…

Page 38: .NET para Programadores Java Angel Java Lopez

.Net en otras plataformas.Net en otras plataformas

Los documentos ECMALos documentos ECMA El proyecto MonoEl proyecto Mono El proyecto DotGNUEl proyecto DotGNU Rotor, la implementación abierta de Rotor, la implementación abierta de

MicrosoftMicrosoft

Page 39: .NET para Programadores Java Angel Java Lopez

Interoperabilidad Java Interoperabilidad Java y .NETy .NET

Page 40: .NET para Programadores Java Angel Java Lopez

Interoperabilidad en la capa Interoperabilidad en la capa del mediodel medio

JSPsJSPsServletsServlets

POJOs/EJBsPOJOs/EJBs OracleOracle

ServicedServicedComponentsComponents SQL ServerSQL Server

Presentation TierPresentation Tier Database TierDatabase Tier

ClientClient

Middle TierMiddle Tier

ASP.NETASP.NET

Page 41: .NET para Programadores Java Angel Java Lopez

Interoperabilidad Middle TierInteroperabilidad Middle Tier Web ServicesWeb Services

VentajasVentajas Poco acoplado, operación sincrónica o Poco acoplado, operación sincrónica o

asincrónicaasincrónica Amistoso para FirewallsAmistoso para Firewalls Respaldado por la industriaRespaldado por la industria ExtensibleExtensible

DesventajasDesventajas Sin EventosSin Eventos No hay manejo de estadoNo hay manejo de estado Tipos simplesTipos simples WSE, WS-Transaction, WS-Security son WSE, WS-Transaction, WS-Security son

nuevosnuevos

Page 42: .NET para Programadores Java Angel Java Lopez

Diseñando para Diseñando para interoperabilidad con interoperabilidad con Servicios WebServicios Web Considerar los problemas deConsiderar los problemas de

HTTP HTTP XMLXML SOAPSOAP

Mantener los tipos simplesMantener los tipos simples Proveer esquemas XMLProveer esquemas XML

Page 43: .NET para Programadores Java Angel Java Lopez

Interoperabilidad Middle TierInteroperabilidad Middle Tier

Por cable (Wire Level)Por cable (Wire Level) Opciones de TecnologíaOpciones de Tecnología

Janeva (Borland)Janeva (Borland) Ja.NET, JNBridge Pro Ja.NET, JNBridge Pro

VentajasVentajas Bajo nivel, rendimiento binarioBajo nivel, rendimiento binario Mantienen la conexiónMantienen la conexión

DesventajasDesventajas Interface acopladaInterface acoplada Problemas con Firewalls / proxiesProblemas con Firewalls / proxies

Page 44: .NET para Programadores Java Angel Java Lopez

Interoperabilidad Middle TierInteroperabilidad Middle Tier

Proveedores de J2EE Web ServicesProveedores de J2EE Web Services ApacheApache

Axis, Apache SOAPAxis, Apache SOAP

IBMIBM IBM WSTK – Based on Apache AXISIBM WSTK – Based on Apache AXIS IBM WSAD – Limited IntegrationIBM WSAD – Limited Integration

The Mind ElectricThe Mind Electric GlueGlue

BorlandBorland Web Services for JavaWeb Services for Java

Page 45: .NET para Programadores Java Angel Java Lopez

Interoperabilidad Middle TierInteroperabilidad Middle Tier

Cola de MensajeríaCola de Mensajería Opciones de TecnologíaOpciones de Tecnología

MSMQ, IBM WebSphere MQMSMQ, IBM WebSphere MQ Host Integration Server 2000, BizTalk Server 2002Host Integration Server 2000, BizTalk Server 2002

VentajasVentajas Bajo acoplamiento, escenarios N a NBajo acoplamiento, escenarios N a N Soporte inmediato de transacciones, seguridadSoporte inmediato de transacciones, seguridad

DesventajasDesventajas Operación sincrónica es limitadaOperación sincrónica es limitada Posilbles problemas con Port / FirewallPosilbles problemas con Port / Firewall Message Queue entre Organizaciones?Message Queue entre Organizaciones?

Page 46: .NET para Programadores Java Angel Java Lopez

ConclusionesConclusionesyyPreguntasPreguntas

Page 47: .NET para Programadores Java Angel Java Lopez

RecursosRecursos

Page 48: .NET para Programadores Java Angel Java Lopez

RecursosRecursos

http://www.ajlopez.com/http://www.ajlopez.com/ Esta Esta presentación y otros recursospresentación y otros recursos

http://msdn.microsoft.com/vjsharphttp://msdn.microsoft.com/vjsharp El El lenguaje J#lenguaje J#

http://msdn.microsoft.com/vstudio/java/http://msdn.microsoft.com/vstudio/java/interop/interop/ Interoperabilidad Interoperabilidad

http://ja.net.intrinsyc.com/http://ja.net.intrinsyc.com/ Ja.Net Ja.Net http://msdn.microsoft.com/webservices/http://msdn.microsoft.com/webservices/

building/interop/building/interop/ http://www.jnbridge.com/http://www.jnbridge.com/ JnBridget JnBridget

Page 49: .NET para Programadores Java Angel Java Lopez

RecursosRecursos

http://www.asp.net/http://www.asp.net/ Starter Kits en Starter Kits en ASP.NET, muchos con versión J#ASP.NET, muchos con versión J#

http://msdn.microsoft.com/vjsharp/dowhttp://msdn.microsoft.com/vjsharp/downloads/codenotes/default.aspxnloads/codenotes/default.aspx CodeNotes for J#, libro gratuito CodeNotes for J#, libro gratuito

http://www.ws-i.org/http://www.ws-i.org/ Web Service Web Service Interoperabilitity OrganizationInteroperabilitity Organization

http://ws.apache.org/axis/http://ws.apache.org/axis/ Apache Axis Apache Axis

Page 50: .NET para Programadores Java Angel Java Lopez

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.