Desarrollo de Aplicaciones Distribuidas con Servicios Web

17
Ing. Javier Aranda Pantoja Microsoft Certified Professional Desarrollo de Aplicaciones Distribuidas con Servicios Web Desarrollo de Aplicaciones Distribuidas con Servicios Web Ing. Javier Aranda Pantoja Ing. Javier Aranda Pantoja Microsoft Certified Professional Microsoft Certified Professional Email: Email: [email protected] [email protected] La Plataforma .NET La Plataforma .NET Tema Tema 1

Transcript of Desarrollo de Aplicaciones Distribuidas con Servicios Web

Page 1: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Desarrollo de Aplicaciones Distribuidas con Servicios Web

Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaIng. Javier Aranda PantojaMicrosoft Certified ProfessionalMicrosoft Certified ProfessionalEmail: Email: [email protected]@softwareandina.com

La Plataforma .NETLa Plataforma .NET

TemaTema 11

Page 2: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

AgendaAgendaMicrosoft .NETMicrosoft .NET

ComponentesComponentes.NET .NET frameworkframework

CommonCommon LanguageLanguage RuntimeRuntimeFrameworkFramework ClassClass LibraryLibraryBeneficiosBeneficios

EnsambladosEnsamblados

La Plataforma .NETLa Plataforma .NET

Servicios Web

Servidores

Soluciones

.NET Fram

ework

& H

erramientas

Page 3: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Componentes de .NETComponentes de .NET.NET .NET FrameworkFramework

Windows Windows systemsystem serverserver

Web Web servicesservices

EnterpriseEnterprise ServersServers

Herramientas de desarrolloHerramientas de desarrollo

Problemas q resuelve .NETProblemas q resuelve .NET

Windows 98 Client Windows XP Client

1. Continuamente aprender nuevos lenguajes1. Continuamente aprender nuevos lenguajes2. Volver a escribir aplicaciones2. Volver a escribir aplicaciones

Page 4: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Problemas q resuelve .NETProblemas q resuelve .NET

Common Language Runtime

.NET Framework.NET FrameworkEs una nueva plataforma de ejecuciEs una nueva plataforma de ejecucióón, n, sobre la cual corren servicios y sobre la cual corren servicios y aplicaciones.aplicaciones.Consistente modelo de programaciConsistente modelo de programacióón. n. Permite usar las mismas habilidades y Permite usar las mismas habilidades y conocimientos para implementar conocimientos para implementar aplicaciones Web, Windows, maplicaciones Web, Windows, móóviles o viles o distribuidas.distribuidas.Posee un robusto ambiente de Posee un robusto ambiente de ejecuciejecucióón. Maximiza seguridad, n. Maximiza seguridad, robustez, rendimiento. Minimiza robustez, rendimiento. Minimiza conflictos de versiconflictos de versióón y desplieguen y despliegue

Page 5: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

.NET Framework.NET FrameworkSoporta estSoporta estáándares internacionales ndares internacionales como XML, SOAP, CLI, como XML, SOAP, CLI, C#C#Esta compuesto porEsta compuesto por

CommonCommon LanguageLanguage RuntimeRuntime (CLR)(CLR)FrameworkFramework ClassClass LibraryLibrary (FCL)(FCL)

Componentes .NET FrameworkComponentes .NET Framework

Page 6: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Componentes .NET FrameworkComponentes .NET Framework

Win32

MessageQueuing

COM+(Transactions, Partitions,

Object Pooling)IIS WMI

Common Language Runtime

.NET Framework Class Library

ADO.NET and XML

Web Services User Interface

ASP.NET

Visual Basic C++ C# Perl Python ...

Common Language Runtime (CLR)Common Language Runtime (CLR)

.NET Framework Class Library Support

Thread Support COM Marshaler

Type Checker Exception Manager

MSIL to NativeCompilers

CodeManager

GarbageCollector

Security Engine Debug Engine

Class Loader

Page 7: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Framework Class Library (FCL)Framework Class Library (FCL)

System System

System.DataSystem.Data System.XmlSystem.Xml

System.WebSystem.Web

