|
23/04/2007
Tapa blanda, 18x23 cms, 800 páginasMateria: Ciencia y tecnología de los ordenadores. Informática. Colección: Manuales técnicos ISBN: 84-415-2136-0 Autor: Dino Esposito Este libro constituye una completa obra didáctica y de imprescindible referencia para aprender y dominar el desarrollo de complejas aplicaciones web dinámicas, escalables y con opciones avanzadas en Microsoft Visual C# para ASP.NET 2.0. Con ejemplos prácticos basados en proyectos reales y los consejos expertos de una autoridad en ASP.NET, este libro va más allá de los fundamentos para ayudar a los desarrolladores profesionales a resolver sus problemas empresariales.Con este libro aprenderá, entre otras muchas cosas, a crear proveedores personalizados para reemplazar o mejorar componentes nativos y utilizar páginas asincrónicas, expresiones dinámicas y filtros de analizador sintáctico de la página para habilitar funciones de aplicación complejas.Dino Esposito es un experto desarrollador de Microsoft, especialmente en ASP.NET y ADO.NET. Forma parte de la Solid Quality Learning, proveedor global de servicios de ecuación y soluciones avanzadas de tecnologías de Microsoft. Ponente habitual en eventos, como Win-Dev y Microsoft TechEd, es además colaborador en la revista MSDN Magazine y otras publicaciones, aparte de ser autor de numerosos títulos de Microsoft Press. ÍNDICE Agradecimientos Introducción¿Para quién es este libro?Organización de este libroRequisitos del sistemaConfiguración de SQL Server 2005 Express EditionEjemplos de código Parte I. Cómo funciona ASP.NET 1. El Modelo de Compilación de ASP.NETEl entorno de ejecución ASP.NET.El modelo de proceso de ASP.NETEl modelo de proceso IIS 5.0El proceso de modelo IIS 6.0El pipeline de ASP.NETPage Handler FactoryEl papel de las clases parcialesArchivos temporales de ASP.NETArchivos y estructuras ocultosDetección de cambios en las páginasCómo ASP.NET reemplaza las estructuras de páginaObtención de información de la rutinaEl código oculto de una página ASP.NETArchivos involucradosEstructura de la páginaEl árbol de controlControladores de eventos y expresiones de datos relacionadosReutilización de clases de páginas dinámicamente compiladasPrecompilación de la aplicaciónPrecompilación sobre la marchaCondiciones para la precompilación sobre la marchaLa utilidad aspnet_compilerEfectos de la precompilación sobre la marchaPrecompilación para desarrolloPrecompilación no actualizablePrecompilación actualizablePrecompilación programáticaConstrucción de bloques de compilación de ASP.NETOpciones de compilaciónEstructuras enlazadasCompilación por lotesPáginas no compiladasLas carpetas reservadas de ASP.NETLa carpeta BinLa carpeta App_BrowsersLa carpeta App_CodeLa carpeta App_DataLa carpeta App_GlobalResourcesLa carpeta App_LocalResourcesLa carpeta App_ThemesLa carpeta App_WebReferencesProveedores de construcción¿Pero qué es un proveedor de construcción?El proveedor ForceCopyBuildProviderEl proveedor IgnoredFileBuildProviderLa arquitectura de un proveedor de construcción personalizadoLa meta del proveedor OrmBuildProviderEstructura del archivo fuente .mapLa implementación de un proveedor de construcciónEl modelo de objetos CodeCOMPoniendo todo en comúnUtilizando un objeto TextWriterProveedores de ruta virtualEstructura de un proveedor de ruta virtualEstructura de un archivo virtualRegistro de un proveedor de ruta virtualConclusión 2. Módulos y Controladores HTTPUn rápido vistazo a la API de extensibilidad de IISEl modelo ISAPIIlustres hijos del modelo ISAPIEstructura de los componentes ISAPIExtensiones ISAPIFiltros ISAPILos cambios que vienen con IIS 7.0Un entorno de ejecución unificadoExtensiones y filtros ISAPI controladosEscribiendo controladores HTTPLa interfaz IHttpHandlerMiembros de la interfaz IHttpHandlerUn controlador HTTP muy simpleUn controlador HTTP para informes rápidosCreando un administrador de consultasRegistrando el controladorDesarrollando nuestro controlador como un recurso ASHXControladores HTTP frente a páginas ASP.NETEl controlador visualizador de imágenesDiseñando el controlador HTTPImplementando el controlador HTTPProgramación de controladores HTTP avanzadosHTTP Handler FactoryControlador asíncronoImplementando controladores asíncronosEscribiendo módulos HTTPLa interfaz IHttpModuleUn módulo HTTP personalizadoEnlazando eventosRegistrando con el archivo de configuraciónAccediendo a otros módulos HTTPLa característica recargar páginaFundamentos de las operaciones de recarga de páginasEsbozo de la soluciónImplementación de la soluciónConclusión 3. Configuración de ASP.NETJerarquía de configuración de ASP.NETArchivos de configuraciónÁrbol de los archivos de configuraciónLeer y escribir archivos de configuraciónEsquema de configuraciónSecciones y grupos de seccionesSección Configuración centralizadaAjustes en el nivel de equipoAjustes no modificablesSección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Sección Otras secciones de alto nivelSección Sección Sección Administrar datos de configuraciónUtilizar la API de configuraciónObtener ajustes de configuración WebObtener ajustes de aplicaciónActualizar ajustes de aplicaciónCifrar una secciónElegir el proveedor de cifradoCrear secciones de configuración personalizadasUtilizar herramientas de administraciónComplemento MMC de ASP.NETHerramienta Administración de sitios WebExtender WSAT con fichas personalizadasHerramientas de línea de comandosConclusión 4. Creación de proveedores personalizados en ASP.NETPatrón de proveedoresTeoría: Patrones de diseñoPatrón "estrategia"Patrón "adaptador"Patrón "fábrica"Práctica: Detalles de la implementaciónClase baseCapa de configuraciónCapa de almacenamientoProveedores integrados en ASP.NETServicio de suscripciónProveedor SqlMembershipProviderBase de datos AspNetDbProveedor ActiveDirectoryMembershipProviderActive Directory en múltiples dominiosCuándo reemplazarServicio de administración de funcionesProveedor WindowsTokenRoleProviderProveedor AuthorizationStoreRoleProviderComparar la API de funciones de ASP.NET con AzManCuándo reemplazarServicio de perfiles de usuarioProveedor SqlProfileProviderCuándo reemplazarServicio de estado de sesiónProveedor InProcSessionStateStoreProveedor OutOfProcSessionStateStoreProveedor SqlSessionStateStoreCuándo reemplazarServicio de mapa de sitioProveedor XmlSiteMapProviderCuándo reemplazarServicio de control de errores WebProveedor EventLogWebEventProviderProveedor MailWebEventProviderProveedor SqlWebEventProviderProveedor TraceWebEventProviderProveedor WmiWebEventProviderCuándo reemplazarServicio de personalización de elementos WebProveedor SqlPersonalizationProviderCuándo reemplazarServicio de protección de configuraciónEstructura interna de los proveedores de cifradoProveedor RsaProtectedConfigurationProviderProteger secciones en una Web FarmProveedor DpapiProtectedConfigurationProviderCuándo reemplazarCrear su propio proveedorConsideraciones de diseñoInicialización de un proveedorProblemas de subprocesosLanzar excepcionesImplementación de un proveedor de perfiles basado en cookiesMétodos a sobrescribirMétodo InitializeMétodo GetPropertyValuesMétodo SetPropertyValuesFundamentos del servicio de perfilesDelimitar los datos a las aplicacionesUnión de todos los elementosModelo de proveedor para los servicios personalizadosConclusión 5. Crear páginas con opciones avanzadasCrear páginas asincrónicasHerramientas para la programación ASP.NET asincrónicaInterfaz IHttpAsyncHandlerMétodo BeginProcessRequestInterfaz IAsyncResultMétodo EndProcessRequestOpciones de ASP.NET 2.0Atributo AsyncMétodo AddOnPreRenderCompleteAsyncLa importancia de PreRenderCompleteMétodo RegisterAsyncTaskCrear una página asincrónica de ejemploOperaciones compatibles con la página asincrónicaImplementación de páginas asincrónicasImplementación de la interfaz IHttpAsyncHandlerCiclo de vida de página modificadoEscenarios reales de páginas asincrónicasLlamar a un servicio WebLlamadas de servicio Web de activar y olvidarEjecutar una operación larga de base de datosIniciar múltiples tareas asincrónicasEscribir un objeto IAsyncResult personalizadoUtilizar métodos "Begin" personalizadosMétodo RegisterAsyncTaskConfigurar una tarea asincrónicaEjecución explícita de tareas asincrónicasRegisterAsyncTask en páginas sincrónicasElegir la solución apropiadaCrear expresiones personalizadasBloques de código estilo ASPCómo funcionan los bloques de código en ASP clásicoCómo funcionan los bloques de código en ASP.NETLimitaciones de los bloques de código en ASP.NETExpresiones de enlace de datosCómo funcionan las expresiones de enlace de datosLimitaciones de las expresiones de enlace de datos¿Por qué las expresiones # no son apropiadas para servir controles de origen de datos?Expresiones dinámicas en ASP.NET 2.0Constructor $ConnectionStringsConstructor $AppSettingsConstructor $ResourcesOpciones en tiempo de diseñoPáginas sin compilar y expresionesEscribir un constructor de expresiones personalizadasClase ProfileExpressionBuilderCompatibilidad con páginas sin compilarRegistrar el constructor $ProfileUtilizar el constructor $ProfileDetalles de implementaciónCrear filtros de analizador sintáctico para páginas ASP.NETClase PageParserFilterInterfaz de programaciónRegistrar un filtro de analizador sintácticoEscenarios realesCrear una lista de controles segurosBloquear clases baseBloquear referencias virtualesAñadir una cadena literal a todas las páginasConclusión Parte II. Características especiales 6. Trabajar con código de secuencia de comandosAñadir secuencias de comandos del cliente a las páginasComprobar las funciones del exploradorConocer el tipo de explorador actualConocer las funciones del exploradorElegir destinos de clienteSalida específica del dispositivo en ASP.NET 2.0Registrar bloques de secuencia de comandosSecuencia de comandos incrustadaClase ClientScriptManagerBloques de secuencias de comandos a demandaBloques de secuencias de comandos de inicioCódigo de secuencia de comandos en el envíoArchivos include en la parte del servidorCargar código de secuencia de comandos desde recursosVentajas de cargar código de secuencia de comandos desde los recursosAñadir ventanas emergentesAPI emergente básicaDiseñar un método globalUnión de todos los conceptosRetrollamadas de secuencias de comandosAPI directa de ASP.NETObjeto XmlHttpRequestDetalles de implementaciónCompatibilidad cruzada con exploradoresEjecutar una llamada fuera de bandaCódigo en la parte del clienteCódigo de inicio de retrollamadaCódigo en la parte del servidorActualizar la páginaLa importancia del DOMEjemplo de principal/detalle¿Merece la pena pagar el precio de las tecnologías fuera de banda?Biblioteca Ajax.NETUtilizar la bibliotecaConfigurar la biblioteca AjaxCrear una página de ejemploDetalles de implementaciónAjax.NET frente a las Retrollamadas de secuencias de comandosAnálisis paso a pasoRobustez frente a comunicaciónLlamada de procedimiento remoto frente al reenvíoEstructura "Atlas"Conclusión 7. Componente página con elementos WebElementos Web: un vistazo rápido¿Qué son los elementos Web?Contenido de un elemento WebDiseño de un elemento WebElementos Web de ASP.NET y Microsoft SharePointIntroducir la estructura de elementos WebElementos y zonasClase WebPartManagerZonas de elementos WebCrear páginas con elementos WebLa función de los controles de usuarioCroma, verbos y menúsElementos Web basados en funcionesCrear elementos WebClase WebPartMiembros de la clase WebPartInterfaces de elementos WebFiltro de autorizaciónEl elemento Web StockViewerInterfaz PublicAtributos para las propiedades del elemento WebEl motor de reproducciónActualizaciones automáticasOtros métodos de creación de elementos WebElementos Web como controles de usuarioElementos Web como controles de servidorAplicar estilos a la zona WebPropiedades de estilo de la zonaPropiedades de comportamiento de zonaVerbos de elementos WebDefinir un verbo personalizadoPersistencia de los datos de personalización de elementos WebEditar y listar elementos WebCambiar el modo de presentaciónModos de presentación disponiblesCrear un control de usuario para conmutar modosCambiar el diseño de las zonasCrear una página Portal de ejemploMover los elementos WebCrear una zona de editorModo de ediciónElementos del elemento editorCrear una zona de catálogoEl modo de catálogoElemento de catálogo declarativoImportar y exportar elementos WebConexión de elementos WebModelo de conexiónElementos Web que se pueden conectarHabilitar conexiones estáticas entre elementos WebHabilitar conexiones dinámicas entre elementos WebConexión de puntos e interfacesCrear un esquema principal/detallesElemento Web proveedorElemento Web consumidorUnión de todos los conceptosConclusión 8. Programación orientada a movilidadVista general de los controles de movilidadArquitectura de los controladores de movilidadControles de movilidad versus controles de servidor clásicosVarios lenguajes de marcadoJerarquía de controles de movilidadPáginas ASP.NET MobileUna sencilla página de movilidadPaginación en páginas móvilesEl ciclo de vida de una página móvilAdaptadores de dispositivoControles del contenedorEl control PanelEl control FormControles de listadoEl control ListEl control ObjectListEl control SelectionListControles de textoEl control TextBoxEl control CommandEl control PhoneCallControles de validaciónDesarrollo de aplicaciones de movilidadLa aplicación CustomerFinderIdeando la aplicación en función de su usabilidadAplicaciones móviles en Visual Studio 2005Trabajo con emuladoresEl modelo de navegación de la aplicaciónEl formulario principalEl segundo formulario del menúEl formulario de clienteDibujado adaptativoEntendiendo los filtros de dispositivosCreación de plantillas de controlGestión del estadoEl estado de vistaEl estado de vista privadoEl estado de sesiónConclusión 9. Trabajo con imágenesAcceso a imágenes desde páginas WebEl elementoMostrando imágenes sin controles de servidorMás allá de los archivos de imágenes estáticosReferencias a imágenes que no son un archivoModificando el tipo de contenidoEnviando la información al flujo de salidaCarga de imágenes desde recursosAgregando imágenes a recursosReferencia a recursos embebidosAcceso al flujo del recursoAcceso a imágenes de bases de datosTrabajo con campos binariosLectura de imágenes desde campos BLOBGuardando las imágenes en los campos BLOBEscenarios del mundo realOptimización de la consulta a la base de datosOptimización del uso de la memoria¿Qué ocurre con SQL Server?¿Qué ocurre con Oracle?¿Debería guardar imágenes en la base de datos?Generación de imágenes dinámicamenteUn breve paseo por las clases de GDI+La clase GraphicsLa clase BitmapRelleno de rectángulosDibujando textoEscribiendo imágenes en memoriaFormatos de imagen soportadosEscribiendo notas de copyright en imágenesGeneración de vistas en miniaturaControl del índice de compresión de imágenes JPEGAlmacenamiento intermedio de imágenesConstrucción de páginas generadoras de gráficosObtención de los datos del gráficoLa arquitectura del generador de gráficosDibujo de un gráfico circularDibujo de un gráfico de barrasConclusión 10. Navegación de sitiosDefinición de la información del mapadel sitioCreación del mapa de un sitioEl proveedor de mapas de sitio por defectoEl archivo web.sitemapProveedores de navegación de sitiosConfiguración del mapa del sitioUso de varios archivos de mapa de sitioVistas específicas del usuario del sitioSeguridad en los mapas de sitios ASP.NETLocalización de información de mapas de sitioLocalización de la estructura de navegación del sitioAcceso a la información del mapadel sitioLa clase SiteMapPropiedades de la clase SiteMapMiembros de la clase SiteMapNodeMétodos de la clase SiteMapNodeNavegación en un nodoModificación mediante programación de los nodos del mapa de sitio en la memoriaEl control SiteMapPathMiembros del control SiteMapPathVisualizando la localización de la página actualDiseño de un componente de ruta de mapa de sitio personalizadoEl control SiteMapDataSourceMiembros del control SiteMapDataSourceUso del control SiteMapDataSourceCálculo del nodo inicialSiteMap versus SiteMapDataSourceVisualización de la información del mapa del sitioEl control TreeViewMiembros del control TreeViewVista arborescente del sitioEl control MenuMiembros del control MenuVista del sitio con orientación a menúsVisualización basada en el rolConclusión Parte III. Controles ASP.NET 11. Controles iterativos de ASP.NET¿Qué es en realidad un control iterativo?Controles iterativos versus controles de listaEl motor de dibujoLa interfaz de programaciónControles iterativos versus controles de vistaControles basados en cuadrículasControles basados en registrosEl control RepeaterProgramación de la interfaz del control RepeaterVinculación de Repeater con datosCómo construye la salida el control RepeaterPlantillas del control RepeaterUna plantilla de elementos de ejemploLa interfaz ITemplateCargando plantillas desde controles de usuarioCreación de plantillas mediante programaciónTrabajo con el control RepeaterConstrucción de la páginaConstrucción de la plantilla de elementosRecuperación de los controles hijosGestionando eventos de envío de datos al servidorEl control DataListInterfaz de programación del control DataListPropiedades del control DataListEventos del control DataListCaracterísticas de formatoTablas y disposición de flujoExtracción de filas de las plantillas.Dibujo de múltiples columnasPlantillas de un control DataListLa plantilla SelectedItemTemplateLa plantilla EditItemTemplateTrabajo con el control DataListHacer un elemento seleccionableAgregando soporte para la paginaciónDibujo de las páginas de datosConclusión 12. Controles de usuario Web de ASP.NET¿Qué es en realidad un control de usuario?La clase UserControlPropiedades base de los controles de usuarioMétodos base de los controles de usuarioConversión de páginas en controles de usuarioLa directiva @ControlAlmacenaje intermedio de fragmentos de salidaDesarrollo de controles de usuarioConstrucción de un control de usuario TabStripInclusión de un control de usuario en una páginaLa directiva @RegisterConfigurando el control de usuarioRegistro de controles en el archivo web.configConstrucción de un modelo de objetos de controles de usuarioAgregando propiedadesAgregación de métodosGestión de eventos de control de usuarioAgregando el evento SelectionChangedDesencadenando un evento personalizadoGestión de un evento personalizadoHablando en serio sobre controles de usuarioConstrucción de controles de usuario con datos vinculadosEl control de usuario ButtonListLa interfaz de programación del control ButtonListGeneración de la salidaConfiguración de una página de clienteCarga de controles de forma dinámicaEl método LoadControlLa directiva @ReferenceConclusión 13. Creación de controles ASP.NET personalizadosExtender controles existentesElegir una clase baseHerencia de una clase baseExtender una clase baseControl HyperLink más avanzadoDiseñar un escenario de utilizaciónRedirección del control HyperLinkCrear controles desde el principioClase base e interfacesControl frente a WebControlInterfaces relacionadasElegir un estilo de reproducciónMétodo RenderCrear el árbol del controlControl SimpleGaugeBarDefinir el modelo de objetosImplementar el modelo de objetosEstablecer la reglaConfigurar el sitio del controlReproducción del control SimpleGaugeBarGeneración de HTML para un control personalizadoUtilizar controles secundarios para la reproducciónAplicar estilos al controlAplicar estilosLa medición en acciónCreación de controles avanzadosControl Panel desplegableInterfaz de programaciónEstado del controlAñadir compatibilidad con temasMotor de reproducciónMejorar la marcación estándarCrear un árbol de controlUtilizar imágenes incrustadasAñadir estilosActivar eventos de reenvíoControlar los clic del usuarioEvento público PanelClickEventos personalizados frente a eventos propagadosAñadir código de secuencia de comandosMostrar la imagen desplegableEmitir código de secuencia de comandosGenerar código de secuencia de comandosIdentificación de elementosConclusión 14. Enlace de datos y controles en plantillaDiseño de un control de enlace de datosTipos de controles de enlace de datosEnlace de datos simpleControles de listaEnlace de datos complejoEl mecanismo del enlace de datosEnlace a un origen de datosClase BaseDataBoundControlClase DataBoundControlMétodo PerformDataBinding que se puede sobrescribirCrear un control de enlace de datos simpleCaracterísticas importantesAñadir propiedades de enlace de datosAñadir una propiedad al elemento de datosAdministración de estado de vista adicionalSobrescribir el método PerformDataBindingControl GaugeBarAsignación de campos de origen de datos a propiedades del controlObjeto de elementos de datos de GaugeBarData Item y View StateAdministración específica del estado de vistaObtención de datos enlazadosCrear un control de enlace de datos de listaGeneralidades de los controles de listaMiembros de ListControl adicionalesUn control de lista muy simpleControl HyperLinkListAsignación de campos de origen de datosa las propiedades de controlObjeto de elemento de datos HyperLinkListObtención de datos enlazadosInterfaz IRepeatInfoUserCrear un control en plantilla compuestoGeneralidades de los controles de enlace de datos compuestosCreación de una jerarquía de controles secundariosCreateChildControls sobrecargadoElemento ControlControl BarChartObjeto del elemento BarChartAñadir datos de enlaceEventos del control BarChartUtilizar el control BarChartAñadir plantillasPlantillas y controles de usuarioDefinir una propiedad de plantillaDefinir un contenedor de plantillasEstablecer una propiedad de plantillaReproducir una plantillaComo resuelven los controles de enlace de datos los orígenes de datosConclusión 15. Compatibilidad en tiempo de diseño con los controlespersonalizadosArquitectura en tiempo de diseño en .NETSitios, contenedores y controlesControles y diseñadores.Atributos en tiempo de diseñoUtilizar atributos en tiempo de diseñoEstablecer atributosAtributo BindableAtributo BrowsableAtributos Category y DescriptionAtributo DefaultValueAtributo ThemeableEditor AttributeAtributo TypeConverterAtributos de claseTipos de enumeración y colorAtributos que afectan al comportamiento en tiempo de ejecuciónReproducción de tiposImplementar un convertidor de tiposAñadir una propiedad Filter al control GaugeBar¿Qué es un convertidor de tipos?Crear un convertidor de tiposDerivación de ExpandableObjectConverterAtributos de serializaciónCrear un editor de tiposEditor de la propiedad FilterDiseñar un editor de tipos personalizadoDiseñar la clase de colecciónTrabajar con colecciones personalizadasDiseñadores personalizadosEditar la colección HyperLinkItemCollectionDiseñadores integradosClase ControlDesignerDiseñadores para controles de enlace de datosEscribir diseñadores personalizadosDiseñadores de control HTMLCrear un diseñador de controlGeneración de HTML en tiempo de diseñoAdaptar la marcación para la propiedad ValueCrear una lista de formato automáticoEspecificar el diseñador para una clase ControlConclusión Índice alfabético |
|
Producto anterior FRONTPAGE 2003 |
Producto Siguiente
VISUAL BASIC 2005 PROFESIONAL |