Está en la página 1de 41

tex

to

Desarrollo
de aplicaciones web
con ASP .NET 4.0

Eje

mp

lo

de

ngel Esteban y ngel Rayo

Pgina | 1

Sipnosis

tex

to

Este texto se encuentra dedicado a la nueva versin de ASP .NET que ofrece Microsoft dentro de su entorno .NET Framework 4.0. Se abordan diversos temas relacionados con el desarrollo de aplicaciones Web basadas en ASP .NET 4.0
como pueden ser: los tipos de controles Web que se incluyen en esta versin (de inicio de sesin, de navegacin, de acceso a datos, etc.), el servicio gestor de roles, tratamiento de errores, depuracin y trazas, etc. Se requiere conocer los fundamentos de Internet/Intranet, estar familiarizado con la navegacin por la web, conocer HTML y conocer el sistema
operativo Windows a nivel de usuario, as como algunos conocimientos de programacin orientada a objetos.
Los lenguajes de programacin utilizados a lo largo del texto son Visual Basic .NET y C#.

de

Angel Esteban (Madrid, 1975) Ingeniero Tcnico en Informtica de Gestin (Universidad


Politcnica de Madrid), con las siguientes titulaciones de Microsoft: MCSD, MCAD y
MCTS (en SQL Server 2005). Trabaja como Software Architect en Alhambra-Eidos. Experto en el diseo y desarrollo de aplicaciones Web basadas en ASP .NET. Autor de varios cursos virtuales en www.elcampusdigital.com.

lo

ngel Rayo es formador de Alhambra-Eidos desde 2004. Ha sido el autor y coautor de


varios libros entre los que destaca el titulado "Administracin y Desarrollo con WSS 3.0 y
MOSS 2007" centrado en Microsoft SharePoint as como otros relacionados con la plataforma .NET. Adems, ha escrito artculos para dotnetmana sobre el ciclo de vida de desarrollo de software con Visual Studio Team System, MSF y CMMI.

Eje

mp

Ha participado en ponencias sobre SharePoint, Visual Studio Team System y Symbian.


Posee las certificaciones MCPD en .NET Framework 4.0, MCITP en SQL Server 2008 y
MCTS en SharePoint 2010 principalmente. Est certificado como formador oficial de Microsoft, EXIN y Nokia+Symbian, siendo en esta ltima certificacin uno de los dos nicos
profesionales autorizados en Espaa. Dentro de la gestin de procesos posee las certificaciones ITILv3 Expert, ITILv2 Service Manager e ISO/IEC 20000 Consultant Manager.

Pgina | 2

tex

Desarrollo de aplicaciones Web con ASP .NET 4.0

to

Luarna
ngel Esteban y ngel M. Rayo - Alhambra Eidos
De esta edicin: 2011, Luarna Ediciones, S.L.

Madrid, febrero de 2011


ISBN: 978-84-15013-03-7

Eje

mp

lo

Versin 1.0 (25/02/2011)

de

www.luarna.com

Cualquier forma de reproduccin, distribucin, comunicacin pblica o transformacin de esta obra solo puede ser realizada con la autorizacin de sus titulares, salvo excepcin prevista por la ley. Dirjase a CEDRO (Centro Espaol de Derechos Reprogrficos, www.cedro.org) si necesita fotocopiar, escanear o hacer copias digitales de algn fragmento de esta
obra.

Pgina | 3

to
tex
de

lo

DESARROLLO DE APLICACIONES WEB


CON ASP .NET 4.0

Eje

mp

ngel Esteban y ngel M. Rayo

Pgina | 4

to

Indice

1. INTRODUCCIN A ASP .NET 4.0 .................................................................................................................................................. 15

de

tex

INTRODUCCIN ............................................................................................................................................................................... 15
LENGUAJES DE PROGRAMACIN .......................................................................................................................................................... 16
RECORRIDO POR LAS DISTINTAS VERSIONES DE ASP .................................................................................................................................. 16
NOVEDADES DE ASP .NET 4.0 ........................................................................................................................................................... 18
Nuevos controles de servidor .................................................................................................................................................. 18
Master Pages ......................................................................................................................................................................... 20
Temas y Skins ......................................................................................................................................................................... 20
Personalizacin....................................................................................................................................................................... 20
Internacionalizacin ............................................................................................................................................................... 20
Nuevo modelo de separacin de cdigo .................................................................................................................................. 21
PostBack entre distintas pginas............................................................................................................................................. 22
Nuevos eventos de las pginas ASPX ....................................................................................................................................... 22
Soporte para manejar el foco de la pgina .............................................................................................................................. 23
Nuevas caractersticas del cdigo de cliente ............................................................................................................................ 23
Directorios de una aplicacin ASP .NET ................................................................................................................................... 24
Nueva sintaxis ........................................................................................................................................................................ 25
Nuevas directivas de las pginas ASPX .................................................................................................................................... 25
Distribucin de la aplicacin ................................................................................................................................................... 26
Visual Studio 2010 .................................................................................................................................................................. 26
Precompilacin de pginas ..................................................................................................................................................... 27
Mejora del ViewState ............................................................................................................................................................. 27
API de configuracin ............................................................................................................................................................... 28
Consola MMC de administracin............................................................................................................................................. 28
Soporte para 64 bits ............................................................................................................................................................... 29
MATERIAL NECESARIO ...................................................................................................................................................................... 29
2. PRIMEROS PASOS CON ASP .NET 4.0 .......................................................................................................................................... 31

mp

lo

INTRODUCCIN ............................................................................................................................................................................... 31
EL ENTORNO DE TRABAJO .................................................................................................................................................................. 31
CREACIN DE UNA APLICACIN WEB CON VS 2010 ................................................................................................................................. 32
MODELO DE SEPARACIN DE CDIGO ................................................................................................................................................... 36
CREACIN DE NUESTRA PRIMERA PGINA ASP .NET 4.0 ........................................................................................................................... 38
CASO PRCTICO .............................................................................................................................................................................. 41
Planteamiento ........................................................................................................................................................................ 41
3. ELEMENTOS COMUNES DEL DESARROLLO DE APLICACIONES WEB CON ASP .NET 4.0 ................................................................ 42

Eje

INTRODUCCIN ............................................................................................................................................................................... 42
SINTAXIS BSICA DE ASP .NET ........................................................................................................................................................... 42
WEB FORMS .................................................................................................................................................................................. 45
CONTROLES HTML Y CONTROLES WEB DE SERVIDOR ................................................................................................................................ 46
EVENTOS DE UNA PGINA ASPX ......................................................................................................................................................... 49
SEPARACIN DE CDIGO ................................................................................................................................................................... 53
DIRECTIVAS DE LAS PGINAS ASPX ...................................................................................................................................................... 55
EVENTOS DE LOS CONTROLES WEB DE SERVIDOR ..................................................................................................................................... 56
CONFIGURACIN DE LAS APLICACIONES ASP .NET ................................................................................................................................... 62
CASO PRCTICO: PLANTEAMIENTO ....................................................................................................................................................... 63

4. CONTROLES HTML ...................................................................................................................................................................... 64


INTRODUCCIN ............................................................................................................................................................................... 64
CONTROLES HTML .......................................................................................................................................................................... 64
HTMLANCHOR ................................................................................................................................................................................ 66
HMLBUTTON ................................................................................................................................................................................. 68
HTMLFORM ................................................................................................................................................................................... 68
HTMLGENERICCONTROL ................................................................................................................................................................... 68

Pgina | 5

tex

to

HTMLHEAD ................................................................................................................................................................................... 70
HTMLTITLE .................................................................................................................................................................................... 71
HTMLMETA ................................................................................................................................................................................... 71
HTMLLINK ..................................................................................................................................................................................... 71
HTMLIMAGE .................................................................................................................................................................................. 72
HTMLINPUTBUTTON ........................................................................................................................................................................ 73
HTMLINPUTSUBMIT, HTMLINPUTRESET ................................................................................................................................................ 73
HTMLINPUTCHECKBOX ..................................................................................................................................................................... 73
HTMLINPUTFILE .............................................................................................................................................................................. 73
HTMLINPUTHIDDEN ......................................................................................................................................................................... 73
HTMLINPUTIMAGE .......................................................................................................................................................................... 74
HTMLINPUTRADIOBUTTON ................................................................................................................................................................ 75
HTMLINPUTTEXT ............................................................................................................................................................................. 75
HTMLSELECT .................................................................................................................................................................................. 75
HTMLTABLE ................................................................................................................................................................................... 75
HTMLTABLEROW ............................................................................................................................................................................ 77
HTMLTABLECELL ............................................................................................................................................................................. 77
HTMLTEXTAREA ............................................................................................................................................................................. 77
CORRESPONDENCIA ENTRE CONTROLES HTML Y ETIQUETAS HTML ............................................................................................................. 77
CASO PRCTICO .............................................................................................................................................................................. 78
Planteamiento ........................................................................................................................................................................ 78
5.CONTROLES WEB ESTNDAR I ..................................................................................................................................................... 79

mp

lo

de

INTRODUCCIN A LOS CONTROLES WEB ................................................................................................................................................ 79


CONTROLES WEB ESTNDAR .............................................................................................................................................................. 82
BUTTON ........................................................................................................................................................................................ 82
CHECKBOX .................................................................................................................................................................................... 83
CHECKBOXLIST ............................................................................................................................................................................... 85
DROPDOWNLIST ............................................................................................................................................................................. 87
BULLETEDLIST................................................................................................................................................................................. 89
HYPERLINK .................................................................................................................................................................................... 92
IMAGE .......................................................................................................................................................................................... 92
IMAGEBUTTON ............................................................................................................................................................................... 92
LABEL ........................................................................................................................................................................................... 93
LITERAL ......................................................................................................................................................................................... 94
LINKBUTTON .................................................................................................................................................................................. 94
HIDDENFIELD ................................................................................................................................................................................. 95
LISTBOX ........................................................................................................................................................................................ 96
PANEL .......................................................................................................................................................................................... 97
PLACEHOLDER ................................................................................................................................................................................ 98
RADIOBUTTON ............................................................................................................................................................................... 99
RADIOBUTTONLIST ........................................................................................................................................................................ 100
FILEUPLOAD ................................................................................................................................................................................ 102
IMAGEMAP ................................................................................................................................................................................. 104
TABLE, TABLEROW Y TABLECELL ....................................................................................................................................................... 105
TEXTBOX ..................................................................................................................................................................................... 107
CORRESPONDENCIA ENTRE CONTROLES WEB ESTNDAR BSICOS Y ETIQUETAS HTML .................................................................................... 107
CASO PRCTICO 1: PLANTEAMIENTO .................................................................................................................................................. 108
CASO PRCTICO 2: PLANTEAMIENTO .................................................................................................................................................. 108
6.CONTROLES WEB ESTNDAR II .................................................................................................................................................. 109

Eje

INTRODUCCIN ............................................................................................................................................................................. 109


CALENDAR ................................................................................................................................................................................... 109
MULTIVIEW ................................................................................................................................................................................. 117
WIZARD ...................................................................................................................................................................................... 121
CASO PRCTICO: PLANTEAMIENTO ..................................................................................................................................................... 130

7.CONTROLES WEB DE VALIDACIN ............................................................................................................................................. 132


INTRODUCCIN ............................................................................................................................................................................. 132
SINTAXIS Y ASPECTOS GENERALES ....................................................................................................................................................... 132
REQUIREDFIELDVALIDATOR.............................................................................................................................................................. 133

Pgina | 6

to

COMPAREVALIDATOR ..................................................................................................................................................................... 136


RANGEVALIDATOR ......................................................................................................................................................................... 139
REGULAREXPRESSIONVALIDATOR ...................................................................................................................................................... 140
VALIDATIONSUMMARY ................................................................................................................................................................... 141
CUSTOMVALIDATOR....................................................................................................................................................................... 143
GRUPOS DE VALIDACIN.................................................................................................................................................................. 146
CASO PRCTICO: PLANTEAMIENTO ..................................................................................................................................................... 147
8.ASPECTOS COMUNES DE LOS CONTROLES WEB ........................................................................................................................ 148

tex

INTRODUCCIN ............................................................................................................................................................................. 148


EL API FOCUS .............................................................................................................................................................................. 148
CROSS-PAGE POSTBACK ................................................................................................................................................................. 151
APLICANDO ESTILOS A LOS CONTROLES WEB ......................................................................................................................................... 155
AADIENDO CONTROLES WEB EN TIEMPO DE EJECUCIN ......................................................................................................................... 160
9.CONTROLES WEB DE NAVEGACIN I ......................................................................................................................................... 162
INTRODUCCIN ............................................................................................................................................................................. 162
DEFINIENDO LA ESTRUCTURA DEL SITIO WEB ........................................................................................................................................ 162
SITEMAPPATH .............................................................................................................................................................................. 165
TREEVIEW ................................................................................................................................................................................... 168
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 187
10.CONTROLES WEB DE NAVEGACIN II ...................................................................................................................................... 188

de

INTRODUCCIN ............................................................................................................................................................................. 188


MENU ........................................................................................................................................................................................ 188
SITEMAPDATASOURCE ................................................................................................................................................................... 196
LA CLASE SITEMAP ........................................................................................................................................................................ 200
CASO PRCTICO: PLANTEAMIENTO ..................................................................................................................................................... 202
11.PLANTILLAS Y DATA BINDING EN ASP .NET 4.0 ........................................................................................................................ 204

lo

INTRODUCCIN ............................................................................................................................................................................. 204


INTRODUCCIN A LOS CONTROLES ENLAZADOS A DATOS .......................................................................................................................... 204
PLANTILLAS .................................................................................................................................................................................. 205
DATA BINDING ............................................................................................................................................................................. 211
Estableciendo como origen de datos propiedades ................................................................................................................. 216
Estableciendo como origen de datos colecciones y listas........................................................................................................ 220
Estableciendo como origen de datos expresiones y mtodos.................................................................................................. 226
El mtodo DataBinder.Eval()/Eval() ....................................................................................................................................... 227
Caso Prctico: Planteamiento ............................................................................................................................................... 231

mp

12.CONTROLES WEB DE DATOS: CONTROLES DE ORIGEN DE DATOS ............................................................................................ 232


INTRODUCCIN ............................................................................................................................................................................. 232
CLASIFICACIN DE LOS CONTROLES WEB DE DATOS ................................................................................................................................ 232
SQLDATASOURCE .......................................................................................................................................................................... 233
ACCESSDATASOURCE ..................................................................................................................................................................... 244
XMLDATASOURCE ......................................................................................................................................................................... 247
OBJECTDATASOURCE ..................................................................................................................................................................... 249
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 252
13.CONTROLES WEB DE DATOS: CONTROLES ENLAZADOS A DATOS I .......................................................................................... 253