GlobalizationGlobalizationDiagnosticsDiagnosticsConfigurationConfigurationCollectionsCollections

ResourcesResourcesReflectionReflectionNetNetIOIO

ThreadingThreadingTextTextServiceProcessServiceProcessSecuritySecurity

CommonCommonOleDbOleDb

SQLTypesSQLTypesSqlClientSqlClient

XPathXPathXSLTXSLT

RuntimeRuntimeInteropServicesInteropServicesRemotingRemotingSerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionStateCachingCaching SecuritySecurity

ServicesServicesDescriptionDescriptionDiscoveryDiscoveryProtocolsProtocols

UIUIHtmlControlsHtmlControlsWebControlsWebControls

System.DrawingSystem.Drawing

ImagingImagingDrawing2DDrawing2D

TextTextPrintingPrinting

System.Windows.FormsSystem.Windows.Forms

DesignDesign ComponentModelComponentModel

Beneficios de .NET FrameworkBeneficios de .NET Framework

Modelo de ProgramaciModelo de Programacióón consistente y n consistente y simplificadosimplificadoDespliegue simplificado (Despliegue simplificado (deploymentdeployment))MMúúltiples plataformasltiples plataformasIntegraciIntegracióón de lenguajesn de lenguajesReutilizaciReutilizacióón de cn de cóódigodigoManejo automManejo automáático de memoriatico de memoriaDepuraciDepuracióón mejoradan mejoradaConsistente modelo de fallasConsistente modelo de fallasInteroperabilidadInteroperabilidad

Page 8: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Beneficios de .NET FrameworkBeneficios de .NET Framework

Soporta estSoporta estáándares de Internet (HTML, ndares de Internet (HTML, HTTP, XML, XSLT, SOAP)HTTP, XML, XSLT, SOAP)Una clase de .NET esta disponible para Una clase de .NET esta disponible para cualquier lenguaje de .NETcualquier lenguaje de .NET

¿ Cómo obtengo el .NET Framework ?¿ Cómo obtengo el .NET Framework ?

.NET .NET FrameworkFramework 1.0, 1.1, 2.0 es 1.0, 1.1, 2.0 es distribuido como un paquete distribuido como un paquete independiente de software.independiente de software.Es totalmente gratuito.Es totalmente gratuito.Se puede descargar desde:Se puede descargar desde:http://www.microsoft.com/downloadshttp://www.microsoft.com/downloadsWindows 2003 ya lo tiene incluido.Windows 2003 ya lo tiene incluido.

Page 9: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

¿ Dónde debo instalar el .NET Framework ?¿ Dónde debo instalar el .NET Framework ?

.NET Compact FrameworkAplicaciónWinForms Mobile

Aplicación de Consola

AplicaciónASP.NET Mobile

AplicaciónASP.NET

AplicaciónWinForms

ServidorCliente

¿Qué beneficios obtengo de esta tecnología?¿Qué beneficios obtengo de esta tecnología?

Conocer la tecnologConocer la tecnologíía ma máás moderna s moderna para el desarrollo de aplicaciones de la para el desarrollo de aplicaciones de la nueva generacinueva generacióón.n.Realizar las tareas en menor tiempo, Realizar las tareas en menor tiempo, optimizando recursos y minimizando el optimizando recursos y minimizando el riesgo.riesgo.Poder crear aplicaciones distribuidas, Poder crear aplicaciones distribuidas, Web, Windows o dispositivos mWeb, Windows o dispositivos móóviles viles con una misma base de conocimiento.con una misma base de conocimiento.

Page 10: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

RepasoRepaso¿¿Cual es el componente principal de Cual es el componente principal de

Microsoft .NET ?Microsoft .NET ?1.1. Es compatible con todos los productos Es compatible con todos los productos

de Microsoftde Microsoft2.2. Tiene una amplia colecciTiene una amplia coleccióón de n de

mméétodos y clases de varios lenguajestodos y clases de varios lenguajes3.3. Tiene una librerTiene una libreríía de clases que puede a de clases que puede

ser utilizada para tareas tser utilizada para tareas tíípicas.picas.4.4. Es un sistema independiente a la Es un sistema independiente a la

