.NET para Programadores Java Angel Java Lopez

Post on 18-Apr-2015

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

.NET para Programadores .NET para Programadores JavaJava

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

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

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+

.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

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

.NET y su framework.NET y su framework

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

.NET.NET

ASP.NET Windows Forms

.NET Framework Base Classes

Common Language Runtime

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

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

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

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

Visual Studio.NetVisual Studio.Net

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

VentanasVentanas

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

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

Windows FormsWindows Forms

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

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

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

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

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

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

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

DataSetDataSet

DataColumn

DataRow

DataSet

DataTable

DataColumn DataColumn

DataRow

DataTable

DataColumn

DataRelation

System.Data.SqlClientSystem.Data.SqlClient

System

Data

SqlClient

SqlCommand

SqlConnection

SqlDataReader

SqlDataAdapter

Desarrollo Web con Desarrollo Web con ASP.NETASP.NET

¿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

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

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

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

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

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

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

Otras TecnologíasOtras Tecnologías

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)

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…

.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

Interoperabilidad Java Interoperabilidad Java y .NETy .NET

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

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

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

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

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

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?

ConclusionesConclusionesyyPreguntasPreguntas

RecursosRecursos

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

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

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

top related