Eje

INTRODUCCIN ............................................................................................................................................................................. 253


REPEATER .................................................................................................................................................................................... 253
EL CONTROL DATALIST .................................................................................................................................................................... 255
GRIDVIEW ................................................................................................................................................................................... 265
Definicin de columnas dentro de un control GridView .......................................................................................................... 266
Ordenacin de columnas....................................................................................................................................................... 273
Paginacin............................................................................................................................................................................ 276
Seleccin de una fila ............................................................................................................................................................. 279
Edicin y modificacin de una fila ......................................................................................................................................... 281
Eliminar filas......................................................................................................................................................................... 284
Mostrar y ocultar columnas .................................................................................................................................................. 286

Pgina | 7

Barra de scroll en un control GridView .................................................................................................................................. 288


14.CONTROLES WEB DE DATOS: CONTROLES ENLAZADOS A DATOS II ......................................................................................... 290

to

INTRODUCCIN ............................................................................................................................................................................. 290


DETAILSVIEW ............................................................................................................................................................................... 290
Configurando el control DetailsView ..................................................................................................................................... 291
Modificacin, insercin y eliminacin de datos ...................................................................................................................... 295
Conectando los controles GridView y DetailsView.................................................................................................................. 298
FORMVIEW.................................................................................................................................................................................. 300
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 309

tex

15.CONTROLES WEB DE INICIO DE SESIN I ................................................................................................................................. 310

de

INTRODUCCIN ............................................................................................................................................................................. 310


AUTENTICACIN Y AUTORIZACIN ...................................................................................................................................................... 310
CONTROLES DE INICIO DE SESIN ....................................................................................................................................................... 311
CONFIGURANDO LA APLICACIN WEB PARA EL USO DEL SERVICIO MEMBERSHIP ............................................................................................ 313
El modelo de proveedores ..................................................................................................................................................... 313
Configuracin del fichero Web.config .................................................................................................................................... 315
CREATEUSERWIZARD ..................................................................................................................................................................... 319
Definiendo una zona segura y una zona pblica .................................................................................................................... 320
Creacin de un nuevo usuario ............................................................................................................................................... 321
Personalizando el control CreateUserWizard ......................................................................................................................... 322
Creacin de usuarios con la clase Membership ...................................................................................................................... 328
LOGIN ........................................................................................................................................................................................ 333
16.CONTROLES WEB DE INICIO DE SESIN II ................................................................................................................................ 339

lo

INTRODUCCIN ............................................................................................................................................................................. 339


CONFIGURACIN DEL PROVEEDOR DEL SERVICIO MEMBERSHIP .................................................................................................................. 339
LOGINSTATUS ............................................................................................................................................................................... 341
LOGINNAME ................................................................................................................................................................................ 342
CHANGEPASSWORD ....................................................................................................................................................................... 343
PASSWORDRECOVERY .................................................................................................................................................................... 348
LOGINVIEW ................................................................................................................................................................................. 350
LA CLASE MEMBERSHIP ................................................................................................................................................................... 358
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 369
17.EL SERVICIO GESTOR DE ROLES................................................................................................................................................ 371

mp

INTRODUCCIN ............................................................................................................................................................................. 371


CONFIGURACIN DEL FICHERO WEB.CONFIG ........................................................................................................................................ 371
CONFIGURACIN DEL SERVICIO GESTOR DE ROLES .................................................................................................................................. 373
EL PROVEEDOR DEL SERVICIO GESTOR DE ROLES ..................................................................................................................................... 375
DEFINIENDO LOS ROLES DE UNA APLICACIN ......................................................................................................................................... 376
ASIGNACIN DE ROLES A USUARIOS .................................................................................................................................................... 380
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 387
18.TRATAMIENTO DE ERRORES .................................................................................................................................................... 388

Eje

INTRODUCCIN ............................................................................................................................................................................. 388


TRATAMIENTO DE ERRORES ESTRUCTURADO ......................................................................................................................................... 388
LA CLASE EXCEPTION ...................................................................................................................................................................... 388
TRY/CATCH (TRATANDO LAS EXCEPCIONES) ......................................................................................................................................... 389
LANZANDO EXCEPCIONES ................................................................................................................................................................. 393
EXCEPCIONES PERSONALIZADAS ......................................................................................................................................................... 396
TRATAMIENTO DE ERRORES EN ASP .NET ........................................................................................................................................... 400
EL MTODO PAGE_ERROR ............................................................................................................................................................... 401
EL MTODO APPLICATION_ERROR ..................................................................................................................................................... 402
EL ATRIBUTO ERRORPAGE DE LA DIRECTIVA @PAGE ............................................................................................................................... 404
DEFINIENDO PGINAS DE ERROR EN EL FICHERO WEB.CONFIG ................................................................................................................... 406
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 408

19.TRAZAS Y DEPURACIN EN ASP .NET 4.0 ................................................................................................................................. 410


INTRODUCCIN ............................................................................................................................................................................. 410

Pgina | 8

to

EL MECANISMO DE TRAZAS............................................................................................................................................................... 410


TRAZAS A NIVEL DE PGINA .............................................................................................................................................................. 410
ESCRIBIENDO EN LAS TRAZAS ............................................................................................................................................................ 411
TRAZAS DESDE COMPONENTES .NET .................................................................................................................................................. 416
TRAZAS A NIVEL DE APLICACIN ......................................................................................................................................................... 418
DEPURACIN EN ASP .NET ............................................................................................................................................................. 419
DEPURANDO CON EL SDK DEBUGGER ................................................................................................................................................. 420
DEPURANDO CON VISUAL STUDIO 2010 ............................................................................................................................................. 423
20.LA CLASE PAGE ........................................................................................................................................................................ 425

tex

INTRODUCCIN ............................................................................................................................................................................. 425


EVENTOS DE LA PGINA ................................................................................................................................................................... 425
PROPIEDADES DE LA CLASE PAGE ....................................................................................................................................................... 429
MTODOS DE LA CLASE PAGE ........................................................................................................................................................... 431
DIRECTIVAS DE LA PGINA................................................................................................................................................................ 431
La directiva @Page ............................................................................................................................................................... 432
La directiva @Import ............................................................................................................................................................ 435
La directiva @Implements .................................................................................................................................................... 435
La directiva @Register .......................................................................................................................................................... 435
La directiva @Assembly ........................................................................................................................................................ 436
La directiva @OutputCache .................................................................................................................................................. 437
La directiva @Reference ....................................................................................................................................................... 439

de

21.APLICACIONES ASP .NET 4.0 I .................................................................................................................................................. 440

lo

INTRODUCCIN ............................................................................................................................................................................. 440


ELEMENTOS BSICOS DE UNA APLICACIN ASP .NET ............................................................................................................................. 440
DIRECTORIOS ESPECIALES DE LA APLICACIN ASP .NET ........................................................................................................................... 440
LOS DIRECTORIOS BIN Y APP_CODE DE LA APLICACIN ............................................................................................................................ 442
EL FICHERO GLOBAL.ASAX ............................................................................................................................................................ 444
Directivas ............................................................................................................................................................................. 445
Declaracin de cdigo........................................................................................................................................................... 446
Inclusiones del lado del servidor ............................................................................................................................................ 447
Etiquetas de declaracin de objetos ...................................................................................................................................... 447
EVENTOS DE LA APLICACIN ............................................................................................................................................................. 448
Eventos por peticin ............................................................................................................................................................. 449
Eventos condicionales ........................................................................................................................................................... 453
LA CLASE HTTPAPPLICATION ............................................................................................................................................................. 456
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 457
22.MASTER PAGES ....................................................................................................................................................................... 458

mp

INTRODUCCIN ............................................................................................................................................................................. 458


AADIENDO UNA PGINA MAESTRA ................................................................................................................................................... 458
ASOCIANDO PGINAS MAESTRAS ....................................................................................................................................................... 461
CREANDO LA PGINA DE CONTENIDO .................................................................................................................................................. 462
ACCEDIENDO A LA PGINA MAESTRA .................................................................................................................................................. 467
INDICANDO CONTENIDO POR DEFECTO ................................................................................................................................................ 472
ASIGNACIN DE LA PGINA MAESTRA EN TIEMPO DE EJECUCIN ................................................................................................................ 474
PGINAS MAESTRAS ANIDADAS ......................................................................................................................................................... 475
EVENTOS DE LAS PGINAS MAESTRAS .................................................................................................................................................. 478
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 481

Eje

23.TEMAS Y SKINS ........................................................................................................................................................................ 483


INTRODUCCIN ............................................................................................................................................................................. 483
APLICANDO TEMAS ........................................................................................................................................................................ 483
UTILIZANDO SKINS ......................................................................................................................................................................... 486
PGINAS MAESTRAS Y TEMAS ........................................................................................................................................................... 494
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 496

24.CREACIN Y UTILIZACIN DE CONTROLES DE USUARIO .......................................................................................................... 497


INTRODUCCIN ............................................................................................................................................................................. 497
CONTROLES DE USUARIO ................................................................................................................................................................. 497

Pgina | 9

to

LA DIRECTIVA @REGISTER ............................................................................................................................................................... 498


CREANDO UN CONTROL DE USUARIO................................................................................................................................................... 499
CREANDO PROPIEDADES EN LOS CONTROLES DE USUARIO ......................................................................................................................... 502
EVENTOS EN LOS CONTROLES DE USUARIO............................................................................................................................................ 506
LA DIRECTIVA @CONTROL ............................................................................................................................................................... 507
CONTROLES DE USUARIO Y EL MODELO SE SEPARACIN DE CDIGO ............................................................................................................. 508
TRANSFORMACIN DE UNA PGINA ASPX EN CONTROL DE USUARIO .......................................................................................................... 510
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 513
25.CREACIN DE COMPONENTES Y CONTROLES WEB DE SERVIDOR ............................................................................................ 514

tex

INTRODUCCIN ............................................................................................................................................................................. 514


INTRODUCCIN A LOS COMPONENTES .NET ......................................................................................................................................... 514
CREACIN DE COMPONENTES .NET ................................................................................................................................................... 516
CREACIN DE CONTROLES ASP .NET DE SERVIDOR ................................................................................................................................ 523
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 526
26.CONSTRUCCIN AVANZADA DE CONTROLES WEB DE SERVIDOR ............................................................................................ 528

de

INTRODUCCIN ............................................................................................................................................................................. 528


PROPIEDADES DE LOS CONTROLES DE SERVIDOR ..................................................................................................................................... 528
CONVERSIN DE LOS VALORES DE ATRIBUTOS........................................................................................................................................ 530
UTILIZANDO LOS SERVICIOS DE HTMLTEXTWRITER ................................................................................................................................. 533
PROPIEDADES DE CLASE ................................................................................................................................................................... 536
HEREDANDO DE LA CLASE SYSTEM.WEB.IU.WEBCONTROLS. WEBCONTROL ................................................................................................ 540
CONTROLES COMPUESTOS ............................................................................................................................................................... 542
MANTENIENDO EL ESTADO DE LOS CONTROLES ...................................................................................................................................... 546
LANZANDO EVENTOS ...................................................................................................................................................................... 548
27.ACCESO A DATOS CON ADO .NET ............................................................................................................................................ 552

mp

lo

INTRODUCCIN ............................................................................................................................................................................. 552


BENEFICIOS DE ADO .NET .............................................................................................................................................................. 552
ARQUITECTURA DE DATOS DESCONECTADOS ......................................................................................................................................... 553
DataSet ................................................................................................................................................................................ 554
ADO .NET y XML ................................................................................................................................................................... 555
UNA VISIN GENERAL DE ADO .NET.................................................................................................................................................. 555
LAS CLASES DE ADO .NET............................................................................................................................................................... 556
ESTABLECIENDO LA CONEXIN. LOS OBJETOS CONNECTION ...................................................................................................................... 558
LOS OBJETOS COMMAND................................................................................................................................................................. 561
LOS OBJETOS DATAREADER .............................................................................................................................................................. 566
EL OBJETO DATASET....................................................................................................................................................................... 570
LOS OBJETOS DATAADAPTER ............................................................................................................................................................ 574
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 577
28.CREACIN DE SERVICIOS WEB ................................................................................................................................................. 579

Eje

INTRODUCCIN ............................................................................................................................................................................. 579


INTRODUCCIN A LOS SERVICIOS WEB ................................................................................................................................................ 579
ARQUITECTURA DE UN SERVICIO WEB ................................................................................................................................................. 580
CONSTRUCCIN DE SERVICIOS WEB.................................................................................................................................................... 581
COMPROBANDO EL FUNCIONAMIENTO DEL SERVICIO WEB ....................................................................................................................... 585
LA DIRECTIVA @WEBSERVICE........................................................................................................................................................... 588
LOS ATRIBUTOS WEBSERVICE Y WEBMETHOD ...................................................................................................................................... 588
LA CLASE WEBSERVICE ................................................................................................................................................................... 593
SERVICIOS WEB DE ACCESO A DATOS .................................................................................................................................................. 597
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 601

29.UTILIZACIN DE SERVICIOS WEB ............................................................................................................................................. 602


INTRODUCCIN ............................................................................................................................................................................. 602
LAS FASES DE LA PUESTA EN MARCHA DE UN SERVICIO WEB ...................................................................................................................... 602
DESCRIPCIN Y LOCALIZACIN DE SERVICIOS WEB .................................................................................................................................. 603
LAS CLASES PROXY ......................................................................................................................................................................... 605
CREACIN DE CLASES PROXY CON VISUAL STUDIO .NET .......................................................................................................................... 606
Creacin de clases proxy con la utilidad WSDL.EXE ................................................................................................................ 616

Pgina | 10

CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 621


30.WEBPARTS I: CONCEPTOS BSICOS Y CATLOGOS .................................................................................................................. 622

31.

tex

to

INTRODUCCIN ............................................................................................................................................................................. 622


WEBPARTMANAGER Y WEBPARTZONE .............................................................................................................................................. 623
MODOS DEL CONTROL WEBPARTMANAGER ........................................................................................................................................ 627
CONTROLES WEBPART ................................................................................................................................................................... 630
CATLOGOS WEBPART ................................................................................................................................................................... 635
PageCatalogPart .................................................................................................................................................................. 636
DeclarativeCatalogPart......................................................................................................................................................... 639
ImportCatalogPart................................................................................................................................................................ 641
WEBPARTS II: MODOS DE EDICIN Y CONEXIN. ............................................................................................................ 645

INTRODUCCIN ............................................................................................................................................................................. 645