plataforma y dispositivo diseplataforma y dispositivo diseññado para ado para trabajar en Internet.trabajar en Internet.

RepasoRepaso¿¿ CuCuááles son ejemplos de componentes les son ejemplos de componentes

de .NET ?de .NET ?1.1. Internet Internet InformationInformation ServicesServices (IIS)(IIS)2.2. Windows Server 2003Windows Server 20033.3. VBScriptVBScript4.4. ExternalExternal hardhard drivesdrives5.5. Visual Studio .NETVisual Studio .NET

Page 11: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

RepasoRepaso¿¿QuQuéé componente de .NET ejecuta componente de .NET ejecuta

““GarbageGarbage collectioncollection””??1.1. CommonCommon LanguajeLanguaje RuntimeRuntime2.2. Web Web ServicesServices3.3. PlataformaPlataforma4.4. .NET .NET frameworkframework classclass librarylibrary

RepasoRepaso¿¿CuCuáál es la relacil es la relacióón entre Microsoft .NET y n entre Microsoft .NET y

el el frameworkframework de .NET?de .NET?1.1. El El frameworkframework de .NET es un lenguaje que de .NET es un lenguaje que

crea aplicaciones de Microsoft .NETcrea aplicaciones de Microsoft .NET2.2. El El frameworkframework de .NET es la de .NET es la

infraestructura de infraestructura de MicrosfotMicrosfot .NET.NET3.3. El El frameworkframework de .NET es un conjunto de de .NET es un conjunto de

clases que forma la librerclases que forma la libreríía de a de MicrosfotMicrosfot.NET.NET

4.4. MicrosfotMicrosfot .NET es un sistema operativo .NET es un sistema operativo sobre el cual corre el sobre el cual corre el frameworkframework de .NETde .NET

Page 12: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

RepasoRepaso¿¿CuCuááles de las opciones son problemas les de las opciones son problemas

que resuelve el que resuelve el frameworkframework de .NET?de .NET?1.1. No existen herramientas GUI que No existen herramientas GUI que

puedan construir y desplegar una puedan construir y desplegar una aplicaciaplicacióónn

2.2. Los desarrolladores son forzados a Los desarrolladores son forzados a usar usar C#C# para construir servicios Webpara construir servicios Web

3.3. Los desarrolladores tenLos desarrolladores teníían que an que rehacer las aplicaciones dirigidas a rehacer las aplicaciones dirigidas a distintos tipos de plataformasdistintos tipos de plataformas

4.4. Los desarrolladores debLos desarrolladores debíían aprender an aprender constantemente nuevos lenguajes.constantemente nuevos lenguajes.

Recursos de .NETRecursos de .NETMSDNMSDNhttp://www.gotdotnet.comhttp://www.gotdotnet.comhttp://www.ibuyspy.comhttp://www.ibuyspy.comhttp://www.asp.nethttp://www.asp.nethttp://www.msdn.microsoft.comhttp://www.msdn.microsoft.com

Page 13: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Arquitectura del .NET FrameworkArquitectura del .NET Framework

CCóódigodigo FuenteFuenteCC##

CCompiladorompilador

Managed CodeManaged CodeIL y IL y metadatosmetadatos

Modulos ManejadosModulos Manejados

EnsambladoEnsamblado

HerramientaHerramienta quequecobinacobina multiples multiples mmóódulosdulos y y archivos de archivos de recursos en un recursos en un ensambladoensamblado

CC# compiler# compiler((csc.execsc.exe))

ManifiestoManifiesto

Page 14: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

Compilación Just in Time (JIT)Compilación Just in Time (JIT)

El CLR Compila cada ensamblado la El CLR Compila cada ensamblado la primera vez que es invocado.primera vez que es invocado.El MSIL es compilado a cEl MSIL es compilado a cóódigo nativo digo nativo antes de ser ejecutadoantes de ser ejecutado

EnsambladosEnsambladosEs la unidad bEs la unidad báásica de sica de reusoreuso, control , control de verside versióón, seguridad y despliegue de n, seguridad y despliegue de los componentes usados en el los componentes usados en el frameworkframework de .NET de .NET Contienen un Manifiesto que almacena Contienen un Manifiesto que almacena sus sus metadatosmetadatos..

