Vous êtes sur la page 1sur 66

ASP.

NET 4 y Visual Studio 2010 Web Informacin general sobre el Desarrollo


Contenido

Este documento proporciona una visin general de muchas de las nuevas caractersticas de ASP.NET que se incluyen en the.NET Framework 4 y Visual Studio 2010. Core Services Refactorizacin archivo Web.config 3 El almacenamiento en cach de salida extensible 3 Inicio automtico de aplicaciones Web 5 Permanentemente Redireccin de una pgina 7 Reducir el estado de sesin 7 Ampliar la gama de Admisible 8 Validacin de solicitudes extensible 8 El almacenamiento en cach de objetos y extensibilidad almacenamiento en cach de objetos ............................................ .......................................... 9 HTML extensible, la URL y codificacin de encabezado HTTP ......................................... ....................................... 11 Supervisin del rendimiento para aplicaciones individuales en un proceso de trabajo individual .................................. 12 Multi-Targeting 12 Ajax 13 jQuery incluye con formularios Web Forms y MVC ........................................... ................................................ 13 Content Delivery Network 14 Explcita ScriptManager 15 Los formularios Web Forms 16 Configuracin de Meta Tags con las Page.MetaKeywords y propiedades Page.MetaDescription ..................... 16 Habilitar el estado de vista para los controles individuales ............................................ ................................................ 17 Cambios en navegador 19 Enrutamiento de ASP.NET 25 Configuracin de los ID de cliente 29 La persistencia de la seleccin de filas en los controles de datos ............................................ .................................................. 33 ASP.NET grfico de control 33
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 1

Filtrar datos con el control QueryExtender ............................................ .......................................... 36 Html expresiones de cdigo codificados 39 Cambios en el proyecto de plantilla 40 Mejoras CSS 45 Ocultacin de elementos div alrededor de los campos ocultos ............................................ ................................................. 47 Representacin de una tabla externa para los controles con plantillas ........................................... ..................................... 47 Control ListView de Mejoras 49 CheckBoxList RadioButtonList y mejoras de control ............................................. ....................... 49 Mejoras del men de control 51 Asistente y controles CreateUserWizard .............................................. .................................................. . 52 ASP.NET MVC 55 reas 55 Anotacin de datos Soporte de validacin de atributos ............................................ ........................................... 55 Ayudantes con plantilla 55 Los datos dinmicos 55 Habilitacin de los datos dinmicos para los proyectos existentes ............................................ .............................................. 56 Sintaxis declarativa del control de DynamicDataManager .............................................. ................................... 57 Plantillas de entidad 57 Nuevas plantillas de campo para las direcciones URL y las direcciones de correo electrnico ........................................ ..................................... 59 Creacin de vnculos con el control de DynamicHyperLink ............................................ ................................... 60 Apoyo a la herencia en el modelo de datos ........................................... ................................................. 60 Soporte para muchos-a-muchos (Entity Framework solamente) ..................................... ................. 60 Nuevos atributos para controlar la visualizacin y las enumeraciones de apoyo .......................................... .................... 60 Compatibilidad mejorada con filtros 61 Visual Studio 2010 mejoras en el desarrollo Web ............................................ ........................... 61 Mejora de la compatibilidad de CSS 61 Fragmentos de HTML y JavaScript 62 IntelliSense de JavaScript Mejoras ............................................... .................................................. ... 62 La implementacin de aplicaciones Web con Visual Studio 2010 ........................................... ........................... 62 Web Packaging 63 Web.config Transformacin 63 Base de datos 64 Un clic en Publicar para la Web 64
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 2

Recursos 64 66

Core Services

ASP.NET 4 presenta una serie de caractersticas que mejoran los servicios bsicos de ASP.NET, como el almacenamiento en cach de salida y una sesin de almacenamiento de estado.

Refactorizacin archivo Web.config

La Web.config archivo que contiene la configuracin de una aplicacin web ha crecido considerablemente en las versiones anteriores de pocos. NET Framework, como las nuevas caractersticas se han aadido, como el Ajax, el enrutamiento, y la integracin con IIS 7. Esto ha hecho que sea ms difcil de configurar o iniciar nuevas aplicaciones Web sin necesidad de una herramienta como Visual Studio. En. NET Framework 4, los elementos de configuracin ms importantes han sido trasladados a la machine.config presentar, y las aplicaciones ahora heredan esta configuracin. Esto permite que el Web.config archivo en ASP.NET 4 aplicaciones ya sea para estar vaca o contener slo las lneas siguientes, los cuales especifican para Visual Estudio de la versin del marco de la aplicacin est dirigida a:
<? Xml version = "1.0"?> <configuration> <system.web> <compilation targetFramework="4.0" /> </ System.web> </ Configuration>

El almacenamiento en cach de salida extensible

Desde el momento en que ASP.NET 1.0, memoria cach de salida ha permitido a los desarrolladores para almacenar el genera la produccin de pginas, controles, y las respuestas HTTP en la memoria. En las solicitudes Web posteriores, ASP.NET puede servir contenido ms rpidamente mediante la recuperacin de la salida generada a partir de la memoria en lugar de la salida de datos desde cero. Sin embargo, este enfoque tiene una limitacin - contenido generado por el siempre tiene que ser almacenado en la memoria, y en los servidores que estn experimentando mucho trfico, la memoria consumida por el almacenamiento en cach de salida puede competir con las demandas de memoria de otras porciones de un Web aplicacin. ASP.NET 4 agrega un punto de extensibilidad para el almacenamiento en cach de salida que le permite configurar una o ms personalizados cach de resultados proveedores. Memoria cach de salida-los proveedores pueden utilizar cualquier mecanismo de almacenamiento para conservar El contenido HTML. Esto hace que sea posible crear sus propios proveedores de la cach de resultados para la persistencia de diversos mecanismos, que pueden incluir discos locales o remotos, almacenamiento en nube, y los motores de cach distribuida.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 3

Para crear una costumbre de salida-cach del proveedor como una clase que se deriva de la nueva System.Web.Caching.OutputCacheProvider tipo. A continuacin, puede configurar el proveedor en el Web.config archivo con el nuevo proveedores prrafo de la OutputCache elemento, como se muestra en la siguiente ejemplo:
<caching> <OutputCache defaultProvider = "AspNetInternalProvider"> <providers> <Aadir name = "DiskCache" type = "Test.OutputCacheEx.DiskOutputCacheProvider, DiskCacheProvider "/> </ Providers> </ OutputCache> </ Cache>

De forma predeterminada en ASP.NET 4, todas las respuestas HTTP, pginas prestados, y los controles de utilizar la salida en la memoria cach, como se muestra en el ejemplo anterior, donde el defaultProvider atributo se establece en AspNetInternalProvider. Puede cambiar la opcin predeterminada de salida-cach utilizado para un proveedor de Internet aplicacin especificando un nombre de proveedor diferente para defaultProvider. Adems, puede seleccionar diferentes proveedores de la cach de resultados por el control y por solicitud. La manera ms fcil para elegir un proveedor de memoria cach de salida para los diferentes controles de usuario Web es hacerlo mediante declaracin utilizando el nuevo providerName atributo en una directiva de control, como se muestra en el ejemplo siguiente:
<% @ OutputCache Duracin = "60" VaryByParam = "Ninguno" providerName = "DiskCache" %>

Especificar un proveedor de cach de resultados diferentes para una solicitud HTTP requiere un trabajo un poco ms. En lugar de declaracin que especifica el proveedor, se reemplaza la nueva GetOuputCacheProviderName mtodo en el Global.asax presentar para especificar mediante programacin proveedor que va a utilizar para una solicitud especfica. El siguiente ejemplo muestra cmo hacer esto.
public override string GetOutputCacheProviderName (HttpContext context) { si (Context.Request.Path.EndsWith ("Advanced.aspx")) volver "DiskCache"; ms volver base.GetOutputCacheProviderName (contexto); }

Con la incorporacin de la extensibilidad de proveedor de la produccin-cache para ASP.NET 4, ahora se puede perseguir ms agresivos y ms inteligentes de almacenamiento en cach de salida de las estrategias para sus sitios web. Por ejemplo, ahora es posible almacenar en cach los "Top 10" pginas de un sitio en la memoria, mientras que el almacenamiento en cach las pginas que reciben reduccin de pasajeros en
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 4

disco. Alternativamente, usted puede almacenar en cach cada varan-por la combinacin de una pgina representada, pero el uso de un sistema distribuido cach para que el consumo de memoria se descarga desde los servidores front-end web.

Inicio automtico de aplicaciones Web

Algunas aplicaciones Web que cargar grandes cantidades de datos o realizar la inicializacin costosa el procesamiento antes de servir la primera solicitud. En versiones anteriores de ASP.NET, para estas situaciones tiene que elaborar enfoques personalizados para "despertar" de una aplicacin ASP.NET ya continuacin, ejecute el cdigo de inicializacin en la Application_Load mtodo en el Global.asax archivo. Una caracterstica de escalabilidad nuevo llamado inicio automtico que aborda directamente este escenario est disponible cuando ASP.NET 4 se ejecuta en IIS 7.5 en Windows Server 2008 R2. La funcin de inicio automtico proporciona un control enfoque para la puesta en marcha de un grupo de aplicaciones, la inicializacin de una aplicacin ASP.NET, y luego aceptar Peticiones HTTP. IIS Aplicacin de calentamiento Mdulo para IIS 7.5 El equipo de IIS ha lanzado la versin beta de la primera prueba de la aplicacin de calentamiento Mdulo para IIS 7,5. Esto hace que el calentamiento de sus aplicaciones an ms fcil que se ha descrito anteriormente. En lugar de escribir cdigo personalizado, debe especificar la URL de los recursos para ejecutar antes de la aplicacin Web acepta las peticiones de la red. Este calentamiento se produce durante el inicio del servicio IIS (si configurado el grupo de aplicaciones IIS como AlwaysRunning) y cuando un proceso de trabajo IIS recicla. Durante el reciclaje, el antiguo proceso de trabajo de IIS contina ejecutando las solicitudes hasta que el nuevo proceso generado trabajador se haya calentado totalmente, por lo que las aplicaciones no experimentan interrupciones o otros problemas debido a los cachs sin preparar. Tenga en cuenta que este mdulo funciona con cualquier versin de ASP.NET, partir de la versin 2.0. Para obtener ms informacin, consulte Aplicacin de calentamiento en el sitio Web IIS.net. Para un tutorial en el que muestra cmo utilizar la caracterstica de calentamiento, consulte Introduccin a IIS 7.5 Aplicacin Warm-Up del mdulo en el sitio Web IIS.net. Para utilizar la funcin de inicio automtico, un administrador de IIS establece un grupo de aplicaciones en IIS 7.5 de forma automtica comenz con la siguiente configuracin en el applicationHost.config archivo:
<applicationPools> <Aadir name = "MyApplicationPool" StartMode = "AlwaysRunning" /> </ ApplicationPools>

Debido a que un grupo de aplicaciones puede contener mltiples aplicaciones, puede especificar las solicitudes individuales de se inicia automticamente con la configuracin siguiente en el applicationHost.config archivo:
<sites> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 5

Web < name = "Mi sitio" id = "1"> Aplicacin < path = "/" serviceAutoStartEnabled = "true" serviceAutoStartProvider = "PrewarmMyCache" > <! - El contenido adicional -> </ Application> </ Site> </ Sitios> <! - El contenido adicional -> <serviceAutoStartProviders> <Aadir name = "PrewarmMyCache" type = "MyNamespace.CustomInitialization, MyLibrary "/> </ ServiceAutoStartProviders>

Cuando un servidor de IIS 7.5 es fro iniciado o cuando un grupo de aplicacin individual se recicla, IIS 7.5 utiliza el informacin en el applicationHost.config archivo para determinar qu aplicaciones web tienen que ser inicia automticamente. Para cada aplicacin que est marcada para el inicio automtico, IIS7.5 enva una solicitud al ASP.NET 4 para iniciar la aplicacin en un estado en el que la aplicacin temporal no acepta Peticiones HTTP. Cuando se encuentra en este estado, ASP.NET instancia del tipo definido por el serviceAutoStartProvider atributo (como se muestra en el ejemplo anterior) y pone en su entrada pblica punto. Puede crear una gestin de inicio automtico de tipo con el punto de entrada necesario mediante la aplicacin del IProcessHostPreloadClient interfaz, como se muestra en el ejemplo siguiente:
public class CustomInitialization : System.Web.Hosting.IProcessHostPreloadClient { public void Precarga (String [] parmetros) { / / Realizar la inicializacin. } }

Despus de que su cdigo de inicializacin se ejecuta en el Precarga mtodo y el mtodo de la rentabilidad, la de ASP.NET aplicacin est lista para procesar peticiones. Con la incorporacin de inicio automtico de IIS 0.5 y ASP.NET 4, ahora tiene un enfoque bien definido para la realizacin de inicializacin de la aplicacin costosa antes de procesar la primera solicitud HTTP. Por ejemplo,
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 6

puede utilizar la nueva funcin de inicio automtico al iniciar una aplicacin y luego indicar un equilibrador de carga que la aplicacin se ha inicializado y listo para aceptar el trfico HTTP.

Permanentemente Redireccin de una pgina

Es una prctica comn en las aplicaciones Web para mover las pginas y otros contenidos en torno a lo largo del tiempo, que puede conducir a una acumulacin de enlaces obsoletos en los motores de bsqueda. En ASP.NET, los desarrolladores tradicionalmente han maneja las solicitudes a las direcciones URL de edad mediante el uso mediante el Response.Redirect mtodo para remitir una solicitud a la nueva direccin URL. Sin embargo, el Redirigir cuestiones de mtodo HTTP 302 Found (redireccin temporal) de respuesta, que se traduce en un extra de viaje de todo el HTTP cuando los usuarios intentan acceder a la URL de edad. ASP.NET 4 agrega una nueva RedirectPermanent mtodo de ayuda que hace que sea fcil de emitir HTTP 301 Moved Permanentemente las respuestas, como en el ejemplo siguiente:
RedirectPermanent ("/ newpath / foroldcontent.aspx");

Los motores de bsqueda y otras aplicaciones de usuario que reconocen redirecciones permanentes almacenar la nueva direccin URL que es asociada con el contenido, lo que elimina la viaje innecesario redonda hecha por el navegador para redirecciones temporales.

Reducir el estado de sesin

ASP.NET proporciona dos opciones por defecto para almacenar el estado de sesin a travs de una granja de servidores web: un estado de sesin proveedor que invoca un fuera de proceso de estado de sesin de servidor, y un proveedor de estado de sesin que almacena datos en una base de datos de Microsoft SQL Server. Debido a que ambas opciones implican el almacenamiento fuera de la informacin de estado proceso de una aplicacin web de los trabajadores, el estado de sesin tiene que ser serializado antes de ser enviado al almacenamiento remoto. Dependiendo de la cantidad de informacin que un desarrollador guarda en el estado de sesin, el tamao de los datos serializados puede crecer bastante. ASP.NET 4 presenta una nueva opcin de compresin para ambos tipos de fuera de proceso de estado de sesin proveedores. Cuando el CompressionEnabled opcin de configuracin se muestra en el siguiente ejemplo se establece a verdadero, ASP.NET, comprimen (y descomprimen) estado serializado sesin mediante. NET Framework System.IO.Compression.GZipStream clase.
<SessionState mode = "SQLServer" sqlConnectionString = "data source = dbserver; Initial Catalog = aspnetstate " allowCustomSqlDatabase = "true" CompressionEnabled = "true" /> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 7

Con la simple adicin del nuevo atributo al Web.config de archivos, aplicaciones con ciclos de CPU de repuesto en los servidores web pueden lograr reducciones sustanciales en el tamao de los seriados de estado de sesin de datos.

La ampliacin del rango de direcciones URL permitida

ASP.NET 4 introduce nuevas opciones para ampliar el tamao de las direcciones URL de la aplicacin. Las versiones anteriores de ASP.NET limitada longitud de URL a 260 caracteres, basados en la ruta de acceso de archivos NTFS-lmite. En ASP.NET 4, usted tiene la opcin de aumentar (o disminuir) el lmite adecuado para sus aplicaciones, utilizando dos nuevo httpRuntime atributos de configuracin. El siguiente ejemplo muestra estos nuevos atributos.
<HttpRuntime maxRequestPathLength = "260" maxQueryStringLength = "2048" />

Para permitir que las rutas ms largas o ms cortas (la parte de la direccin URL que no incluye el protocolo, el nombre del servidor, y la cadena de consulta), modificar el maxRequestPathLength atributo. Para permitir que ms o menos largo de cadenas de consulta, modificar el valor del maxQueryStringLength atributo. ASP.NET 4 tambin permite configurar los caracteres que se utilizan por la comprobacin de caracteres URL. Cuando ASP.NET encuentra un carcter no vlido en la parte de ruta de una direccin URL, se rechaza la solicitud y emite un HTTP 400 de error. En las versiones anteriores de ASP.NET, los controles de carcter URL se limita a un conjunto fijo de personajes. En ASP.NET 4, usted puede personalizar el conjunto de caracteres vlidos con el nuevo requestPathInvalidChars atributo del httpRuntime elemento de configuracin, como se muestra en la siguiente ejemplo:
<HttpRuntime requestPathInvalidChars = "<,>, *,%, &,:, \" />