MODO DE EDICIN ........................................................................................................................................................................ 645
ApareanceEditorPart y LayoutEditorPart ............................................................................................................................... 647
BehaviorEditorPart ............................................................................................................................................................... 650
PropertyGridEditorPart ......................................................................................................................................................... 653
MODO DE CONEXIN ..................................................................................................................................................................... 661
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 667
32.WEBPARTS III: CREACIN DE WEBPARTS PERSONALIZADOS ................................................................................................... 668

de

INTRODUCCIN ............................................................................................................................................................................. 668


DEFINIENDO EL WEBPART ............................................................................................................................................................... 668
DEFINICIN DE LAS PROPIEDADES DEL WEBPART ................................................................................................................................... 669
CONSTRUCCIN DEL WEBPART ......................................................................................................................................................... 670
UTILIZANDO EL WEBPART ............................................................................................................................................................... 673
DEFINIENDO VERBOS PARA EL WEBPART ............................................................................................................................................. 675
RESTABLECIENDO LA CONFIGURACIN ................................................................................................................................................. 680
33.PERSONALIZACIN .................................................................................................................................................................. 681

lo

INTRODUCCIN ............................................................................................................................................................................. 681


CREACIN DE PROPIEDADES DE PERSONALIZACIN ................................................................................................................................. 681
AGRUPACIN DE PROPIEDADES DE PERSONALIZACIN ............................................................................................................................. 685
DEFINICIN DE TIPOS ...................................................................................................................................................................... 688
MIGRACIN DE USUARIOS ANNIMOS ................................................................................................................................................ 693
34.INTERNACIONALIZACIN......................................................................................................................................................... 695

mp

INTRODUCCIN ............................................................................................................................................................................. 695


CREACIN DE FICHEROS DE RECURSOS ................................................................................................................................................. 695
Carpetas especiales .............................................................................................................................................................. 695
Internet Explorer: Preferencias de idioma .............................................................................................................................. 696
Fichero de recursos local ....................................................................................................................................................... 696
Fichero de recursos global..................................................................................................................................................... 702
MANEJANDO EL IDIOMA EN TIEMPO DE EJECUCIN................................................................................................................................. 703
ESTABLECIENDO EL IDIOMA .............................................................................................................................................................. 704
35.ENTRADA/SALIDA CON FICHEROS Y STREAMS......................................................................................................................... 707

Eje

INTRODUCCIN ............................................................................................................................................................................. 707


UNIDADES DE DISCO ....................................................................................................................................................................... 707
DIRECTORIOS................................................................................................................................................................................ 712
FICHEROS .................................................................................................................................................................................... 720
RUTAS ........................................................................................................................................................................................ 726
LECTURA Y ESCRITURA DE FICHEROS CON STREAMS ................................................................................................................................. 728
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 732

36.DISTRIBUCIN DE APLICACIONES WEB .................................................................................................................................... 733


INTRODUCCIN ............................................................................................................................................................................. 733
INSTALACIN DE VISUAL STUDIO 2010 ............................................................................................................................................... 733
EL ENTORNO DE TRABAJO ................................................................................................................................................................ 736
MTODOS DE DISTRIBUCIN DE UNA APLICACIN WEB ........................................................................................................................... 736

Pgina | 11

to

XCopy ................................................................................................................................................................................... 736


Copiar sitio Web ................................................................................................................................................................... 739
Publicar sitio Web ................................................................................................................................................................. 742
Programa de instalacin ....................................................................................................................................................... 745
CASO PRCTICO: PLANTEAMIENTO .................................................................................................................................................... 749
37.CONFIGURACIN DE INTERNET INFORMATION SERVER .......................................................................................................... 750

de

tex

INTRODUCCIN ............................................................................................................................................................................. 750


EL SERVIDOR WEB INTERNET INFORMATION SERVER .............................................................................................................................. 750
INSTALANDO IIS ............................................................................................................................................................................ 751
EL ADMINISTRADOR DE SERVICIOS DE INTERNET INFORMATION SERVER ....................................................................................................... 752
ELEMENTOS DE IIS ......................................................................................................................................................................... 754
ADMINISTRACIN DEL SITIO WEB ...................................................................................................................................................... 754
Sitio Web .............................................................................................................................................................................. 754
Directorio particular ............................................................................................................................................................. 755
Documentos ......................................................................................................................................................................... 756
Errores personalizados.......................................................................................................................................................... 757
Rendimiento ......................................................................................................................................................................... 757
Seguridad de directorios ....................................................................................................................................................... 757
Filtros ISAPI .......................................................................................................................................................................... 758
Encabezados HTTP ................................................................................................................................................................ 758
Extensiones de servidor......................................................................................................................................................... 759
ASP .NET............................................................................................................................................................................... 760
LA APLICACIN WEB ...................................................................................................................................................................... 761
38.ADMINISTRACIN Y CONFIGURACIN DE APLICACIONES WEB ............................................................................................... 764

mp

lo

INTRODUCCIN ............................................................................................................................................................................. 764


UNA CONFIGURACIN BASADA EN XML .............................................................................................................................................. 764
APLICANDO LA CONFIGURACIN ........................................................................................................................................................ 765
FORMATO DE LOS FICHEROS DE CONFIGURACIN ................................................................................................................................... 766
Seccin de manejadores........................................................................................................................................................ 767
Seccin de valores de configuracin ...................................................................................................................................... 768
TAREAS COMUNES DE CONFIGURACIN ............................................................................................................................................... 769
Configuracin general........................................................................................................................................................... 770
Configuracin de la pgina ................................................................................................................................................... 770
Configuracin de la aplicacin .............................................................................................................................................. 771
Cadenas de conexin ............................................................................................................................................................ 772
Configuracin de la sesin .................................................................................................................................................... 773
Configuracin de trazas ........................................................................................................................................................ 774
Errores personalizados.......................................................................................................................................................... 775
Web Services ........................................................................................................................................................................ 777
Globalizacin ........................................................................................................................................................................ 777
Compilacin.......................................................................................................................................................................... 778
Identidad .............................................................................................................................................................................. 780
Manejadores HTTP ............................................................................................................................................................... 781
Modelo de proceso ............................................................................................................................................................... 784
INDICANDO LA CONFIGURACIN PARA UN RECURSO CONCRETO ................................................................................................................. 786
BLOQUEANDO VALORES DE CONFIGURACIN ........................................................................................................................................ 787
HERRAMIENTAS DE CONFIGURACIN .................................................................................................................................................. 788
Sitio Web de Administracin ................................................................................................................................................. 788

Eje

39.INTRODUCCIN A ASP.NET AJAX ............................................................................................................................................. 791


AJAX ......................................................................................................................................................................................... 791
ASP.NET AJAX ........................................................................................................................................................................... 792
Microsoft AJAX Library .......................................................................................................................................................... 793
AJAX Extensions .................................................................................................................................................................... 794
AJAX Control Toolkit ............................................................................................................................................................. 799
AJAX Futures......................................................................................................................................................................... 799
RESUMEN .................................................................................................................................................................................... 800

40.JAVASCRIPT ............................................................................................................................................................................. 801

Pgina | 12

to

SINTAXIS ..................................................................................................................................................................................... 802


Palabras reservadas.............................................................................................................................................................. 802
Variables .............................................................................................................................................................................. 803
Tipos de variables ................................................................................................................................................................. 803
Objetos nativos..................................................................................................................................................................... 805
Declaracin y uso de funciones ............................................................................................................................................. 807
Trabajo con objetos .............................................................................................................................................................. 809
JSON..................................................................................................................................................................................... 810
CLASES ....................................................................................................................................................................................... 811
MANEJO DE EXCEPCIONES ................................................................................................................................................................ 812

tex

41DOM Y BOM ............................................................................................................................................................................. 814


DOM......................................................................................................................................................................................... 814
Elementos principales de Dom .............................................................................................................................................. 814
BOM ......................................................................................................................................................................................... 828
Window................................................................................................................................................................................ 829
document ............................................................................................................................................................................. 830
location ................................................................................................................................................................................ 830
navigator.............................................................................................................................................................................. 831
screen................................................................................................................................................................................... 832
XMLHTTPREQUEST ....................................................................................................................................................................... 835
43. MICROSOFT AJAX LIBRARY ..................................................................................................................................................... 842

lo

de

LIBRARY ...................................................................................................................................................................................... 842


FUNCIONES GLOBALES .................................................................................................................................................................... 843
EXTENSIONES DE LOS TIPOS BSICOS JAVA ............................................................................................................................................ 845
SCRIPT ........................................................................................................................................................................................ 845
Extensiones de tipo matriz .................................................................................................................................................... 846
Extensiones de tipo booleano ................................................................................................................................................ 848
Extensiones de tipo fecha...................................................................................................................................................... 848
Extensiones de tipo error ...................................................................................................................................................... 849
Extensiones de tipo nmero .................................................................................................................................................. 850
Extensiones de tipo objeto .................................................................................................................................................... 850
Extensiones de tipo cadena ................................................................................................................................................... 850
SISTEMA DE TIPOS JAVASCRIPT .......................................................................................................................................................... 851
BCL DE SCRIPTING ......................................................................................................................................................................... 852
Sys........................................................................................................................................................................................ 853
CASO PRCTICO: USO DE SERVICIOS WEB ............................................................................................................................................ 885
44.EXTENSIONES AJAX.................................................................................................................................................................. 886

Eje

mp

SCRIPTMANAGER .......................................................................................................................................................................... 886


PERSONALIZACIN DEL CONTROL SCRIPTMANAGER ................................................................................................................................ 889
MANEJO DE OPERACIONES ASNCRONAS Y ERRORES ................................................................................................................................ 893
MANEJO DE SCRIPTS ....................................................................................................................................................................... 894
MANEJO DE SERVICIOS .................................................................................................................................................................... 896
GLOBALIZACIN Y LOCALIZACIN ....................................................................................................................................................... 896
OTROS EVENTOS ........................................................................................................................................................................... 897
SCRIPTMANAGERPROXY ................................................................................................................................................................. 897
TIMER ........................................................................................................................................................................................ 897
UPDATEPANEL .............................................................................................................................................................................. 898
CONSTRUCCIN DE UNA INSTANCIA UPDATEPANEL ................................................................................................................................ 899
GESTIN DE TRIGGERS .................................................................................................................................................................... 900
AsyncPostBackTrigger........................................................................................................................................................... 901
PostBackTrigger ................................................................................................................................................................... 902
UPDATEPROGRESS ......................................................................................................................................................................... 903

45.AJAX CONTROL TOOLKIT.......................................................................................................................................................... 904


AJAX CONTROL TOOLKIT ................................................................................................................................................................ 905
ACCORDION ................................................................................................................................................................................. 906
ALWAYSVISIBLECONTROLEXTENDER ................................................................................................................................................... 907
ANIMATIONEXTENDER .................................................................................................................................................................... 907

Pgina | 13

to

AUTOCOMPLETEEXTENDER .............................................................................................................................................................. 908


CALENDAREXTENDER...................................................................................................................................................................... 909
CASCADINGDROPDOWN ................................................................................................................................................................. 909
COLLAPSIBLEPANELEXTENDER .......................................................................................................................................................... 910
CONFIRMBUTTONEXTENDER ............................................................................................................................................................ 910
FILTEREDTEXTBOXEXTENDER............................................................................................................................................................ 911
MODALPOPUPEXTENDER ................................................................................................................................................................ 911
RATING ....................................................................................................................................................................................... 911
CASO PRCTICO: AJAX CONTROL TOOLKIT .......................................................................................................................................... 912

tex

46. ............................................................................................................................................... ERROR! MARCADOR NO DEFINIDO.


STUDIO........................................................................................................................................ ERROR! MARCADOR NO DEFINIDO.
47.RESOLUCIN CASOS PRCTICOS.............................................................................................................................................. 913

Eje

mp

lo

de

CAPTULO 2 ................................................................................................................................................................................. 913


CAPTULO 3 ................................................................................................................................................................................. 914
CAPTULO 4 ................................................................................................................................................................................. 916
CAPTULO 5 ................................................................................................................................................................................. 917
CAPTULO 6: CASO PRCTICO 1 ......................................................................................................................................................... 920
CAPTULO 6: CASO PRCTICO 2 ......................................................................................................................................................... 921
CAPTULO 7 ................................................................................................................................................................................. 923
CAPTULO 8 ................................................................................................................................................................................. 925
CAPTULO 10 ............................................................................................................................................................................... 927
CAPTULO 11 ............................................................................................................................................................................... 929
CAPTULO 12 ............................................................................................................................................................................... 930
CAPTULO 13 ............................................................................................................................................................................... 932
CAPTULO 15 ............................................................................................................................................................................... 933
CAPTULO 17 ............................................................................................................................................................................... 936
CAPTULO 18 ............................................................................................................................................................................... 941
CAPTULO 19 ............................................................................................................................................................................... 944
CAPTULO 22 ............................................................................................................................................................................... 945
CAPTULO 23 ............................................................................................................................................................................... 949
CAPTULO 24 ............................................................................................................................................................................... 951
CAPTULO 28 ............................................................................................................................................................................... 954
CAPTULO 27 ............................................................................................................................................................................... 957
CAPTULO 28 ............................................................................................................................................................................... 960
CAPTULO 29 ............................................................................................................................................................................... 962
CAPTULO 31 ............................................................................................................................................................................... 965
CAPTULO 35 ............................................................................................................................................................................... 968
CAPTULO 36 ............................................................................................................................................................................... 970
CAPTULO 38 ............................................................................................................................................................................... 971
CASO PRCTICO: USO DE SERVICIOS WEB ............................................................................................................................................ 971
CASO PRCTICO: AJAX CONTROL TOOLKIT .......................................................................................................................................... 975

Pgina | 14

to

1. INTRODUCCIN A ASP .NET 4.0


Introduccin

tex

ASP NET 2.0 es la tecnologa para el desarrollo de aplicaciones Web que ponemos encontrar en la nueva versin que
ofrece Microsoft de su plataforma de desarrollo Microsoft .NET Framework 2.0. Este texto est pensado tanto para aquellos lectores que ya conocen ASP .NET 1.x, u otra versin previa (ASP 1.0/2.0/3.0), como para los que no conocen nada
del entorno de desarrollo de las pginas activas de servidor de Microsoft.
Nuestro objetivo va a ser centrarnos en la tecnologa ASP .NET, aunque comentaremos brevemente, y cuando sea necesario, algunos conceptos generales de la plataforma .NET (.NET Framework), ya que no debemos olvidar que es la plataforma sobre la que se van a ejecutar las aplicaciones Web desarrolladas con pginas ASP .NET, es decir, las pginas ASP
.NET no se van a ejecutar directamente sobre un sistema operativo determinado, sino que lo van a hacer sobre la plataforma, denominada .NET Framework, que ofrece Microsoft.