Nombre y versiNombre y versióón del ensambladon del ensambladoLos archivos que conforman los Los archivos que conforman los ensambladosensambladosLas dependencias del ensambladoLas dependencias del ensambladoLa cultura y el idiomaLa cultura y el idiomaLos permisos requeridosLos permisos requeridos

Page 15: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

EnsambladosEnsambladosEnsambladosEnsamblados simplessimplesEnsambladosEnsamblados MultiarchivoMultiarchivocsccsc //t:modulet:module MiArchivo.csMiArchivo.cs

MiArchivo.netModuleMiArchivo.netModulecsccsc //t:libraryt:library //out:multiAssembly.dllout:multiAssembly.dll//addmodule:MiArchivo.netModule,OtroArcaddmodule:MiArchivo.netModule,OtroArchivo.netModulehivo.netModule

EnsambladosEnsambladosEnsamblados EstEnsamblados Estááticos ticos

Todos sus archivos estTodos sus archivos estáán almacenados n almacenados ffíísicamente en el discosicamente en el disco

Ensamblados DinEnsamblados DináámicosmicosSe crean en tiempo de ejecuciSe crean en tiempo de ejecucióónnSe puede crear Se puede crear programaticamenteprogramaticamenteusando las clases del usando las clases del namespacenamespaceSystem.Reflection.EmitSystem.Reflection.Emit

Page 16: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

EnsambladosEnsambladosEnsamblados privadosEnsamblados privados

Si solo trabajan con una aplicaciSi solo trabajan con una aplicacióón en n en particularparticularSon copiadas bajo el mismo directorio de Son copiadas bajo el mismo directorio de la aplicacila aplicacióón que las usan que las usa

Ensamblados CompartidosEnsamblados CompartidosPuede ser usada por mPuede ser usada por máás de una s de una aplicaciaplicacióónnSon almacenadas en una ubicaciSon almacenadas en una ubicacióón n especial GACespecial GAC

Global Assembly CacheGlobal Assembly CacheTodos los ensamblados deben tener un Todos los ensamblados deben tener un strongstrong namename (nombre fuerte)(nombre fuerte)

Nombre del ensambladoNombre del ensambladoNNúúmero de la versimero de la versióónnCulturaCulturaLlave publicaLlave publicaFirma digitalFirma digital

CLR verifica la integridad del ensambladoCLR verifica la integridad del ensambladoGAC puede guardar varias copias del mismo GAC puede guardar varias copias del mismo ensamblado. Mismo nombre pero distinta ensamblado. Mismo nombre pero distinta versiversióónnUna aplicaciUna aplicacióón puede determinar que n puede determinar que versiversióón del ensamblado quiere usar con n del ensamblado quiere usar con ayuda del ayuda del web.configweb.config o o machine.configmachine.config

Page 17: Desarrollo de Aplicaciones Distribuidas con Servicios Web

Ing. Javier Aranda PantojaMicrosoft Certified Professional

EnsambladosEnsambladosEnsamblados SatelitalesEnsamblados Satelitales

Agrupan en si mismas cAgrupan en si mismas cóódigo y recursos digo y recursos ((imagenesimagenes))Guardan informaciGuardan informacióón de los recursos en n de los recursos en un archivo .un archivo .resxresxEste archivo .Este archivo .resxresx es compilado con es compilado con resgen.exeresgen.exe y crea otro archivo .y crea otro archivo .resourcesresourcesEl archivo .El archivo .resourcesresources es incluido en el es incluido en el ensamblado (ensamblado (csccsc //resourceresource))

EnsambladosEnsambladosEnsambaldosEnsambaldos solo de Recursossolo de Recursos

SSóólo agrupan recursoslo agrupan recursosSe crean usando la herramienta Se crean usando la herramienta AssemblyAssemblyLinkerLinker tooltool ((al.exeal.exe))El El namespacenamespace System.ResourcesSystem.Resourcescontiene clases para manipular recursoscontiene clases para manipular recursosGuardan informaciGuardan informacióón del idioma y culturan del idioma y cultura