Por defecto, el requestPathInvalidChars atributo define ocho caracteres como no vlido. (En la serie que se asignado a requestPathInvalidChars Por defecto, el menor que (<), mayor que (>) y comercial (&) caracteres se codifican, porque el Web.config archivo es un archivo XML.) Usted puede personalizar el conjunto de caracteres no vlidos, segn sea necesario. Nota ASP.NET 4 siempre rechaza direcciones URL que contienen caracteres ASCII en el rango de 0x00 a 0x1F, porque son caracteres no vlidos URL tal como se define en el RFC 2396 del IETF (Http://www.ietf.org/rfc/rfc2396.txt). En las versiones de Windows Server que se ejecutan IIS 6 o superior, el http.sys controlador de dispositivo de protocolo rechaza automticamente las direcciones URL con estos personajes.

Validacin de solicitudes extensible

La validacin de solicitudes de ASP.NET busca en los datos entrantes de solicitud HTTP para las cadenas que se utilizan comnmente en cross-site scripting (XSS) Los ataques. Si las cadenas posibles de XSS se encuentran, la validacin de solicitudes marca el sospechoso cadena y devuelve un error. La validacin de las solicitudes incorporadas devuelve un error cuando se encuentra ms cadenas comunes utilizados en los ataques XSS. Los intentos anteriores para hacer la validacin XSS ms agresivo
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 8

dio lugar a demasiados falsos positivos. Sin embargo, los clientes puede ser que desee la validacin de solicitudes que es ms agresivo, o por el contrario puede ser que desee para relajar los controles intencionadamente XSS para pginas especficas o para determinados tipos de solicitudes. En ASP.NET 4, la funcin de la validacin de solicitudes se ha hecho extensible, de modo que usted puede utilizar a medida solicitud de validacin de la lgica. Para extender la validacin de solicitudes, se crea una clase que deriva de la nueva System.Web.Util.RequestValidator escribir, y configurar la aplicacin (en el httpRuntime seccin de los Web.config archivo) para utilizar el tipo de encargo. El siguiente ejemplo muestra cmo configurar una costumbre solicitud de validacin de la clase:
<httpRuntime requestValidationType="Samples.MyValidator, Samples" />

El nuevo requestValidationType atributo requiere una norma. NET Framework cadena identificadora que especifica la clase que proporciona la validacin de solicitudes de encargo. Para cada solicitud, ASP.NET invoca el tipo personalizado para procesar cada pedazo de los datos entrantes de solicitud HTTP. La direccin URL entrante, todos los protocolos HTTP (cabeceras de las cookies y encabezados personalizados), y el cuerpo de la entidad estn disponibles para su inspeccin por un solicitud personalizado clase de validacin como la que se muestra en el ejemplo siguiente:
CustomRequestValidation clase de pblico: RequestValidator { protected override bool IsValidRequestString ( HttpContext context, valor de la cadena, RequestValidationSource requestValidationSource, cadena de collectionKey, a cabo int validationFailureIndex) {...} }

Para los casos en que no desea para inspeccionar una pieza de entrada de datos HTTP, la clase de solicitud de validacin puede volver a caer para que el defecto de ASP.NET la validacin de solicitudes ejecuta simplemente llamando base.IsValidRequestString.

El almacenamiento en cach de objetos y extensibilidad almacenamiento en cach de objetos

Desde su primer lanzamiento, ASP.NET ha incluido un gran alcance en la memoria cach de objetos (System.Web.Caching.Cache). La aplicacin cach ha sido tan popular que se ha utilizado en aplicaciones no Web. Sin embargo, es difcil para una Formas Windows o aplicacin de WPF para incluir un referencia a System.Web.dll slo para ser capaz de utilizar la cach de objetos de ASP.NET. Para hacer que el almacenamiento en cach para todas las aplicaciones,. NET Framework 4 introduce un nuevo conjunto, un nuevo espacio de nombres, algunos tipos de base, y una implementacin de almacenamiento en cach de hormign. El nuevo
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 9

System.Runtime.Caching.dll ensamblado contiene una API de almacenamiento en cach de nuevo en el

System.Runtime.Caching espacio de nombres. El espacio de nombres contiene dos conjuntos bsicos de clases: Los tipos abstractos que constituyen la base para la construccin de cualquier tipo de aplicacin personalizada de cach. Un hormign en memoria cach objeto de implementacin (el System.Runtime.Caching.MemoryCache clase). El nuevo MemoryCache clase se sigue muy de cerca en la memoria cach de ASP.NET, y que comparte gran parte de la cach lgica interna del motor con ASP.NET. Aunque la API de almacenamiento en cach del pblico en System.Runtime.Caching se han actualizado para apoyar el desarrollo de los depsitos de costumbre, si usted ha usado de ASP.NET Cache objeto, se encuentran conceptos familiares en las nuevas API. Una discusin en profundidad de la nueva MemoryCache clase y el apoyo a las API de base debe ser todo un documento. Sin embargo, el siguiente ejemplo se le da una idea de cmo la API de cach de nuevas obras. La ejemplo, fue escrito para una aplicacin de Windows Forms, sin ningn tipo de dependencia System.Web.dll.
private void btnGet_Click (object sender, EventArgs e) { / / Obtener una referencia a la instancia MemoryCache por defecto. / / Tenga en cuenta que puede crear MemoryCache mltiple (s) en el interior / / De una sola aplicacin. ObjectCache cache = MemoryCache.Default; / / En este ejemplo la cach est almacenando el contenido de un archivo cadena fileContents = cache ["filecontents"] como una cadena; / / Si el contenido del archivo no est actualmente en la cach y, a continuacin / / El contenido se lee desde el disco y se coloca en la cach. si (FileContents == null) { / / Un objeto CacheItemPolicy tiene todas las piezas de cach / / La dependencia y la caducidad de la cach de metadatos relacionados con un solo / / Entrada en la cach. La poltica CacheItemPolicy = nuevo CacheItemPolicy (); / / Construir la informacin necesaria para crear una dependencia de archivo. / / En este caso slo tenemos la ruta del archivo del archivo en el disco. Lista <cadena> rutas de los archivos = nuevo Lista <cadena> (); filePaths.Add ("c: \ \ datos.txt"); / / En la nueva API de cach, las dependencias se les llama "los monitores de cambio". ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 10

/ / Para este ejemplo, queremos que la entrada de la cach de forma automtica expirado / / Si el contenido sobre el cambio de disco. Un HostFileChangeMonitor ofrece / / Esta funcionalidad. policy.ChangeMonitors.Add (nuevo HostFileChangeMonitor (rutas de los archivos)); / / Recuperar el contenido del archivo fileContents File.ReadAllText = ("c: \ \ datos.txt"); / / Y a continuacin, almacenar el contenido del archivo en la memoria cach cache.Set ("filecontents", fileContents, la poltica); } MessageBox.Show (fileContents); }

HTML extensible, la URL y la codificacin del encabezado HTTP

En ASP.NET 4, se puede crear rutinas personalizadas de codificacin para los siguientes comunes de codificacin de texto tareas: Codificacin HTML. URL de codificacin. Codificacin de los atributos HTML. Codificacin de las cabeceras HTTP de salida. Puede crear un codificador personalizado derivando de la nueva System.Web.Util.HttpEncoder tipo y, a continuacin la configuracin de ASP.NET para que utilice el tipo personalizado en el httpRuntime seccin de la Web.config presentar, como se muestra en el ejemplo siguiente:
<HttpRuntime encoderType = "Samples.MyCustomEncoder, Las muestras " />

Despus de un codificador personalizado se ha configurado, ASP.NET llama automticamente a la codificacin personalizada de aplicacin siempre que los mtodos de codificacin pblicas de la System.Web.HttpUtility o System.Web.HttpServerUtility clases se llaman. Esto permite que una parte de un equipo de desarrollo Web crear un codificador personalizado que implementa la codificacin de caracteres agresivos, mientras que el resto del desarrollo del Web el equipo sigue utilizando la codificacin de ASP.NET API pblica. Al centro de la configuracin de un codificador personalizado en la la httpRuntime elemento, se le garantiza que todas las llamadas de codificacin de texto del pblico en ASP.NET codificacin de las API se enrutan a travs del codificador personalizado.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 11

Supervisin del rendimiento para aplicaciones individuales en un proceso de trabajo individual

Con el fin de aumentar el nmero de sitios Web que se pueden alojar en un nico servidor, muchos hosters ejecutar varias aplicaciones ASP.NET en un proceso de trabajo individuales. Sin embargo, si varias aplicaciones utilizan una sola compartida del proceso de trabajo, es difcil para los administradores de servidores para identificar una solicitud individual que es experimentando problemas. ASP.NET 4 aprovecha la nueva funcionalidad de monitoreo de recursos presentado por el CLR. Para activar esta funcionalidad, se puede aadir el siguiente fragmento de configuracin XML para el aspnet.config configuracin archivo.
<? Xml version = "1.0" encoding = "UTF-8"?> <configuration> <runtime> <appDomainResourceMonitoring enabled="true"/> </ Runtime> </ Configuration> Nota La aspnet.config archivo est en el directorio donde est instalado. NET Framework. No es el Web.config archivo.

Cuando el appDomainResourceMonitoring caracterstica ha sido activada, dos contadores de rendimiento de los nuevos estn disponibles en la categora "Aplicaciones ASP.NET" rendimiento: Gestionado% de tiempo de procesador y Memoria administrados utilizados. Ambos de estos contadores de rendimiento de CLR utilizar el nuevo dominio de la aplicacin funcin de gestin de recursos para medir el tiempo estimado de utilizacin de la CPU y la memoria de gestin las aplicaciones ASP.NET individuales. Como resultado de ello, con ASP.NET 4, los administradores ahora tienen una ms granular ver en el consumo de recursos de las aplicaciones individuales que se ejecutan en un proceso de trabajo individual.

Multi-Targeting

Puede crear una aplicacin que apunta a una versin especfica de. NET Framework. En ASP.NET 4, un nuevo atributo en el compilacin elemento del Web.config archivo permite orientar el 4. NET Framework y ms tarde. Si que se identifique explcitamente. NET Framework 4, y si se incluyen los elementos opcionales en el Web.config presentar, como las entradas para system.codedom, estos elementos deben ser los correctos para la RED. Framework 4. (Si no se dirigen expresamente a. NET Framework 4, el marco de destino se infiere de la falta de una entrada en el Web.config archivo.) El siguiente ejemplo muestra el uso del targetFramework atributo en el compilacin elemento de la Web.config archivo.
<Recopilatorio targetFramework = "4.0" /> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 12

Tenga en cuenta lo siguiente sobre la orientacin de una versin especfica de. NET Framework: En una piscina. NET Framework 4, el sistema de generacin ASP.NET asume. NET Framework 4, un destino si el Web.config archivo no incluye el targetFramework atributo o si el Web.config el archivo no existe. (Puede que tenga que hacer cambios de codificacin para su aplicacin para que funcione en el marco del . NET Framework 4.) Si se incluye el targetFramework atributo, y si el system.codedom elemento se define en la Web.config archivo, este archivo debe contener las entradas correctas para el 4. NET Framework. Si est utilizando el aspnet_compiler comandos para precompilar la aplicacin (por ejemplo, en una construccin medio ambiente), debe utilizar la versin correcta de la aspnet_compiler comando para el objetivo marco. Utilice el compilador que se incluye con el. NET Framework 2.0 (% WINDIR% \ Microsoft.NET \ Framework \ v2.0.50727) Para compilar el. NET Framework 3.5 y versiones anteriores. Utilice el compilador que viene con el 4. NET Framework para compilar aplicaciones creado con este marco o el uso de versiones posteriores. En tiempo de ejecucin, el compilador utiliza las ltimas asambleas del marco que se instalan en el ordenador (Y por tanto en la GAC). Si se efecta una actualizacin ms tarde con el marco (por ejemplo, un hipottico la versin 4.1 est instalado), usted ser capaz de utilizar las caractersticas de la versin ms reciente de la estructura, incluso aunque el targetFramework atributo se dirige a una versin inferior (por ejemplo, 4.0). (Sin embargo, en el diseo tiempo en Visual Studio 2010 o cuando se utiliza el aspnet_compiler comandos, usando las nuevas caractersticas de el marco har que los errores del compilador).

Ajax
jQuery incluye con formularios Web Forms y MVC
Las plantillas de Visual Studio para ambos formularios Web Forms y MVC incluir la librera jQuery de cdigo abierto. Cuando se crea una nueva pgina web o un proyecto, una carpeta de secuencias de comandos que contiene los siguientes 3 archivos se crea: jQuery 1.4.1.js - El legible, versin unminified de la librera jQuery. jQuery 14.1.min.js - La versin miniaturizada de la librera jQuery. jQuery 1.4.1-vsdoc.js - El archivo de documentacin de Intellisense para la librera jQuery. Incluye la versin unminified de jQuery, mientras que el desarrollo de una aplicacin. Incluye la versin miniaturizada de la jQuery para aplicaciones de produccin. Por ejemplo, la siguiente pgina de formularios Web ilustra cmo se puede usar jQuery para cambiar el color de fondo de ASP.NET los controles TextBox a amarillo cuando tiene el foco.
<% @ Pgina Language = "C #" AutoEventWireup = "true" CodeFile = "ShowjQuery.aspx.cs" Inherits = "ShowjQuery" %> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 13

<! DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.0 Transitional / / EN" "Http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd~~V"> <Html xmlns = "http://www.w3.org/1999/xhtml"> <La cabeza runat = "server"> Mostrar <title> jQuery </ title> </ Head> <body> <Form id = "form1" runat = "server"> <div <Asp: TextBox ID = "txtFirstName" runat = "server" /> <br /> <Asp: TextBox ID = "txtLastName" runat = "server" /> </ Div> </ Form> <Script src = "Scripts/jquery-1.4.1.js" type = "text / javascript"> </ script> <Script type = "text / javascript"> $ ("Input"). Enfoque ( function () {$ (This). Css ("background-color", "Amarillo"); }); </ Script> </ Body> </ Html>

Entrega de Contenido Red de Apoyo

El contenido de Microsoft Ajax Delivery Network (CDN) le permite aadir fcilmente ASP.NET Ajax y jQuery las secuencias de comandos a las aplicaciones Web. Por ejemplo, usted puede comenzar a utilizar la librera jQuery, simplemente aadiendo un <script> etiqueta a la pgina que apunta a Ajax.microsoft.com de esta manera: <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript"> </ script> Al tomar ventaja de la CDN Microsoft Ajax, usted puede mejorar significativamente el rendimiento de su Ajax aplicaciones. El contenido de la CDN Microsoft Ajax se almacenan en cach en los servidores ubicados en todo el mundo. Adems, la Microsoft AJAX CDN permite a los navegadores para reutilizar los archivos almacenados en cach de JavaScript para la Web sitios que se encuentran en dominios diferentes. El Microsoft Content Delivery Network Ajax es compatible con SSL (HTTPS) en caso de tener que servir a una web pgina utilizando el protocolo Secure Sockets Layer. Para obtener ms informacin acerca de la CDN Microsoft Ajax, visite el siguiente sitio web:
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 14

http://www.asp.net/ajaxlibrary/CDN.ashx El ScriptManager ASP.NET es compatible con el Microsoft Ajax CDN. Simplemente mediante el establecimiento de una propiedad, el La propiedad EnableCdn, puede recuperar todos los archivos de ASP.NET Framework de JavaScript de la CDN:
<Asp: ScriptManager ID = "SM1" EnableCdn = "true" runat = "server" />

Despus de establecer la propiedad EnableCdn al valor verdadero, el marco de ASP.NET recuperar todos ASP.NET marco de JavaScript archivos de la CDN, incluyendo todos los archivos de JavaScript utilizados para la validacin y las UpdatePanel. Al establecer esta propiedad se puede tener un impacto dramtico en el rendimiento de su web aplicacin. Usted puede establecer la ruta de venta para sus propios archivos JavaScript mediante el atributo WebResource. El nuevo CdnPath propiedad especifica la ruta de la CDN utiliza cuando se establece la propiedad EnableCdn al valor verdad: [Assembly: WebResource ("Foo.js", "application / x-javascript", CdnPath = "Http://foo.com/foo/bar/foo.js")]

ScriptManager explcitas secuencias de comandos

En el pasado, si ha utilizado la ScriptManger ASP.NET, entonces se requiere para cargar toda la monoltica ASP.NET AJAX Library. Al tomar ventaja de la propiedad ScriptManager.AjaxFrameworkMode nuevo, se puede controlar exactamente qu componentes de la Biblioteca de ASP.NET Ajax se cargan y cargan slo la componentes de la Biblioteca de ASP.NET Ajax que usted necesita. La propiedad ScriptManager.AjaxFrameworkMode se puede ajustar a los siguientes valores: Activado - Especifica que el control ScriptManager incluye automticamente los MicrosoftAjax.js archivo de script, que es un archivo de comandos combinado de todos los scripts de marco bsico (comportamiento heredado). Personas de movilidad reducida - Especifica que todas las caractersticas de Microsoft Ajax de secuencias de comandos estn deshabilitadas y que el ScriptManager de control no hace referencia a las secuencias de comandos de forma automtica. Explcito - Especifica que de forma explcita, se incluyen referencias de secuencias de comandos a los recursos bsicos marco individual archivo de comandos que la pgina requiere, y que se incluyen referencias a las dependencias que cada archivo de secuencia de comandos requiere. Por ejemplo, si se establece la propiedad AjaxFrameworkMode al valor explcito a continuacin, puede especificar el particular, las secuencias de comandos de ASP.NET AJAX componentes que se necesitan:
<Asp: ScriptManager ID = "SM1" AjaxFrameworkMode = "explcito" runat = "server"> <Scripts> <Asp: ScriptReference Name = "MicrosoftAjaxCore.js" /> <Asp: ScriptReference Name = "MicrosoftAjaxComponentModel.js" /> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 15

<Asp: ScriptReference Name = "MicrosoftAjaxSerialization.js" /> <Asp: ScriptReference Name = "MicrosoftAjaxNetwork.js" /> </ Secuencias de comandos> </ Asp: ScriptManager>

Los formularios Web Forms

Formularios Web ha sido una caracterstica central en ASP.NET desde el lanzamiento de ASP.NET 1.0. Muchas de las mejoras han estado en esta rea para ASP.NET 4, incluyendo las siguientes: La capacidad de establecer meta etiquetas. Ms control sobre el estado de vista. Ms fciles maneras de trabajar con las capacidades del navegador. Soporte para el uso con el enrutamiento de ASP.NET Web Forms. Ms control sobre los identificadores generados. La capacidad de persistir filas seleccionadas en los controles de datos. Ms control sobre el cdigo HTML representado en el FormView y ListView controles. Apoyo de filtrado para los controles de origen de datos.

Configuracin de Meta Tags con las Page.MetaKeywords y Page.MetaDescription Propiedades


<La cabeza id = "Ttulo1" runat = "server"> Pgina <title> ttulo </ title> <Meta name = "keywords" content = "Se trata, son, mis, palabras clave "/> <Meta name = "description" content = "Este es la descripcin de mi pgina "/> </ Head>

ASP.NET 4 agrega dos propiedades a la Pgina clase, MetaKeywords y MetaDescription. Estos dos propiedades representan correspondiente meta etiquetas en la pgina, como se muestra en el ejemplo siguiente:

Estas dos propiedades funcionan del mismo modo que la pgina Ttulo la propiedad lo hace. Siguen las siguientes reglas: 1. Si no hay meta etiquetas en el cabeza elemento que coincidan con los nombres de propiedades (es decir, name = "palabras clave" para Page.MetaKeywords y name = "description" para Page.MetaDescription, lo que significa que estas propiedades no se han establecido), la meta etiquetas se agrega a la pgina cuando es prestados.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 16

2. Si ya hay meta las etiquetas con estos nombres, estas propiedades actan como obtener y establecer mtodos para la contenido de las etiquetas existentes. Puede establecer estas propiedades en tiempo de ejecucin, que le permite obtener el contenido de una base de datos o de otro tipo fuente, y que le permite configurar las etiquetas de forma dinmica para describir lo que una pgina en particular es para. Tambin puede establecer el Palabras clave y Descripcin propiedades en el @ Page Directiva en la parte superior de la web Formas pgina marcado, como en el ejemplo siguiente:
<% @ Pgina Language = "C #" AutoEventWireup = "true" CodeFile = "Default.aspx.cs" Inherits = "_Default" Palabras clave = "Se trata, son, mis, palabras clave " Descripcin = "Esta es una descripcin "%>

Esto anular el meta contenido de la etiqueta (si existe) ya declar en la pgina. Los contenidos del descripcin meta etiquetas se utilizan para mejorar la bsqueda de inclusin previstas en Google. (Para ms informacin, consulte Mejorar fragmentos con un cambio de imagen descripcin de la meta en el Centro para webmasters de Google blog.) de Google y Windows Live Search no utilizar los contenidos de las palabras clave para cualquier cosa, pero otra motores de bsqueda de poder. Para obtener ms informacin, consulte Palabras clave Meta Consejos en la Gua del Search Engine Sitio web. Estas nuevas propiedades son una caracterstica simple, pero te salvar de la obligacin de agregar estos manualmente o de escribir su propio cdigo para crear el meta etiquetas.

Habilitar el estado de vista para los controles individuales

De forma predeterminada, el estado de vista est habilitado para la pgina, con el resultado de que cada control en la pgina de potencial tiendas de estado de vista, incluso si no es necesario para la aplicacin. Ver los datos de estado est incluido en el marcado que una pgina genera y aumenta la cantidad de tiempo que se tarda en enviar una pgina al cliente y colocarlo espalda. Almacenar ms el estado de vista de la necesaria puede provocar una degradacin del rendimiento significativo. En versiones anteriores de ASP.NET, los desarrolladores pueden desactivar el estado de vista de los controles individuales a fin de reducir tamao de la pgina, pero tuvo que hacerlo de forma explcita para los controles individuales. En ASP.NET 4, controles de servidor Web incluyen una ViewStateMode propiedad que le permite deshabilitar el estado de la vista por defecto y luego permitirle slo para el controles que se requieren en la pgina. La ViewStateMode la propiedad tiene una enumeracin que tiene tres valores: Activado, Desactivado, y Heredar. Habilitado permite que el estado de vista de que el control y para todos los controles secundarios que se establecen en Heredar o que han establecido nada. Discapacitado deshabilita el estado de vista y Heredar especifica que el control utiliza el ViewStateMode establecimiento del control de los padres.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 17

El siguiente ejemplo muestra cmo el ViewStateMode propiedad funciona. El marcado y el cdigo para el controles en la pgina siguiente incluye valores para el ViewStateMode la propiedad:
<Form id = "form1" runat = "server"> <Script runat = "server"> anulacin protegida OnLoad void (EventArgs e) { if (! IsPostBack) { Label1.Text = Label2.Text = "[DynamicValue]"; } base.OnLoad (e); } </ Script> <Asp: PlaceHolder ID = "PLACEHOLDER1" runat = "server" ViewStateMode = "Disabled"> Discapacitados: <asp: Label ID = "Label1" runat = "server" Text = "[DeclaredValue]" /> <br /> <Asp: PlaceHolder ID = "PLACEHOLDER2" runat = "server" ViewStateMode = "Habilitado"> Habilitado: <asp: Label ID = "Label2" runat = "server" Text = "[DeclaredValue]" /> </ Asp: PlaceHolder> </ Asp: PlaceHolder> <hr /> <Asp: Button ID = "Button1" runat = "server" Text = "devolucin de datos" /> <% - Ms marcado aqu -%> Como puede ver, los desactiva el estado de vista de cdigo para el PLACEHOLDER1 controlar. El nio label1 controlar

hereda este valor de la propiedad (Heredar es el valor predeterminado para ViewStateMode para los controles.) y por lo tanto no salva a nadie el estado de vista. En el PLACEHOLDER2 de control, ViewStateMode se establece a Habilitado, tan label2 hereda esta propiedad y guarda el estado de vista. Cuando la pgina se carga por primera vez, el Texto caracterstica de ambos Etiqueta los controles se establece en la cadena "* DynamicValue +". El efecto de esta configuracin es que cuando la pgina carga por primera vez, la salida se muestra el siguiente en el navegador:
Discapacitados: [DynamicValue] Habilitado: [DynamicValue]

Despus de una devolucin de datos, sin embargo, la salida se mostrar el siguiente:


Discapacitados: [DeclaredValue] Habilitado: [DynamicValue] La label1 de control (cuya ViewStateMode valor se establece en Personas de movilidad reducida) no se ha preservado el valor

que se estableci en el cdigo. Sin embargo, el label2 de control (cuya ViewStateMode valor se establece en ) Activado tiene conserva su estado.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 18

Tambin puede establecer ViewStateMode en el @ Page directiva, como en el ejemplo siguiente:


<% @ Pgina Language = "C #" AutoEventWireup = "true" CodeBehind = "Default.aspx.cs" Inherits = "WebApplication1._Default" ViewStateMode = "Disabled" %>

La Pgina la clase es ms que otro de control, sino que acta como control primario para todos los otros controles en la pgina. El valor predeterminado de ViewStateMode es Habilitado para las instancias de Pgina. Dado que los controles por defecto para Heredar, controles heredarn el Habilitado valor de la propiedad a menos que establezca ViewStateMode en la pgina o el control nivel. El valor del ViewStateMode propiedad determina si el estado de vista se mantiene slo si el EnableViewState propiedad se establece en cierto. Si el EnableViewState propiedad se establece en falsa, el estado de vista se no se mantiene incluso si ViewStateMode se establece a Habilitado. Un buen uso de esta funcin es con ContentPlaceHolder controles en las pginas principales, donde se pueden establecer ViewStateMode a Discapacitado para la pgina maestra y luego individualmente para permitir ContentPlaceHolder los controles que a su vez contienen los controles que requieren el estado de vista.

Cambios en funciones del explorador

ASP.NET determina las funciones del explorador que un usuario est utilizando para navegar por su sitio web mediante el uso de una caracterstica llamada capacidades del navegador. Capacidades del explorador estn representados por el HttpBrowserCapabilities objeto (expuesta por el Request.Browser la propiedad). Por ejemplo, puede utilizar el HttpBrowserCapabilities objeto para determinar si el tipo y la versin del navegador actual es compatible con una versin particular de JavaScript. O bien, puede utilizar el HttpBrowserCapabilities oponerse a determinar si la solicitud se origin desde un dispositivo mvil. La HttpBrowserCapabilities objeto es impulsado por un conjunto de archivos de definicin del explorador. Estos archivos contienen informacin sobre las capacidades de los navegadores en particular. En ASP.NET 4, estos archivos de definicin del explorador se han actualizado para incluir informacin sobre los navegadores de reciente introduccin y dispositivos tales como Google Chrome, Research in Motion, los telfonos inteligentes BlackBerry y el iPhone de Apple. La siguiente lista muestra los nuevos archivos de definicin del explorador: blackberry.browser chrome.browser Default.browser firefox.browser gateway.browser
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 19

generic.browser ie.browser iemobile.browser iphone.browser opera.browser safari.browser Uso de funciones del explorador Proveedores En ASP.NET versin 3.5 Service Pack 1, puede definir las capacidades que tiene un navegador en la siguiente maneras: En el nivel de equipo, crear o actualizar una . Explorador Archivo XML en la carpeta siguiente:
\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ Browsers

Despus de definir las capacidades del navegador, ejecutar el siguiente comando desde el Visual Studio Smbolo del sistema con el fin de reconstruir el conjunto de funciones de explorador y agregarlo a la GAC:
Aspnet_regbrowsers.exe-I c

Para una aplicacin individual, se crea una . Explorador en el archivo de la aplicacin App_Browsers carpeta. Estos enfoques requieren que usted cambie los archivos XML, y los cambios de nivel del equipo, debe reiniciar la aplicacin despus de ejecutar el Aspnet_regbrowsers.exe proceso. ASP.NET 4 incluye una caracterstica denominada capacidades de los proveedores de navegadores. Como su nombre lo indica, este le permite crear un proveedor que a su vez le permite utilizar su propio cdigo para determinar las capacidades del navegador. En la prctica, los desarrolladores no suelen definir las capacidades de explorador. Los archivos del navegador son difciles de actualizacin, el proceso de actualizacin es bastante complicado, y la sintaxis XML para . Explorador los archivos pueden ser difcil de utilizar y definir. Lo que hara que este proceso es mucho ms fcil si hubiera un comn navegador de sintaxis de la definicin, o una base de datos que contenan hasta al da las definiciones de navegador, o incluso una web servicio para tal base de datos. La nueva funcin de navegador de las capacidades de los proveedores hace que estos escenarios sea posible y prctico para los desarrolladores de terceras partes. Hay dos enfoques principales para utilizar el nuevo navegador de ASP.NET 4 funcin de proveedor de capacidades: ampliar las capacidades del navegador ASP.NET funcionalidad de definicin, o en su totalidad que lo sustituya. El siguiente secciones describen primero la forma de reemplazar la funcionalidad, y luego cmo se extienden.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 20

Sustitucin de la funcionalidad de las capacidades de explorador ASP.NET Para reemplazar el navegador ASP.NET capacidades funcionalidad de definicin por completo, siga estos pasos: 1. Crear una clase de proveedor que se deriva de HttpCapabilitiesProvider y que anula el GetBrowserCapabilities mtodo, como en el ejemplo siguiente:
public class CustomProvider : HttpCapabilitiesProvider { public override HttpBrowserCapabilities GetBrowserCapabilities (solicitud HttpRequest) { HttpBrowserCapabilities browserCaps = nuevo HttpBrowserCapabilities (); Los valores de Hashtable = nuevo Hashtable (180, StringComparer.OrdinalIgnoreCase); los valores de [String.Empty] = Request.UserAgent; valores ["explorador"] = "MyCustomBrowser"; browserCaps.Capabilities = valores; volver browserCaps; } }

El cdigo de este ejemplo se crea una nueva HttpBrowserCapabilities objeto, especificando slo el capacidad de llamada navegador y el establecimiento de esa capacidad para MyCustomBrowser. 2. Registre el proveedor de la aplicacin. Con el fin de utilizar un proveedor con una aplicacin, debe agregar la proveedor atribuyen a la browserCaps en la seccin Web.config o Machine.config archivos. (Tambin puede definir los atributos del proveedor en un ubicacin elemento para directorios especficos en aplicacin, como en una carpeta para un dispositivo mvil especfico.) El siguiente ejemplo muestra cmo establecer la proveedor atribuir en un fichero de configuracin:
<system.web> Menores browserCaps Provider = "ClassLibrary2.CustomProvider, ClassLibrary2, Version = 1.0.0.0, Culture = neutral "/> </ System.web>

Otra forma de registrar la definicin de explorador nueva capacidad es utilizar cdigo, como se muestra en la siguiente ejemplo:
anular Application_Start (object sender, EventArgs e) { HttpCapabilitiesBase.BrowserCapabilitiesProvider = ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 21

nuevo ClassLibrary2.CustomProvider (); / / ... }

Este cdigo debe ejecutarse en el Application_Start caso de la Global.asax archivo. Cualquier cambio en el BrowserCapabilitiesProvider clase debe ocurrir antes de cualquier cdigo de la aplicacin se ejecuta, en orden a asegrese de que el cach se mantiene en un estado vlido para la resuelta HttpCapabilitiesBase objeto. Almacenamiento en cach del objeto HttpBrowserCapabilities El ejemplo anterior tiene un problema, que es que el cdigo se ejecuta cada vez que la costumbre proveedor se invoca con el fin de obtener el HttpBrowserCapabilities objeto. Esto puede ocurrir varias veces durante cada peticin. En el ejemplo, el cdigo del proveedor no hace mucho. Sin embargo, si el cdigo en su proveedor personalizado realiza una importante labor con el fin de obtener el HttpBrowserCapabilities objeto, esto puede afectar al rendimiento. Para evitar que esto suceda, se puede almacenar en cach el HttpBrowserCapabilities objeto. Siga estos pasos: 1. Cree una clase que se deriva de HttpCapabilitiesProvider, como el que en el ejemplo siguiente:
public class CustomProvider : HttpCapabilitiesProvider { public override HttpBrowserCapabilities GetBrowserCapabilities (solicitud HttpRequest) { cadena cacheKey BuildCacheKey = (); int cacheTime GetCacheTime = (); HttpBrowserCapabilities browserCaps = HttpContext.Current.Cache [cacheKey] como HttpBrowserCapabilities; si (BrowserCaps == null) { HttpBrowserCapabilities browserCaps = nuevo HttpBrowserCapabilities (); Los valores de Hashtable = nuevo Hashtable (180, StringComparer.OrdinalIgnoreCase); los valores de [String.Empty] = Request.UserAgent; valores ["explorador"] = "MyCustomBrowser"; browserCaps.Capabilities = valores; HttpContext.Current.Cache.Insert (cacheKey, browserCaps, nulo, DateTime.MaxValue, TimeSpan.FromSeconds (cacheTime)); ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 22

} volver browserCaps; } }

En el ejemplo, el cdigo genera una clave de cach llamando una costumbre BuildCacheKey mtodo, y se obtiene la longitud de tiempo para llamar a un cach por costumbre GetCacheTime mtodo. El cdigo a continuacin, aade la resuelto HttpBrowserCapabilities oponerse a la memoria cach. El objeto se puede recuperar de la cach y reutilizado en posteriores solicitudes que hacen uso de este proveedor personalizado. 2. Registrar el proveedor con la aplicacin como se describe en el procedimiento anterior. Ampliacin de las capacidades de explorador ASP.NET Funcionalidad La seccin anterior describe cmo crear una nueva HttpBrowserCapabilities objeto en ASP.NET 4. Usted Tambin puede ampliar la funcionalidad del navegador ASP.NET capacidades mediante la adicin de nuevas capacidades de navegador definiciones a las que ya estn en ASP.NET. Usted puede hacer esto sin usar el navegador XML definiciones. El procedimiento siguiente muestra cmo hacerlo. 1. Cree una clase que se deriva de HttpCapabilitiesEvaluator y que anula el GetBrowserCapabilities mtodo, como se muestra en el ejemplo siguiente:
public class CustomProvider : HttpCapabilitiesEvaluator { public override HttpBrowserCapabilities GetBrowserCapabilities (solicitud HttpRequest) { HttpBrowserCapabilities browserCaps = base.GetHttpBrowserCapabilities (peticin); si (BrowserCaps.Browser == "Desconocido") { browserCaps = MyBrowserCapabilitiesEvaulator (peticin); } volver browserCaps; } }

Este cdigo utiliza primero el explorador ASP.NET capacidades de funcionalidad para tratar de identificar el navegador. Sin embargo, si no se identifica explorador basado en la informacin definida en la solicitud (es decir, si el Navegador caracterstica de la HttpBrowserCapabilities objeto es la cadena "desconocido"), el cdigo llama a la proveedor personalizado (MyBrowserCapabilitiesEvaluator) Para identificar el navegador.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 23

2. Registrar el proveedor con la aplicacin como se describe en el ejemplo anterior. Ampliacin de la funcionalidad de navegador de prestaciones con la incorporacin de nuevas capacidades existentes Capacidades Definiciones Adems de crear un proveedor de definicin del explorador personalizado y la creacin dinmica nueva del navegador definiciones, se puede extender las definiciones existentes navegador con capacidades adicionales. Esto le permite utilizar un definicin que se acerca a lo que quieras, pero carece de slo unos pocos capacidades. Para ello, utilice el siguiente pasos. 1. Cree una clase que se deriva de HttpCapabilitiesEvaluator y que anula el GetBrowserCapabilities mtodo, como se muestra en el ejemplo siguiente:
public class CustomProvider : HttpCapabilitiesEvaluator { public override HttpBrowserCapabilities GetBrowserCapabilities (solicitud HttpRequest) { HttpBrowserCapabilities browserCaps = base.GetHttpBrowserCapabilities (peticin); browserCaps.Frames = cierto; browserCaps.Capabilities ["MultiTouch"] = "Verdadero"; volver browserCaps; } }

El cdigo de ejemplo se extiende la actual ASP.NET HttpCapabilitiesEvaluator clase y obtiene el HttpBrowserCapabilities objeto que coincide con la definicin actual solicitud mediante el siguiente cdigo:
HttpBrowserCapabilities browserCaps = base.GetHttpBrowserCapabilities (peticin);

El cdigo a continuacin, puede aadir o modificar la capacidad de este navegador. Hay dos formas de especificar una nueva navegador de la capacidad de: Aadir un par clave / valor a la IDictionary objeto que est expuesta por el Capacidades caracterstica de la HttpCapabilitiesBase objeto. En el ejemplo anterior, el cdigo aade una capacidad de llamada MultiTouch con un valor de cierto.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 24

Definicin de las propiedades existentes en la HttpCapabilitiesBase objeto. En el ejemplo anterior, el cdigo establece el Marcos propiedad para cierto. Esta propiedad no es ms que un descriptor de acceso para el IDictionary objeto que est expuesta por el Capacidades propiedad. Nota Este modelo se aplica a cualquier propiedad de la HttpBrowserCapabilities, incluyendo el control adaptadores. 2. Registrar el proveedor con la aplicacin como se describe en el procedimiento anterior.

Enrutamiento de ASP.NET 4

ASP.NET 4 aade soporte integrado para el uso de enrutamiento con formularios Web Forms. Routing le permite configurar una aplicacin para que acepte una demanda de direcciones URL que no se asignan a los archivos fsicos. En su lugar, puede utilizar el enrutamiento de definir las direcciones URL que sean significativas para los usuarios y que puede ayudar con la optimizacin de los motores de bsqueda (SEO) para su aplicacin. Por ejemplo, la URL de una pgina que muestra las categoras de productos en una ya existente la aplicacin podra ser similar al siguiente ejemplo:
http://website/products.aspx?categoryid=12

Mediante el uso de enrutamiento, puede configurar la aplicacin para aceptar la siguiente direccin URL para hacer que la misma informacin:
http://website/products/software

Enrutamiento ha estado disponible a partir de ASP.NET 3.5 SP1. (Para un ejemplo de cmo utilizar el encaminamiento en De ASP.NET 3.5 SP1, consulte la entrada Uso de enrutamiento con formularios web en el blog de Phil Haack.) Sin embargo, ASP.NET 4 incluye algunas caractersticas que lo hacen ms fcil de usar de enrutamiento, incluyendo las siguientes: La PageRouteHandler clase, que es un simple controlador HTTP que se utiliza cuando se definen las rutas. La clase se transfieren los datos a la pgina que la solicitud se dirige a. Las nuevas propiedades HttpRequest.RequestContext y Page.RouteData (Lo cual es un indicador de la HttpRequest.RequestContext.RouteData objeto). Estas propiedades hacen que sea ms fcil acceso informacin que se pasa de la ruta. Los siguientes nuevos constructores de expresin, que se definen en System.Web.Compilation.RouteUrlExpressionBuilder y System.Web.Compilation.RouteValueExpressionBuilder: RouteUrl, que proporciona una forma sencilla de crear una direccin URL que corresponde a una ruta dentro de la URL un control de servidor ASP.NET. RouteValue, que proporciona una forma sencilla para extraer informacin de la RouteContext objeto.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 25

La RouteParameter clase, que hace ms fcil para pasar los datos contenidos en un RouteContext oponerse a una consulta para un control de origen de datos (similar a la FormParameter). Enrutamiento para pginas Web Forms El siguiente ejemplo muestra cmo definir una ruta de formularios Web Forms mediante el uso de la nueva MapPageRoute mtodo del Ruta clase:
public class Global : System.Web.HttpApplication { anular Application_Start (object sender, EventArgs e) { RouteTable.Routes.MapPageRoute ("SearchRoute", "Bsqueda / {} trmino de bsqueda", "~ / search.aspx"); RouteTable.Routes.MapPageRoute ("UserRoute", "Los usuarios de / {nombre de usuario}", "~ / users.aspx"); } }

ASP.NET 4 presenta el MapPageRoute mtodo. El siguiente ejemplo es equivalente al SearchRoute definicin se muestra en el ejemplo anterior, pero utiliza el PageRouteHandler clase.
RouteTable.Routes.Add ("SearchRoute", nuevo Ruta ("search / {} trmino de bsqueda", nueva PageRouteHandler ("~ / search.aspx")));

El cdigo en el ejemplo de traza de la ruta a una pgina fsica (en la primera ruta, que ~ / Search.aspx). La definicin de la primera ruta tambin se especifica que el parmetro denominado trmino de bsqueda debe ser extrado de la URL y pasa a la pgina. La MapPageRoute mtodo es compatible con las sobrecargas del mtodo siguientes: MapPageRoute (routeName cadena, cadena de routeUrl, cadena de physicalFile, bool checkPhysicalUrlAccess) MapPageRoute (routeName cadena, cadena de routeUrl, cadena de physicalFile, bool checkPhysicalUrlAccess, Por defecto RouteValueDictionary) MapPageRoute (routeName cadena, cadena de routeUrl, cadena de physicalFile, bool checkPhysicalUrlAccess, Por defecto, restricciones RouteValueDictionary RouteValueDictionary) La checkPhysicalUrlAccess parmetro especifica si la ruta debe comprobar la seguridad permisos de la pgina fsica sea dirigido a (en este caso, search.aspx) Y los permisos de la direccin de entrada (en este caso, buscar / {} trmino de bsqueda). Si el valor de checkPhysicalUrlAccess es falsa, slo los permisos de la direccin URL entrante ser verificada. Estos permisos se definen en el Web.config presentar con la configuracin, tales como los siguientes:
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 26

<configuration> <Ubicacin path = "search.aspx"> <system.web> <authorization> <Permiten los roles = "admin" /> <Niegan los usuarios = "*" /> </ Authorization> </ System.web> </ Location> <Ubicacin path = "Buscar"> <system.web> <authorization> <Permiten los usuarios = "*" /> </ Authorization> </ System.web> </ Location> </ Configuration>

En la configuracin de ejemplo, se niega el acceso a la pgina fsica search.aspx para todos los usuarios excepto aquellos que estn en el administracin papel. Cuando el checkPhysicalUrlAccess parmetro se establece en verdadero (Que es su el valor por defecto), slo administracin los usuarios pueden acceder a la URL / Search / {} trmino de bsqueda, Debido a que el pgina fsica search.aspx est restringido a usuarios en ese papel. Si checkPhysicalUrlAccess se establece a falso y el sitio est configurado como se muestra en el ejemplo anterior, todos los usuarios autenticados pueden acceder a la direccin URL / Search / {} trmino de bsqueda. La lectura de informacin de enrutamiento en una pgina de formularios Web Forms En el cdigo de la pgina Web Forms fsica, puede acceder a la informacin de enrutamiento que se ha extrado desde la direccin URL (o cualquier otra informacin que otro objeto ha aadido a la RouteData objeto) mediante dos nuevas propiedades: HttpRequest.RequestContext y Page.RouteData. (Page.RouteData envuelve HttpRequest.RequestContext.RouteData.) El siguiente ejemplo muestra cmo utilizar Page.RouteData.
protected void Page_Load (object sender, EventArgs e) { cadena = trmino de bsqueda Page.RouteData.Values ["trmino de bsqueda"] como una cadena; Label1.Text = trmino de bsqueda; } El cdigo extrae el valor que se pas para el trmino de bsqueda parmetro, tal como se define en el ejemplo

ruta anterior. Tenga en cuenta la siguientes URL:

ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 27

http://localhost/search/scott/

Cuando esta solicitud se hace, la palabra "Scott" se representa en el search.aspx pgina. Acceso a la informacin de enrutamiento en el marcado El mtodo descrito en la seccin anterior se muestra cmo obtener los datos de ruta en el cdigo en una Web Forms pgina. Tambin puede utilizar las expresiones en el marcado que le dan acceso a la misma informacin. Expresin los constructores son una forma eficaz y elegante para trabajar con cdigo declarativo. (Para obtener ms informacin, consulte la entrada Exprsate con generadores de expresiones personalizados en el blog de Phil Haack.) ASP.NET 4 incluye dos generadores de expresiones nuevas versiones de los formularios Web Forms de enrutamiento. El siguiente ejemplo muestra cmo usarlos.
<Asp: HyperLink ID = "HyperLink1" runat = "server" NavigateUrl = "<% $ RouteUrl: SearchTerm =% scott>"> Buscar para Scott </ asp: HyperLink>

En el ejemplo, el RouteUrl expresin se utiliza para definir una direccin que se basa en un parmetro ruta. Este nos evita tener que codificar la URL completa en el marcado, y le permite cambiar la direccin URL estructurar ms adelante sin necesidad de ningn cambio en este enlace. Sobre la base de la ruta definida anteriormente, este marcado genera la siguiente URL:
http://localhost/search/scott

ASP.NET funciona automticamente la ruta correcta (es decir, que genera la direccin correcta) basado en el parmetros de entrada. Tambin puede incluir un nombre de ruta en la expresin, que le permite especificar una ruta de utilizar. El siguiente ejemplo muestra cmo utilizar el RouteValue expresin.
<Asp: Label ID = "Label1" runat = "server" Text = "<% $ RouteValue: SearchTerm%>" />

Cuando la pgina que contiene este control se ejecuta, el valor de "Scott" se muestra en la etiqueta. La RouteValue expresin hace que sea fcil de usar datos de la ruta en el marcado, y evita tener que trabajar con el ms complejo Page.RouteData ["x"] la sintaxis en el marcado. Uso de los datos de ruta de los parmetros de datos de control de cdigo fuente La RouteParameter clase le permite especificar datos de la ruta como valor de parmetro para las consultas en una fuente de datos controlar. Funciona muy similar a la FormParameter clase, como se muestra en el ejemplo siguiente:
<Asp: SqlDataSource id = "SqlDataSource1" runat = "server" ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 28

ConnectionString = "<% $ ConnectionStrings: MyNorthwind%> " SelectCommand = "SELECT CompanyName, ShipperID de los cargadores cuando CompanyName = @ CompanyName " <selectparameters> <Asp: routeparameter name = "CompanyName" RouteKey = "trmino de bsqueda" /> </ SelectParameters> </ Asp: SqlDataSource> En este caso, el valor del parmetro ruta trmino de bsqueda se utilizar para el @ CompanyName parmetro

en el Seleccionar declaracin.

Configuracin de los ID de cliente

El nuevo ClientIDMode la propiedad se dirige a un problema de larga data en ASP.NET, es decir, cmo crear controles la identificacin atributo para los elementos que hacen. El conocimiento de la identificacin atributo para los elementos prestados es importante si la aplicacin incluye un script de cliente que hace referencia a estos elementos. La identificacin atributo HTML que se representa para los controles de servidor Web se genera a partir de la ClientID propiedad del control. Hasta ASP.NET 4, el algoritmo para generar el identificacin atributo de la ClientID propiedad ha sido para concatenar el contenedor de nombres (si existe) con el ID, y en el caso de repetirse los controles (como en los controles de datos), para agregar un prefijo y un nmero secuencial. Si bien esto siempre ha garantizado que los identificadores de los controles en la pgina son nicos, el algoritmo se ha traducido en identificadores de control que no fueron predecible, y por lo tanto difcil de referenciar en el script de cliente. El nuevo ClientIDMode la propiedad permite especificar con mayor precisin cmo el ID de cliente se genera para controles. Puede configurar el ClientIDMode la propiedad de cualquier control, incluyendo la pgina. Los ajustes posibles son los siguientes: AutoID - Esto es equivalente al algoritmo para generar ClientID valores de las propiedades que se utilizan en versiones anteriores de ASP.NET. Esttico - Esto especifica que el ClientID valor ser el mismo que el ID sin la concatenacin del Identificadores de los contenedores de nomenclatura de los padres. Esto puede ser til en los controles de usuario Web. Debido a que un usuario de la web de control puede estar situado en pginas diferentes y en los controles contenedores diferentes, puede ser difcil para escribir script de cliente para los controles que utilizan la AutoID algoritmo porque no se puede predecir lo que el ID valores ser. Previsible - Esta opcin es principalmente para su uso en los controles de datos que utilizan plantillas de repeticin. Lo concatena las propiedades de identificacin de los contenedores de nomenclatura del control, sino que se generan ClientID Los valores hacen no contienen cadenas como "ctlxxx". Este ajuste funciona en conjuncin con el ClientIDRowSuffix propiedad del control. Se establece el ClientIDRowSuffix propiedad en el nombre de un campo de datos, y el
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 29

valor de ese campo se utiliza como el sufijo para el generado ClientID valor. Normalmente, se utiliza el clave primaria de un registro de datos como el ClientIDRowSuffix valor. Heredar - Este valor es el comportamiento predeterminado de los controles, sino que especifica que la generacin de un control de identificacin es lo mismo que su padre. Puede configurar el ClientIDMode la propiedad a nivel de pgina. Esto define el valor por defecto ClientIDMode valor para todos los controles en la pgina actual. El valor por defecto ClientIDMode valor en el nivel de la pgina es AutoID, y el valor predeterminado ClientIDMode valor en el nivel de control es Heredar. Como resultado, si no se establece esta propiedad en cualquier parte del cdigo, todos los controles por defecto a la AutoID algoritmo. Se establece el valor a nivel de pgina en el @ Page directiva, como se muestra en el ejemplo siguiente:
<% @ Pgina Language = "C #" AutoEventWireup = "true" CodeFile = "Default.aspx.cs" Inherits = "_Default" ClientIDMode = "predecible" %>

Tambin puede establecer el ClientIDMode valor en el archivo de configuracin, ya sea en el ordenador (mquina) nivel o en el nivel de aplicacin. Esto define el valor por defecto ClientIDMode establecer para todos los controles en todas las pginas de la aplicacin. Si establece el valor en el nivel de equipo, que define el valor predeterminado ClientIDMode estableciendo para todos los sitios web de ese equipo. El siguiente ejemplo muestra el ClientIDMode poniendo en el archivo de configuracin:
<system.web> Menores pginas ClientIDMode = "predecibles"> </ pages> </ System.web>

Como se seal anteriormente, el valor del ClientID propiedad se deriva desde el contenedor de nomenclatura para una de control padre. En algunos casos, como cuando se utiliza las pginas maestras, controles puede terminar con identificadores como los de la siguiente HTML representado:
<Div id = "ctl00_ContentPlaceHolder1_ParentPanel"> <Div id = "ctl00_ContentPlaceHolder1_ParentPanel_NamingPanel1"> <Entrada name = "ctl00 $ $ ContentPlaceHolder1 ParentPanel $ $ NamingPanel1 TextBox1" type = "text" value = "Hola!" id = "ctl00_ContentPlaceHolder1_ParentPanel_NamingPanel1_TextBox1" /> </ Div> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 30

A pesar de que el entrada elemento se muestra en el marcado (a partir de una TextBox de control) est a slo dos nombres contenedores de profundidad en la pgina (el anidado ContentPlaceHolder controles), debido a las pginas manera maestras se procesan, el resultado final es un identificador de control como la siguiente:
ctl00_ContentPlaceHolder1_ParentPanel_NamingPanel1_TextBox1

Esta identificacin se garantiza que sea nico en la pgina, pero es innecesariamente largo para la mayora de los propsitos. Imagine que desea reducir la longitud de la ID prestados, y para tener ms control sobre cmo es el ID de generado. (Por ejemplo, usted quiere eliminar "ctlxxx" prefijos.) La forma ms sencilla de lograr esto es fijar el ClientIDMode propiedad tal como se muestra en el ejemplo siguiente:
<Tc: NamingPanel runat = "server" ID = "ParentPanel" ClientIDMode = "esttico"> <Tc: NamingPanel runat = "server" ID = "NamingPanel1" ClientIDMode = "Predictable"> <Asp: TextBox ID = "TextBox1" runat = "server" Text = "Hola!"> </ Asp: TextBox> </ Tc: NamingPanel> </ Tc: NamingPanel>

En este ejemplo, el ClientIDMode propiedad se establece en Esttico para el exterior NamingPanel elemento, y establecido en Previsible para el interior NamingControl elemento. Estos ajustes dan como resultado el siguiente marcado (El resto de la pgina y la pgina maestra se supone que es el mismo que en el ejemplo anterior):
<Div id = "ParentPanel"> <Div id = "ParentPanel_NamingPanel1"> <Entrada name = "ctl00 $ $ ContentPlaceHolder1 ParentPanel $ $ NamingPanel1 TextBox1" type = "text" value = "Hola!" id = "ParentPanel_NamingPanel1_TextBox1" /> </ Div>

La Esttico ajuste tiene el efecto de restablecer la jerarqua de nombres para todos los controles en el interior del exterior NamingPanel elemento, y de eliminar el ContentPlaceHolder y MasterPage Identificadores de la generado ID. (El nombre atributo de elementos prestados no se ve afectada, por lo que el normal de ASP.NET se mantiene la funcionalidad para eventos, del estado de vista, etc.) Un efecto secundario de restablecer el nombramiento jerarqua es que incluso si se mueve el marcado de la NamingPanel elementos a una diferente ContentPlaceHolder de control, los identificadores de cliente prestados siguen siendo los mismos. Nota Depende de usted para asegurarse de que los identificadores de control prestados son nicos. Si no lo son, puede romper cualquier funcionalidad que requiere identificadores nicos para los distintos elementos HTML, como por ejemplo el cliente document.getElementById funcin.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 31

La creacin de identificadores predecibles cliente en controles enlazados a datos La ClientID Los valores que se generan para los controles en un control de lista enlazado a datos mediante el algoritmo de herencia puede ser largo y en realidad no son predecibles. La ClientIDMode funcionalidad puede ayudarle a tener ms el control sobre cmo se generan estos identificadores. El marcado en el ejemplo siguiente se incluye una ListView control de:
<Asp: ListView ID = "ListView1" runat = "server" DataSourceID = "SqlDataSource1" OnSelectedIndexChanged = "ListView1_SelectedIndexChanged" ClientIDMode = "predecible" RowClientIDRowSuffix = "ProductID"> </ Asp: ListView>

En el ejemplo anterior, el ClientIDMode y RowClientIDRowSuffix propiedades se establecen en el marcado. La ClientIDRowSuffix propiedad se puede utilizar slo en controles enlazados a datos, y su comportamiento difiere segn en el que el control que est utilizando. Las diferencias son las siguientes: GridView de control - Se puede especificar el nombre de una o ms columnas del origen de datos, que son combinado en tiempo de ejecucin para crear los ID de cliente. Por ejemplo, si se establece RowClientIDRowSuffix a "ProductName, ProductID", identificadores de control de los elementos prestados tendr un formato similar al siguiente:
rootPanel_GridView1_ProductNameLabel_Chai_1

ListView de control - Puede especificar una nica columna en el origen de datos que se adjunta al cliente ID. Por ejemplo, si se establece ClientIDRowSuffix a "ProductName", los identificadores de control prestados tendrn una formato como el siguiente:
rootPanel_ListView1_ProductNameLabel_1 En este caso, la fuga 1se deriva de la identificacin del producto del elemento de datos actual.

Repetidor control Este control no es compatible con la ClientIDRowSuffix propiedad. En una Repetidor control, el ndice de la fila actual se utiliza. Cuando se utiliza ClientIDMode = "predecible" con una Repetidor de control, ID de cliente que se generan tienen el siguiente formato:
Repeater1_ProductNameLabel_0 El final 0es el ndice de la fila actual.

La FormView y DetailsView los controles no se muestran varias filas, por lo que no apoyan la ClientIDRowSuffix propiedad.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 32

La persistencia de la seleccin de filas en los controles de datos

La GridView y ListView controles pueden permitir a los usuarios seleccionar una fila. En las versiones anteriores de ASP.NET, la seleccin se ha basado en el ndice de fila en la pgina. Por ejemplo, si selecciona el tercer elemento en la pgina 1 y luego pasar a la pgina 2, el tercer elemento en esa pgina est seleccionada. Seleccin persisti fue apoyada inicialmente slo en los proyectos de datos dinmicos en el. NET Framework 3.5 SP1. Cuando esta funcin est activada, el elemento seleccionado se basa en la clave de datos para el elemento. Este significa que si se selecciona la tercera fila en la pgina 1 y pasar a la pgina 2, no hay nada seleccionado en la pgina 2. Al regresar a la pgina 1, la tercera fila est an seleccionado. Seleccin persistentes es ahora compatible con la GridView y ListView los controles en todos los proyectos mediante el uso de la EnablePersistedSelection propiedad, como muestra en el ejemplo siguiente:
<Asp: GridView id = "GridView2" runat = "server" EnablePersistedSelection = "true"> </ Asp: GridView>

ASP.NET grfico de control

El ASP.NET Grfico el control se ampla la oferta de visualizacin de datos en el. NET Framework. Utilizando el Grfico de control, puede crear pginas ASP.NET que tienen grficos intuitivos y visualmente atractivos para los complejo anlisis estadstico o financiero. El ASP.NET Grfico de control se introdujo como un add-on a la . NET Framework versin 3.5 Service Pack 1 y es parte del. NET Framework 4. El control incluye las siguientes caractersticas: 35 tipos de grficos diferentes. Un nmero ilimitado de reas de grfico, ttulos, leyendas y anotaciones. Una amplia variedad de configuraciones de aspecto para todos los elementos del grfico. 3-D de apoyo a la mayora de los tipos de grficos. Las etiquetas de datos inteligentes que automticamente se ajustan alrededor de los puntos de datos. Las franjas, saltos de escala, y la escala logartmica. Ms de 50 frmulas financieros y estadsticos para el anlisis y transformacin de datos. Unin simple y manipulacin de datos del grfico. Soporte para formatos de datos comunes, tales como fechas, horas, y la moneda. Apoyo a la interactividad y la personalizacin basada en eventos, incluyendo eventos de clic del cliente utilizando Ajax. Estado de gestin. Transmisin binaria. Las siguientes figuras muestran ejemplos de grficos financieros que se producen por el control Chart ASP.NET.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 33

Para ms ejemplos de cmo utilizar el control Chart ASP.NET, descargue el cdigo de ejemplo en la Las muestras Medio Ambiente para Microsoft Chart Controls pgina en el sitio web de MSDN. Usted puede encontrar ms muestras de Contenido de la comunidad en la Grfico Foro de control. Agregar el control de grfico a una pgina ASP.NET El siguiente ejemplo muestra cmo agregar un Grfico controlar a una pgina ASP.NET mediante el uso de marcas. En el ejemplo, el Grfico de control produce una tabla en la columna para puntos de datos estticos.
<Asp: Grfico ID = "Grfico1" runat = "server"> <series> <Asp: Serie Name = "Serie1" ChartType = "Columna"> <Points> <Asp: DataPoint AxisLabel = "Producto Un " YValues = "345" /> <Asp: DataPoint AxisLabel = "Producto B " YValues = "456" /> <Asp: DataPoint AxisLabel = "Producto C " YValues = "125" /> <Asp: DataPoint AxisLabel = "Producto D " YValues = "957" /> </ Puntos> </ Asp: Serie> </ Series> <ChartAreas> <Asp: ChartArea Name = "ChartArea1"> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 34

<AxisY IsLogarithmic = "True" /> </ Asp: ChartArea> </ ChartAreas> <Legends> <Asp: Legend Name = "Legend1" title = "Producto Ventas "/> </ Leyendas> </ Asp: Grfico>

Uso de grficos 3-D La Grfico de control contiene una ChartAreas recoleccin, que puede contener ChartArea objetos que definen caractersticas de las reas de grfico. Por ejemplo, para usar en 3-D para un rea de grfico, utilice el Area3DStyle propiedad como en el ejemplo siguiente:
<Asp: ChartArea Name = "ChartArea1"> <Area3DStyle Rotacin = "10" Perspectiva = "10" Enable3D = "True" Inclinacin = "15" IsRightAngleAxes = "false" WallWidth = "0" IsClustered = "false" /> <% - Marcado adicional aqu -%> </ Asp: ChartArea>

La siguiente figura muestra un grfico 3-D con cuatro series de la Bar tipo de grfico.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 35

Mediante los saltos de escala y escalas logartmicas Quiebres de escala y las escalas logartmicas son dos formas adicionales para aadir sofisticacin a la carta. Estos caractersticas son especficas para cada eje en un rea del grfico. Por ejemplo, para utilizar estas caractersticas en el eje Y primario de un rea de grfico, utilice el AxisY.IsLogarithmic y ScaleBreakStyle propiedades en una ChartArea objeto. La siguiente fragmento de cdigo muestra cmo utilizar saltos de escala en el eje Y principal.
<Asp: ChartArea Name = "ChartArea1"> <axisy> <ScaleBreakStyle BreakLineStyle = "Wave" CollapsibleSpaceThreshold = "40" Enabled = "true" /> </ Axisy> <% - Marcado adicional aqu -%> </ Asp: ChartArea>

La figura siguiente muestra el eje Y, con quiebres de escala habilitadas.

Filtrado de datos con el control de QueryExtender

Una tarea muy comn para los desarrolladores que crean basadas en datos las pginas Web es para filtrar los datos. Este tradicional Se ha realizado mediante la construccin Donde clusulas en los controles de origen de datos. Este enfoque puede ser complicada, y en algunos casos el Donde la sintaxis no le permite tomar ventaja de la plena funcionalidad de la base de datos subyacente. Para hacer ms fcil el filtrado, una nueva QueryExtender control ha sido aadido en ASP.NET 4. Este control puede ser aadido a EntityDataSource o LinqDataSource controles con el fin de filtrar los datos devueltos por stos
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 36

controles. Debido a que el QueryExtender el control se basa en LINQ, se aplica el filtro en el servidor de base de datos antes de los datos se envan a la pgina, que se traduce en operaciones muy eficientes. La QueryExtender el control es compatible con una variedad de opciones de filtro. En las secciones siguientes se describen estas opciones y proporcionan ejemplos de cmo usarlos. Buscar Para la opcin de bsqueda, el QueryExtender de control realiza una bsqueda en campos especficos. En la siguiente ejemplo, el control utiliza el texto que se introduce en el TextBoxSearch de control y busca su contenido en el ProductName y Supplier.CompanyName las columnas de los datos que se devuelven desde el LinqDataSource controlar.
<Asp: LinqDataSource ID = "dataSource" runat = "server"> TableName = ""> Productos </ Asp: LinqDataSource> <Asp: QueryExtender TargetControlID = "dataSource" runat = "server"> <Asp: SearchExpression DataFields = "ProductName, Supplier.CompanyName " SearchType = "StartsWith"> <Asp: ControlParameter ControlID = "TextBoxSearch" /> </ Asp: SearchExpression> </ Asp: QueryExtender>

Serie La opcin de rango es similar a la opcin de bsqueda, pero especifica un par de valores para definir el intervalo. En el siguiendo el ejemplo, el QueryExtender busca en el control de Precio por unidad columna de los datos devueltos desde LinqDataSource controlar. La gama se lee desde el TextBoxFrom y TextBoxTo los controles sobre la pgina.
<Asp: LinqDataSource ID = "dataSource" runat = "server"> TableName = ""> Productos </ Asp: LinqDataSource> <Asp: QueryExtender TargetControlID = "dataSource" runat = "server"> <Asp: RangeExpression DataField = "PrecioUnidad" MinType = "inclusiva" MaxType = "inclusiva"> <Asp: ControlParameter ControlID = "TextBoxFrom" /> <Asp: ControlParameter ControlID = "TexBoxTo" /> </ Asp: RangeExpression> </ Asp: QueryExtender> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 37

PropertyExpression La opcin de la expresin de la propiedad permite definir una comparacin con un valor de la propiedad. Si la expresin se evala verdadero, los datos que estn siendo examinados se devuelve. En el ejemplo siguiente, el QueryExtender filtros de control de datos mediante la comparacin de los datos en el Suspendido columna en el valor de la CheckBoxDiscontinued controlar en la pgina.
<Asp: LinqDataSource ID = "dataSource" runat = "server" TableName = ""> Productos </ Asp: LinqDataSource> <Asp: QueryExtender TargetControlID = "dataSource" runat = "server"> <asp:PropertyExpression> <Asp: ControlParameter ControlID = "CheckBoxDiscontinued" name = "descatalogados" /> </ Asp: PropertyExpression> </ Asp: QueryExtender>

CustomExpression Por ltimo, se puede especificar una expresin personalizada para usar con el QueryExtender controlar. Esta opcin le permite llamar a una funcin en la pgina que define la lgica de filtro personalizado. El siguiente ejemplo muestra cmo declaracin especifica una expresin personalizada en el QueryExtender controlar.
<Asp: LinqDataSource ID = "dataSource" runat = "server" TableName = ""> Productos </ Asp: LinqDataSource> <Asp: QueryExtender TargetControlID = "dataSource" runat = "server"> <Asp: CustomExpression OnQuerying = "FilterProducts" /> </ Asp: QueryExtender>

El siguiente ejemplo muestra la funcin personalizada que se invoca por el QueryExtender controlar. En este caso, en lugar de utilizar una base de datos de consulta que incluye un Donde clusula, el cdigo utiliza una consulta LINQ to filtrar los datos.
protected void FilterProducts (object sender, CustomExpressionEventArgs e) { e.Query = de pen e.Query.Cast <Product> () donde p.UnitPrice> = 10 seleccionar p; }

Estos ejemplos muestran slo una expresin que se utiliza en el QueryExtender controlar a la vez. Sin embargo, puede incluir varias expresiones en el interior del QueryExtender controlar.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 38

Html expresiones de cdigo codificados

Algunos sitios de ASP.NET (en especial con ASP.NET MVC) dependen en gran medida sobre el uso de <% = Expresin%> sintaxis (A menudo llamado "cdigo de pepitas de oro") para escribir algn texto para la respuesta. Cuando se utilizan expresiones de cdigo, es fcil de olvidar para codificar en HTML el texto, si el texto proviene de la entrada del usuario, puede dejar las pginas abiertas de un XSS (Cross Site Scripting) ataque. ASP.NET 4 presenta la siguiente sintaxis nueva para las expresiones de cdigo:
<%: Expresin%>

Esta sintaxis utiliza la codificacin HTML de forma predeterminada cuando se escribe en la respuesta. Esta nueva expresin efectivamente se traduce en lo siguiente:
<% = HttpUtility.HtmlEncode (expresin)%> Por ejemplo, <%: Solicitud ["Entrada del usuario"]%> realiza la codificacin HTML en el valor de

Solicitud ["Entrada del usuario"]. El objetivo de esta funcin es hacer posible la sustitucin de todas las instancias de la sintaxis antigua con la nueva la sintaxis para que no se ven obligados a decidir en cada paso que se debe utilizar. Sin embargo, hay casos en que la salida de texto ser est destinado a ser HTML o se codifica ya, en cuyo caso esto podra conducir a doble codificacin. Para esos casos, ASP.NET 4 presenta una nueva interfaz, IHtmlString, junto con un hormign aplicacin, HtmlString. Los casos de este tipo permiten indicar que el valor de retorno es ya correctamente codificados (o de lo contrario examinados) para mostrar como HTML, y que por lo tanto, el valor debe no ser codificados en HTML de nuevo. Por ejemplo, el siguiente no debe ser (y no es) codifica en HTML:
<%: nuevo HtmlString ("<strong> HTML que no se codifica </ strong> ") %>

ASP.NET MVC 2 mtodos auxiliares se han actualizado para trabajar con esta nueva sintaxis para que no se doble codificacin, pero slo cuando se est ejecutando ASP.NET 4. Esta nueva sintaxis no funciona cuando se ejecutar una aplicacin usando ASP.NET 3.5 SP1. Tenga en cuenta que esto no garantiza la proteccin contra ataques XSS. Por ejemplo, HTML que utiliza valores de atributos que no estn en comillas puede contener la entrada del usuario que todava es susceptible. Ntese que la salida de los controles ASP.NET y ASP.NET MVC ayudantes siempre incluye los valores de atributos en la cotizacin marcas, que es el enfoque recomendado. Del mismo modo, esta sintaxis no lleva a cabo la codificacin de JavaScript, como por ejemplo cuando se crea una cadena de JavaScript basado en la entrada del usuario.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 39

Cambios en el proyecto de plantilla

En versiones anteriores de ASP.NET, cuando se utiliza Visual Studio para crear un proyecto nuevo sitio Web o Web Proyecto de aplicacin, los proyectos resultantes contienen slo una pgina Default.aspx, el incumplimiento Web.config archivo, y el App_Data carpeta, como se muestra en la ilustracin siguiente: Visual Studio tambin es compatible con un sitio web vaco tipo de proyecto, que no contiene archivos en absoluto, como se muestra en la siguiente figura: El resultado es que para el principiante, hay muy poca orientacin sobre cmo construir un sitio Web de la produccin aplicacin. Por lo tanto, ASP.NET 4 presenta tres nuevas plantillas, una para una aplicacin Web vaco proyecto, y uno cada uno para una aplicacin Web y el proyecto del sitio web. Web vaco de plantillas de aplicacin Como el nombre sugiere, la plantilla de aplicacin Web vaca es una aplicacin web despojada proyecto. Puede seleccionar esta plantilla de proyecto de Visual Studio cuadro de dilogo Nuevo proyecto, como se muestra en el la siguiente figura:
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 40

Cuando se crea un vaco en Aplicacin Web ASP.NET, Visual Studio crea el diseo de la carpeta siguiente: Esto es similar a la disposicin del sitio web vaco de versiones anteriores de ASP.NET, con una excepcin. En Visual Studio 2010, Web Application vacos o casi vacos proyectos de sitio web contiene los siguientes mnimos Web.config archivo que contiene informacin utilizada por Visual Studio para identificar el marco que la proyecto se dirige a: Sin esta targetFramework de propiedad, el valor predeterminado de Visual Studio a los objetivos. NET Framework 2.0 en el el fin de preservar la compatibilidad al abrir las aplicaciones ms antiguas.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 41

Aplicaciones Web y Plantillas de sitio Web del proyecto Las otras dos nuevas plantillas de proyecto que se distribuyen con Visual Studio 2010 contiene cambios importantes. La siguiente figura muestra el diseo del proyecto que se crea cuando se crea una nueva aplicacin Web proyecto. (El diseo de un proyecto de sitio web es prcticamente idntico.) El proyecto incluye una serie de archivos que no fueron creados en versiones anteriores. Adems, el nuevo Proyecto de aplicacin Web est configurada con la funcionalidad de los miembros de base, que le permite obtener rpidamente se inici en garantizar el acceso a la nueva aplicacin. Debido a esta inclusin, el Web.config archivo para la nuevo proyecto incluye las entradas que se utilizan para configurar la pertenencia, roles y perfiles. El siguiente ejemplo muestra el Web.config presentar un proyecto nuevo de aplicacin Web. (En este caso, roleManager es desactivada.)
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 42

El proyecto tambin contiene un segundo Web.config archivo en el Cuenta directorio. La segunda configuracin archivo proporciona una manera de asegurar el acceso a la pgina ChangePassword.aspx por falta de usuarios registrados. La siguiente ejemplo muestra el contenido de la segunda Web.config archivo. Las pginas creadas por defecto en las plantillas de proyecto nuevas contienen tambin ms contenido que en aos anteriores versiones. El proyecto contiene una pgina principal predeterminada y el archivo CSS, y es la pgina por defecto (Default.aspx) configurado para utilizar la pgina principal de forma predeterminada. El resultado es que cuando se ejecuta la aplicacin Web o
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 43

Sitio Web por primera vez, el valor predeterminado (inicio) ya es funcional. De hecho, es similar al pgina por defecto que se ve al poner en marcha una nueva aplicacin MVC. La intencin de estos cambios en las plantillas de proyecto es proporcionar orientacin sobre cmo iniciar la construccin de una nueva aplicacin web. Con semnticamente correcta, estricta XHTML 1.0 compatible con el marcado y con la disposicin que se especifica el uso de CSS, las pginas en las plantillas representan las mejores prcticas para la construccin de ASP.NET 4 Las aplicaciones Web. Las pginas predeterminadas tambin tienen un diseo de dos columnas que se pueden personalizar fcilmente. Por ejemplo, imagine que para una nueva aplicacin Web que desea cambiar algunos de los colores e insertar logotipo de su empresa en lugar de la Mi aplicacin ASP.NET logotipo. Para ello, se crea una nueva directorio en el Contenido para almacenar la imagen del logotipo: Para aadir la imagen a la pgina, a continuacin, abra la Site.Master presentar, encontrar dnde est el Mi ASP.NET Aplicacin el texto se define, y sustituirla por una imagen cuyo elemento src atributo se establece en el nuevo imagen del logotipo, como en el ejemplo siguiente:
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 44

A continuacin, puede entrar en el archivo Site.css y modificar definiciones de clases CSS para cambiar el color de fondo de la pgina, as como la de la cabecera, como en el ejemplo siguiente: El resultado de estos cambios es que se puede mostrar una pgina de inicio personalizada con muy poco esfuerzo:

Mejoras CSS

Una de las principales reas de trabajo de ASP.NET 4 ha sido ayudar a HTML de representacin que es compatible con la ltimos estndares HTML. Esto incluye cambios en la forma controles de servidor ASP.NET Web utilizan los estilos CSS.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 45

Compatibilidad Marco para la representacin de Por defecto, cuando una aplicacin web o sitio web dirigido. NET Framework 4, el controlRenderingCompatibilityVersion atributo del pginas elemento se establece en "4.0". Este elemento es definido en el nivel de equipo Web.config archivo y por defecto se aplica a todas las aplicaciones ASP.NET 4:
<system.web> Menores pginas controlRenderingCompatibilityVersion = "3,5 | 4,0" /> </ System.web>

El valor para controlRenderingCompatibility es una cadena, que permite a los posibles definiciones de la nueva versin de futuras versiones. En la versin actual, los valores siguientes son compatibles con esta propiedad: "3.5". Este valor indica la representacin heredada y marcado. Marcado que se representa por los controles es del 100% compatible hacia atrs, y el ajuste del xhtmlConformance la propiedad es un honor. "4.0". Si la propiedad tiene esta configuracin, controles de servidor ASP.NET Web haga lo siguiente: La xhtmlConformance la propiedad siempre es tratado como "estricto". Como resultado, los controles rendir XHTML 1,0 marcado estricta. Desactivacin de la no entrada de los controles ya no hace que los estilos no vlidos. div elementos alrededor de los campos ocultos estn ahora labrado para que no interfiera con el usuario creado CSS reglas. Los controles del men representan el marcado que es semnticamente correcto y compatible con la accesibilidad directrices. Los controles de validacin no se representan los estilos en lnea. Los controles que previamente prestados border = "0" (Controles que se derivan de la ASP.NET Mesa de control, y ASP.NET de la Imagen de control) ya no hacen este atributo. Controles de Desactivacin En ASP.NET 3.5 SP1 y versiones anteriores, el marco hace que el discapacitado atributo en el cdigo HTML marcado para ningn tipo de control, cuya Habilitado propiedad establecida en falso. Sin embargo, de acuerdo con el HTML 4,01 especificacin, slo entrada elementos que debe tener este atributo. En ASP.NET 4, se puede establecer el controlRenderingCompatabilityVersion propiedad a "3,5", como en el siguiendo el ejemplo:
<system.web> Menores pginas controlRenderingCompatibilityVersion = "3.5" /> </ System.web> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 46

Usted puede crear un formato para un Etiqueta controlar como la siguiente, que desactiva el control de:

<Asp: Label id = "Etiqueta" runat = "server" Text = "prueba" Enabled = "false">

La Etiqueta de control hara que el cdigo HTML siguiente:

<Span id = "Label1" disabled = "disabled"> Prueba </ span>

En ASP.NET 4, se puede establecer el controlRenderingCompatabilityVersion a "4.0". En ese caso, slo controla que hacen entrada elementos prestar un discapacitado atribuyen cuando el control es Habilitado propiedad se establece en falso. Los controles que no hacen HTML entrada los elementos en lugar de prestar un clase atributo que haga referencia una clase CSS que se puede utilizar para definir un aspecto de lesionados por el control. Por ejemplo, el Etiqueta controlar se muestra en el ejemplo anterior podra generar el siguiente marcado:
<Span id = "Label1" class = "aspNetDisabled"> Prueba </ span>

El valor predeterminado para la clase que se especifica para este control es "aspNetDisabled". Sin embargo, puede cambiar este valor por defecto mediante la esttica DisabledCssClass propiedad esttica de la WebControl clase. Para los programadores de controles, el comportamiento a utilizar para un control especfico tambin se puede definir mediante el SupportsDisabledAttribute propiedad.

Ocultacin de elementos div alrededor de los campos ocultos

ASP.NET 2.0 y versiones posteriores hacen especficos del sistema campos ocultos (como el oculto elemento utilizado para almacenar la informacin de estado de la vista) en el interior div elementos con el fin de cumplir con el estndar XHTML. Sin embargo, esto puede causar un problema cuando afecta a una regla CSS div elementos de una pgina. Por ejemplo, puede resultar en una de un pxel lnea que aparece en la pgina en torno oculta div elementos. En ASP.NET 4, div elementos que incluir los campos ocultos generados por ASP.NET, agregue una referencia de clase CSS como en el ejemplo siguiente:
<Div class = "aspNetHidden"> ... </ div>

A continuacin, puede definir una clase CSS que se aplica slo a la oculto elementos que son generados por ASP.NET, como en el ejemplo siguiente:
<Style type = "text / css"> # DIV aspNetHidden {Border: 0;} </ Style>

Representacin de una tabla externa para los controles con plantilla

De forma predeterminada, los siguientes controles de servidor Web ASP.NET que admiten plantillas son automticamente envuelto en una tabla externa que se utiliza para aplicar estilos en lnea: FormView
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 47

Iniciar sesin PasswordRecovery ChangePassword Mago CreateUserWizard Una nueva propiedad denominada RenderOuterTable Se ha aadido a estos controles que permiten la tabla externa ser removido de la marca. Por ejemplo, consideremos el siguiente ejemplo de un FormView control de:
<Asp: FormView ID = "FormView1" runat = "server"> <ItemTemplate> Contenido </ ItemTemplate> </ Asp: FormView>

Este margen hace que la siguiente salida a la pgina, que incluye una tabla HTML:
<Tabla cellspacing = "0" border = "0" id = "FormView1" style = "border-collapse: collapse;"> <tr> <Td colspan = "2"> Contenido </ Td> </ Tr> </ Table>

Para evitar que la tabla de la que se representa, se puede establecer el FormView control RenderOuterTable propiedad, como en el ejemplo siguiente:
<Asp: FormView ID = "FormView1" runat = "server" RenderOuterTable = "false"> Contenido

El ejemplo anterior hace que la salida siguiente, sin el tabla, tr, y td elementos: Esta mejora puede hacer que sea ms fcil de peinar el contenido del control con CSS, porque ningn etiquetas inesperados son prestados por el control. Nota Este cambio desactiva el soporte para la funcin de auto-formato en el diseador de Visual Studio 2010, porque ya no hay una mesa elemento que puede albergar los atributos de estilo que se generan por el auto-formato opcin.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 48

Control ListView de Mejoras

La ListView el control se ha hecho ms fcil de usar en ASP.NET 4. La versin anterior del control necesario especificar una plantilla de diseo que contiene un control de servidor con un ID conocida. La marcado siguiente se muestra un ejemplo tpico de cmo utilizar el ListView de control en ASP.NET 3.5.
<Asp: ListView ID = "ListView1" runat = "server"> <LayoutTemplate> <Asp: PlaceHolder ID = "ItemPlaceHolder" runat = "server"> </ asp: PlaceHolder> </ LayoutTemplate> <ItemTemplate> <% Eval ("LastName")%> </ ItemTemplate> </ Asp: ListView>

En ASP.NET 4, el ListView control no requiere una plantilla de diseo. El marcado se muestra en la ejemplo anterior puede ser sustituido por el siguiente marcado:
<Asp: ListView ID = "ListView1" runat = "server"> <ItemTemplate> <% Eval ("LastName")%> </ ItemTemplate> </ Asp: ListView>

CheckBoxList y RadioButtonList Control de Mejoras

En ASP.NET 3.5, puede especificar el diseo de la CheckBoxList y RadioButtonList utilizando los siguientes dos ajustes: Flujo. El control hace que lapso elementos que contienen su contenido. Tabla. El control hace que una mesa elemento para contener su contenido. El siguiente ejemplo muestra el marcado para cada uno de estos controles.
<Asp: CheckBoxList ID = "CheckBoxList1" runat = "server" RepeatLayout = "Flow"> <Asp: ListItem Text = "CheckBoxList" value = "CBL" /> </ Asp: CheckBoxList> <Asp: RadioButtonList runat = "server" RepeatLayout = "Tabla"> <Asp: ListItem Text = "RadioButtonList" value = "RBL" /> </ Asp: RadioButtonList> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 49

De forma predeterminada, los controles de representar HTML similar al siguiente:


<Span id = "CheckBoxList1"> <input id = "CheckBoxList1_0" type = "checkbox" name = "CheckBoxList1 $ 0" /> <Etiqueta para = "CheckBoxList1_0"> CheckBoxList </ label> </ span> <Tabla id = "RadioButtonList1" border = "0"> <tr> <td> <input id = "RadioButtonList1_0" type = "radio" name = "RadioButtonList1" value = "RBL" /> <Etiqueta para = "RadioButtonList1_0"> RadioButtonList </ label> </ td> </ Tr> </ Table>

Debido a que estos controles contienen listas de artculos, para representar HTML semnticamente correcto, se debe prestar su contenido utilizando HTML lista (li) elementos. Esto hace que sea fcil para los usuarios que leen las pginas Web usando tecnologa de asistencia, y hace que los controles ms fcil de peinar el uso de CSS. En ASP.NET 4, el CheckBoxList y RadioButtonList controles admiten los siguientes valores nuevos para la RepeatLayout la propiedad: OrderedList - El contenido se representa como li elementos dentro de un ol elemento. UnorderedList - El contenido se representa como li elementos dentro de un UL elemento. El siguiente ejemplo muestra cmo utilizar estos nuevos valores.
<Asp: CheckBoxList ID = "CheckBoxList1" runat = "server" RepeatLayout = "OrderedList"> <Asp: ListItem Text = "CheckBoxList" value = "CBL" /> </ Asp: CheckBoxList> <Asp: RadioButtonList ID = "RadioButtonList1" runat = "server" RepeatLayout = "UnorderedList"> <Asp: ListItem Text = "RadioButtonList" value = "RBL" /> </ Asp: RadioButtonList>

El marcado anterior genera el cdigo HTML siguiente:

<Ol id = "CheckBoxList1"> <li> <input id = "CheckBoxList1_0" type = "checkbox" name = "CheckBoxList1 $ 0" value = "CBL" /> <Etiqueta para = "CheckBoxList1_0"> CheckBoxList </ label> </ li> </ Ol> <Ul id = "RadioButtonList1"> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 50

<li> <input id = "RadioButtonList1_0" type = "radio" name = "RadioButtonList1" value = "RBL" /> <Etiqueta para = "RadioButtonList1_0"> RadioButtonList </ label> </ li> </ Ul>

Nota Si se establece RepeatLayout a OrderedList o UnorderedList, la RepeatDirection la propiedad no puede deje de utilizarse y se producir una excepcin en tiempo de ejecucin si la propiedad se ha establecido dentro de su marcado o cdigo. La propiedad no tendra ningn valor, porque el diseo visual de estos controles es define el uso de CSS en su lugar.

Mejoras del men de control

Antes de ASP.NET 4, el Men control representado una serie de tablas HTML. Esto hace ms difcil a aplicar estilos CSS fuera de la configuracin de las propiedades en lnea y tampoco era compatible con la accesibilidad normas. En ASP.NET 4, el control ahora representa HTML con marcado semntico, que consiste en una lista desordenada y los elementos de lista. El siguiente ejemplo muestra el marcado de una pgina ASP.NET para el Men controlar.
<Asp: Menu ID = "Menu1" runat = "server"> <items> <Asp: MenuItem Text = "Inicio" value = "Inicio" /> <Asp: MenuItem Text = "Acerca de" value = "Acerca de" /> </ Artculos> </ Asp: Menu>

Cuando se representa la pgina, el control produce el cdigo HTML siguiente (el onclick cdigo se ha omitido para mayor claridad):
<Div id = "Menu1"> <ul> <li> <a href = "#" onclick = "..."> Home </ a> </ li> <li> <a href = "#" onclick = "..."> Acerca de </ a> </ li> </ Ul> </ Div> <Script type = "text / javascript"> nueva Sys.WebForms.Menu ('Menu1'); </ Script>

Adems de mejoras en la representacin, navegacin mediante el teclado del men se ha mejorado utilizando enfoque de gestin. Cuando el Men control obtiene el foco, puede utilizar las teclas de flecha para navegar
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 51

elementos. La Men el control ahora tambin concede accesibles las aplicaciones de Internet enriquecidas (ARIA), y los roles siguientes atributos del Men directrices de ARIA para mejorar la accesibilidad. Estilos para el control del men se representan en un bloque de estilo en la parte superior de la pgina, en lugar de en lnea con el prestado elementos HTML. Si usted quiere tomar el control total sobre el estilo para el control, se puede establecer el nuevo IncludeStyleBlock propiedad para falsa, en cuyo caso el bloque de estilo no se emite. Una manera de utilizar esta propiedad es utilizar la funcin de auto-formato en el diseador de Visual Studio para definir el aspecto de la men. A continuacin, puede ejecutar la pgina, abra la fuente de la pgina, y luego copiar el bloque de estilo prestados a una archivo CSS externo. En Visual Studio, deshacer el diseo y ajuste IncludeStyleBlock a falso. El resultado es que la apariencia del men se define el uso de estilos en una hoja de estilos externa.

Asistente y controles CreateUserWizard

El ASP.NET Mago y CreateUserWizard controles admiten plantillas que le permiten definir el cdigo HTML que hacen. (Deriva de CreateUserWizard Asistente.) El siguiente ejemplo muestra el marcado de una plantilla totalmente CreateUserWizard control de:
<Asp: CreateUserWizard ID = "CreateUserWizard1" runat = "server" ActiveStepIndex = "0"> <HeaderTemplate> </ HeaderTemplate> <SideBarTemplate> </ SideBarTemplate> <StepNavigationTemplate> </ StepNavigationTemplate> <StartNavigationTemplate> </ StartNavigationTemplate> <FinishNavigationTemplate> </ FinishNavigationTemplate> <WizardSteps> <Asp: CreateUserWizardStep ID = "CreateUserWizardStep1" runat = "server"> <ContentTemplate> </ ContentTemplate> <CustomNavigationTemplate> </ CustomNavigationTemplate> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 52

</ Asp: CreateUserWizardStep> <Asp: CompleteWizardStep ID = "CompleteWizardStep1" runat = "server"> <ContentTemplate> </ ContentTemplate> </ Asp: CompleteWizardStep> </ WizardSteps> </ Asp: CreateUserWizard>

El control representa HTML similar al siguiente:

<Tabla cellspacing = "0" cellpadding = "0" border = "0" id = "CreateUserWizard1" style = "border-collapse: collapse;"> <tr> <td> encabezado </ td> </ Tr> <Tr style = "height: 100%;"> <td> <Tabla cellspacing = "0" cellpadding = "0" border = "0" style = "height: 100%; width: 100%; border-collapse: collapse;"> <tr> <Td style = "height: 100%; width: 100%;"> </ td> </ Tr> </ Table> </ Td> </ Tr> <tr> <Td align = "right"> </ td> </ Tr> </ Table>

En ASP.NET 3.5 SP1, aunque se puede cambiar el contenido de la plantilla, usted todava tiene un control limitado sobre la salida del Mago controlar. En ASP.NET 4, se puede crear un LayoutTemplate plantilla y el inserto PlaceHolder los controles (con nombres reservados) para especificar cmo desea que el Asistente para el control va a representar. La siguiendo el ejemplo muestra esto:
<Asp: CreateUserWizard ID = "CreateUserWizard1" runat = "server" ActiveStepIndex = "1"> <LayoutTemplate> <Asp: PlaceHolder ID = "headerPlaceholder" runat = "server" /> <Asp: PlaceHolder ID = "sideBarPlaceholder" runat = "server" /> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 53

<Asp: PlaceHolder id = "wizardStepPlaceholder" runat = "server" /> <Asp: PlaceHolder id = "navigationPlaceholder" runat = "server" /> </ LayoutTemplate> <HeaderTemplate> Encabezamiento </ HeaderTemplate> <WizardSteps> <Asp: CreateUserWizardStep runat = "server"> <ContentTemplate> </ ContentTemplate> </ Asp: CreateUserWizardStep> <Asp: CompleteWizardStep runat = "server"> <ContentTemplate> </ ContentTemplate> </ Asp: CreateUserWizardStep> </ WizardSteps> </ Asp: CreateUserWizard>

El ejemplo contiene los siguientes marcadores de posicin con nombre en el LayoutTemplate elemento: headerPlaceholder - En tiempo de ejecucin, esta se sustituye por el contenido del HeaderTemplate elemento. sideBarPlaceholder - En tiempo de ejecucin, esta se sustituye por el contenido del SideBarTemplate elemento. wizardStepPlaceHolder - En tiempo de ejecucin, esta se sustituye por el contenido del WizardStepTemplate elemento. navigationPlaceholder - En tiempo de ejecucin, esta se sustituye por las plantillas de navegacin que tiene definido. El marcado en el ejemplo que utiliza marcadores de posicin hace que el cdigo HTML siguiente (sin el contenido en realidad se define en las plantillas):
<span> </ Span>

El HTML slo que ahora no es definido por el usuario es una lapso elemento. (Esperamos que en futuras versiones, incluso el lapso elemento que no se muestren.) Esto ahora le da un control total sobre prcticamente todo el contenido que es generado por el Mago controlar.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 54

ASP.NET MVC
reas de Apoyo

ASP.NET MVC fue introducido como un marco de add-on para ASP.NET 3.5 SP1 en marzo de 2009. Visual Studio 2010 incluye ASP.NET MVC 2, que incluye nuevas caractersticas y capacidades. reas permiten controladores de grupo y puntos de vista en secciones de una aplicacin grande en un relativo aislamiento de la otras secciones. Cada rea puede ser implementado como un proyecto separado ASP.NET MVC que luego puede ser hace referencia a la aplicacin principal. Esto ayuda a gestionar la complejidad cuando se genera una aplicacin de gran tamao y hace ms fcil para varios equipos a trabajar juntos en una sola aplicacin.

Anotacin de datos de atributos de validacin de Apoyo

DataAnnotations atributos para colocarlo lgica de validacin de un modelo mediante el uso de atributos de metadatos. DataAnnotations atributos se introdujeron en datos dinmicos de ASP.NET en ASP.NET 3.5 SP1. Estos atributos se han integrado en la carpeta por defecto del modelo y proporcionan un medio basadas en metadatos-a validar la entrada del usuario.

Ayudantes con plantilla

Ayudantes con plantillas le permiten asociar automticamente editar y mostrar las plantillas con tipos de datos. Para ejemplo, puede utilizar una plantilla de ayuda para especificar que un elemento de interfaz de usuario de selector de fecha de forma automtica dictada por un System.DateTime valor. Esto es similar a las plantillas de campo de datos dinmicos de ASP.NET. La Html.EditorFor y Html.DisplayFor mtodos auxiliares se han incorporado en el apoyo a la prestacin normal Tipos de datos, as como objetos complejos con mltiples propiedades. Tambin personalizar la representacin, dejando solicitar datos de anotacin atributos como DisplayName y ScaffoldColumn al ViewModel objeto. A menudo usted desea personalizar la salida de los ayudantes de interfaz de usuario an ms y tener un control total sobre lo que se genera. La Html.EditorFor y Html.DisplayFor mtodos auxiliares apoyar esta utilizando un plantillas mecanismo que le permite definir plantillas externas que pueden anular y controlar la salida prestados. Las plantillas pueden ser prestados de forma individual para una clase.

Los datos dinmicos

Los datos dinmicos se introdujo en el. NET Framework 3.5 SP1 a mediados de 2008. Esta caracterstica proporciona muchas mejoras para la creacin de aplicaciones controladas por datos, incluyendo los siguientes:
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 55

Una experiencia RAD para construir rpidamente un sitio Web orientado a datos. Validacin automtica que se basa en las limitaciones definidas en el modelo de datos. La capacidad de cambiar fcilmente el formato que se genera para los campos de la GridView y DetailsView controles mediante el uso de plantillas de campo que forman parte de su proyecto de datos dinmicos. Nota Para obtener ms informacin, consulte la Datos de la documentacin dinmico en MSDN Library. Para ASP.NET 4, los datos dinmicos se ha mejorado para ofrecer a los desarrolladores an ms el poder de forma rpida la construccin basadas en los datos sitios Web.

Habilitacin de los datos dinmicos para los proyectos existentes

Las caractersticas de datos dinmicos que se entregan en las NET Framework 3.5 SP1 trajo nuevas caractersticas tales como el siguientes: Las plantillas de campo - Estas proporcionan plantillas de datos basadas en el tipo de controles enlazados a datos. Las plantillas de campo proporcionar una manera ms sencilla de personalizar el aspecto de los controles de datos que el uso de campos de la plantilla para cada campo. Validacin - Dynamic Data le permite utilizar los atributos en las clases de datos para especificar la validacin para el comn escenarios como los campos requeridos, la comprobacin de rango, comprobacin de tipos, de coincidencia de patrones utilizando regularmente expresiones, y de validacin personalizada. La validacin se aplican los controles de datos. Sin embargo, estas caractersticas tena los siguientes requisitos: La capa de acceso a datos tuvo que ser sobre la base de Entity Framework y LINQ to SQL. Los controles de datos slo de fuentes compatibles con estas caractersticas fueron la EntityDataSource o LinqDataSource controles. Las caractersticas requiere un proyecto Web que se haba creado con los datos dinmicos o de datos dinmicos Plantillas de las entidades con el fin de tener todos los archivos que se requieren para apoyar la funcin. Un objetivo importante de la ayuda de datos dinmicos de ASP.NET 4 es permitir que la nueva funcionalidad de datos dinmicos para cualquier aplicacin ASP.NET. El siguiente ejemplo muestra el marcado de los controles que pueden aprovechar de los datos de funcionalidad dinmica en una pgina existente.
<Asp: GridView ID = "GridView1" runat = "server" AutoGenerateColumns = "True" DataKeyNames = "ProductID" DataSourceID = "LinqDataSource1"> </ Asp: GridView> <Asp: LinqDataSource ID = "LinqDataSource1" runat = "server" ContextTypeName = "DataClassesDataContext" EnableDelete = "True" EnableInsert = "True" EnableUpdate = "True" TableName = ""> Productos </ Asp: LinqDataSource> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 56

En el cdigo de la pgina, el siguiente cdigo se debe agregar el fin de habilitar el soporte de datos dinmica para estos controles:
GridView1.EnableDynamicData (typeof (productos));

Cuando el GridView control est en modo de edicin, los datos dinmicos valida automticamente que los datos introducidos es en el formato adecuado. Si no lo es, un mensaje de error. Esta funcionalidad tambin ofrece otros beneficios, tales como ser capaz de especificar los valores predeterminados para la insercin modo. Sin los datos dinmicos, para poner en prctica un valor predeterminado para un campo, debe adjuntar a un evento, buscar el control (mediante FindControl), y establezca su valor. En ASP.NET 4, el EnableDynamicData llamar apoya un segundo parmetro que le permite pasar valores por defecto para cualquier campo en el objeto, como se muestra en este ejemplo:
DetailsView1.EnableDynamicData (typeof (del producto), el nuevo {ProductName = "DefaultName"});

Sintaxis declarativa del control de DynamicDataManager

La DynamicDataManager el control se ha mejorado para que pueda configurar de forma declarativa, al igual que mayora de los controles en ASP.NET, en lugar de slo en el cdigo. El marcado para la DynamicDataManager controlar se parece al ejemplo siguiente:
<Asp: DynamicDataManager ID = "DynamicDataManager1" runat = "server" AutoLoadForeignKeys = "true"> <DataControls> <Asp: DataControlReference ControlID = "GridView1" /> </ DataControls> </ Asp: DynamicDataManager> <Asp: GridView id = "GridView1" runat = "server" </ Asp: GridView>

Este margen permite que el comportamiento dinmico de datos para la GridView1 control que se hace referencia en el DataControls seccin de la DynamicDataManager controlar.

Plantillas de entidad

Plantillas de la entidad ofrecen una nueva forma de personalizar el diseo de los datos sin necesidad de crear un de pgina personalizado. Las plantillas de pgina utilice el FormView de control (en lugar del DetailsView de control, tal como se utiliza en plantillas de pgina en las versiones anteriores de datos dinmicos) y las DynamicEntity control para representar la entidad plantillas. Esto le da ms control sobre el marcado que se representa los datos dinmicos.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 57

La siguiente lista muestra el diseo del proyecto nuevo directorio que contiene las plantillas de la entidad:
\ \ \ \ \ DynamicData EntityTemplates DynamicData \ EntityTemplates \ Default.ascx DynamicData \ EntityTemplates \ Default_Edit.ascx DynamicData \ EntityTemplates \ Default_Insert.ascx La EntityTemplate directorio contiene las plantillas para la forma de mostrar los objetos de modelo de datos. De forma

predeterminada, los objetos se representan con el Default.ascx plantilla, que proporciona el marcado que se parece a el marcado creado por el DetailsView de control utilizado por los datos dinmicos en ASP.NET 3.5 SP1. El siguiente ejemplo muestra el marcado de la Default.ascx control de:
<Asp: EntityTemplate runat = "server" ID = "TemplateContainer1"> <ItemTemplate> <Tr <td> <Asp: Label ID = "Label1" runat = "server" OnInit = "Label_Init" /> </ Td> <td> <Asp: DynamicControl runat = "server" OnInit = "DynamicControl_Init" /> </ Td> </ Tr> </ ItemTemplate> </ Asp: EntityTemplate>

Las plantillas predeterminadas se pueden editar para cambiar el aspecto y la sensacin en todo el sitio. Hay plantillas para la visualizacin, edicin y las operaciones de insercin. Nuevas plantillas se pueden aadir en funcin del nombre de los datos objetos con el fin de cambiar la apariencia de un solo tipo de objeto. Por ejemplo, puede agregar el despus de plantilla:
\ DynamicData \ EntityTemplates \ Products.aspx

La plantilla puede contener el siguiente marcado:


<tr> <td> Nombre </ td> <td> <asp: DynamicControl runat = "server" DataField = "ProductName" /> </ Td> <td> Categora </ td> <td> <asp: DynamicControl runat = "server" DataField = "Categora" /> </ Td> </ Tr> ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 58

Las plantillas de la nueva entidad se muestran en una pgina mediante el uso de la nueva DynamicEntity controlar. En tiempo de ejecucin, este control se sustituye con el contenido de la plantilla de la entidad. El marcado siguiente se muestra la FormView control en el Detail.aspx pgina de la plantilla que utiliza la plantilla de la entidad. Observe el DynamicEntity elemento en el marcado.
<Asp: FormView runat = "server" ID = "FormView1" DataSourceID = "DetailsDataSource" OnItemDeleted = "FormView1_ItemDeleted"> <ItemTemplate> <Tabla class = "DDDetailsTable" cellpadding = "6"> <Asp: DynamicEntity runat = "server" /> <Tr class = "td"> <Td colspan = "2"> <Asp: DynamicHyperLink ID = "EditHyperLink" runat = "server" Action = "Editar" Text = "Editar" /> <Asp: LinkButton ID = "DeleteLinkButton" runat = "server" CommandName = "Delete" CausesValidation = "false" Retorno OnClientClick = ' confirmar ("Est seguro que desea eliminar este elemento ");? Text = "Borrar" /> </ Td> </ Tr> </ Table> </ ItemTemplate> </ Asp: FormView>

Nuevas plantillas de campo para las direcciones URL y direcciones de correo electrnico

ASP.NET 4 introduce dos nuevos incorporados en las plantillas de campo, EmailAddress.ascx y Url.ascx. Estos las plantillas se utilizan para los campos que estn marcados como EmailAddress o Url con el DataType atributo. Para EmailAddress objetos, el campo se muestra como un hipervnculo que se crea mediante la mailto: protocolo. Cuando los usuarios hacen clic en el vnculo, se abre el usuario de correo electrnico del cliente y crea un mensaje de esqueleto. Los objetos introducidos como Url se muestran como hipervnculos ordinarios. El siguiente ejemplo muestra cmo los campos se marc.
[Tipo de datos (DataType.EmailAddress)] objeto pblico HomeEmail { get; } ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 59

[Tipo de datos (DataType.Url)] objeto pblico Sitio web { get; }

Creacin de vnculos con el control de DynamicHyperLink

Los datos dinmicos utilizan la caracterstica de la nueva ruta que se ha agregado en el. NET Framework 3.5 Service Pack 1 para controlar las direcciones URL que los usuarios finales ver cuando acceda a la pgina web. El nuevo DynamicHyperLink el control se hace fcil construir enlaces a pginas de un sitio dinmico de datos. El siguiente ejemplo muestra cmo utilizar el DynamicHyperLink control de:
<Asp: DynamicHyperLink ID = "ListHyperLink" runat = "server" Action = "Lista" TableName = "Productos"> Mostrar todos los productos </ Asp: DynamicHyperLink>

Este marcado crea un enlace que apunta a la pgina de la lista para el Productos tabla basada en las rutas que son definido en el Global.asax archivo. El control utiliza automticamente el nombre de la tabla por defecto que la dinmica Pgina de datos se basa en.

Apoyo a la herencia en el modelo de datos

Tanto el Entity Framework y LINQ to SQL admiten la herencia en sus modelos de datos. Un ejemplo de este podra ser una base de datos que tiene una InsurancePolicy mesa. Tambin puede contener CarPolicy y HousePolicy tablas que tienen los mismos campos que InsurancePolicy y luego aadir ms campos. Dinmico Los datos se ha modificado para comprender los objetos heredados en el modelo de datos y para apoyar andamiaje para las tablas heredados.

Soporte para muchos-a-muchos (Entity Framework solamente)

El Entity Framework ofrece compatibilidad para muchos-a-muchas relaciones entre las tablas, lo cual es implementado mediante la exposicin de la relacin como una coleccin en un Entidad objeto. Nuevo ManyToMany.ascx y ManyToMany_Edit.ascx plantillas de campo se han aadido para proporcionar soporte para visualizar y edicin de datos que estn implicados en muchos-a-muchos.

Nuevos atributos para el Control de las enumeraciones de pantalla y soporte tcnico

La DisplayAttribute se ha aadido para darle ms control sobre cmo se muestran los campos. La DisplayName atributo en las versiones anteriores de los datos dinmicos permite cambiar el nombre que se utiliza como un ttulo para un campo. El nuevo DisplayAttribute clase le permite especificar ms opciones para la visualizacin de una campo, tales como el orden en que se visualiza un campo y si un campo se utiliza como un filtro. La
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 60

atributo tambin proporciona un control independiente del nombre que se utiliza para las etiquetas en un GridView control, el nombre utilizado en una DetailsView de control, el texto de ayuda para el campo, y la marca de agua utilizada para el campo (si el campo acepta el ingreso de texto). La EnumDataTypeAttribute la clase se ha aadido que le permite asignar campos a las enumeraciones. Cuando se aplicar este atributo a un campo, se especifica un tipo de enumeracin. Los datos dinmicos utilizan la nueva Enumeration.ascx plantilla de campo para crear la interfaz de usuario para mostrar y editar valores de la enumeracin. La plantilla asigna los valores de la base de datos a los nombres en la enumeracin.

Compatibilidad mejorada con filtros

Dinmica 1.0 Datos enviados con una funcin de filtros para las columnas booleanas y columnas de clave externa. Los filtros no le permiten especificar si se muestra o en qu orden se muestran. El nuevo DisplayAttribute atributo aborda ambas cuestiones, que le da el control sobre si una columna es muestra como un filtro y en qu orden se mostrar. Una de las novedades es que el apoyo de filtrado ha sido reescrito para utilizar el nuevo QueryExtender caracterstica de los formularios Web Forms. Esto le permite crear filtros sin necesidad de conocimientos de la fuente de datos controlar que los filtros se utiliza con. Junto con estas extensiones, filtros tambin se han convertido en los controles de la plantilla, lo que le permite aadir otras nuevas. Por ltimo, el DisplayAttribute de clase mencionado ms anterior permite que el filtro predeterminado para ser reemplazado, de la misma manera que UIHint permite que el campo por defecto plantilla para una columna para ser anulado.

Visual Studio 2010 mejoras en el desarrollo Web


Mejora de la compatibilidad de CSS

El desarrollo Web en Visual Studio 2010 se ha mejorado para una mayor compatibilidad CSS, el aumento de productividad a travs de fragmentos de HTML y ASP.NET marcado y nueva dinmica de IntelliSense de JavaScript. El diseador de Visual Web Developer en Visual Studio 2010 se ha actualizado para mejorar el CSS 2.1 cumplimiento de los estndares. El mejor diseador preserva la integridad del cdigo fuente HTML y es ms robusto que en versiones anteriores de Visual Studio. Bajo el cap, las mejoras arquitectnicas tambin han sido hecho, que permitir futuras mejoras en el renderizado, la disposicin y capacidad de servicio.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 61

Fragmentos de HTML y JavaScript

En el editor de HTML, IntelliSense completa automticamente los nombres de etiquetas. La caracterstica IntelliSense fragmentos de autocompleta las etiquetas completas y mucho ms. En Visual Studio 2010, fragmentos de IntelliSense son compatibles con JavaScript, junto con C # y Visual Basic, que fueron apoyadas en versiones anteriores de Visual Studio. Visual Studio 2010 incluye ms de 200 fragmentos que le ayudan a auto-comunes de ASP.NET y HTML etiquetas, incluidos los atributos necesarios (por ejemplo, runat = "server") Y los atributos especficos de una etiqueta (Tales como Identificacin, DataSourceID, ControlToValidate, y Texto). Puede descargar fragmentos adicionales, o puede escribir sus propios fragmentos que encapsulan los bloques de margen de beneficio que usted o su equipo utilizan para tareas comunes.

JavaScript IntelliSense Mejoras

En Visual 2010, JavaScript IntelliSense ha sido rediseado para ofrecer una experiencia de edicin an ms rico. IntelliSense ahora reconoce los objetos que han sido generadas dinmicamente por mtodos tales como registerNamespace y mediante tcnicas similares a los utilizados por otros frameworks de JavaScript. El rendimiento tiene se ha mejorado para analizar las grandes bibliotecas de secuencias de comandos y para mostrar IntelliSense con el procesamiento de poca o ninguna demore. Compatibilidad se ha incrementado dramticamente para apoyar casi todas las bibliotecas de terceros y apoyo a diversos estilos de codificacin. Los comentarios de documentacin ahora se analiza como se escribe y se de inmediato aprovechada por IntelliSense.

La implementacin de aplicaciones Web con Visual Studio 2010

Cuando los desarrolladores de ASP.NET implementar una aplicacin Web, a menudo encuentran que se encuentran temas como la el siguiente: Implementacin de un sitio de alojamiento compartido requiere de tecnologas tales como FTP, que puede ser lento. Adems, manualmente debe realizar tareas tales como ejecutar scripts de SQL para configurar una base de datos y usted debe cambiar la configuracin de IIS, como configurar una carpeta de directorio virtual como una aplicacin. En un entorno empresarial, adems de desplegar los archivos de aplicacin web, los administradores con frecuencia tiene que modificar los archivos de configuracin de ASP.NET y la configuracin de IIS. Los administradores de bases de datos deben ejecutar una serie de scripts de SQL para obtener el funcionamiento de aplicaciones de bases. Estas instalaciones son la mano de obra intensiva, a menudo tardan horas en completarse, y debe ser cuidadosamente documentada. Visual Studio 2010 incluye tecnologas que aborden estas cuestiones y que le permiten implementar sin problemas Las aplicaciones Web. Una de estas tecnologas es la herramienta IIS Web Deployment (MsDeploy.exe). Caractersticas de implementacin web en Visual Studio 2010 se incluyen las siguientes reas principales:
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 62

Web de envases Web.config de transformacin Base de datos de implementacin Un clic con el botn publicar para aplicaciones Web Las siguientes secciones proporcionan detalles acerca de estas caractersticas.

Web Packaging

Visual Studio 2010 utiliza la herramienta de MSDeploy para crear un archivo comprimido (. Zip) para su aplicacin, que se refiere como un Web paquete. El archivo de paquete contiene metadatos acerca de su aplicacin, ms la siguiente contenido: Configuracin de IIS, que incluye la configuracin del grupo de aplicaciones, la configuracin de pgina de error, y as sucesivamente. El contenido de la Web actual, que incluye pginas web, controles de usuario, el contenido esttico (imgenes y HTML archivos), y as sucesivamente. SQL Server base de datos y esquemas de datos. Los certificados de seguridad, componentes para instalar en la configuracin del GAC, registro, y as sucesivamente. Un paquete Web puede ser copiado a cualquier servidor y despus se instala de forma manual mediante el Administrador de IIS. Por otra parte, para el despliegue automatizado, el paquete puede ser instalado mediante el uso de la lnea de comandos comandos o mediante el uso de las API de implementacin. Visual Studio 2010 proporciona funcionalidad integrada en las tareas de MSBuild y objetivos para crear paquetes de Web. Para obtener ms informacin, consulte Aplicacin Web ASP.NET Informacin general del proyecto de implementacin en el sitio web de MSDN y 10 + 20 razones por las que se debe crear un paquete Web en el blog de Vishal Joshi.

Web.config Transformacin

Para la implementacin de aplicaciones Web, Visual Studio 2010 presenta Documento XML Transformacin (XDT), que es una caracterstica que le permite transformar un Web.config presentar en el contexto del desarrollo a los ajustes de produccin. Ajustes de transformacin se especifican en los archivos de transformacin con nombre web.debug.config, web.release.config, Y as sucesivamente. (Los nombres de estos archivos se corresponden con las configuraciones de MSBuild.) Una transformacin archivo incluye slo los cambios que usted necesita para hacer a un desplegado Web.config archivo. Se especifica el cambios mediante el uso de sintaxis simple. El siguiente ejemplo muestra una porcin de un web.release.config archivo que puede ser producido por despliegue de la configuracin de su liberacin. La Reemplazar palabra clave en el ejemplo se especifica que durante el el despliegue de la connectionString nodo en el Web.config archivo ser reemplazado por los valores que son enumeradas en el ejemplo.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 63

Menores connectionStrings xdt: Transform = "Reemplazar"> <Aadir name = "BlogDB" connectionString = "Conexin detalles cadena] " /> </ ConnectionStrings>

Para obtener ms informacin, consulte Sintaxis Transformacin Web.config para la implementacin de proyectos de aplicaciones Web en el sitio web de MSDN y Web Deployment: Transformacin Web.Config en el blog de Vishal Joshi.

Base de datos de implementacin de

Una de Visual Studio 2010 puede incluir paquete de implementacin de las dependencias en las bases de datos de SQL Server. Como parte de la definicin del paquete, se proporciona la cadena de conexin para la base de datos de origen. Cuando se crea el paquete Web, Visual Studio 2010 crea secuencias de comandos SQL para el esquema de base de datos y, opcionalmente, para el datos, y luego los agrega al paquete. Tambin puede proporcionar scripts de SQL y especificar el la secuencia en que deben ejecutarse en el servidor. En el tiempo de implementacin, proporciona una cadena de conexin que sea apropiado para el servidor de destino, el proceso de implementacin utiliza entonces esta cadena de conexin para ejecutar las secuencias de comandos que crean el esquema de base de datos y agregar los datos. Adems, mediante el uso de un clic con el botn publicar, usted puede configurar la implementacin de publicar su base de datos directamente cuando la aplicacin se publica en un sitio remoto de alojamiento compartido. Para obtener ms informacin, consulte Cmo: Implementacin de una base de datos con un proyecto de aplicacin Web en el sitio web de MSDN y Base de datos de implementacin de con VS 2010 en el blog de Vishal Joshi.

Uno-Haga clic en Publicar para aplicaciones Web

Visual Studio 2010 tambin le permite utilizar el servicio de administracin remota de IIS para publicar una aplicacin web para un servidor remoto. Se puede crear un perfil de publicacin para su cuenta de hosting o los servidores de prueba o servidores de ensayo. Cada perfil puede guardar de forma segura las credenciales apropiadas. A continuacin, puede implementar cualquiera de los servidores de destino con un solo clic mediante el uso de la Web con un solo clic publicar barra de herramientas. Con Visual Studio 2010, tambin puede publicar mediante el uso de la lnea de comandos de MSBuild. Esto le permite configurar su equipo de construccin medio ambiente para incluir la publicacin en un modelo continuo de integracin. Para obtener ms informacin, consulte Cmo: Implementar un proyecto de aplicacin Web con un solo clic en Publicar y Web Desplegar en el sitio web de MSDN y Web 1-Haga clic en Publicar con VS 2010 en el blog de Vishal Joshi. Para ver presentaciones en video acerca de la implementacin de aplicaciones Web en Visual Studio 2010, consulte VS 2010 para la Web Desarrollador Previews en el blog de Vishal Joshi.

Recursos

Los siguientes sitios Web proporcionan informacin adicional acerca de ASP.NET 4 y Visual Studio 2010.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 64

ASP.NET 4 - La documentacin oficial para ASP.NET 4 en el sitio web de MSDN. http://www.asp.net/~~V - El equipo de ASP.NET el propio sitio web. http://www.asp.net/dynamicdata/ y Datos dinmicos de ASP.NET Mapa de contenido - Recursos en lnea sobre el sitio del equipo de ASP.NET y en la documentacin oficial de datos dinmicos de ASP.NET. http://www.asp.net/ajax/~~V - El recurso de la Web principal para el desarrollo de ASP.NET Ajax. http://blogs.msdn.com/webdevtools/ - El Visual Web Developer Blog del equipo, que incluye informacin acerca de caractersticas de Visual Studio 2010. http://www.codeplex.com/aspnet - El recurso principal de Web para las versiones previas de ASP.NET.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 65

Renuncia

Este es un documento preliminar y puede cambiar sustancialmente antes del lanzamiento comercial definitivo de la software descrito en este documento. La informacin contenida en este documento representa la visin actual de Microsoft Corporation en los temas tratados a partir de la fecha de publicacin. Debido a que Microsoft debe responder a cambios del mercado condiciones, no debe interpretarse como un compromiso por parte de Microsoft, y Microsoft no puede garantizar la exactitud de la informacin presentada despus de la fecha de publicacin. Este Libro Blanco es slo para fines informativos. MICROSOFT NO OTORGA GARANTAS EXPRESAS, IMPLCITAS O LEGALES, EN CUANTO A LA INFORMACIN DE ESTE DOCUMENTO. Cumplir con todas las leyes de derechos de autor aplicables es responsabilidad del usuario. Sin limitar los derechos por derechos de autor, ninguna parte de este documento puede ser reproducida, almacenada o introducida en un sistema de recuperacin sistema, o transmitida en cualquier forma o por cualquier medio (electrnico, mecnico, fotocopia, grabacin o de lo contrario), o para cualquier propsito, sin el permiso expreso y por escrito de Microsoft Corporation. Microsoft puede tener patentes, solicitudes de patentes, marcas registradas, derechos de autor u otra propiedad intelectual los derechos sobre los contenidos de este documento. Salvo que se indique expresamente en el escrito de licencia Acuerdo de Microsoft, la entrega de este documento no le otorga ninguna licencia sobre estas patentes, marcas, derechos de autor u otra propiedad intelectual. A menos que se indique lo contrario, los ejemplos de compaas, organizaciones, productos, nombres de dominio, de correo electrnico electrnico, logotipos, personas, lugares y eventos mencionados son ficticios, y ninguna asociacin con compaa, organizacin, producto, nombre de dominio, direccin de correo electrnico, logotipo, persona, lugar o evento es pretende ni debe deducirse. 2009 Microsoft Corporation. Todos los derechos reservados. Microsoft y Windows son marcas comerciales registradas o marcas comerciales de Microsoft Corporation en los Estados Unidos y / u otros pases. Los nombres de compaas y productos reales aqu mencionados pueden ser marcas comerciales de sus respectivos propietarios.
ASP.NET 4 y Visual Studio 2010 Informacin general de Desarrollo Web 2010 Microsoft Corporation 66

Vous aimerez peut-être aussi