de

La plataforma .NET ofrece una serie de herramientas y tecnologas necesarias para construir y desarrollar aplicaciones
Web, as pues, las pginas ASP .NET se van a ejecutar dentro del entorno de ejecucin que nos facilita el .NET Framework. Podramos decir que ASP .NET es una parte de la plataforma .NET, y es esta parte la que se va a tratar en el presente texto.
Para aquellos lectores que no conozcan la tecnologa de desarrollo de las pginas ASP en cualquiera de sus versiones, voy
a realizar una definicin muy sencilla de lo que consiste la filosofa de la programacin de aplicaciones Web con pginas
ASP o ASPX.

lo

La filosofa de ASP .NET resulta muy sencilla, en pocas palabras se puede definir de la siguiente forma: las pginas ASP
.NET, tambin llamadas pginas activas, son pginas que contienen cdigo HTML, script de cliente y un cdigo que se
ejecuta en el servidor, dando como resultado cdigo HTML. Por lo tanto al cargar una pgina ASP .NET en nuestro navegador, en realidad no estamos cargando la pgina ASP .NET como tal, sino el resultado de la ejecucin de la pgina, es
decir la salida de la pgina ASP .NET, y como se ha apuntado anteriormente se trata de cdigo HTML. Es decir, son
pginas que se ejecutan en el servidor enviando como resultado al cliente cdigo HTML.

mp

El anterior prrafo est extrado completamente de un antiguo texto dedicado a ASP 3.0, el titulado Programacin para
aplicaciones para Internet con ASP 3.0, y es perfectamente aplicable a ASP .NET 4.0, pero este entorno de desarrollo de
aplicaciones Web, va ms all presentando un completo entorno mucho ms elaborado y completo, con lo que la afirmacin de prrafo anterior se quedara muy corta, ya que nicamente define uno de los aspectos de las pginas ASP .NET.
De forma ms genrica, y acertada, podemos definir ASP .NET como el entorno de desarrollo incluido en la plataforma
.NET de Microsoft, que nos permite desarrollar completas aplicaciones Web que se ejecutarn sobre el entorno ofrecido
por el .NET Framework. A lo largo de este texto iremos descubriendo paso a paso las distintas posibilidades (que son
bastante amplias) que nos ofrece ASP .NET, apoyndonos siempre en el nuevo entorno de desarrollo que nos ofrece de
Microsoft, Visual Studio 2010.
Una vez realizada una definicin ms o menos de lo que son las pginas ASP .NET volvamos a tratar sobre la nueva versin de ASP .NET.

Eje

Esta nueva versin de ASP .NET no ofrece unos cambios tan profundos como supuso el cambio de ASP 3.0 a ASP .NET
1.0, esta nueva versin de las pginas ASPX (as se denominan tambin a las pginas ASP .NET, utilizando su extensin),
es una evolucin lgica de ASP .NET 1.x (utilizamos 1.x para referirnos a las dos versiones anteriores de ASP .NET la
versin 1.0 y la 1.1)
Por lo tanto ASP .NET 4.0 es la nueva versin que ofrece el .NET Framework para el desarrollo de aplicaciones Web, ya
sean basadas en Internet, Intranet o Extranet. Como ya hemos adelantado, Microsoft tambin ofrece una nueva herramienta integral de desarrollo, Visual Studio 2010. Ser con esta herramienta con la que desarrollaremos nuestras aplicaciones
Web y por la tanto la comentaremos tambin en este texto. Como curiosidad comentar al lector que la nueva versin del

Pgina | 15

.NET Framework de Microsoft recibi el nombre en clave (code-name) de Whidbey y la versin 2.0 de ASP .NET llego a
denominarse ASP .NET Whidbey.

to

No veremos Visual Studio 2010 de forma ntegra, slo veremos la parte que nos interesa y que nos afecta a la hora de
desarrollar aplicaciones Web basadas en ASP .NET 4.0. Esta parte de Visual Studio 2010 (VS 2010) se denomina Microsoft Visual Web Developer 2005. Esta nueva versin de Visual Studio nos ofrece un entorno de desarrollo muy cmodo
para crear nuestras aplicaciones Web a travs de ayudas y asistentes.

tex

Por lo tanto debido a todo lo anterior recomiendo al lector que para el correcto seguimiento del texto y de los ejemplos
que en el aparecen, instale en su equipo Visual Studio 2010, ya que esta ser nuestra herramienta de trabajo. A lo largo
del texto, segn sea conveniente, se comentar el uso de Visual Studio 2010 para tareas concretas.
En este captulo, adems de realizar una introduccin a ASP .NET 4.0. Si el lector no comprende alguno de los conceptos
que vamos a adelantar no debe preocuparse, ya que ms adelante, a lo largo del texto, se vern con mayor detalle.

Lenguajes de programacin

de

ASP .NET 4.0 no es un lenguaje de programacin, sino que es un entorno de programacin o tecnologa de desarrollo,
pero no es un lenguaje. De hecho ASP .NET soporta distintos lenguajes, en el presente texto vamos a utilizar los lenguajes C# (CSharp) y Visual Basic .NET, ya que son los lenguajes ms populares entre todos los que soportan las pginas
ASP .NET, y tambin son los ms utilizados del .NET Framework.
El cdigo intermedio es una caracterstica comn que poseen todas las tecnologas englobadas en la estrategia .NET de
Microsoft, a la que lgicamente pertenece ASP .NET. Las pginas ASP .NET cuando reciben la primera peticin se compilan automticamente a un lenguaje intermedio que es conocido como Common Language Runtime (CLR), es decir, es
un lenguaje comn al que compilan todos los lenguajes que utilicemos en nuestras pginas ASP .NET, generando el mismo cdigo, ya sea Visual Basic .NET, C# o JScript. Gracias a esta caracterstica podemos obtener grandes ventajas en lo
que a rendimiento en tiempo de ejecucin se refiere, ya que la compilacin de las pginas slo se produce en la primera
peticin que se realiza sobre la pgina, o bien cuando el cdigo fuente de la misma se ha modificado y necesita por lo
tanto actualizarse, adems el resultado de esta compilacin permanece en cach para poder ser reutilizada.

lo

Los ejemplos de cdigo fuente que se mostraran en el texto se ofrecern tanto en el lenguaje de programacin C# como en
el lenguaje VB .NET. Suponemos que el lector conoce la sintaxis de alguno de estos dos lenguajes, ya que abordar un
lenguaje de programacin queda fuera de los objetivos de este texto, que como sabemos todos trata sobre ASP .NET 4.0.

mp

Las nuevas versiones de estos lenguajes que podemos encontrar dentro del .NET Framework 2.0 se denominan Visual
Basic 2005 y C# 2.0.

Recorrido por las distintas versiones de ASP


Hasta la fecha nos podemos encontrar con seis versiones de la tecnologa de las pginas activas de servidor de Microsoft,
es decir, de ASP (Active Server Pages). Vamos a realizar un recorrido histrico a travs de ASP, desde ASP 1.0 hasta
ASP .NET 4.0.

Eje

La primera versin de las pginas activas (ASP 1.0), se incorpor como un aadido o ampliacin al servidor Web del
sistema operativo Microsoft Windows NT Server 4.0 llamado Internet Information Server 3.0 (IIS 3.0). Este servidor
Web era bastante interesante pero todava era demasiado rudimentario y presenta limitaciones y problemas.
La primera versin de ASP era bastante interesante ya que se pasaba de la complejidad de los CGIs (Common Gateway
Interface) a la sencillez de las pginas activas. ASP 1.0 supuso el inicio del desarrollo de aplicaciones Web con productos
basados en tecnologa Microsoft.
La versin 2.0 de Active Server Pages la encontramos en el servidor Web de Microsoft Internet Information Server 4 (IIS
4) y en el servidor Personal Web Server 4 (PWS 4). Ambos servidores los podemos instalar desde la extensin del sistema
operativo de Windows NT denominada Windows NT 4.0 Option Pack, o ms comnmente Option Pack. Esta extensin
del sistema operativo no slo es aplicable a Windows NT, sino que tambin la podemos utilizar para Windows 95/98.

Pgina | 16

Se debe sealar que el servidor IIS 4 es el servidor Web para plataformas Windows NT Server 4.0, y el servidor Personal
Web Server 4.0 es el servidor Web para plataformas Windows 95/98 y Windows NT Workstation 4.0.

to

IIS 4 adems de ofrecer la nueva versin de la tecnologa ASP, permite configurar y administrar de forma sencilla nuestras aplicaciones ASP. Adems la figura de la aplicacin ASP se encuentra mucho ms clara que en la versin 1.0 de las
pginas ASP, el servidor Web nos indicar claramente el alcance de una aplicacin ASP determinada.

tex

ASP 2.0 es una clara y necesaria evolucin de ASP 1.0 incorporando la posibilidad de realizar pginas ASP transaccionales, aadiendo para ello un nuevo objeto integrado denominado ObjectContext (objeto de contexto). ASP 2.0 ofrece
un entorno ms robusto y potente que la versin anterior para el desarrollo de aplicaciones Web.
Ms tarde apareci ASP 3.0. Para poder utilizar ASP 3.0 tenemos que disponer de cualquiera de las versiones del sistema
operativo Windows 2000 (Professional, Server y Advanced Server). En este caso no se trata nicamente de una nueva
versin del servidor Web sino tambin de una nueva versin del sistema operativo Windows.
ASP 3.0 se encuentra disponible dentro de Windows 2000 en cualquiera de sus versiones (Professional, Server, Advanced
Server). Dentro de Windows 2000 encontramos el componente Internet Information Services o Internet Information Server, que como todos los lectores sospechan es la nueva versin del servidor Web de Microsoft Internet Information Server. Al instalar Internet Information Services 5.0 (IIS 5.0) dotamos a nuestro servidor de todas las funcionalidades de un
potente servidor Web, y dentro de estas funcionalidades se encuentra ASP 3.0.

de

ASP 3.0 podemos decir que es la evolucin lgica de ASP 2.0, no supone ningn cambio radical, ofrece una serie de mejoras y novedades. Se aade un nuevo objeto integrado llamado ASPError, este nuevo objeto es utilizado para el tratamiento de errores.
Y por fin llegamos a la aparicin del .NET Framework de Microsoft, que va a contener una nueva versin de ASP, ASP
.NET 1.0, en este caso los cambios respecto a ASP 3.0 si que son notables, tanto que en muchos casos podemos considerar que se parecen en poco, ni siquiera podramos considerar que se trata de ASP 4.0, ya que los cambios van ms all.
ASP .NET plantea una nueva forma de desarrollar aplicaciones Web dentro del entorno ofrecido por el .NET Framework.
En resumen, una nueva forma de programar aplicaciones Web.

lo

Con ASP .NET 1.0 aparece la herramienta de desarrollo Visual Studio 2002 que contiene la versin del 1.0 .NET Framework.

mp

ASP .NET es completamente compatible con ASP, podemos tener aplicaciones Web basadas en ASP y ASP .NET funcionando en el mismo servidor Web, que ser Internet Information Server 5.0, las pginas ASP tienen la extensin .ASP
y son procesadas por la DLL ASP.DLL y sin embargo las pginas ASP .NET poseen la extensin .ASPX y son procesadas por el entorno de ejecucin .NET Framework, que las transforma en el cdigo intermedio, representado en este caso
por la DLL ASPNET_ISAPI.DLL.
Como curiosidad comentar a los lectores que en las primeros pasos de la plataforma .NET (beta 1 y versiones preliminares previas) ASP .NET se denominaba ASP+ y la propia plataforma posea la denominacin de NGWS (New Generation
Windows Services, Nueva Generacin de Servicios de Windows).

Eje

Despus apareci la versin 1.1 del .NET Framework y con el la nueva versin de las pginas ASPX, ASP .NET 1.1, que
como ocurra con ASP 2.0 y ASP 3.0, esta nueva versin incluye leves mejoras y cambios. El Framework 1.1 aparece ya
dentro del sistema operativo Windows 2003 Server y se instala como una parte perfectamente integrada. Y dentro de este
nuevo sistema operativo tenemos el servidor Web IIS 6.0, que va a ser el encargado de albergar las aplicaciones Web
basadas en ASP .NET.
Al igual que suceda en la versin anterior, tambin aparece una nueva versin de la herramienta de desarrollo Visual
Studio, en este caso se trata de la versin 2003.
Es ya con la nueva versin del Framework, la 2.0, cuando aparece ASP .NET 4.0, y al igual que suceda con ASP 3.0 y
ASP .NET 1.0, es perfectamente compatible con las versiones 1.x de las pginas activas, lo nico que tenemos que hacer
es instalar la nueva versin del Framework.
Desde el propio servidor Web IIS 6.0, en el caso de Windows 2003 Server, y desde el servidor Web IIS 5.1, en el caso del
sistema operativo Windows XP Professional, a la hora de crear una aplicacin Web nos permite indicar a que versin del
Pgina | 17

de

tex

to

Framework pertenece: a la 1.1 o a la 2.0, que se corresponder con la versin de pginas ASPX. Esto lo podemos ver en
la siguiente figura.

Figura 1

Como se puede desprender de la figura anterior, en un mismo servidor Web pueden convivir sin problemas las dos versiones del Framework, la 1.1 y la 2.0, lo mismo sucede con las herramientas de desarrollo, en un mismo equipo puede
estar instalado Visual Studio 2003 y Visual Studio 2010 sin ningn tipo de problema ni incompatibilidad, incluso odramos tener instalado Visual Studio 6.0.

lo

Y para terminar con el siguiente apartado, como es de suponer tambin tenemos una nueva versin de la herramienta de
desarrollo Visual Studio, que es la que vamos a utilizar en este texto y que no es otra que la versin 2005.

Novedades de ASP .NET 4.0

mp

Como ya se ha adelantado los cambios en esta nueva versin de ASP no son tan dramticos como los que se dieron con el
cambio de versin de ASP 3.0 a ASP .NET 1.0, los lectores que conozcan ASP .NET 1.x lo tendrn bastante sencillo ya
que la forma de desarrollar las aplicaciones Web y su filosofa permanecen intactas, sin embargo nos encontraremos con
un gran nmero de mejoras y novedades.
Este apartado ser muy til para la audiencia conocedora de alguna versin previa de ASP .NET, ya que en un rpido
vistazo se adelantarn todas las novedades, mejoras y cambios que nos ofrece la nueva versin de ASP .NET. Y para los
lectores que no conozcan nada de ASP .NET les servir para empezar a ponerse en contacto con el desarrollo de aplicaciones Web y para ver algunas de las funcionalidades que nos ofrece ASP .NET y que sern tratadas en mayor detalle a lo
largo de los distintos captulos de este texto.

