Upload
celino-mojica
View
15
Download
0
Embed Size (px)
Citation preview
.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.