desarrollo de aplicaciones para internet con asp .net

Upload: mike-damian-lopez

Post on 31-Oct-2015

93 views

Category:

Documents


3 download

TRANSCRIPT

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    1/574

    Este texto est pensadotanto para aquellos quedesean pasar de la

    tecnologa ASP al nuevoentorno de desarrollo deaplicaciones Web quepropone Microsoft, esdecir, ASP .NET, comopara todos aquellos quedesconocen la tecnologaASP (Active ServerPages) y deseanintroducirse en el mundodel desarrollo deaplicaciones de negocio

    en Internet dentro delnuevo entorno del .NETFramework de Microsoft.

    Se abordan diversostemas relacionados con latecnologa ASP .NET comopueden ser los controlesWeb, el lenguaje C#,Visual Studio .NET,Internet InformationServer 5, desarrollo de

    controles ASP .NET ycomponentes .NET, ADO.NET, construccin yutilizacin de serviciosWeb, etc.

    Se requiere conocer losfundamentos deInternet/Intranet, estarfamiliarizado con la

    navegacin por la web,conocer HTML y conocerel sistema operativoWindows a nivel deusuario, as como algunosconocimientos deprogramacin orientada aobjetos.

    DDEESSAARRRROOLLLLOO DDEEAAPPLLIICCAACCIIOONNEESS PPAARRAAIINNTTEERRNNEETT CCOONNAASSPP ..NNEETTAANNGGEELLEESSTTEEBBAANN

    Desarrollo de software

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    2/574

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    3/574

    ADVERTENCIA LEGAL

    Todos los derechos de esta obra estn reservados a Grupo EIDOS Consultora y DocumentacinInformtica, S.L.

    El editor prohbe cualquier tipo de fijacin, reproduccin, transformacin, distribucin, ya sea medianteventa y/o alquiler y/o prstamo y/o cualquier otra forma de cesin de uso, y/o comunicacin pblica de lamisma, total o parcialmente, por cualquier sistema o en cualquier soporte, ya sea por fotocopia, mediomecnico o electrnico, incluido el tratamiento informtico de la misma, en cualquier lugar del universo.

    El almacenamiento o archivo de esta obra en un ordenador diferente al inicial est expresamenteprohibido, as como cualquier otra forma de descarga (downloading), transmisin o puesta a disposicin(an en sistema streaming).

    La vulneracin de cualesquiera de estos derechos podr ser considerada como una actividad penaltipificada en los artculos 270 y siguientes del Cdigo Penal.

    La proteccin de esta obra se extiende al universo, de acuerdo con las leyes y convenios internacionales.

    Esta obra est destinada exclusivamente para el uso particular del usuario, quedando expresamenteprohibido su uso profesional en empresas, centros docentes o cualquier otro, incluyendo a sus empleadosde cualquier tipo, colaboradores y/o alumnos.

    Si Vd. desea autorizacin para el uso profesional, puede obtenerla enviando un e-mail [email protected] fax (34)-91-5017824.

    Si piensa o tiene alguna duda sobre la legalidad de la autorizacin de la obra, o que la misma ha llegadohasta Vd. vulnerando lo anterior, le agradeceremos que nos lo comunique al e-mail [email protected] alfax (34)-91-5017824. Esta comunicacin ser absolutamente confidencial.

    Colabore contra el fraude. Si usted piensa que esta obra le ha sido de utilidad, pero no se han abonado los

    derechos correspondientes, no podremos hacer ms obras como sta.

    Angel Esteban Nez, 2002 Grupo EIDOS Consultara y Documentacin Informtica, S.L., 2002

    ISBN 84-88457-52-9

    ASP .NETAngel Esteban Nez

    Responsable editorialPaco Marn ([email protected])

    AutoedicinMagdalena Marn ([email protected])Angel Esteban ([email protected])

    Coordinacin de la edicinAntonio Quirs ([email protected])

    Grupo EIDOSC/ Tllez 30 Oficina 228007-Madrid (Espaa)Tel: 91 5013234 Fax: 91 (34) 5017824www.grupoeidos.com/www.eidos.es www.LaLibreriaDigital.com

    mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]://www.grupoeidos.com/www.eidos.eshttp://www.grupoeidos.com/www.eidos.eshttp://www.lalibreriadigital.com/http://www.lalibreriadigital.com/http://www.lalibreriadigital.com/http://www.grupoeidos.com/www.eidos.esmailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]
  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    4/574

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    5/574

    ndice

    NDICE .................................................................................................................................................. 5

    INTRODUCCIN AL .NET FRAMEWORK ................................................................................. 13

    INTRODUCCIN.................................................................................................................................. 13ALGO EST CAMBIANDO ................................................................................................................... 13QU ES .NET?.................................................................................................................................. 14.NET FRAMEWORK........................................................................................................................... 16EL CLR, COMMON LANGUAGE RUNTIME......................................................................................... 17EL CTS, COMMON TYPE SYSTEM ..................................................................................................... 18METADATA (METADATOS) ................................................................................................................ 18

    SOPORTE MULTI-LENGUAJE ............................................................................................................... 18EL CLS (COMMON LANGUAGE SPECIFICATION) .............................................................................. 19EJECUCIN ADMINISTRADA............................................................................................................... 20

    Cdigo administrado..................................................................................................................... 20LA EJECUCIN DE CDIGO DENTRO DEL CLR ................................................................................... 20

    El IL, Intermediate Language ....................................................................................................... 20Compilacin instantnea del IL y ejecucin ................................................................................. 21Compilacin bajo demanda........................................................................................................... 22

    Independencia de plataforma........................................................................................................ 23DOMINIOS DE APLICACIN ................................................................................................................ 23SERVIDORES DE ENTORNO................................................................................................................. 24NAMESPACES..................................................................................................................................... 25

    LA JERARQUA DE CLASES DE .NET FRAMEWORK............................................................................ 26ENSAMBLADOS .................................................................................................................................. 27

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    6/574

    INTRODUCCIN A ASP .NET........................................................................................................ 29

    INTRODUCCIN.................................................................................................................................. 29RECORRIDO POR LAS DISTINTAS VERSIONES DE ASP........................................................................ 31MATERIAL NECESARIO ...................................................................................................................... 33COMPARATIVA DE ASP .NET CON ASP 3.0 ..................................................................................... 33

    Cdigo compilado ......................................................................................................................... 34Bloques de cdigo ......................................................................................................................... 34Directivas ...................................................................................................................................... 35Acceso a datos............................................................................................................................... 35Lenguajes ...................................................................................................................................... 36Orientacin a objetos .................................................................................................................... 36Otros cambios................................................................................................................................ 36

    SINTAXIS DE ASP .NET..................................................................................................................... 37WEB FORMS....................................................................................................................................... 40CONTROLES ASP .NET ..................................................................................................................... 42

    Controles intrnsecos..................................................................................................................... 43Controles HTML....................................................................................................................... 43

    Controles Web........................................................................................................................... 44Controles de lista........................................................................................................................... 46Controles ricos .............................................................................................................................. 46Controles de validacin................................................................................................................. 47

    ADO .NET ........................................................................................................................................ 48DATA BINDING .................................................................................................................................. 49EVENTOS DE LA PGINA .................................................................................................................... 50SEPARACIN DE CDIGO ................................................................................................................... 51LOS SERVICIOS DE CACH.................................................................................................................. 52HOLA MUNDO CON ASP .NET.......................................................................................................... 53

    INTRODUCCIN A LA POO........................................................................................................... 55

    INTRODUCCIN.................................................................................................................................. 55QU ES LA POO? ............................................................................................................................. 55OBJETOS ............................................................................................................................................ 56MENSAJES.......................................................................................................................................... 58CLASES .............................................................................................................................................. 58HERENCIA.......................................................................................................................................... 59MTODOS .......................................................................................................................................... 60POLIMORFISMO.................................................................................................................................. 60SOBRECARGA .................................................................................................................................... 60LA LEY DE DEMETER......................................................................................................................... 60MODELO DE OBJETOS ........................................................................................................................ 61

    RELACIONES ENTRE CLASES

    .............................................................................................................. 61VENTAJAS E INCONVENIENTES DE LA POO....................................................................................... 62UN EJEMPLO SENCILLO ...................................................................................................................... 63

    EL LENGUAJE C#............................................................................................................................. 67

    INTRODUCCIN.................................................................................................................................. 67HISTORIA RECIENTE DEL LENGUAJE C# ............................................................................................ 68EL LENGUAJE C# Y EL ENTORNO COMN DE EJECUCIN (CLR)...................................................... 68PRINCIPIOS BSICOS DE C# ............................................................................................................... 69

    Caractersticas generales.............................................................................................................. 69ESPACIOS CON NOMBRE (NAMESPACES)........................................................................................... 70SINTAXIS Y ELEMENTOS BSICOS DEL LENGUAJE C#........................................................................ 71

    Case-sensitive................................................................................................................................ 71Declaracin de variables .............................................................................................................. 71

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    7/574

    Delimitador de sentencias............................................................................................................. 72Comentarios .................................................................................................................................. 72

    Bloques .......................................................................................................................................... 72mbitos.......................................................................................................................................... 73Operadores.................................................................................................................................... 73

    Acceso a propiedades indexadas................................................................................................... 74Declaracin de propiedades simples............................................................................................. 75Arrays............................................................................................................................................ 76Inicializacin................................................................................................................................. 76Sentencias condicionales............................................................................................................... 76

    Bucles ............................................................................................................................................ 77Manejadores de eventos ................................................................................................................ 79Conversin de tipos....................................................................................................................... 80

    Definicin de clases....................................................................................................................... 81Tratamiento de errores.................................................................................................................. 82Campos.......................................................................................................................................... 83

    Mtodos ......................................................................................................................................... 88

    Mtodos constructores............................................................................................................... 88Mtodos estndar.......................................................................................................................... 92Modificadores de argumento..................................................................................................... 92Modificadores de mtodos ........................................................................................................ 94

    INSTALACIN DE VISUAL STUDIO .NET................................................................................ 101

    PREPARACIN DEL ENTORNO DE TRABAJO...................................................................................... 101.NET Framework SDK ................................................................................................................ 101Visual Studio .NET ...................................................................................................................... 101

    REQUISITOS HARDWARE.................................................................................................................. 102SISTEMA OPERATIVO ....................................................................................................................... 102RECOMENDACIONES PREVIAS.......................................................................................................... 102

    INSTALACIN DE VISUAL STUDIO .NET ......................................................................................... 103PRIMEROS PASOS CON ASP .NET............................................................................................. 111

    OBJETIVO DE ESTE TEMA ................................................................................................................. 111MATERIALES NECESARIOS............................................................................................................... 111EL SERVIDOR WEB ........................................................................................................................... 112INSTALACIN DE ASP .NET............................................................................................................ 114VISUAL STUDIO .NET...................................................................................................................... 117

    WEB FORMS: INTRODUCCIN Y CONTROLES HTML....................................................... 121

    INTRODUCCIN A LOS WEB FORMS................................................................................................. 121INTRODUCCIN A LOS CONTROLES ASP .NET................................................................................ 123

    HOLA MUNDO CON WEB FORMS..................................................................................................... 124CONTROLES HTML......................................................................................................................... 126HtmlAnchor ................................................................................................................................. 128HmlButton ................................................................................................................................... 130HtmlForm.................................................................................................................................... 130HtmlGenericControl.................................................................................................................... 130HtmlImage................................................................................................................................... 132HtmlInputButton.......................................................................................................................... 133HtmlInputCheckBox .................................................................................................................... 133HtmlInputFile.............................................................................................................................. 133HtmlInputHidden......................................................................................................................... 133HtmlInputImage........................................................................................................................... 134HtmlInputRadioButton ................................................................................................................ 135HtmlInputText.............................................................................................................................. 135

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    8/574

    HtmlSelect ................................................................................................................................... 135HtmlTable.................................................................................................................................... 135HtmlTableRow............................................................................................................................. 136HtmlTableCell ............................................................................................................................. 137

    CORRESPONDENCIA ENTRE CONTROLES HTML Y ETIQUETAS HTML........................................... 137

    WEB FORMS: CONTROLES WEB INTRNSECOS.................................................................. 139INTRODUCCIN A LOS CONTROLES WEB ........................................................................................ 139CONTROLES WEB INTRNSECOS ...................................................................................................... 142

    Button .......................................................................................................................................... 142CheckBox..................................................................................................................................... 144CheckBoxList............................................................................................................................... 145

    DropDownList............................................................................................................................. 147HyperLink.................................................................................................................................... 148Image........................................................................................................................................... 149ImageButton ................................................................................................................................ 149Label............................................................................................................................................ 150

    LinkButton ................................................................................................................................... 150ListBox......................................................................................................................................... 152Panel............................................................................................................................................ 154PlaceHolder................................................................................................................................. 156RadioButton................................................................................................................................. 156RadioButtonList........................................................................................................................... 158Table, TableRow y TableCell ...................................................................................................... 159TextBox........................................................................................................................................ 162

    APLICANDO ESTILOS A LOS CONTROLES WEB................................................................................. 163CORRESPONDENCIA ENTRE CONTROLES WEB INTRNSECOS Y ETIQUETAS HTML......................... 167

    WEB FORMS: CONTROLES RICOS Y DE VALIDACIN...................................................... 169

    CONTROLES RICOS........................................................................................................................... 169AdRotator .................................................................................................................................... 169Calendar...................................................................................................................................... 172

    CONTROLES DE VALIDACIN........................................................................................................... 179RequiredFieldValidator............................................................................................................... 181CompareValidator....................................................................................................................... 184

    RangeValidator ........................................................................................................................... 187RegularExpressionValidator ....................................................................................................... 188ValidationSummary..................................................................................................................... 189CustomValidator ......................................................................................................................... 191

    WEB FORMS: PLANTILLAS Y DATA BINDING...................................................................... 195

    INTRODUCCIN................................................................................................................................ 195INTRODUCCIN A LOS CONTROLES DE LISTA .................................................................................. 196PLANTILLAS (TEMPLATES) .............................................................................................................. 196DATA BINDING ................................................................................................................................ 202

    Estableciendo como origen de datos propiedades...................................................................... 207Estableciendo como origen de datos colecciones y listas........................................................... 210Estableciendo como origen de datos expresiones y mtodos ...................................................... 215El mtodo DataBinder.Eval()...................................................................................................... 216

    WEB FORMS: CONTROLES DE LISTA ..................................................................................... 221

    INTRODUCCIN................................................................................................................................ 221EL CONTROL REPEATER.................................................................................................................. 222

    EL CONTROL DATALIST .................................................................................................................. 223EL CONTROL DATAGRID ................................................................................................................. 235

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    9/574

    Definicin de columnas dentro de un control DataGrid............................................................. 237Otras operaciones con columnas ................................................................................................ 246

    Paginacin de un control DataGrid............................................................................................ 250

    LA CLASE PAGE............................................................................................................................. 255

    INTRODUCCIN................................................................................................................................ 255EVENTOS DE LA PGINA .................................................................................................................. 256PROPIEDADES DE LA CLASE PAGE ................................................................................................... 258MTODOS DE LA CLASE PAGE ......................................................................................................... 260DIRECTIVAS DE LA PGINA ............................................................................................................. 261

    La directiva @Page..................................................................................................................... 261La directiva @Import.................................................................................................................. 264La directiva @Implements .......................................................................................................... 266La directiva @Register................................................................................................................ 266La directiva @Assembly.............................................................................................................. 267La directiva @OutputCache........................................................................................................ 269La directiva @Reference............................................................................................................. 270

    CODE-BEHIND Y CONTROLES DE USUARIO ........................................................................ 271INTRODUCCIN................................................................................................................................ 271CODE-BEHIND ................................................................................................................................. 272

    Utilizando los controles Web de la pgina.................................................................................. 274Tratamiento de eventos ............................................................................................................... 275Clases Code-Behind y Visual Studio .NET.................................................................................. 277

    CONTROLES DE USUARIO................................................................................................................. 279Creando propiedades en los controles de usuario...................................................................... 283

    Eventos en los controles de usuario............................................................................................ 286La directiva @Control ................................................................................................................ 287Controles de usuario y clases Code-Behind................................................................................ 288

    Transformacin de una pgina ASP .NET en control de usuario ............................................... 291CREACIN DE COMPONENTES Y CONTROLES DE SERVIDOR...................................... 295

    INTRODUCCIN................................................................................................................................ 295INTRODUCCIN A LOS COMPONENTES .NET ................................................................................... 295CREACIN DE COMPONENTES .NET................................................................................................ 298CREACIN DE CONTROLES ASP .NET DE SERVIDOR...................................................................... 305

    Propiedades de los controles de servidor ................................................................................... 307Conversin de los valores de atributos ....................................................................................... 309Utilizando los servicios de HtmlTextWriter ................................................................................ 312

    Propiedades de clase................................................................................................................... 314Heredando de la clase System.Web.IU.WebControl ................................................................... 318

    Controles compuestos.................................................................................................................. 320Tratando los datos enviados........................................................................................................ 324Manteniendo el estado de los controles ...................................................................................... 326Lanzando eventos ........................................................................................................................ 328

    TRATAMIENTO DE ERRORES ................................................................................................... 333

    INTRODUCCIN................................................................................................................................ 333TRATAMIENTO DE ERRORES ESTRUCTURADO ................................................................................. 334LA CLASE EXCEPTION...................................................................................................................... 334TRY/CATCH (TRATANDO LAS EXCEPCIONES) ................................................................................. 335LANZANDO EXCEPCIONES ............................................................................................................... 338EXCEPCIONES PERSONALIZADAS..................................................................................................... 341

    TRATAMIENTO DE ERRORES EN ASP .NET ..................................................................................... 345EL MTODO PAGE_ERROR............................................................................................................... 346

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    10/574

    EL MTODO APPLICATION_ERROR.................................................................................................. 347EL ATRIBUTO ERRORPAGE DE LA DIRECTIVA @PAGE.................................................................... 349DEFINIENDO PGINAS DE ERROR EN EL FICHERO WEB.CONFIG ...................................................... 350

    TRAZAS Y DEPURACIN EN ASP .NET.................................................................................... 355

    INTRODUCCIN................................................................................................................................ 355EL MECANISMO DE TRAZAS ............................................................................................................. 355TRAZAS A NIVEL DE PGINA............................................................................................................ 355ESCRIBIENDO EN LAS TRAZAS ......................................................................................................... 357TRAZAS DESDE COMPONENTES .NET.............................................................................................. 361TRAZAS A NIVEL DE APLICACIN .................................................................................................... 363DEPURACIN EN ASP .NET ............................................................................................................ 365DEPURANDO CON EL SDK DEBUGGER............................................................................................ 366DEPURANDO CON VISUAL STUDIO .NET ........................................................................................ 370

    INTERNET INFORMATION SERVER 5.0 .................................................................................. 373

    INTRODUCCIN................................................................................................................................ 373EL SERVIDOR WEB INTERNET INFORMATION SERVER5.0............................................................... 374

    INSTALANDO IIS 5.0........................................................................................................................ 374NOVEDADES DE IIS 5.0.................................................................................................................... 376EL ADMINISTRADOR DE SERVICIOS DE INTERNET ........................................................................... 377ELEMENTOS DE IIS 5.0 .................................................................................................................... 381ADMINISTRACIN DEL SITIO WEB ................................................................................................... 382

    Sitio Web ..................................................................................................................................... 382Directorio particular................................................................................................................... 384Documentos................................................................................................................................. 385Operadores.................................................................................................................................. 386

    Errores personalizados ............................................................................................................... 386Rendimiento................................................................................................................................. 387

    Seguridad de directorios ............................................................................................................. 388Filtros ISAPI................................................................................................................................ 389Encabezados HTTP..................................................................................................................... 390Extensiones de servidor............................................................................................................... 391

    LA APLICACIN WEB ....................................................................................................................... 392

    APLICACIONES ASP .NET............................................................................................................ 397

    INTRODUCCIN................................................................................................................................ 397ELEMENTOS BSICOS DE UNA APLICACIN ASP .NET................................................................... 398EL DIRECTORIO BIN DE LA APLICACIN ......................................................................................... 398EL FICHERO GLOBAL.ASAX......................................................................................................... 399

    Directivas .................................................................................................................................... 401

    Declaracin de cdigo ................................................................................................................ 401Inclusiones del lado del servidor................................................................................................. 402Etiquetas de declaracin de objetos............................................................................................ 403

    EVENTOS DE LA APLICACIN........................................................................................................... 404Eventos por peticin.................................................................................................................... 405Eventos condicionales................................................................................................................. 409

    LA CLASE HTTPAPPLICATION.......................................................................................................... 412GESTIN DEL ESTADO DE LA APLICACIN ASP .NET..................................................................... 413EL OBJETO SESSION ......................................................................................................................... 414EL OBJETO APPLICATION................................................................................................................. 421EL OBJETO CACHE ........................................................................................................................... 422VARIABLES ESTTICAS.................................................................................................................... 426UTILIZANDO NUESTRA PROPIA CLASE PARA EL FICHERO GLOBAL.ASAX................................... 427

    CONFIGURACIN DE APLICACIONES ASP .NET................................................................ 431

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    11/574

    INTRODUCCIN................................................................................................................................ 431APLICANDO LA CONFIGURACIN..................................................................................................... 433FORMATO DE LOS FICHEROS DE CONFIGURACIN ........................................................................... 434

    Seccin de manejadores .............................................................................................................. 435Seccin de valores de configuracin........................................................................................... 436

    TAREAS COMUNES DE CONFIGURACIN .......................................................................................... 438Configuracin general ................................................................................................................ 439Configuracin de la pgina......................................................................................................... 440Configuracin de la aplicacin................................................................................................... 441Configuracin de la sesin.......................................................................................................... 442Configuracin de trazas .............................................................................................................. 444

    Errores personalizados ............................................................................................................... 445Web Services................................................................................................................................ 447Globalizacin .............................................................................................................................. 448Compilacin ................................................................................................................................ 450

    Identidad...................................................................................................................................... 452Manejadores HTTP..................................................................................................................... 453

    Modelo de proceso ...................................................................................................................... 456INDICANDO LA LOCALIZACIN........................................................................................................ 459BLOQUEANDO VALORES DE CONFIGURACIN ................................................................................. 459

    ACCESO A DATOS CON ADO .NET............................................................................................ 461

    INTRODUCCIN................................................................................................................................ 461COMPARATIVA DE ADO /ADO .NET ............................................................................................. 462BENEFICIOS DE ADO .NET ............................................................................................................. 464ARQUITECTURA DE DATOS DESCONECTADOS ................................................................................. 466

    DataSet ........................................................................................................................................ 467ADO .NET y XML........................................................................................................................ 467

    UNA VISIN GENERAL DE ADO .NET............................................................................................. 468

    LAS CLASES DE ADO .NET............................................................................................................. 469ESTABLECIENDO LA CONEXIN. LOS OBJETOS CONNECTION ......................................................... 471LOS OBJETOS COMMAND ................................................................................................................. 474LOS OBJETOS DATAREADER............................................................................................................ 479EL OBJETO DATASET ....................................................................................................................... 482LOS OBJETOS DATAADAPTER......................................................................................................... 487

    CREACIN DE SERVICIOS WEB ............................................................................................... 491

    INTRODUCCIN................................................................................................................................ 491INTRODUCCIN A LOS SERVICIOS WEB ........................................................................................... 491ARQUITECTURA DE UN SERVICIO WEB............................................................................................ 493CONSTRUCCIN DE SERVICIOS WEB ............................................................................................... 494

    COMPROBANDO EL FUNCIONAMIENTO DEL SERVICIO WEB ............................................................ 497LA DIRECTIVA @WEBSERVICE ....................................................................................................... 501LOS ATRIBUTOS WEBSERVICE Y WEBMETHOD .............................................................................. 502LA CLASE WEBSERVICE .................................................................................................................. 507SERVICIOS WEB DE ACCESO A DATOS ............................................................................................. 511

    UTILIZACIN DE SERVICIOS WEB.......................................................................................... 517

    INTRODUCCIN................................................................................................................................ 517LAS FASES DE LA PUESTA EN MARCHA DE UN SERVICIO WEB......................................................... 518DESCRIPCIN Y LOCALIZACIN DE SERVICIOS WEB ....................................................................... 519LAS CLASES PROXY ......................................................................................................................... 526

    Creacin de clases proxy con Visual Studio .NET...................................................................... 528Creacin de clases proxy con la utilidad WSDL.EXE................................................................. 537

    VISUAL STUDIO .NET ................................................................................................................... 543

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    12/574

    INTRODUCCIN................................................................................................................................ 543EL LARGO CAMINO HACIA LA CONVERGENCIA ............................................................................... 544VISUAL STUDIO .NET, EL PRIMER PASO DE LA TOTAL INTEGRACIN............................................. 544LA PGINA DE INICIO....................................................................................................................... 544CREACIN DE UNA APLICACIN ASP .NET .................................................................................... 546VENTANA PRINCIPAL DE TRABAJO .................................................................................................. 549EL EXPLORADOR DE SOLUCIONES ................................................................................................... 553AGREGAR NUEVOS ELEMENTOS A UN PROYECTO............................................................................ 554EL MEN CONTEXTUAL ................................................................................................................... 556PROPIEDADES DEL PROYECTO ......................................................................................................... 556MOSTRAR LA PANTALLA COMPLETA ............................................................................................... 557EL DISEADOR DE FORMULARIOS WEB........................................................................................... 557LAS BARRAS DE HERRAMIENTAS ..................................................................................................... 559EL EXAMINADOR DE OBJETOS ......................................................................................................... 561CLASES CODE-BEHIND Y VISUAL STUDIO .NET............................................................................. 562UTILIZANDO COMPONENTES EN VS .NET....................................................................................... 564DEPURANDO CON VISUAL STUDIO .NET ........................................................................................ 566

    CREACIN DE CLASES PROXY CON VISUAL STUDIO .NET.............................................................. 567EL SISTEMA DE AYUDA .................................................................................................................... 570Ayuda dinmica........................................................................................................................... 571Contenido .................................................................................................................................... 572

    ndice........................................................................................................................................... 572Ayuda externa.............................................................................................................................. 573Otros modos de acceso a la ayuda.............................................................................................. 574

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    13/574

    Introduccin al .NET Framework

    IntroduccinEn este primer captulo se va a tratar de exponer una serie de generalidades sobre la plataforma .NET,denominada tambin .NET Framework. Por lo tanto en este captulo no vamos a ver ningn aspectoparticular de ASP .NET sino que veremos conceptos globales de .NET. En el siguiente captulo si quecomenzaremos a tratar temas especficos de ASP .NET.

    Algo est cambiando

    El mundo del desarrollo de aplicaciones se encuentra sumido en una nueva etapa de transformacin y

    evolucin hacia nuevos esquemas de trabajo.

    Los factores determinantes de dicho cambio los podemos encontrar en la necesidad de utilizar Internetcomo vehculo de intercambio por parte de diversos sectores de la economa.

    Las empresas requieren establecer relaciones comerciales ms dinmicas con sus clientes, de modoque su volumen de negocio se incremente a travs del canal de ventas electrnico (el denominadocomercio electrnico o e-commerce). Por otro lado tambin necesitan unas relaciones empresarialesms giles en este mismo marco del ciberespacio (el llamado B2B o Bussiness to bussiness).

    Aparte de todos estos elementos, nos encontramos con que el usuario de este medio, Internet, disponede dispositivos cada vez ms sofisticados para desplazarse por la Red, no slo el PC; y adems, exige

    que todos ellos permitan un acceso rpido y sencillo, a mltiples aplicaciones simultneamente, con unmayor grado de interaccin, y obteniendo informacin de un amplio conjunto de fuentes de datos; todo

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    14/574

    Programacin de aplicaciones para Internet con ASP .NET Grupo EIDOS

    14

    esto, naturalmente, sin los tradicionales esfuerzos de configuracin que requieren algunasaplicaciones.

    Con el paso del tiempo, Internet se ha convertido en el principal entorno de trabajo para el desarrollode aplicaciones que gestionan informacin, haciendo que su alcance sea mayor que ningn otro medio

    hasta el momento. Baste pensar, que con un simple dispositivo que tenga acceso a Internet (lase unPC) y un programa navegador, es posible acceder a infinidad de sitios web basados en este paradigma.

    Sin embargo, actualmente, la comunicacin entre servidores es complicada (sobre todo si residen enplataformas distintas), y la integracin de aplicaciones en dispositivos que no sean el tpico PC, eslimitada con las herramientas disponibles hasta la fecha. Pero no desesperemos, nos encontramos enun momento crucial, en el que todos esos inconvenientes pueden ser salvados gracias a un nuevoavance tecnolgico: Microsoft .NET.

    Qu es .NET?

    .NET es toda una nueva arquitectura tecnolgica, desarrollada por Microsoft para la creacin ydistribucin del software como un servicio. Esto quiere decir, que mediante las herramientas dedesarrollo proporcionadas por esta nueva tecnologa, los programadores podrn crear aplicacionesbasadas en servicios para la web.

    Las caractersticas principales que conforman .NET son las siguientes:

    La plataforma .NET Framework, que proporciona la infraestructura para crear aplicaciones yel entorno de ejecucin para las mismas.

    Los productos de Microsoft enfocados hacia .NET, entre los que se encuentran Windows

    .NET Server, como sistema operativo que incluir de forma nativa la plataforma .NETFramework; Visual Studio .NET, como herramienta integrada para el desarrollo deaplicaciones; Office .NET; b.Central para .NET, etc.

    Servicios para .NET desarrollados por terceros fabricantes, que podrn ser utilizados por otrasaplicaciones que se ejecuten en Internet.

    Existen adicionalmente un conjunto de productos, que bajo la etiqueta de Servidores Empresarialespara .NET (.NET Enterprise Servers) se incluyen dentro de la estrategia .NET. Entre estos productospodemos encontrar a SQL Server 2000, BizTalk Server, Commerce Server 2000, etc. Sin embargo,hemos de hacer una puntualizacin importante: estos productos no estn basados en .NET Framework,pueden funcionar dentro del entorno de ejecucin de .NET Framework, pero el nico productoactualmente desarrollado bajo el nuevo entorno es Visual Studio .NET.

    Gracias a .NET y a su modelo de desarrollo basado en servicios, se flexibiliza y enriquece el modo enel que hasta ahora se construan aplicaciones para Internet. La idea que subyace bajo esta tecnologa,es la de poblar Internet con un extenso nmero de aplicaciones, que basadas en servicios para la web(Web Services), formen un marco de intercambio global, gracias a que dichos servicios estnfundamentados en los estndares SOAP y XML, para el intercambio de informacin.

    En este sentido, un programador puede crear Web Services para que sean utilizados por sus propiasaplicaciones a modo de componentes (pero de una forma mucho ms avanzada que empleando elmodelo COM clsico), siguiendo una estructura de programacin ya conocida. VerFigura 1.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    15/574

    Grupo EIDOS 1.Introduccin al .NET Framework

    15

    Figura 1. Esquema de funcionamiento de aplicacin web incluyendo Web Services.

    Sin embargo, los Web Services traen de la mano un nuevo modelo de distribucin del software; elbasado en el desarrollo y publicacin de Web Services y en la suscripcin a los mismos por parte deotras aplicaciones, potenciales usuarios de tales servicios. VerFigura 2.

    Figura 2. Interaccin de aplicaciones con Web Services publicados en Internet.

    Los fabricantes de software, pueden de esta manera, dedicarse a la creacin de servicios web y a sualquiler. Nace de esta manera, la figura del proveedor de servicios web.

    Dado el esquema anterior, el programador puede construir sus aplicaciones a base de Web Services,

    reduciendo significativamente el tiempo y esfuerzo en el desarrollo.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    16/574

    Programacin de aplicaciones para Internet con ASP .NET Grupo EIDOS

    16

    .NET Framework

    .NET Framework constituye la plataforma y elemento principal sobre el que se asienta Microsoft

    .NET. De cara al programador, es la pieza fundamental de todo este nuevo modelo de trabajo, ya que

    proporciona las herramientas y servicios que necesitar en su labor habitual de desarrollo.

    .NET Framework permite el desarrollo de aplicaciones a travs del uso de un conjunto de herramientasy servicios que proporciona, y que pueden agruparse en tres bloques principales: el Entorno deEjecucin Comn o Common Language Runtime (CLR a partir de ahora); la jerarqua de clasesbsicas de la plataforma o .NET Framework Base Classes; y el motor de generacin de interfaz deusuario, que permite crear interfaces para la web o para el tradicional entorno Windows, as comoservicios para ambos entornos operativos. La Figura 3 muestra un diagrama con la distribucin deelementos dentro del entorno de .NET Framework.

    Figura 3. Esquema de componentes dentro de la plataforma .NET Framework.

    En la base del entorno de ejecucin, se encuentra el CLR, que constituye el ncleo de .NETFramework, encargndose de la gestin del cdigo en cuanto a su carga, ejecucin, manipulacin dememoria, seguridad, etc.

    En el nivel intermedio, se sita la jerarqua de clases bsicas del entorno de ejecucin, que constituyenun slido API de servicios a disposicin del programador, para multitud de tareas como, gestin delsistema de ficheros, manipulacin multihebra, acceso a datos, etc.

    Finalmente, en el nivel superior, encontramos las clases que permiten el diseo del interfaz de usuariode nuestras aplicaciones. Si necesitamos desarrollar aplicaciones para Internet, utilizaremos ASP.NET,que nos provee de todo lo necesario para crear aplicaciones para la Red: web forms, web services, etc.

    Y no piense el programador tradicional de Windows, que todo en .NET Framework es programacinpara Internet. La plataforma no se ha olvidado de este colectivo de programadores, que necesitandesarrollar programas para este sistema operativo, y pone a su disposicin los denominados WindowsForms, la nueva generacin de formularios, con caractersticas avanzadas y muy superiores a las delmotor de generacin de formularios de VB6.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    17/574

    Grupo EIDOS 1.Introduccin al .NET Framework

    17

    Adicionalmente, existe la posibilidad de que necesitemos servicios del sistema que no requieraninterfaz de usuario en absoluto. Este aspecto tambin est contemplado por la plataforma,permitindonos, por ejemplo, la creacin de servicios para Windows 2000 y NT.

    El CLR, Common Language RuntimeEl Entorno de Ejecucin Comn de Lenguajes o CLR (Common Language Runtime), representa elalma de .NET Framework y es el encargado de la ejecucin del cdigo de las aplicaciones.

    A continuacin se enumeran algunas de las caractersticas de este componente de la plataforma:

    Proporciona un desarrollo de aplicaciones ms sencillo y rpido gracias a que gran parte de lasfuncionalidades que tradicionalmente deba de crear el programador, vienen implementadas enel entorno de ejecucin.

    Administra el cdigo en tiempo de ejecucin, en todo lo referente a su carga, disposicin enmemoria, recuperacin de memoria no utilizada a travs de un recolector de memoria, etc.

    Implementa caractersticas de gestin a bajo nivel (administracin de memoria, por ejemplo),que en ciertos lenguajes, eran labor del programador.

    Proporciona un sistema comn de tipos para todos los lenguajes del entorno.

    Gestiona la seguridad del cdigo que es ejecutado.

    Dispone de un diseo abierto a lenguajes y herramientas de desarrollo creadas por tercerosfabricantes.

    Facilita enormemente la distribucin e instalacin de aplicaciones, ya que en teora, es posibleinstalar una aplicacin simplemente copiando los ficheros que la componen en uno de losdirectorios del equipo en el que se vaya a ejecutar, eliminando los temibles conflictos deversiones entre libreras, problema conocido tambin con el nombre deInfierno de las DLL o

    DLL Hell.

    La Figura 4 muestra un esquema de la organizacin interna del CLR.

    Figura 4. Esquema de elementos dentro del CLR.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    18/574

    Programacin de aplicaciones para Internet con ASP .NET Grupo EIDOS

    18

    En los siguientes apartados, haremos una descripcin de los elementos y caractersticas msdestacables del CLR, que permitan al lector obtener una visin global del mismo, y de las ventajas deescribir programas para este entorno de ejecucin.

    El CTS, Common Type SystemEl Sistema Comn de Tipos o CTS (Common Type System), es el mecanismo del CLR que permitedefinir el modo en que los tipos sern creados y manipulados por el entorno de ejecucin de .NETFramework.

    Entre las funcionalidades que comprende, podemos destacar la integracin de cdigo escrito endiferentes lenguajes; optimizacin del cdigo en ejecucin; un modelo de tipos orientado a objeto, quesoporta mltiples lenguajes; y una serie de normas que aseguran la intercomunicacin entre objetos.

    El sistema comn de tipos (CTS a partir de ahora), como hemos indicado, permite definir o disear el

    modo en cmo el cdigo de la aplicacin ser ejecutado, pero no se encarga directamente de suejecucin; dicho de otro modo, el CTS le dice al CLR cmo quiere que sea ejecutado el cdigo.

    Un ejemplo de las ventajas del CTS, consiste en que desde un lenguaje como VB.NET, podemosinstanciar un objeto de una clase escrita en otro lenguaje como C#; y al hacer una llamada a uno de losmtodos del objeto, no es necesario realizar conversiones de tipos en los parmetros del mtodo,funcionando todo de forma transparente.

    Metadata (metadatos)

    Durante el diseo de .NET Framework, se hizo evidente que una aplicacin necesitaba, adems de supropio cdigo ejecutable, informacin adicional sobre la propia aplicacin, que pudiera ser utilizadapor el entorno de ejecucin para funcionalidades diversas.

    Para resolver este problema, se opt por incluir toda esta informacin complementaria dentro de lapropia aplicacin. A la informacin que va incluida en la aplicacin pero que no forma parte delcdigo ejecutable se le denomina metadatos, y con esta tcnica obtenemos aplicaciones o componentesauto-descritos.

    Los metadatos son creados por el compilador del lenguaje utilizado en cada caso y grabados dentro delfichero resultante (EXE o DLL) en formato binario, siendo el CLR el encargado de recuperarlos en elmomento que los necesite.

    Algunos de los datos proporcionados por los metadatos de una aplicacin son la descripcin delensamblado (trataremos los ensamblados posteriormente) junto a su versin, clave y tipos que locomponen (clases, interfaces, etc.).

    Soporte multi-lenguaje

    Uno de los puntos clave del CLR es que est diseado para soportar mltiples lenguajes, permitiendoas unos elevados niveles de integracin entre los mismos. Con tal motivo, .NET Frameworkproporciona los siguientes lenguajes con sus correspondientes compiladores para la escritura deaplicaciones:

    VB.NET.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    19/574

    Grupo EIDOS 1.Introduccin al .NET Framework

    19

    C#.

    C++ con Extensiones Administradas.

    JScript.NET.

    Por integracin de lenguajes podemos definir algo tan poderoso como el hecho de escribir una clase enC#, y heredar de dicha clase desde VB.NET. Esto permite formar grupos de trabajo heterogneos, enlos que cada integrante del grupo, puede escribir el cdigo de una aplicacin en el lenguaje de supreferencia. Gracias a que el entorno de ejecucin es comn, y el cdigo compilado no pasadirectamente a cdigo ejecutable puro, sino a un cdigo intermedio (lo veremos ms adelante),podemos crear nuestros programas en el lenguaje con el que nos sintamos ms cmodos en cuanto asintaxis y prestaciones, por ejemplo VB.NET; con la ventaja de que la velocidad de ejecucin sermuy parecida a la obtenida habiendo escrito el cdigo en otro lenguaje en principio ms rpido comoC++ o C#.

    El CLS (Common Language Specification)

    La integracin entre lenguajes mencionada en el anterior apartado, puede llevar a preguntarnos cmoes posible conseguir que lenguajes de distinta naturaleza y sintaxis se entiendan.

    La respuesta la hallamos en la Especificacin Comn de Lenguajes o CLS (Common LanguageSpecification), que consiste en un conjunto de caractersticas comunes, que deben cumplir todos loslenguajes de la plataforma, para poder integrarse entre s.

    Esto tiene varias finalidades, que describimos a continuacin:

    Independencia del lenguaje. En muchas ocasiones el programador se ve obligado a escribirel cdigo en un lenguaje que no es de su agrado; la causa de ello es que dicho lenguaje leprovee de funcionalidades de las cuales carece su lenguaje preferido. Con .NET, esto noocurre, puesto que es la propia plataforma la que proporciona la funcionalidad de modoindependiente al lenguaje, por lo que podemos escribir nuestras aplicaciones utilizando ellenguaje con el que nos sintamos ms cmodos, ya que el resultado ser el mismo.

    Integracin entre lenguajes. Es posible escribir, por ejemplo, una librera de clases en unlenguaje, y utilizarla desde otro lenguaje distinto (siempre que ambos lenguajes cumplan conlas normas del CLS). Este concepto no es nuevo, hasta ahora tambin podamos escribir unalibrera en C++ y utilizarla desde VB, pero gracias al CLS, se extiende y se potencia estemodo de trabajo, ya que al basarse los lenguajes en un conjunto de reglas comunes, el accesoen el caso antes mencionado, a una librera de clases, se facilita enormemente desde cualquierotro lenguaje creado en base al CLS.

    Apertura a nuevos lenguajes. Finalmente, al ser esta, una especificacin abierta, es posibleincorporar a .NET Framework nuevos lenguajes, aparte de los actualmente disponibles, y noslo creados por Microsoft, sino por cualquier otro fabricante. Mediante el CLS, un fabricantede software sabe qu requisitos debe observar un nuevo lenguaje que l desarrolle, para poderintegrase en el entorno de .NET Framework.

    Terceros fabricantes ya han anunciado en este sentido, su intencin de proporcionar nuevoslenguajes para .NET; de esta forma aparecern progresivamente versiones para esta plataforma

    de Cobol, Perl, Smalltalk, etc., en una lista en la que actualmente figuran ms de veintelenguajes candidatos.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    20/574

    Programacin de aplicaciones para Internet con ASP .NET Grupo EIDOS

    20

    Ejecucin administrada

    La ejecucin administrada se trata de un conjunto de elementos existentes en .NET Framework, quesupervisan el cdigo del programa durante su ejecucin dentro del CLR, asegurndose de que el

    cdigo cumple todos los requisitos para poder hacer uso de los servicios proporcionados por el entornode ejecucin, y beneficiarse de sus ventajas.

    Cdigo administrado

    El cdigo que escribamos orientado a utilizar todas las cualidades del CLR se denomina cdigoadministrado. Por defecto el cdigo escrito en VB.NET, C# y JScript.NET es administrado, con lo queel programador no debe preocuparse en configurar de manera especial su proyecto.

    Por el contrario, el cdigo escrito en C++ no es administrado por defecto, lo que significa que elentorno no lo supervisa y no garantiza su fiabilidad al ser ejecutado por el CLR. Si el programador deC++ quiere que su cdigo sea administrado debe utilizar las extensiones administradas que laplataforma proporciona para este lenguaje y activarlas a travs de una opcin del compilador.

    El hecho de que el entorno realice labores de comprobacin sobre el cdigo, supone evidentemente,una labor extra que repercute sobre el rendimiento final a la hora de ejecutar el programa. Sinembargo, las pruebas realizadas ofrecen como resultado una prdida de un 10% en el rendimiento delcdigo administrado con respecto al cdigo no administrado.

    Teniendo en cuenta los niveles de seguridad que nos ofrece el cdigo administrado y dado que lavelocidad de los procesadores evoluciona, esta prdida de rendimiento que supone la ejecucinadministrada posiblemente no sea significativa en un corto plazo de tiempo.

    La ejecucin de cdigo dentro del CLR

    El proceso de ejecucin del cdigo en el entorno de .NET Framework, vara notablemente respecto almodo de ejecucin tradicional de programas. En este apartado, realizaremos un repaso de loselementos y tcnicas que intervienen en dicho proceso, de modo que el lector tenga un conocimientoms detallado de lo que sucede con el cdigo, desde que termina de escribirlo, y hasta el resultadoobtenido tras su ejecucin.

    El IL, Intermediate LanguageDurante el proceso de compilacin, el cdigo fuente es tomado por el compilador del lenguajeutilizado para su escritura, y convertido, no directamente a cdigo binario, sino a un lenguajeintermedio, que recibe el nombre de Microsoft Intermediate Languaje (MSIL o IL).

    Este lenguaje o cdigo intermedio (IL a partir de ahora), generado por el compilador, consiste en unconjunto de instrucciones que son independientes del sistema operativo o procesador en el que vaya aejecutarse el programa, y que se ocupan de la manipulacin de objetos, accesos a memoria, manejo deexcepciones, etc.

    La Figura 5 muestra un diagrama con el proceso de generacin de lenguaje intermedio a partir del

    cdigo fuente.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    21/574

    Grupo EIDOS 1.Introduccin al .NET Framework

    21

    Figura 5. Obtencin de lenguaje intermedio a partir de cdigo fuente.

    Adems del cdigo en IL, el compilador genera tambin metadatos, que como se ha explicado en unapartado anterior, contienen informacin adicional, incluida en la propia aplicacin, y que sernutilizados por el CLR al ejecutar el programa.

    Tanto el cdigo en IL, como los metadatos generados, se guardan en un fichero de tipo EXE o DLL,basado en la especificacin tradicional de Microsoft para ficheros con formato de ejecutabletransportable (Portable Executable o PE) y objeto comn (Common Object File Format o COFF). Conel desarrollo de la tecnologa .NET, esta especificacin ha sido ampliada para dar cabida, adems de

    cdigo binario, cdigo IL y metadatos.

    Ya que el cdigo obtenido en IL es independiente del procesador, en su estado actual no es posibletodava ejecutarlo, debido a que el IL no ha sido diseado para conocer las instrucciones especficasdel procesador en el que se va a ejecutar. La ejecucin se lleva a cabo, realizando el paso final decompilacin que se detalla seguidamente.

    Compilacin instantnea del IL y ejecucin

    Como acabamos de indicar, el cdigo en lenguaje intermedio no es directamente ejecutable, ya que

    desconoce la arquitectura del procesador sobre la cual va a funcionar.

    Antes de realizar la ejecucin, el cdigo en IL debe ser convertido a cdigo mquina, utilizando lo quese denomina un compilador instantneo o compilador Just-In-Time (JIT compiler), que es elencargado de generar el cdigo binario especfico para el procesador en el que el programa serejecutado. La Figura 6 muestra un esquema con el proceso de compilacin llevado a cabo por elcompilador Just-In-Time (JIT a partir de ahora).

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    22/574

    Programacin de aplicaciones para Internet con ASP .NET Grupo EIDOS

    22

    Figura 6. Proceso de compilacin instantnea de cdigo IL.

    Compilacin bajo demanda

    Para optimizar la ejecucin y mejorar su velocidad, el compilador JIT se basa en el hecho de que esposible que ciertas partes del cdigo que compone la aplicacin nunca sean ejecutadas. Por estemotivo, al ejecutar la aplicacin, no se toma todo su IL y se compila, sino que slo se compila elcdigo segn se va necesitando y se almacena el cdigo mquina resultante de modo que estaccesible en las siguientes llamadas. Veamos con un poco ms de detalle este proceso.

    Durante la carga de la aplicacin, el cargador de cdigo del CLR, toma cada tipo incluido en elprograma, y para cada uno de los mtodos que componen el tipo, crea y pega una etiqueta indicativade su estado.

    En la primera llamada a un mtodo, se comprueba su estado de compilacin a travs de la etiqueta deestado; como an no est compilado, se pasa el control al JIT, que compila el cdigo IL a cdigomquina. A continuacin se modifica la etiqueta de estado, de modo que en las prximas llamadas aese mtodo, la etiqueta de estado informa que el mtodo ya ha sido compilado, por lo que se evitarepetir el proceso de compilacin, ejecutando directamente el cdigo mquina creado con anterioridad.

    Esta tcnica optimiza notablemente la velocidad de ejecucin. VerFigura 7.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    23/574

    Grupo EIDOS 1.Introduccin al .NET Framework

    23

    Figura 7. Compilacin bajo demanda en .NET Framework.

    Independencia de plataforma

    Ya que el cdigo mquina ejecutable, es obtenido a travs de un compilador JIT, con las instruccionesadecuadas para un procesador determinado, .NET Framework proporciona varios compiladores JITpara cada una de las plataformas que soporta, consiguiendo as que la aplicacin, una vez escrita,pueda funcionar en distintos sistemas operativos, y haciendo realidad el objetivo de que nuestrocdigo sea independiente de la plataforma en la que se vaya a ejecutar, actuando .NET Frameworkcomo una capa intermedia, que asla el cdigo del sistema operativo. VerFigura 8.

    Figura 8. Una misma aplicacin se ejecuta en distintos sistemas a travs de .NET Framework.

    Dominios de aplicacin

    En .NET Framework se han reforzado las caractersticas de seguridad y aislamiento hasta un nivel quepermite la ejecucin de mltiples aplicaciones en un mismo proceso. A este contexto de ejecucin deun programa se le denomina dominio de aplicacin (Application Domain).

    La tcnica utilizada tradicionalmente para conseguir aislar las aplicaciones, de modo que no seproduzcan colisiones entre las mismas, ha sido a travs de procesos. Cada aplicacin se carga en unproceso separado, que proporciona el adecuado nivel de aislamiento; de este modo, se evitan posiblesconflictos entre las direcciones de memoria utilizadas por cada programa. Sin embargo, esto supone un

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    24/574

    Programacin de aplicaciones para Internet con ASP .NET Grupo EIDOS

    24

    gran consumo de recursos, cuando las aplicaciones deben hacer llamadas a otras aplicaciones queresidan en procesos distintos, debido a que se debe de realizar un traspaso de procesos entre laaplicacin que realiza la llamada y la aplicacin destino. Esta tcnica ha sido mejorada en .NET, demodo que se consigue tener en un mismo proceso, varias aplicaciones en ejecucin.

    El cdigo administrado en .NET Framework, para poder ser considerado como seguro, debe pasar enprimer lugar una fase de comprobacin, efectuada por el CLR, que asegure el hecho de que no realiceningn acceso no permitido a direcciones de memoria u otras operaciones que puedan provocar unfallo del sistema. Una vez superada dicha comprobacin, el cdigo es marcado como seguro a nivel detipos (type-safe), y la aplicacin ejecutada.

    Superada esta fase de verificacin, el programa se ejecutar en un dominio de aplicacin, que comohemos comentado antes, consiste en una tcnica que permite ejecutar varias aplicaciones en un nicoproceso, con el mismo nivel de aislamiento que si se estuvieran ejecutando en procesos separados, y laventaja de eliminar la sobrecarga producida cuando distintas aplicaciones estn situadas en diferentesprocesos y deben hacerse llamadas entre s. Cada aplicacin se ejecuta en su propio dominio deaplicacin

    Los dominios de aplicacin incrementan notablemente la capacidad de crecimiento de los servidores alejecutar mltiples aplicaciones en un mismo proceso. La Figura 9 muestra un esquema del proceso decarga y ejecucin de aplicaciones en sus correspondientes dominios de aplicacin.

    Figura 9. Carga de aplicaciones y creacin de dominios de aplicacin en procesos.

    Servidores de entorno

    Un servidor de entorno o Runtime Host es el encargado de ejecutar un dominio de aplicacin dentrodel CLR, aprovechando las ventajas proporcionadas por este ltimo.

    Cuando el CLR se dispone a ejecutar una aplicacin, un servidor de entorno crea el entorno deejecucin o shell para dicha aplicacin, y lo carga en un proceso; a continuacin, crea un dominio deaplicacin en ese proceso y por ltimo carga la aplicacin en el dominio.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    25/574

    Grupo EIDOS 1.Introduccin al .NET Framework

    25

    .NET Framework dispone entre otros, de los servidores de entorno relacionados a continuacin:

    ASP.NET. Carga el entorno en un proceso preparado para gestionarse en la web; creandotambin, un dominio de aplicacin para cada aplicacin de Internet ejecutada en un servidorweb.

    Internet Explorer. Crea un dominio de aplicacin por cada sitio web visitado, en el que seejecutan controles administrados basados en el navegador.

    Windows Shell. Crea un dominio de aplicacin con interfaz Windows, para cada programaque es ejecutado.

    La Figura 10 muestra un diagrama del trabajo realizado por un servidor de entorno.

    Figura 10. Servidor de entorno creando un entorno para un dominio de aplicacin.

    Namespaces

    Otro de los pilares que forman los cimientos de .NET Framework es el concepto de espacio denombres o namespaces.

    Un namespace o espacio de nombres, tambin denominado nombre calificado, es el medioproporcionado por la plataforma para organizar las clases dentro del entorno, agrupndolas de unmodo ms lgico y jerrquico. Para comprender mejor este concepto veamos un ejemplo:

    Estamos desarrollando un conjunto de clases para las operaciones de gestin contable y facturas deuna empresa. Podemos ir escribiendo todas las clases y situarlas dentro de una misma aplicacin oDLL. Actualmente tenemos dos clases para operaciones contables, denominadas Balance y LibroIVA,y otras dos clases para operaciones con facturas, denominadas Albaran y Factura.

    Pero necesitamos aadir una clase ms para las facturas que registre el libro de IVA de las facturasemitidas. El nombre ms idneo sera LibroIVA, pero ya est siendo utilizado, as que para evitarproblemas de duplicidad de nombres, debemos elegir otro que puede no se ajuste a definir lafuncionalidad de la clase.

    Mediante el uso de espacios de nombre este problema sera solucionado, con el aadido de poderorganizar mejor cada clase, asignndole un nombre jerrquico para la funcionalidad que desempea.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    26/574

    Programacin de aplicaciones para Internet con ASP .NET Grupo EIDOS

    26

    Para ello, deberamos crear un namespace con el nombre Gestion, que contuviera otros dosnamespaces llamados Contabilidad y Facturacin, para finalmente incluir en cada uno de ellos lasclases correspondientes. La Figura 11 muestra un diagrama organizativo de las clases de este ejemploutilizando espacios de nombre.

    Figura 11. Estructura de un namespace con namespaces contenidos y clases dependientes.

    Para acceder desde el cdigo de una aplicacin, a una clase contenida dentro de un espacio de nombre,debemos indicarlo en la aplicacin realizando una operacin que se denominaImportar

    La convencin sintctica para hacer referencia a una clase contenida en un espacio de nombre es elespacio de nombre y la clase separados por un punto. En el caso de acceder a una clase que seencuentra con varios espacios de nombre de profundidad, especificaremos dichos espacios de nombreseparados por un punto, e igualmente al final, la clase. La inclusin al final del nombre de la clase,depende de si instanciamos directamente el objeto usando la lista de espacios de nombre o importamosdicha lista.

    En el caso de instanciar un objeto directamente en el cdigo, escribiremos los espacios de nombre y alfinal, el nombre de la clase. Si importamos los espacios de nombre, no debemos poner el nombre de laclase, sino que debemos terminar con el espacio de nombres que contiene la clase que necesitamos.

    Todas las clases de la plataforma .NET estn contenidas dentro de espacios de nombre, por lo quesiempre que necesitemos instanciar un objeto, deberemos hacerlo usando la convencin de espacios denombre y puntos explicada anteriormente.

    La jerarqua de clases de .NET Framework

    El entorno de ejecucin integra toda la funcionalidad y servicios necesarios a travs de la jerarqua declases base de la plataforma. La mayor parte de las necesidades bsicas del programador estn

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    27/574

    Grupo EIDOS 1.Introduccin al .NET Framework

    27

    cubiertas por este amplio conjunto de clases, que permiten dotar a las aplicaciones de todas lascaractersticas necesarias.

    El desarrollador experimentado puede estar preguntndose la necesidad de implementar una nuevajerarqua de clases si las actuales ya cumplen con su cometido. Entre las posibles razones, queremos

    destacar las siguientes:

    El nuevo sistema de clases est mucho mejor organizado, y provee al programador de unapotencia y versatilidad para sus aplicaciones nunca antes lograda en versiones anteriores deVisual Studio.

    Podemos crear una nueva clase, heredando de una clase propia de la plataforma, para extendersu funcionalidad.

    Desplazando la funcionalidad de las clases fuera de los lenguajes, y hacindolas por lo tanto,independientes de los mismos, simplifica el proceso de desarrollo.

    Al ser las clases de .NET Framework, comunes a todos los lenguajes, se eliminan las barrerastradicionales que impedan a los programadores abordar ciertos proyectos por el hecho de usar unlenguaje que no dispona de cierta funcionalidad que s tena otro lenguaje. Ahora cualquierprogramador, con independencia del lenguaje que elija, tiene pleno acceso a todas las funcionalidadesque le brinda la plataforma .NET.

    Ensamblados

    Un ensamblado o assembly, consiste en un conjunto de tipos y recursos, reunidos para formar launidad ms elemental de cdigo que puede ejecutar el entorno de .NET Framework.

    De igual forma que los edificios se crean a base de la unin de un conjunto de materiales, dentro de latecnologa .NET, los ensamblados se presentan como los bloques de construccin software, que seunen o ensamblan para crear aplicaciones. Una aplicacin desarrollada para .NET Framework debeestar compuesta por uno o varios ensamblados, verFigura 12.

    Podemos establecer una analoga entre un ensamblado y una DLL, ya que ambos contienen clases, quese exponen a otras aplicaciones. Por dicho motivo, a un ensamblado tambin se le da el nombre de

    DLL lgica; el trmino DLL se emplea porque tiene un comportamiento similar al de las DLLstradicionales, y el trmino lgica porque un ensamblado es un concepto abstracto, ya que se trata deuna lista de ficheros que se referencian en tiempo de ejecucin, pero que no se compilan para producirun fichero fsico, a diferencia de lo que ocurre con las DLLs tradicionales.

    Sin embargo, un ensamblado extiende sus funcionalidades a un horizonte mucho ms amplio, ya quepuede contener otros elementos aparte de clases, como son recursos, imgenes, etc.

    Por otro lado, simplifican los tradicionales problemas de instalacin y control de versiones sobre losprogramas, uno de los objetivos de la tecnologa .NET, en la que en teora, para instalar unaaplicacin, slo sera necesario copiar los ficheros que la componen en un directorio de la mquinaque la vaya a ejecutar.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    28/574

    Programacin de aplicaciones para Internet con ASP .NET Grupo EIDOS

    28

    Figura 12. Los ensamblados forman bloques de construccin de aplicaciones.

  • 7/16/2019 Desarrollo de Aplicaciones Para Internet Con ASP .NET

    29/574

    Introduccin a ASP .NET

    IntroduccinEste texto pretende ofrecer una visin detallada de la tecnologa ASP .NET perteneciente a la nuevaplataforma de Microsoft, denominada .NET Framework o plataforma .NET. ASP .NET es la nuevaversin de las pginas activas de servidor, ms conocidas como Active Server Pages (ASP).

    ASP .NET ofrece toda una nueva forma de desarrollar aplicaciones basadas en el entorno deInternet/Intranet, esta forma nueva de trabajar incluye una serie de novedades que no slo son lascorrespondientes a una siguiente versin de ASP, sino que son las que se desprenden tambin de lanueva plataforma ofrecida por Microsoft, es decir, la plataforma .NET.

    Este texto es vlido para aquellos lectores que ya conozcan alguna de las versiones anteriores de ASP,y tambin para aquellos que no conocen ASP o que tienen algunas nociones bsicas.

    Nuestro objetivo va a ser centrarnos en la tecnologa ASP .NET, aunque comentaremos debrevemente, y cuando sea necesario, algunos conceptos generales de la plataforma .NET (.NETFramework), ya que no debemos olvidar que es la plataforma sobre la que se van a ejecutar lasaplicaciones Web desarrolladas con la nueva tecnologa ASP .NET, es decir, las pginas ASP .NET nose van a ejecutar directamente sobre un sistema operativo determinado, sino que lo van a hacer sobrela nueva plataforma que ofrece Microsoft.

    La plataforma .NET ofrece una s