Eje

A travs de los distintos puntos de este apartado se van a comentar las novedades que aporta ASP .NET 4.0 respecto a la
versin 1.x, apoyndose en el nuevo entorno .NET Framework 2.0. Esta nueva versin de ASP .NET nos ofrece unas
potentes caractersticas a la hora de desarrollar aplicaciones Web, pasemos a ver las ms destacadas. El lector no debe
preocuparse si no entiende alguno de los conceptos que aqu se comentan, ya que los veremos ms adelante con mayor
profundidad, este apartado servir sobre todo a aquellos lectores que ya conozcan ASP .NET 1.x, para ver de un simple
vistazo las novedades ms destacables de ASP .NET 4.0

Nuevos controles de servidor


En esta nueva versin de ASP .NET se ofrecen un gran nmero de nuevos controles de servidor, que se podrn utilizar
para distintas tareas dentro del desarrollo de una aplicacin Web, tenemos desde controles de acceso a datos hasta controles de navegacin.
Pgina | 18

tex

to

Para ver la gran cantidad de controles que ASP .NET pone a nuestra disposicin nicamente tenemos que echar un vistazo al cuadro de herramientas de Visual Studio 2010, podemos ver que aparecen un gran nmero de ellos agrupados por
categoras segn su funcionalidad. En la siguiente figura podemos ver los grupos de controles de servidor que nos ofrece
ASP .NET 4.0 desde VS 2010.

Figura 2

de

No se trata nicamente de nuevos controles mejorados, sino que aparecen completas categoras de controles como pueden
ser los controles de inicio de sesin o los de navegacin (denominados por VS 2010 de exploracin). Vamos a comentar
brevemente las distintas categoras de nuevos controles de ASP .NET 4.0.

lo

El acceso a datos desde ASP .NET 4.0 ahora se puede realizar en unos pocos pasos de manera muy sencilla, sin la necesidad de escribir ni una slo lnea de cdigo haciendo uso nicamente de los nuevos controles de acceso a datos. Dentro de
estos controles hay dos grupos bien diferenciados, los que nos ofrecen la conexin con las fuentes de datos, denominados
controles de fuente u origen de datos (data source controls), como podra ser el control SqlDataSource, y los que nos
ofrecen un interfaz de usuario para representar grficamente los datos, denominados controles conectados a datos (data
bound controls), como puede ser el control GridView.

mp

En la versin 1.x de ASP .NET ya existan los controles de acceso a datos, en ASP .NET 4.0 aparecen nuevos controles,
pero ya exista esta categora. Una categora completamente nueva son los controles de navegacin. Los controles de navegacin ofrecen un interfaz de usuario que permite la navegacin a travs de las distintas pginas de un sitio Web, as
como la presentacin de la informacin de forma jerrquica. Un ejemplo de estos controles es el nuevo control SiteMapPath, que nos permite navegar entre pginas, y el control TreeView, que muestra la informacin de forma jerrquica, en estructura de rbol organizada en nodos, otro control de navegacin sera el control Menu, que nos permite
construir mens navegables.
Tambin aparece una nueva categora de controles llamada de inicio de sesin, estos controles nos van a ofrecer un interfaz y funcionalidad para realizar labores de autenticacin y autorizacin dentro de nuestro sitio Web. Dentro de este grupo
tenemos por ejemplo, el control Login que nos ofrece un interfaz grfico consistente en las cajas de texto y botones para
indicar un nombre de usuario y una contrasea, adems de toda la lgica para autenticar usuario es nuestra aplicacin
Web, y el control ChangePassword que nos provee de un formulario para realizar el cambio de contrasea, con toda la
lgica correspondiente que permitir realizar esta tarea de forma automtica.

Eje

El grupo de controles llamado Elementos Web tambin podemos encontrarlo por su nomenclatura en ingls, que suele ser
ms comn, se trata de los controles WebPart. Estos son unos controles de servidor bastante potentes que permiten al
usuario del sitio Web personalizar el aspecto y distribucin del mismo, estos controles son utilizados en aplicaciones Web
de tipo portal para que el usuario tenga una experiencia completamente personalizada del sitio Web. Por lo tanto el usuario podr modificar en tiempo de ejecucin las propiedades de los controles WebPart.

Dentro del grupo de controles estndar tambin aparecen nuevos controles de servidor, tan sencillos como puede ser el
control BulletedList, que representa una lista de elementos, el control HiddenField, para representar un campo
oculto de un formulario, y ms complejos como puede ser el control Wizard, que permite definir una serie de pasos en

Pgina | 19

forma de un asistente. En general los nuevos controles estndar que se han aadido a ASP .NET 4.0 nos van a permitir
ahorrarnos mucho trabajo debido a las funcionalidades que ofrecen.

to

Master Pages

tex

Si traducimos literalmente esta nueva caracterstica de ASP .NET 4.0 obtenemos la expresin de pginas maestras, y
eso mismo es lo que nos ofrece esta nueva funcionalidad, la posibilidad de crear plantillas para las pginas ASPX de
nuestra aplicacin Web. Un ejemplo claro sera la utilizacin de una Master Page para definir la cabecera de una sitio
Web. Las pginas maestras tendrn la extensin .MASTER. La traduccin oficial que se ha realizado del trmino Master Pages es el de pgina principal, traduccin muy poco feliz en mi opinin, por lo que las llamaremos pginas maestras
o simplemente pginas Master.
De esta forma podemos definir una pgina Master o maestra para que todas nuestras pginas tengan un aspecto similar y
coherente dentro de la aplicacin Web, con esto conseguimos, adems de mantener una coherencia y uniformidad en todo
el aspecto del sitio Web, un mantenimiento sencillo en lo que al aspecto y presentacin de un sitio Web se refiere, ya que
si necesitamos cambiar alguna caracterstica del sitio Web no tenemos que ir pgina a pgina, solo lo cambiaremos en la
pgina maestra.
Pero las Master Pages no solo nos ofrecen un aspecto uniforme para el sitio Web, tambin pueden contener cdigo, por lo
tanto tambin se pueden aadir funcionalidades comunes a toda la aplicacin Web. Por lo tanto podemos decir que tenemos un diseo, cdigo y contenido reutilizable.

de

Para aquellos lectores que ya conocan alguna versin anterior de ASP, comentar que las Master Pages nos van a ofrecer
una funcionalidad que anteriormente obtenamos utilizando otros mecanismos como pueden ser los ficheros include y los
controles de usuario de ASP .NET.

Temas y Skins

lo

Los temas y skins o tambin llamadas mscaras, es un mecanismo que ofrece ASP .NET para establecer un aspecto
comn a los distintos controles de los formularios de los que consta una aplicacin Web, los temas de ASP .NET los podemos asemejar a las hojas de estilo en cascada (hojas CSS), ya que en realidad son caractersticas del aspecto que se van
a aplicar a los controles Web. Un tema va a estar compuesto de uno o ms ficheros de mscara (tienen la extensin
.skin) y por las hojas de estilo e imgenes que se utilicen.
Los temas se encuentran en una carpeta especial de la aplicacin Web llamada App_Themes. Veremos a lo largo del
texto que adems de esta carpeta especial, las aplicaciones Web de ASP .NET van a tener otras carpetas especiales con
otra funcionalidad distinta.

mp

En un fichero de mscara se van a definir los valores de las propiedades de los controles a los que queremos que afecte la
mscara, as si queremos definir las propiedades que van a tener los controles Label de nuestras pginas ASPX, deberemos definir un control Label con los valores de las propiedades correspondientes dentro del fichero .skin.
Al igual que suceda con las Master Pages, los temas y skins mejoran el mantenimiento de una aplicacin Web, ya que
todos los estilos y aspecto de las pginas ASPX que forman parte de la aplicacin se encuentran centralizados.

Personalizacin

Eje

ASP .NET 4.0 ofrecen una serie de servicios de personalizacin (perfiles) que van a ayudar a que la experiencia del usuario en la aplicacin Web sea ms personalizada, permitindonos mantener las preferencias de los usuarios de nuestra aplicacin Web, basndose en un completo mecanismo de perfiles. Esto lo conseguiremos a travs de nuevo objeto denominado Profile que nos ofrece ASP .NET 4.0.

Internacionalizacin

En el rea de desarrollo de aplicaciones Web, debido a las caractersticas de las aplicaciones Web, podemos vernos alguna vez en la tarea de tener que disear una aplicacin que sea multilenguaje, de forma que en el servidor Web tengamos
una nica aplicacin ejecutndose y dependiendo de los clientes que accedan est en un idioma o en otro
ASP .NET 4.0 nos ofrece la caracterstica de internacionalizacin, lo que hace ms sencillo acometer una tarea de este
tipo. Para ello ASP .NET pone a nuestra disposicin los ficheros de recursos (.RESX), estos ficheros de recursos podrn

Pgina | 20

ser de dos tipos, locales y globales, lo primeros se utilizarn en una pgina ASPX concreta y los segundos sern accesibles por todas las pginas ASPX presentes en la aplicacin Web.

to

Existirn varios juegos de ficheros de recursos, uno por idioma que queramos utilizar en nuestra aplicacin Web, en estos
ficheros de recursos podemos definir todos los literales que aparecen en la aplicacin, y como ya se ha dicho existir un
fichero de recurso para cada idioma.
Aunque los ficheros de recursos ya existan en ASP.NET 1.x, no se encontraban tan integrados dentro de la herramienta
de desarrollo ni tampoco dentro de las pginas ASPX.

tex

Visual Studio 2010 nos ofrece la utilidad del editor de ficheros de recursos.

Tambin podremos detectar de manera automtica el idioma preferido que ha elegido el usuario en su navegador.

Nuevo modelo de separacin de cdigo

En versiones anteriores de ASP .NET 1.x ya se realizaba la separacin entre la lgica de presentacin y la lgica de negocio, haciendo uso del mecanismo que se denominaba Code-Behind. Mediante esta caracterstica todo el cdigo HTML y
ASP .NET que se corresponda con el interfaz de usuario se encontraba en la pgina ASPX a la que se le asociaba un
fichero de cdigo que era una clase que contena todo el cdigo para la lgica de negocio.

de

La filosofa de la separacin entre el cdigo de la lgica de negocio y de presentacin no ha variado, lo que cambia es la
forma de llevarlo a cabo. A la pgina ASPX tambin se le asocia un fichero de clase, pero en este caso se trata de una
clase parcial, aparece un nuevo modificador para las clases llamado partial. Una clase parcial permite dividir el cdigo
que define a la clase en varios ficheros. De esta forma el fichero de la clase que se asocia a la pgina ASPX contiene menos lneas de cdigo ya que se compila de forma conjunta con la propia pgina, y por lo tanto no se necesita declarar en la
clase los distintos controles que contiene la pgina ASPX. Aludiendo a esta caracterstica Microsoft indicaba que se reduca el nmero de filas de cdigo fuente en un 70%, con lo que el cdigo es ms legible y ms sencillo de mantener.
Las clases parciales en general son una nueva caracterstica que ofrece el .NET Framework en su versin 2.0.

lo

Respecto a la utilizacin de este modelo de separacin de cdigo se puede hacer la siguiente apreciacin: este modelo no
es obligatorio, aunque si recomendable, ya que la lgica de presentacin queda en la pgina ASPX y la lgica de negocio
(acceso a datos, tratamiento de eventos, funcionalidad, operaciones, etc.) queda en el fichero de la clase (con las extensiones .VB o .CS segn el lenguaje utilizado) que se ha asociado a la pgina ASP .NET. Esto permite que el cdigo sea ms
claro y ms sencillo de mantener, adems estas ventajas se reafirman con el nuevo modelo de separacin de cdigo, llamado por algunos autores Code-Beside en contraposicin al modelo de ofrecan las versiones 1.x de ASP .NET llamado
como ya sabemos Code-Behind.

Eje

mp

Este modelo de separacin de cdigo que hemos introducido en este apartado, y que ms delante retomaremos en mayor
detalle para mostrar ejemplos concretos de cdigo, ya hemos dicho que no es obligatorio, pero es el modelo de programacin de pginas ASPX que ofrece por defecto el entorno de desarrollo Visual Studio 2010, aunque al aadir una nueva
pgina ASPX nos permite seleccionar, mediante un check, si queremos hacer uso del modelo de separacin de cdigo o
no. Si desmarcamos esta casilla se emplear para la pgina ASP .NET el modelo de cdigo que encontramos en las antiguas versiones ASP hasta de la aparicin de la tecnologa .NET. Literalmente, tal como vemos en la imagen inferior en la
casilla aparece el texto Colocar el cdigo en un archivo independiente.

Pgina | 21

to
tex

Figura 3

de

Si la casilla anterior est seleccionada adems de aadirse el fichero .ASPX al proyecto de Visual Studio 2010, se aade
un segundo fichero llamado igual que la pgina ASP .NET pero con la extensin .ASPX.VB .ASPX.CS segn el
lenguaje utilizado, este ser el fichero de la clase de la pgina y que estar asociado a la misma.
Pero si desmarcamos la casilla al aadir una nueva pgina ASPX se utilizar otro modelo de cdigo, este modelo de cdigo se denomina cdigo en lnea (inline coding) y en este caso no existe separacin entre la lgica de presentacin y la de
negocio, todo el cdigo se encuentra en la pgina ASPX. Aunque VS 2010 soporta este estilo de codificacin, si desmarcamos la casilla de la imagen anterior, como ya hemos dicho es mejor no utilizarlo. Visual Studio 2010 para este modelo
de codificacin incluso ofrece la caracterstica de intellisense, ayuda inteligente que aparece cuando estamos escribiendo
cdigo para la pgina y nos indica las propiedades, mtodos, parmetros, etc., que podemos utilizar en una situacin determinada.

PostBack entre distintas pginas

lo

Realizar un Post de una pgina ASPX significa que es enviada al servidor para su tratamiento, ser en este envo cuando
se traten los eventos correspondientes y se ejecute el cdigo de servidor que se encuentre asociado, adems se inicia el
ciclo de eventos de la pgina (Init, Load, PreRender, etc.). Y un PostBack es simplemente realizar un Post sobre la
misma pgina, es decir, reenviar la pgina al servidor.

mp

