ASP.
NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
Visual Studio 2013 y .NET 4.5.1
1. Novedades de Visual Studio 2013
15
1.1 Instalacin
1.2 Interfaz del programa
1.2.1 La pgina de inicio
1.2.2 Las ventanas de Visual Studio
1.2.3 Las actividades ligadas al desarrollo
1.2.4 Los paquetes NuGet
1.2.5 Las pruebas codificadas de interfaz de usuario
1.3 Gestin del cdigo
1.3.1 El modo esquema y las regiones
1.3.2 La refactorizacin (refactoring)
1.3.3 Los fragmentos de cdigo (code snippets)
1.4 Documentacin
1.5 Control del cdigo fuente con Visual Studio Online
1.6 La herramienta MS Build
2. C#5 de un vistazo
61
2.1 Clases parciales
2.2 Mtodos annimos
2.2.1 Eventos internos
2.2.2 Las funciones auxiliares
2.2.3 Simplificar la edicin de cdigo
2.3 La inferencia de tipo
2.4 Las expresiones lambda
2.5 Clases dinmicas y tipos annimos
2.6 Extensin de clases sin herencia
2.7 Tipos nullables
2.8 Iterador
2.8.1 Iterador en C#1
2.8.2 Iterador a partir de C#3
2.9 Genericidad
2.9.1 Definir un tipo genrico
www.ediciones-eni.com
17
18
18
20
26
34
36
41
41
43
44
47
48
58
Ediciones ENI
61
62
63
65
67
69
70
70
71
73
74
74
76
77
77
1/12
ASP.NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
2.9.2 Especializacin parcial
2.9.3 Uso de un tipo genrico
2.9.4 El espacio de nombres System.Collections.Generic
79
80
80
Los sitios web ASP.NET 4.5.1
1. El modelo de compilacin
83
1.1 Del CGI al modelo ASP.NET 1.X
1.1.1 La interfaz CGI
1.1.2 Las pginas dinmicas ASP
1.2 Clases parciales para las pginas
1.2.1 Estructura de una pgina ASPX 4.5.1
1.2.2 Modificaciones de una pgina ASPX 4.5.1
1.3 El cdigo compartido en App_Code
1.4 Los ensamblados referenciados
1.4.1 Referencias dinmicas
1.4.2 Referencias explcitas en el Web.config
1.5 La cach de construccin
1.6 Las aplicaciones web de Visual Studio
2. El rol del servidor web
99
2.1 El servidor IIS
2.1.1 El filtro ISAPI para ASP.NET
2.1.2 Creacin de un sitio web ASP.NET con IIS
2.2 El servidor de desarrollo ASP.NET
2.3 Otros servidores
3. El pipeline HTTP de IIS
99
99
100
102
104
105
3.1 Funcionamiento de IIS
3.1.1 Primeros pasos en HTTP con Telnet
3.1.2 Detalle del procesamiento IIS
3.2 La clase HttpContext
3.3 La clase HttpApplication
3.3.1 Ciclo de vida de la aplicacin
www.ediciones-eni.com
83
84
87
89
89
91
92
94
94
95
96
97
Ediciones ENI
105
105
107
109
110
110
2/12
ASP.NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
3.3.2 Agregar un Global.asax
3.3.3 Crear un mdulo HTTP
3.4 Los controladores (handlers) HTTP
3.4.1 Crear un handler ASHX
3.4.2 Crear un handler en una DLL
111
115
117
119
121
Los Web Forms
1. Los Web Forms
125
1.1 Estructura de una pgina ASPX
1.1.1 Estilo anidado, en lnea y separado
1.1.2 Los scriptlets
1.1.3 Jerarqua de controles
1.1.4 Agregar controles dinmicamente
1.1.5 Objetos intrnsecos
1.2 Ciclo de vida de una pgina
1.2.1 El ciclo nominal
1.2.2 Identificar las peticiones de tipo postback
1.3 Los controles web
1.3.1 Las etiquetas HTML
1.3.2 El atributo runat="server"
1.3.3 Los controles HTML
1.3.4 Los controles web
1.3.5 Controles basados en plantillas (template)
1.3.6 Controles de usuario y controles personalizados
1.4 Navegacin entre pginas
1.4.1 Los enlaces de hipertexto
1.4.2 Redirecciones desde el servidor
1.5 Postback y cross postback
1.6 Los callback
1.7 Validacin de los datos introducidos por el usuario
1.7.1 Principio de la validacin
1.7.2 Los controles de validacin
1.7.3 Validacin personalizada
www.ediciones-eni.com
Ediciones ENI
126
130
133
136
139
140
142
142
146
146
147
148
150
150
155
155
156
156
157
158
160
166
166
168
172
3/12
ASP.NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
1.7.4 Validacin discreta
173
2. Organizar la presentacin
177
2.1 Temas y mscaras
2.1.1 Hojas de estilo CSS
2.1.2 Temas
2.1.3 Mscaras
2.2 Controles de usuario .ascx
2.2.1 Crear un control de usuario
2.2.2 Utilizar un control de usuario
2.2.3 Agregar propiedades y eventos
2.3 Las pginas maestras
2.3.1 Crear una pgina maestra
2.3.2 Crear una pgina de contenido
2.3.3 Programar pginas maestras y pginas de contenido
2.3.4 Aplicar dinmicamente una pgina maestra
3. Componentes personalizados
200
3.1 Funcionamiento de los componentes personalizados
3.1.1 Tipos de componentes personalizados (custom controls)
3.1.2 Creacin de una librera de componentes
3.1.3 Creacin del componente ColoredPad
3.1.4 Empaquetado y pruebas
3.2 NumericTextBox, componente derivado de TextBox
3.2.1 Creacin del control
3.2.2 Propiedades y eventos
3.2.3 Representacin
3.3 ChartControl, componente grfico que utiliza GDI+
3.3.1 Funcionamiento
3.3.2 Representacin
3.3.3 Integracin y pruebas
3.4 PictureBrowser, componente basado en una plantilla
3.4.1 Funcionamiento
3.4.2 Implementacin del componente
3.4.3 Las plantillas
www.ediciones-eni.com
177
177
178
180
183
183
185
186
191
191
194
197
199
Ediciones ENI
200
200
201
201
210
212
212
213
215
216
216
217
218
219
219
222
223
4/12
ASP.NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
3.4.4 Representacin
3.4.5 Eventos
3.4.6 Informacin relativa al diseo en Visual Studio
3.4.7 Uso del componente
3.5 Recursos incorporados en DLL
4. AJAX
233
4.1 Del callback a AJAX
4.2 El administrador de script ScriptManager
4.2.1 Usar ScriptManager con servicios web
4.3 El componente UpdatePanel
4.3.1 Funcionamiento
4.3.2 Implementacin
4.3.3 Gestin de errores
4.3.4 Los triggers
4.4 El componente UpdateProgress
4.5 El Timer
4.6 Programacin orientada a objetos con JavaScript
4.6.1 Insercin de cdigo JavaScript en una pgina
4.6.2 Crear objetos y clases JavaScript
4.6.3 El estilo AJAX
4.6.4 Clases derivadas
4.6.5 Implementar interfaces
4.7 El modelo de extensin AJAX
4.7.1 Estructura del framework
4.7.2 La clase aplicacin
4.7.3 Los controles AJAX del toolkit
4.7.4 Definir controles personalizados en JavaScript
4.7.5 Controles AJAX en C#
4.8 Introduccin a jQuery
4.8.1 Instalacin
4.8.2 Recorrer el DOM
4.8.3 Intervenir en la pgina
4.8.4 Los plugins
www.ediciones-eni.com
224
227
228
229
231
Ediciones ENI
233
234
235
238
238
238
240
242
243
244
244
245
246
250
251
252
253
253
255
258
262
268
272
272
273
275
277
5/12
ASP.NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
Los sitios web MVC
1. El enfoque MVC
281
1.1 El patrn de diseo MVC
1.2 Evolucin de MVC
281
283
2. Los sitios ASP.NET MVC
283
2.1 Creacin de un sitio
2.2 Organizacin de carpetas
2.3 Creacin del modelo
2.4 Definicin del controlador
2.5 Agregar vistas
283
285
286
289
291
3. Definicin de las rutas
295
4. Ir ms all
296
4.1 De una accin a otra
4.2 Actualizacin del modelo y redireccin
4.3 Validacin
5. El motor de vistas Razor y la compatibilidad con dispositivos mviles
5.1 Pasar el sitio a IIS estndar
5.2 Pginas generadas por Razor
5.3 Probar con un emulador Android
6. Las aplicaciones Single Page Applications SPA
6.1 Utilizar las Web API
6.1.1 Crear un proyecto Web API
6.1.2 Establecer un modelo y un controlador
6.1.3 La pgina nica
6.2 Utilizar KnockOut para enlazar los datos
296
302
302
304
304
306
309
311
311
311
313
314
316
El acceso a datos con ADO.NET 4.5.1
www.ediciones-eni.com
Ediciones ENI
6/12
ASP.NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
1. Bases de ADO.NET
319
1.1 El modo conectado
1.1.1 La conexin
1.1.2 Los comandos
1.1.3 El DataReader
1.1.4 Los parmetros
1.1.5 Las transacciones
1.2 Las bases de datos SQL Server
1.2.1 Las versiones de SQL Server
1.2.2 Creacin de bases de datos
1.2.3 Creacin de tablas
1.2.4 Las vistas
1.2.5 Los procedimientos almacenados
1.3 Hacer transparente el acceso a las bases de datos
1.3.1 El modo desconectado
1.3.2 DataAdapter y TableAdapter
1.3.3 El mapping objeto relacional y los frameworks especializados
1.3.4 Las fbricas ADO.NET
2. Acceso a los datos mediante proveedores
2.1 Introduccin al desarrollo por proveedores
2.1.1 Controles origen de datos en modo proveedor
2.1.2 Controles de presentacin de datos
2.2 Los orgenes de datos SqlDataSource y AccessDataSource
2.2.1 Consultas de seleccin
2.2.2 Consultas de actualizacin
2.2.3 Parmetros
2.2.4 Cach
2.3 El proveedor ObjectDataSource
2.3.1 Principio
2.3.2 Implementacin
2.3.3 Parmetros de creacin
2.3.4 Gestin de la cach
2.3.5 Una versin avanzada
www.ediciones-eni.com
Ediciones ENI
319
320
326
328
331
332
336
336
337
340
341
342
343
344
346
353
353
357
357
359
359
360
360
363
364
367
368
368
369
373
374
374
7/12
ASP.NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
2.4 El proveedor XmlDataSource
2.5 LinqDataSource
2.5.1 Un DAO para LinqDataSource
2.5.2 El contexto de datos dbml
2.5.3 Los eventos de LinqDataSource
2.6 EntityDataSource
2.6.1 El framework Entity
2.6.2 Crear el modelo conceptual
2.6.3 Consultas con LINQ to Entities
2.6.4 Actualizar el componente EntityDataSource
3. Componentes grficos de presentacin de datos
3.1 El componente GridView
3.1.1 Presentacin tabular de datos
3.1.2 Operaciones de seleccin y de navegacin
3.1.3 Claves y operaciones de actualizacin
3.1.4 Formateo y ordenacin
3.1.5 Columnas plantilla
3.1.6 Enlace bidireccional
3.1.7 Gestionar los enlaces
3.2 El componente DetailsView
3.2.1 Presentacin de DetailsView
3.2.2 Los eventos
3.2.3 El componente FormView
4. Crear informes con Reporting Services
4.1 Crear un informe
4.2 El componente de visualizacin
4.3 Parmetros
381
385
385
387
391
392
392
394
399
401
403
403
404
407
409
410
412
413
414
419
419
419
420
421
421
423
424
Gestin del estado
1. Los distintos medios para mantener el estado
1.1 Campos ocultos
www.ediciones-eni.com
429
429
Ediciones ENI
8/12
ASP.NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
1.2 El ViewState
1.2.1 Usar el ViewState en un Web Form
1.2.2 Controlar la aplicacin del ViewState
1.3 Cadena de consulta (Query String) y URI
1.4 Las cookies
2. Las sesiones
435
2.1 Uso del objeto Session
2.1.1 Memorizacin y bsqueda de un objeto
2.1.2 Inicializacin del objeto Session
2.1.3 Securizacin del testigo de sesin
2.2 Sesiones sin cookie y tiempo de abandono de sesin
2.2.1 Sesiones sin cookie
2.2.2 Timeout
2.3 Servicios de conservacin de datos en sesin
2.3.1 El proceso en memoria InProc
2.3.2 El servicio Windows ASP.NET State Service
2.3.3 El servicio SQL Server
2.3.4 Servicios personalizados
3. Los objetos Application y Cache
435
436
436
437
437
437
438
438
438
440
441
442
442
3.1 El objeto Application
3.1.1 Uso
3.1.2 Bloqueo
3.2 La cach de datos de aplicacin Cache
3.2.1 Las dependencias temporales
3.2.2 El callback
3.2.3 Dependencias de archivos
3.2.4 Dependencias SQL con SQL Server
3.3 La cach HTML
3.3.1 Cach de salida
3.3.2 Fragmentos de pginas en cach
3.3.3 Sustituciones
3.3.4 Perfiles de cach
www.ediciones-eni.com
430
431
432
433
434
Ediciones ENI
442
443
443
444
444
446
447
448
454
454
456
457
458
9/12
ASP.NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
Personalizacin y securizacin
1. Securizacin de los sitios ASP.NET
459
1.1 Modelo de securizacin del sitio
1.1.1 Objetos de seguridad
1.1.2 Autentificacin
1.1.3 Autorizacin
1.2 Securizacin en modo Windows
1.2.1 Activacin del modo de autentificacin
1.2.2 Configuracin de IIS
1.2.3 Autorizacin
1.3 Securizacin en modo Forms
1.3.1 Activacin del modo Forms y creacin de una pgina de conexin
1.3.2 Asignacin de roles
1.3.3 El modo Forms sin cookie
1.3.4 Autorizacin
1.4 El proveedor MemberShip
1.4.1 Funcionamiento del proveedor
1.4.2 Utilizar AspNetSqlMembershipProvider
1.5 Securizacin de cuentas de usuario individuales
1.6 La carpeta Account
1.7 La base de datos local de usuarios
1.8 Configurar una base de datos externa
1.9 El proveedor de roles
1.9.1 AspNetSqlRoleProvider
1.9.2 WindowsRoleTokenProvider
1.10 Los controles integrados
2. Presentacin personalizada
492
2.1 Perfiles de usuario
2.1.1 Formacin del perfil
2.1.2 Uso del perfil
2.1.3 Agrupacin y tipos complejos
2.2 Navegacin dentro del sitio
2.2.1 El archivo de definicin del sitio
www.ediciones-eni.com
459
459
460
462
463
463
463
464
466
466
469
471
471
471
472
474
477
479
481
484
489
489
490
490
Ediciones ENI
492
492
493
494
496
496
10/12
ASP.NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
2.2.2 El proveedor SitemapProvider, la API Sitemap y el SitemapDataSource
2.2.3 Controles asociados a la navegacin
2.2.4 Filtrar la representacin en funcin del usuario
2.3 Internacionalizacin
2.3.1 Recursos globales
2.3.2 Recursos locales
2.3.3 El componente Localize
2.3.4 Localizacin de las validaciones
3. Los WebParts
497
498
498
500
500
502
503
504
505
3.1 Del sitio Web al portal
3.2 Crear un portal
3.2.1 El gestor WebPartManager
3.2.2 Las zonas WebPartZone
3.2.3 Los elementos WebPart
3.3 Los controles de catlogo CatalogZone y PageCatalogPart
3.3.1 El catlogo de zonas
3.3.2 Men para cambiar de modo
3.3.3 Dar nombre a los elementos
3.3.4 Los editores
3.4 Crear elementos personalizados
3.4.1 Crear un WebPart a partir de un componente de usuario
3.4.2 Crear un WebPart personalizado
3.4.3 Conectar los elementos
505
505
506
506
508
509
509
511
512
512
514
514
515
518
Los servicios Web WCF y REST
1. Los servicios Web WCF
523
1.1 El dialecto comn SOAP
1.2 Crear un servicio Web WCF
1.2.1 Implementacin del servicio
1.2.2 Prueba del servicio
1.3 Consumir un servicio Web
1.3.1 Generacin del proxy
www.ediciones-eni.com
Ediciones ENI
524
526
526
530
531
531
11/12
ASP.NET en C# con Visual Studio 2013
Diseo y desarrollo de aplicaciones Web
1.3.2 Llamada sncrona
1.3.3 Llamada asncrona
534
535
2. Los servicios Web REST
538
2.1 Implementacin de un servicio REST
2.2 Utilizacin de un servicio REST
539
540
Configuracin, despliegue y administracin
1. Configuracin
543
1.1 Herencia en la configuracin
1.2 Configuracin de pruebas y de produccin
1.2.1 El administrador de configuracin de Visual Studio
1.2.2 Varios archivos de configuracin Web.config
1.2.3 Las pginas de error del archivo Web.config
2. Despliegue de aplicaciones ASP.NET
543
544
545
546
547
547
2.1 Despliegue manual
2.1.1 Creacin de una carpeta virtual
2.1.2 Seleccin de archivos que se quiere copiar
2.1.3 La pgina por defecto
2.2 Despliegue mediante un sistema de copia
3. Supervisin de aplicaciones ASP.NET
547
547
549
550
551
552
3.1 La infraestructura de supervision Health Monitoring
3.1.1 La jerarqua de eventos web
3.1.2 La jerarqua de los proveedores
3.2 Implementacin en ASP.NET
3.2.1 Declarar eventos
3.2.2 Declarar proveedores de escucha
3.2.3 Agregar reglas de suscripcin
552
553
553
554
554
554
555
ndice
557
www.ediciones-eni.com
Ediciones ENI
12/12