En las antiguas versiones de ASP (1.0/2.0/3.0), se poda realizar un post, es decir, enviar la pgina, sobre una pgina distinta a la actual, por lo tanto la pgina de destino poda obtener los datos del formulario que existan en la pgina de origen y realizar el tratamiento que proceda. En ASP .NET esto no es posible, los post/postback o envos de pgina se realizan siempre sobre la pgina actual, es decir, no hay posibilidad de enviar el formulario a una segunda pgina, siempre se
hace sobre la misma, recargndose.
Con ASP .NET 4.0 si que es posible realizar un PostBack sobre una segunda pgina, y desde esta segunda pgina ASPX
se puede tener acceso al formulario (Web Form) de la primera pgina. ASP .NET 4.0 nos ofrece la propiedad PostBack
Url para indicar la pgina ASPX a la que deseamos enviar el formulario, es decir, la pgina ASP .NET sobre la que realizaremos el Post, y mediante la propiedad PreviousPage de la clase Page tendremos acceso al formulario de la pgina de origen desde la pgina sobre la que se hace el PostBack o envo del formulario.

Eje

Nuevos eventos de las pginas ASPX

Las pginas ASP .NET tienen una serie de eventos que se producen dentro de un orden determinado en lo que se puede
definir como el ciclo de vida de una pgina ASPX, es decir, cada vez que se carga una pgina se ejecutarn siempre unos
eventos determinados. En la versin 2.0 de ASP .NET se incluyen seis nuevos eventos de este tipo.
Veamos brevemente cada uno de estos nuevos eventos por orden de ejecucin.
El primero de ellos es PreInit, que se ejecutar en el momento anterior al que la pgina es inicializada; luego nos encontramos con InitComplete que se ejecutar cuando se ha completado la inicializacin de la pgina a este evento le
Pgina | 22

to

sigue PreLoad, que indica el instante inmediatamente anterior al momento en el que la pgina se carga en memoria; el
siguiente es LoadComplete, que indica que la pgina se ha cargado completamente en memoria; ms adelante se ejecuta el evento PreRenderComplete, este se ejecutar justo en el momento anterior en el que la pgina se muestra en el
navegador Web.

tex

Y llegamos al ltimo evento en orden de ejecucin de los nuevos eventos del ciclo de vida de una pgina, este ltimo
evento se denomina SaveStateComplete, y se ejecuta cuando la pgina ha terminado de guardar toda la informacin
del ViewState, es decir, la informacin relativa al estado y valores de las propiedades de los controles de la pgina. El
concepto de ViewState lo volvemos a tratar un poco ms adelante.
Y si unimos estos nuevos eventos de la pgina, con los que ya existan en las versiones anteriores de ASP .NET, tenemos
el siguiente esquema de ejecucin de eventos del ciclo de vida de una pgina ASPX.
1. PreInit
2. Init
3. InitComplete
4. PreLoad
5. Load
7. PreRender
8. PreRenderComplete
9. SaveStateComplete
10. UnLoad

de

6. LoadComplete

lo

Se debe aclarar que estos no son todos los eventos que ejecuta una pgina ASPX, estos son solo los eventos que pertenecen a su ciclo de vida y que se ejecutan siempre, luego tenemos otros eventos que se lanzarn en situaciones muy particulares como pueden ser AbortTransaction o CommitTransaction, cuando estamos utilizando transacciones en
nuestra pgina, o bien el evento Error, que se lanzar cuando se produce un error dentro de la pgina ASPX. Todos los
eventos los veremos de forma completa cuando tratemos el objeto Page, este objeto es una clase del .NET Framework
que representa a la pgina ASPX actual.

Soporte para manejar el foco de la pgina

mp

ASP .NET 4.0 ofrece una serie de caractersticas para poder manejar de forma conveniente y tener control sobre el foco
de los controles Web de nuestra pgina ASPX. El conjunto de facilidades que nos ofrece ASP .NET 4.0 para tratar el foco
dentro de las pginas ASP .NET se denomina API Focus. Este API nos permite controlar el foco sobre los controles de un
formulario Web, ya sea de forma declarativa o bien a travs del cdigo de servidor en tiempo de ejecucin.
As por ejemplo podemos establecer el foco sobre un control Web de servidor lanzando sobre l su mtodo Focus(). A
la hora de definir un formulario Web en la pgina ASPX podemos utilizar su atributo DefaultFocus para indicar el
control Web que poseer el foco al cargarse la pgina.

Nuevas caractersticas del cdigo de cliente

Eje

ASP .NET aporta una serie de mejoras a la hora de utilizar cdigo de cliente en las pginas ASPX. Una de las mejoras
ms interesantes es la de permitir ejecutar cdigo de servidor desde cdigo de cliente, es lo que se denomina Callbacks
desde el cliente.
Se permite realizar una llamada a un mtodo de cdigo de servidor desde cdigo de cliente (javascript) sin tener que realizar un PostBack de la pgina, es decir, sin tener que recargar la pgina, esta caracterstica se denomina tambin llamadas
fuera de banda.
Con un Callback de cdigo cliente se enva una peticin al servidor, sin recargar la pgina, y luego el navegador recibe la
respuesta, y en ese momento el cdigo cliente (javascript), mediante DHTML (Dynamic HTML) muestra la respuesta en
la pgina.

Pgina | 23

Esta caracterstica se basa en la capacidad del navegador Web de soportar llamadas fuera de banda a travs del protocolo
XMLHTTP. Con esto se consigue enviar una peticin simple sin tener que ir enviando y recibiendo la pgina completa.

to

Otras nuevas caractersticas son ms sencillas, como puede ser la posibilidad de indicar en el objeto Button mediante la
propiedad OnClientClick, el mtodo que se ejecutar del cdigo cliente cuando se produzca el evento Click del
botn o como puede ser atributo

Directorios de una aplicacin ASP .NET

tex

MaintainScrollPositionOnPostBack de la directiva Page, que si le asignamos el valor True se mantendr la


posicin del scroll de la pgina en el navegador en distintas recargas (PostBacks) de la misma.

En ASP .NET se introducen una serie de nuevos directorios especiales, que tendrn un uso determinado dentro de las
aplicaciones ASP .NET. Esta no es una idea nueva, ya que en ASP .NET 1.x ya exista un directorio especial, era el directorio BIN, que era utilizado para contener los assemblies de los que haca uso la aplicacin ASP .NET, recordamos
que un assemblie (ensamblado) es una DLL de un componente compilado. Al aparecer estas nuevos directorios especiales, no quiere decir que el directorio BIN deje de utilizarse, este directorio podr seguir utilizndose en las aplicaciones
Web de ASP .NET 4.0.

mp

lo

de

Desde el propio entorno de desarrollo Visual Studio 2010 se ofrece soporte para la creacin de estos directorios de la
aplicacin Web. Si pulsamos con el botn derecho del ratn sobre la solucin dentro del explorador de soluciones de VS
2010 veremos que en le men contextual aparece el elemento Agregar carpeta ASP .NET, y si vamos a esta opcin de
men aparecen otras subopciones que se corresponden con los directorios que podemos crear, esto se puede apreciar en la
siguiente figura.

Figura 4

Vamos a pasar a comentar brevemente cada uno de los nuevos directorios que presenta ASP .NET para desarrollar aplicaciones ASP .NET
1. App_Code: la labor principal de esta carpeta es la de contener las clases de la aplicacin Web. Todas las clases
que contenga esta carpeta sern accesibles desde cualquier pgina ASPX de la solucin.
2. App_Data: esta carpeta va a contener los almacenes de datos utilizados por la aplicacin, podrn contener ficheros de SQL Server (.MDF), Access (.MDB), ficheros XML.

Eje

3. App_Themes: esta carpeta contendr los ficheros necesarios (ficheros .CSS y ficheros .SKIN) que forman parte de un tema. Existir un subdirectorio dentro de la carpeta App_Themes por cada uno de los temas definidos, y
estos temas se podrn aplicar a las pginas que forman parte de la aplicacin ASP .NET.
4. App_GlobalResources: aqu podremos encontrar los ficheros de recursos globales (.RESX). Recordamos
que estos ficheros nos permiten definir de forma global a la aplicacin los textos en un lenguaje determinado.
5. App_LocalResources: este directorio tiene la misma funcin que el anterior, pero en este caso albergar los
ficheros de recursos locales, es decir, aquellos a los que tendrn acceso nicamente las pginas determinadas de
forma local.

Pgina | 24

6. App_WebReferences: este es el nuevo nombre que recibe el directorio encargado de contener las referencias
a los servicios Web utilizados dentro de la aplicacin ASP .NET, en versiones anteriores de Visual Studio se denominaba Web References.

to

7. App_Browsers: esta carpeta contiene ficheros .BROWSER, estos ficheros son ficheros en formato XML que
contienen las caractersticas de los distintos navegadores Web, estos ficheros nos van a servir para identificar las
funciones que poseen los navegadores que hacen peticiones a nuestro sitio Web.

lo

de

tex

En la siguiente figura se muestra el aspecto que tendra una aplicacin ASP .NET, dentro del explorador de soluciones de
VS 2010, con una serie de carpetas ASP .NET definidas.

Figura 5

mp

Como sucede con casi todo lo comentado en este apartado, ms adelante retomaremos las carpetas ASP .NET y las utilizaremos segn sea conveniente.

Nueva sintaxis

ASP .NET 4.0 nos provee con una nueva sintaxis para calcular expresiones dentro de las pginas ASPX. Esta sintaxis
tiene el siguiente aspecto <%$
%> y se utiliza en diversos escenarios: para obtener cadenas de conexin definidas en el
fichero de configuracin Web.config, para obtener literales definidos en ficheros de recursos, para acceder a valores de
configuracin de la aplicacin y para obtener valores almacenados en perfiles.
Esta sintaxis la veremos a lo largo de los distintos ejemplos de cdigo dentro del texto segn sea necesaria. Esta sintaxis
se denomina Expression Builders.

Eje

Nuevas directivas de las pginas ASPX

Como consecuencia de algunas de las novedades vistas en los puntos anteriores, ASP .NET 4.0 ha tenido que incorporar
nuevas directivas a las pginas ASPX para poder implementar algunas de las nuevas caractersticas que ofrece.

As por ejemplo para definir los atributos especficos de una Master Page, ASP .NET 4.0 presenta la nueva directiva
Master. Esta directiva es muy similar a la directiva Page de las pginas ASPX, pero en este caso es especfica de las
Master Pages. Tambin en relacin con las Master Pages tenemos la directiva MasterType, esta directiva en contraposicin a la anterior es para utilizar en las pginas ASPX normales, y no en las maestras.

Pgina | 25

La directiva MasterType asocia un nombre de clase a una pgina maestra, de estar forma se consigue tener una referencia fuertemente tipada a la Master Page y as acceder a sus atributos o mtodos.

to

Distribucin de la aplicacin

Esta caracterstica, adems de ser nueva en ASP .NET 4.0, tambin se encuentra muy relacionada con VS 2010, ya que es
este entorno de desarrollo el que nos ofrece una utilidad para realizar la publicacin de un sitio Web. En ASP .NET 1.x la
nica forma de distribuir una aplicacin Web era copiando tal cual el directorio virtual en el que se encontraba, y situndolo en el servidor Web deseado, o bien utilizando un asistente de distribucin.

tex

Ahora desde VS 2010 podemos utilizar el asistente de publicacin del sitio Web para elegir la localizacin de la publicacin y tambin la forma en que se generar el sitio Web, si permite la actualizacin o no.

de

En la siguiente figura se puede ver el asistente de publicacin del sitio Web que nos ofrece Visual Studio 2010.

Figura 6

Visual Studio 2010

lo

Adems de esta herramienta, VS 2010 ofrece tambin la posibilidad de copiar un sitio Web como tal, sin precompilarlo
como en el caso de la utilidad de publicar sitio Web, mediante la utilidad Copiar sitio Web podemos conectarnos a un
sitio Web remoto y copiar nuestra aplicacin ASP .NET.

mp

Se ha incluido este apartado dentro de las novedades de ASP .NET 4.0 para dar relevancia a la nueva versin de esta
herramienta de desarrollo, ya que ofrece un gran nmero de ayudas para el desarrollo de una aplicacin Web con ASP
.NET. El mdulo de Visual Studio 2010 que nos permite desarrollar aplicaciones Web es el denominado Microsoft Visual
Web Developer.
Algunas de las ayudas y utilidades que nos ofrece VS 2010 ya las hemos comentado en anteriores puntos, y podemos
destacar las siguientes:
1. Copia de sitio Web.

2. Publicacin de sitio Web.

Eje

3. Sistema gestor de base de datos SQL Server 2005 Express.

4. Servidor Web integrado denominado con el siguiente nombre clave: Cassini.

5. Editor de ficheros de recursos.


6. Intellisense mejorado.

7. Smart Tags, etiquetas inteligentes que nos permitirn configurar de manera rpida algunos controles Web.
8. Navegador de etiquetas, que nos permitir desplazarnos de forma muy sencilla en el cdigo HTML y ASP .NET
de una pgina ASPX. Tambin conoceremos en qu lugar de la pgina nos encontramos situados.

Pgina | 26

9. Asistencia y notificacin de errores.


10. Validacin del cdigo HTML.

to

Debido a todas estas caractersticas, veremos ms tarde que se propone VS 2010 como material necesario para seguir el
texto

Precompilacin de pginas

tex

ASP .NET 4.0 ofrece una nueva herramienta que permite precompilar todas las pginas de una aplicacin Web antes de
ser distribuida, esta herramienta se llama aspnet_compiler.exe. Al precompilar una pgina ASPX obtenemos las
siguientes ventajas: la primera peticin de la pgina que se realice se ejecutar igual de rpido que cualquier otra y se
evitan que aparezcan errores de compilacin en el servidor Web de produccin.
Esta precompilacin tambin es llevada a cabo por la herramienta de publicacin de sitio Web de VS 2010 y que hemos
comentado en un punto anterior. Desde esta herramienta se nos brinda la posibilidad de indicar si deseamos que las pginas ASPX sean modificables en el servidor Web de destino o no (Permitir que este sitio precompilado se actualice). Si
indicamos que no queremos que sean modificables las pginas ASPX, protegeremos todo el cdigo fuente de nuestra
aplicacin Web, ya que las pginas ASPX carecern de contenido y se harn uso de una serie de DLLs en su lugar. De
esta forma no se podr modificar nada, ni siquiera la lgica de presentacin, de hecho si abrimos en el servidor en el que
se ha publicado el sitio Web, alguna de las pginas ASPX para ver su cdigo veremos el siguiente mensaje de advertencia.

de

ste es un archivo marcador generado por la herramienta de precompilacin y que no se debera eliminar

Cdigo fuente 1

Por lo tanto otra ventaja que obtenemos al precompilar nuestra aplicacin Web de esta manera es que el cdigo fuente de
las pginas y de las clases no queda expuesto.

Mejora del ViewState

lo

El ViewState es el mecanismo que ofrece ASP .NET (ya en su primera versin 1.0) para mantener el estado de los controles de la pgina entre distintas llamadas a la pgina, es decir, en los mltiples PostBacks se mantienen de forma automtica los valores y propiedades de los controles Web presentes en la pginas ASPX, sin tener que escribir el desarrollador
una sola lnea de cdigo.
Es necesario este mecanismo para mantener el estado de los controles, ya que el entorno en el que se ejecutan las pginas
ASPX es el protocolo HTTP, y este es un protocolo sin estado, las distintas llamadas que se realizan a un servidor Web
son siempre independientes entre s para el servidor, por lo tanto no mantiene el estado.

mp

La forma que tiene ASP .NET de implementar este mecanismo es utilizar un campo oculto (hidden) dentro del formulario
Web. Este campo oculto es enviado junto con el resto de campos del formulario cuando el usuario realizar un envo del
formulario al servidor, y ASP .NET es capaz de interpretar la informacin almacenada en el campo oculto para utilizarla a
la hora de devolver de nuevo la pgina al navegador y construirla teniendo en cuenta el estado anterior en el que se encontraba.
Para ver el aspecto que tiene el ViewState no tenemos nada ms que cargar en nuestro navegador una pgina ASPX y
seleccionar la opcin de ver el cdigo fuente, veremos algo similar a lo siguiente, el tamao de la informacin incluida en
este campo variar segn el nmero de campos que existan en el formulario de la pgina.

Eje

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"


value="/wEPDwUKLTY1NjkyNTQ5NmRkiJJCpebHsDGlY+LCIvg2xt5IHZs=" />

Cdigo fuente 2

El problema que tiene el ViewState es que el tamao de la informacin que se almacena en el campo oculto puede crecer
bastante, haciendo que la carga de la pgina ASPX sea ms lenta. Pero en la versin 2.0 de ASP .NET se ha optimizado el
mecanismo de ViewState de tal manera que ha llegado a reducirse en un 50% el tamao de la informacin generada respecto a la versin 1.1 de ASP .NET. Si queremos beneficiarnos de esta mejora en el rendimiento de ASP .NET 4.0 nicamente tenemos que recompilar nuestra aplicacin ASP .NET 1.x en Visual Studio 2010.

Pgina | 27

API de configuracin

to

En esta nueva versin de ASP .NET se nos provee con un nuevo API para la manipulacin de los ficheros de configuracin de ASP .NET, es decir, los ficheros Web.config y machine.config, esto nos permite escribir y desarrollar
nuestra propias aplicaciones para acceder a la configuracin de las aplicaciones ASP .NET.

de

tex

Un ejemplo prctico de utilizacin de este API de configuracin lo tenemos si desde Visual Studio 2010 ejecutamos la
opcin de men Sitio Web|Configuracin de ASP .NET, esta accin lanzar la ejecucin de una aplicacin Web que hace
la funcin de herramienta de administracin de la aplicacin Web que en ese momento tenemos cargada en VS 2010, en
la siguiente figura se puede ver el aspecto de la misma.

Figura 7

lo

Desde esta herramienta de administracin podemos realizar muchas labores de configuracin, que trataremos en detalle
en el captulo correspondiente.

Consola MMC de administracin

mp

En el apartado anterior hicimos referencia la herramienta de administracin basada en Web que nos ofreca VS 2010, esta
no es la nica forma de administrar nuestra aplicacin Web, de hecho en un entorno de produccin real la forma ms
comn de realizar las labores de administracin y configuracin de un sitio Web es a travs del la herramienta de administracin del propio servidor Web IIS (Internet Information Services).

Eje

ASP .NET 4.0 ofrece una nueva consola MMC (Microsoft Management Console) integrada como parte de la administracin del servidor IIS. Desde esta herramienta integrada dentro de IIS tendremos acceso a todas las posibilidades de configuracin que nos ofrecen los ficheros de configuracin de la aplicacin ASP .NET. En la se puede ver el aspecto que presenta esta nueva consola.

Pgina | 28

to
tex

Figura 8

de

Soporte para 64 bits

ASP .NET 4.0 da completo soporte para los procesadores de 64 bits, aprovechando las caractersticas que stos ofrecen, y
las aplicaciones Web de ASP .NET 4.0 se comportarn perfectamente como aplicaciones de 64 bits.
Como puede ver el lector son muchas las mejoras y novedades que aporta esta nueva versin de ASP .NET, esta ha sido
una visin muy general de las novedades que presenta ASP .NET 4.0, en los siguientes captulos iremos entrando en los
distintos detalles.

lo

Material necesario
El nico material necesario para seguir el texto, ya lo hemos adelantado antes, es la herramienta de desarrollo Visual Studio 2010 y en concreto el mdulo denominado Microsoft Visual Web Developer 2005.

mp

VS 2010 nos ofrece adems del .NET Framework 4.0, el servidor de base de datos SQL Server 2005 Express y el servidor
Web Cassini (denominado tambin Servidor Web de desarrollo dentro de VS 2010), por lo tanto podemos seguir el texto
y desarrollar aplicaciones Web en las versiones Home y Professional de Windows XP, as como desde Windows 2003
Server, ya que no es necesario contar con SQL Server ni con el servidor Web Internet Information Services.
Como curiosidad le comentar al lector que si ejecuta una aplicacin Web desde Visual Studio 2010 ver que en la parte

Eje

derecha de la barra de tareas del sistema operativo a parece un icono amarillo ( ), que es el que representa al servidor
Web Cassini. Si pulsamos con el botn derecho del ratn y seleccionamos la opcin Propiedades veremos una ventana
que representa a este servidor Web de desarrollo, y desde esta ventana tenemos la posibilidad de parar su ejecucin.

Pgina | 29

to
tex

Figura 9

A lo largo del texto iremos abordando distintos aspectos de Visual Studio 2010 segn vaya siendo necesario a la hora de
realizar alguna tarea dentro del desarrollo de aplicaciones Web con ASP .NET 4.0.

Eje

mp

lo

de

Con este ltimo apartado damos por finalizado este captulo de introduccin a la tecnologa ASP .NET 4.0. En el siguiente captulo veremos una serie de conceptos generales sobre la orientacin a objetos y los lenguajes orientados a objetos.

Pgina | 30

to

2. PRIMEROS PASOS CON ASP .NET 4.0


Introduccin

tex

Dejamos el aspecto terico de los dos captulos anteriores, y pasamos a punto de vista ms prctico. En este captulo se va
a comentar paso a paso la creacin de una aplicacin Web con Visual Studio 2010, tambin se describir el entorno de
trabajo ptimo que debemos tener para seguir el texto satisfactoriamente.
Tambin crearemos nuestra primera pgina ASPX y se comentar el entorno de desarrollo que nos ofrece VS 2010.
A partir de este captulo empezaremos a tratar en detalle los distintos elementos de ASP .NET 4.0, que adelantamos brevemente en el captulo de introduccin a esta nueva versin de las pginas ASP .NET.

El entorno de trabajo

de

Como requisito indispensable para poder seguir el texto correctamente y poder desarrollar los distintos ejemplos y casos
prcticos que en l aparecen, es necesario tener instalado Visual Studio 2010, es decir, la ltima versin del entorno integrado de desarrollo que ofrece Microsoft para su plataforma .NET 4.0.
Ya hemos visto que la instalacin de Visual Studio 2010 es un proceso muy sencillo.
Adems del entorno de desarrollo integrado (IDE), al instalar VS 2010 se instalan dos elementos fundamentales:
La versin 4.0 del .NET Framework

El sistema gestor de bases de datos SQL Server 2008 Express

lo

Con esto podemos decir que el propio VS 2010 nos ofrece todo lo necesario para poder desarrollar aplicaciones Web con
ASP .NET 4.0. Por lo tanto nuestro sistema operativo puede ser Windows XP en sus versiones Home o Professional, ya
que no ser necesario utilizar el servidor Web Internet Information Server (incluido en Windows XP Professional) o Windows 7 en cualquiera de sus ediciones

mp

Como entorno de trabajo para poder seguir el curso ya sera suficiente con la instalacin de VS 2010 ya que incluye la
plataforma .NET en su versin 4.0, un sistema gestor de bases de datos y un servidor Web para poder ejecutar nuestra
aplicacin Web. Ahora bien, la cosa cambia cuando se trata de un entorno de desarrollo real.
En un entorno de desarrollo real la mquina del desarrollador, adems de tener instalado VS 2010, como sistema operativo podra tener Windows XP en sus ediciones Home o Professional, ya que se pueden realizar pruebas locales de la aplicacin Web mediante el servidor Web que se encuentra integrado dentro de VS 2010. Pero tambin sera necesario disponer de un servidor Web de pruebas que ofreciera un entorno ms real de ejecucin para la aplicacin Web basada en ASP
.NET 4.0 que se est desarrollando.
En el servidor de pruebas deberemos tener instalado lo siguiente:
Sistema operativo Windows 2003-2008 Server

Eje

Servidor Web Internet Information Services (IIS) en su versin 6.0-7.0.


Microsoft .NET Framework 4.0
Sistema gestor de base de datos SQL Server 2000, 2005 2008

El orden de la instalacin en el caso del servidor Web IIS y la plataforma .NET Framework 4.0 es importante, el .NET
Framework se debe instalar despus de haber instalado el servidor Web.

Pgina | 31

to

Con estos requisitos tendremos un servidor de pruebas que representa un entorno de ejecucin bastante comn en el desarrollo de aplicaciones Web basadas en ASP .NET 4.0. Para casos concretos, cuando los requisitos en el servidor de produccin sean distintos, deberemos implementar los requisitos correspondientes en nuestro servidor de pruebas.
Una forma muy comn de desarrollar con Visual Studio 2010 aplicaciones Web basadas en ASP .NET, es la que vamos a
describir a continuacin.

tex

Cada miembro del equipo de desarrollo tiene una copia local de la aplicacin Web que se est construyendo, y en su
equipo tendrn instalado Windows XP en cualquiera de sus versiones y VS 2010. De esta manera pueden ir desarrollando
y ejecutando localmente la aplicacin.
Las soluciones de VS 2010 que contienen cada una de las copias locales de la aplicacin Web en los equipos de desarrollo, debern estar conectadas a un servidor de control de cdigo fuente como puede ser Visual SourceSafe o Team Foundation Server, para de estar forma ir controlando los distintos cambios que cada miembro del equipo de desarrollo est
realizando en su proyecto Web local, y as no se perder el trabajo de ninguno de los miembros del equipo, ya que Visual
SourceSafe se encarga de ir bloqueando los distintos recursos (pginas ASPX, clases, etc.) de los que consta la solucin
de Visual Studio, para que cada desarrollador los utilice de forma exclusiva y que en un momento dado pueda obtener la
ltima versin de la aplicacin Web para poder tener a su disposicin el resto de cambios que han realizado sus compaeros de equipo de trabajo.

de

Aunque la aplicacin Web se haya ido desarrollando y probando en los equipos de los desarrolladores, ser necesaria
probarla tambin en el servidor de pruebas, que ser el que contendr Internet Information Server 6.0 sobre Windows
2003 Server o IIS 7.0 sobre Windows 2008 Server, tal como indicbamos un poco ms arriba en este mismo apartado.
Visual Studio 2010 ofrece un completo entorno de desarrollo integrado para la plataforma .NET 4.0 de Microsoft, por lo
tanto adems de desarrollar aplicaciones Web podremos desarrollar otro tipo de aplicaciones, como pueden ser las aplicaciones Windows. El mdulo que vamos a utilizar de Visual Studio 2010 es el que se denomina Microsoft Visual Web
Developer 2010.
Ahora nos encontramos en disposicin de crear nuestra primera aplicacin Web con Visual Studio 2010.

lo

Creacin de una aplicacin Web con VS 2010


Los pasos para crear desde VS 2010 una aplicacin Web basada en ASP .NET son muy sencillos y los vamos a describir a
continuacin.

Eje

mp

Para crear un sitio Web de ASP .NET tenemos dos opciones dentro de VS 2010, la ms inmediata es desde la Pgina de
Inicio de VS 2010, en la parte superior izquierda, en la seccin proyectos recientes tenemos la opcin Crear: Sitio Web

Figura 10

Pgina | 32

tex

to

Tambin se puede crear un sitio Web desde la opcin de men Archivo | Nuevo sitio Web, las dos posibilidades nos llevan
a la pantalla que aparece a continuacin.

de

Figura 11

Aqu tendremos que seleccionar la opcin de sitio Web de ASP .NET, que es la que nos interesa en este caso que nos
ocupa. Dos parmetros importantes a tener en cuenta dentro de esta pantalla es la seleccin de la ubicacin del sitio Web
y del lenguaje de programacin que se va a utilizar por defecto en la aplicacin Web.
En la lista de opciones correspondiente a la ubicacin indicamos el lugar en el que se va a albergar la aplicacin Web, VS
2010 nos ofrece cuatro posibilidades:

lo

1. Sistema de archivos: es la que se encuentra seleccionada por defecto y es la que utilizaremos para realizar los
ejemplos del texto, ya que se corresponde con el entorno de trabajo que hemos comentado. En este caso la aplicacin Web va a residir en nuestro sistema de archivos local, la ruta por defecto en la que se van a situar la aplicacin Web es C:\Documents and Settings\Usuario\
Mis documentos\Visual Studio 2010\
WebSites. Si seleccionamos esta opcin se

Eje

mp

utilizar el servidor Web integrado dentro de VS 2010, es decir, se


utilizar el servidor Web Cassini para ejecutar la aplicacin Web, y el directorio anterior es el que utiliza por defecto como directorio de publicacin del servidor Web, si lo comparamos con el servidor Web IIS sera como el
conocido directorio c:\Inetput\wwwroot. Si pulsamos el botn Examinar podemos cambiar esta ruta para
indicar el lugar de nuestro disco duro en el que deseamos que resida la aplicacin Web que vamos a crear. Al pulsar este botn parece una ventana en la que tambin se puede ver en su lado izquierdo el resto de posibilidades
para ubicar el sitio Web.

Pgina | 33

to
tex

Figura 12

mp

lo

de

2. IIS local: esta segunda posibilidad es la que tenamos cuando desarrollbamos aplicaciones Web con Visual Studio .NET 2003/2002, y consiste en que nuestro sitio Web se va a localizar en un directorio virtual dentro del servidor Web Internet Information Server que tenemos instalado en nuestro equipo. En el caso de no tener instalado
IIS o de utilizar el sistema operativo Windows XP Home Edition, esta posibilidad no se encontrar disponible. Si
seleccionamos esta opcin se utilizar el servidor Web IIS para ejecutar la aplicacin en lugar del servidor integrado Cassini. Visual Studio 2010 configurar automticamente el directorio virtual que va a contener nuestra
aplicacin, y se crear en el servidor Web IIS para que sea un directorio de inicio de aplicacin, es decir, para que
funcione como una aplicacin Web dentro de IIS.

Figura 13

Eje

3. Sitio FTP: en este caso la aplicacin Web no residir en el sistema local, como ocurra en las opciones anteriores,
sino que podr encontrarse en un sistema remoto. La comunicacin entre VS 2010 y el servidor remoto se realiza
a travs del protocolo FTP, en este caso tenemos que definir los parmetros necesarios para establecer a conexin
al sitio FTP (Figura 14). Tenemos que indicar el nombre del servidor, el nmero de puerto (por defecto el 21), el
directorio de destino, en el que se crear la aplicacin Web en el sitio FTP, y el usuario y la clave si fuera necesario, en caso contrario seleccionaramos la casilla de Inicio de sesin annimo.

Pgina | 34

to
tex

Figura 14

mp

lo

de

4. Sitio Web remoto: esta es la ltima de las opciones de seleccin de ubicacin para nuestra aplicacin Web, en
este caso, al igual que en el anterior la aplicacin ASP .NET se va a localizar en un servidor IIS remoto. VS 2010
acceder de forma remota el servidor Web que le indiquemos, tal como se ve en la siguiente figura, y configurar
automticamente el directorio virtual que se cree en el servidor Web para que sea un directorio de inicio de aplicacin, es decir, para que funcione como una aplicacin Web dentro de IIS.

Figura 15

Eje

En nuestro caso, vamos a elegir la primera alternativa para crear nuestra aplicacin Web, por lo tanto seleccionamos la
ruta en nuestro disco y pulsamos el botn Aceptar, tambin hay que sealar que en mi caso he seleccionado el lenguaje
VB .NET como lenguaje a utilizar por defecto dentro de la aplicacin Web.
En ese momento VS 2010 crear la aplicacin Web y nos presentar una pantalla muy similar a la de la figura, en realidad
la figura representa un fragmento de la ventana completa que nos ofrece VS 2010.

Pgina | 35

to
tex

Figura 16

Lo importante de aqu es ver los archivos que ha creado de forma automtica VS 2010 en el sitio Web, se ha creado una
pgina ASPX de inicio, llamada Default.aspx, un fichero de configuracin, web.config, y una carpeta especial de
ASP .NET llamada App_Data, recordamos que esta carpeta va a contener los almacenes de datos utilizados por la aplicacin, podrn contener ficheros de SQL Server (.MDF), Access (.MDB), ficheros XML, etc.

Modelo de separacin de cdigo

de

Con esto ya tendramos creada nuestra aplicacin Web, lista para empezar a aadir pginas ASPX u otros elementos, que
comprenden el desarrollo de la aplicacin Web.

En este apartado vamos a seguir teniendo en mente la aplicacin Web recientemente creada en el apartado anterior, ya
que la pgina ASPX que se ha aadido de forma automtica, nos va a servir para mostrar el modelo de separacin de
cdigo que utiliza ASP .NET 4.0 para mantener la separacin entre la lgica de negocio y la lgica de presentacin.
Volvamos por lo tanto a nuestra aplicacin Web que hemos creado con Visual Studio 2010 y centrmonos en la pgina
Default.aspx.

Eje

mp

lo

Si nos fijamos en la pgina ASPX veremos que el cdigo fuente incluido en la pgina ASPX es mnimo, nicamente contiene la definicin de un formulario Web dentro de la pgina. Si en el explorador de soluciones de VS 2010, pulsamos
sobre el smbolo ms (+, indicador de que se puede desplegar) que aparece al lado del fichero Default.aspx vemos
que se despliega y debajo aparece un nuevo fichero llamado Default.aspx.vb (ver en la Figura 17). Este es el fichero de la clase asociado a la pgina ASPX, es la clase parcial en la que se va a implementar toda la lgica de negocio, dejando la pgina ASPX para se encargue de la lgica de presentacin.

Figura 17

A este mecanismo de separacin de cdigo, ya lo vimos en el primer captulo de este texto, se le denomina Code-Behind.
Tambin comentamos que ya exista este mecanismo en ASP .NET 1.x, pero en ASP .NET 4.0 ha sido mejorado, ya que
se ha introducido el concepto de clase parcial (Partial Class). Esta nueva caracterstica permite una lectura de la clase
ms sencilla, ya que se genera menos cdigo y es ms sencillo de mantener, lo que se elimina en la clase parcial es la
Pgina | 36

to

definicin y declaracin de todos los controles de la pgina ASPX, ya que al definirse como parcial indicamos que la
clase final, a la que se compila, se encuentra dividida en varios ficheros, en este caso se trata de dos, la pgina ASPX y su
clase asociada.
Como podemos ver el cdigo de la clase tambin es mnimo, nicamente tiene las sentencias de definicin de la clase y
utiliza la clusula Inherits para indicar la clase de la que hereda.

using
using
using
using
using
using
using
using
using
using

System;
System.Data;
System.Configuration;
System.Collections;
System.Web;
System.Web.Security;
System.Web.UI;
System.Web.UI.WebControls;
System.Web.UI.WebControls.WebParts;
System.Web.UI.HtmlControls;

public partial class Default : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)
{

de

tex

Si hubiramos seleccionado el lenguaje C# el cdigo correspondiente de la clase sera como el que se muestra a continuacin.

Cdigo fuente 3

Figura 18

Eje

mp

lo

Este es el modelo de programacin de pginas ASPX que ofrece por defecto VS 2010, aunque al aadir una nueva pgina
ASPX nos permite seleccionar, mediante un casilla, si queremos hacer uso del modelo de separacin de cdigo o no, si
desmarcamos esta casilla se emplear para la pgina ASP .NET el modelo de cdigo que encontramos en las antiguas
versiones ASP hasta de la aparicin de la tecnologa .NET, lo que se denomina cdigo en lnea (inline coding). Literalmente, tal como vemos en la imagen inferior en la casilla aparece el texto Colocar el cdigo en un archivo independiente.

Si desmarcamos la casilla al aadir una nueva pgina ASPX se utilizar otro modelo de cdigo, este modelo de cdigo se
denomina cdigo en lnea y en este caso no existe separacin entre la lgica de presentacin y la de negocio, todo el cdigo se encuentra en la pgina ASPX, y por lo tanto no se aadir un fichero de clase asociado a la pgina ASPX, es decir,
no existir la clase parcial y nicamente se crear en el sitio Web de la aplicacin un fichero ASPX.
Lo recomendable es utilizar siempre el modelo de separacin de cdigo basado en las clases parciales.
La forma que tiene ASP .NET 4.0 de indicar la asociacin de la clase parcial con la pgina ASPX, es mediante dos parmetros de la directiva Page, es decir, de la directiva de la pgina. Para indicar el fichero de la clase se utiliza el atributo

Pgina | 37

CodeFile y para indicar el nombre de la clase que se implementa el fichero utilizamos el atributo Inherits, con este
atributo estamos indicando que la pgina ASPX hereda de la clase que se encuentra definida en la clase parcial asociada.

<%@ Page Language="VB" AutoEventWireup="false"


CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="Default" %>

tex

Cdigo fuente 4

to

Por lo tanto en la pgina ASPX del ejemplo anterior aparecera el siguiente cdigo (como siempre primero en VB .NET y
luego en C#).

Creacin de nuestra primera pgina ASP .NET 4.0

Para terminar este captulo vamos a crear la tpica pgina ASPX de Hola Mundo. Partimos de que ya tenemos nuestra
aplicacin Web creada, apara aadir una pgina ASPX pulsamos con el botn derecho del ratn sobre la solucin y seleccionamos la opcin de men Agregar nuevo elemento, con lo que aparece la ventana ya mostrada anteriormente. En esta
ventana, de los mltiples elementos que podemos aadir a nuestra aplicacin Web, seleccionamos el elemento Web
Forms, indicamos el nombre de la pgina ASPX y el lenguaje a utilizar para la misma.

de

Como ya hemos comentado anteriormente debemos dejar la casilla marcada de Colocar el cdigo en un archivo independiente, para utilizar el modelo de separacin de cdigo, y tambin podemos marcar la casilla Seleccionar la pgina principal. Veamos que quiere decir esto, primero debemos aclarar que el trmino pgina principal es el que se ha utilizado
para traducir el mecanismo de Master Pages, es decir, el mecanismo de pginas maestras.
Recordamos al lector que una pgina maestra la podamos utilizar para que todas nuestras pginas tengan un aspecto similar y coherente dentro de la aplicacin Web, con esto conseguimos, adems de mantener una coherencia y uniformidad en
todo el aspecto del sitio Web, un mantenimiento sencillo en lo que al aspecto y presentacin de sitio Web se refiere, ya
que si necesitamos cambiar alguna caracterstica del sitio Web no tenemos que ir pgina a pgina, solo lo cambiaremos en
la pgina maestra. Adems de darles este uso a las Master Pages, tambin pueden contener cdigo, por lo tanto tambin se
pueden aadir funcionalidades comunes a toda la aplicacin Web.

Eje

mp

lo

Realizado este inciso, volvamos al momento en el que se iba a aadir una pgina ASPX a nuestra aplicacin. Al marcar la
casilla Seleccionar la pgina principal, se nos permite asignar a la nueva pgina ASPX que vamos a crear, una pgina
maestra. De esta manera al darle al botn Agregar aparecer una ventana como la de la figura en la que indicaremos la
pgina maestra que se va a asignar a la pgina ASPX, y la seleccionaremos entre las existentes en nuestra aplicacin Web.
En el ejemplo que se muestra se va a utilizar la pgina maestra MasterPage.master. De momento no vamos a adelantar nada ms sobre las Master Pages, en el captulo correspondiente veremos esta novedad de ASP .NET 4.0 con todo
lujo de detalles.

Pgina | 38

Figura 19

to

Ya tenemos creada nuestra pgina ASPX, ahora en a vista de diseo de VS 2010 vamos a arrastrar desde el cuadro de
herramientas dos controles Web estndar, un control Label y un control Button. La funcionalidad de muestra pgina
va a ser muy sencilla, al pulsar el botn aparecer el mensaje Hola Mundo en la etiqueta.
Una vez aadidos los dos controles, el cdigo fuente de la pgina quedara de la siguiente forma. Este sera la lgica de
presentacin (Cdigo fuente 5).

tex

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="HolaMundo.aspx.vb" Inherits="HolaMundo" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Pgina sin ttulo</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label">
</asp:Label>
<asp:Button ID="Button1" runat="server" Text="Button" /></div>
</form>
</body>
</html>

de

Cdigo fuente 5

Si hacemos doble clic sobre el botn en la vista de diseo, automticamente VS 2010 nos llevar al cdigo de la clase
parcial Code-Behind para que demos el contenido al mtodo Button1_Click, que va a ser el manejador del evento
Click del botn del formulario Web. Dentro de este mtodo vamos a incluir una nica lnea de cdigo cuya funcin va a
ser asignar a la propiedad Text del objeto Label el valor Hola Mundo. Esta sera la lgica de negocio, y el cdigo
fuente de la clase sera el siguiente.
Partial Class HolaMundo
Inherits System.Web.UI.Page

End Class

System;
System.Data;
System.Configuration;
System.Collections;
System.Web;
System.Web.Security;
System.Web.UI;
System.Web.UI.WebControls;
System.Web.UI.WebControls.WebParts;
System.Web.UI.HtmlControls;

mp

using
using
using
using
using
using
using
using
using
using

lo

Protected Sub Button1_Click(ByVal sender As Object, _


ByVal e As System.EventArgs) _
Handles Button1.Click
Label1.Text = "Hola Mundo"
End Sub

Eje

public partial class HolaMundo2 : System.Web.UI.Page


{
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Hola Mundo";
}
}

Cdigo fuente 6

Ahora ya podemos ejecutar la pgina ASPX dentro de nuestra aplicacin, para ello pulsaremos el botn con el icono
de la barra de men de VS 2010, este botn indica el inicio de depuracin de nuestra aplicacin Web. La primera vez que
ejecutemos nuestra aplicacin Web de esta manera aparecer una ventana como la de la figura, que nos indica que es necesario habilitar el modo de depuracin en el fichero de configuracin (web.config) de nuestra aplicacin Web. En

Pgina | 39

tex

to

nuestro caso permitiremos que se modifique de forma automtica el fichero web.config para habilitar la depuracin,
ya que la tarea de depuracin es indispensable cuando estamos hablando del desarrollo de cualquier tipo de aplicacin.

Figura 20

lo

de

Veremos que al iniciar la ejecucin de la aplicacin, VS 2010 arranca el servidor Web integrado Cassini, que aparecer en
la barra de tareas de Windows, y la primera vez aparecer con un mensaje indicando que se ha iniciado, como se puede
ver en la figura.

Figura 21

Eje

mp

Ya en este momento tenemos en ejecucin nuestra aplicacin Web y veremos en el navegador nuestra primera pgina
ASP .NET 4.0. Si pulsamos el botn de nuestra pgina obtendremos algo parecido a la siguiente figura.

Figura 22

Como se ha podido comprobar cuando iniciamos la ejecucin de nuestra aplicacin Web, automticamente VS 2010 ha
arrancado el sitio Web y ha cargado la pgina HolaMundo.aspx sin que nosotros le indiquemos nada, esto es as porque si no indicamos una pgina de inicio para la solucin VS 2010 ejecutar la pgina en la que nos encontremos. Para
indicar una pgina de inicio determinada, en el explorador de soluciones pulsaremos con el botn derecho del ratn sobre
la pgina ASPX que queremos que sea nuestra pgina de inicio, y seleccionamos la opcin de men Establecer como
pgina de inicio.

Pgina | 40

to

Con esta ltima observacin se da por concluido este captulo en el que nos hemos familiarizado con el entorno de desarrollo que nos ofrece VS 2010 creando una pgina ASPX desde cero. En el siguiente captulo se comentarn una serie de
generalidades sobre el desarrollo de aplicaciones ASP .NET 4.0, como por ejemplo, los Web Forms y el tratamiento de
eventos, que nos servir de base para los siguientes captulos en los que se empezarn a ver los controles HTML y controles Web de servidor de ASP .NET 4.0.

Caso prctico

tex

Todava no hemos visto demasiadas funcionalidades de las pginas ASPX, por lo tanto este caso prctico va a resultar
muy sencillo.

Planteamiento

Se pide crear una nueva aplicacin Web con VS 2010, y aadir una pgina ASPX con el modelo de separacin cdigo y
que utilice el lenguaje VB .NET. Esta pgina debe mostrar un mensaje al pulsar un botn.

Eje

mp

lo

de

Una vez creada la pgina se debe ejecutar y comprobar su funcionamiento.

Pgina | 41

También podría gustarte