66
ASP.NET 4 y Visual Studio 2010 Web Información general sobre el Desarrollo Este documento proporciona una visión general de muchas de las nuevas características de ASP.NET que se incluyen en the.NET Framework 4 y Visual Studio 2010. Contenido Core Services Refactorización archivo Web.config 3 El almacenamiento en caché de salida extensible 3 Inicio automático de aplicaciones Web 5 Permanentemente Redirección de una página 7 Reducir el estado de sesión 7 Ampliar la gama de Admisible 8 Validación de solicitudes extensible 8 El almacenamiento en caché de objetos y extensibilidad almacenamiento en caché de objetos ............................................ .......................................... 9 HTML extensible, la URL y codificación de encabezado HTTP ......................................... ....................................... 11 Supervisión 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 Explícita ScriptManager 15 Los formularios Web Forms 16 Configuración 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 Configuración de los ID de cliente 29 La persistencia de la selección de filas en los controles de datos ............................................ .................................................. 33 ASP.NET gráfico de control 33 ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web © 2010 Microsoft Corporation 1

ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Embed Size (px)

Citation preview

Page 1: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

ASP.NET 4 y Visual Studio 2010 WebInformación general sobre el DesarrolloEste documento proporciona una visión general de muchas de las nuevas características de ASP.NET que se incluyen enthe.NET Framework 4 y Visual Studio 2010.

ContenidoCore ServicesRefactorización archivo Web.config 3El almacenamiento en caché de salida extensible 3Inicio automático de aplicaciones Web 5Permanentemente Redirección de una página 7Reducir el estado de sesión 7Ampliar la gama de Admisible 8Validación de solicitudes extensible 8El almacenamiento en caché de objetos y extensibilidad almacenamiento en caché de objetos ............................................ .......................................... 9HTML extensible, la URL y codificación de encabezado HTTP ......................................... ....................................... 11Supervisión del rendimiento para aplicaciones individuales en un proceso de trabajo individual .................................. 12Multi-Targeting 12Ajax 13jQuery incluye con formularios Web Forms y MVC ........................................... ................................................ 13Content Delivery Network 14Explícita ScriptManager 15Los formularios Web Forms 16Configuración de Meta Tags con las Page.MetaKeywords y propiedades Page.MetaDescription ..................... 16Habilitar el estado de vista para los controles individuales ............................................ ................................................ 17Cambios en navegador 19Enrutamiento de ASP.NET 25Configuración de los ID de cliente 29La persistencia de la selección de filas en los controles de datos ............................................ .................................................. 33ASP.NET gráfico de control 33ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation1

Page 2: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Filtrar datos con el control QueryExtender ............................................ .......................................... 36Html expresiones de código codificados 39Cambios en el proyecto de plantilla 40Mejoras CSS 45Ocultación de elementos div alrededor de los campos ocultos ............................................ ................................................. 47Representación de una tabla externa para los controles con plantillas ........................................... ..................................... 47Control ListView de Mejoras 49CheckBoxList RadioButtonList y mejoras de control ............................................. ....................... 49Mejoras del menú de control 51Asistente y controles CreateUserWizard .............................................. .................................................. . 52ASP.NET MVC 55Áreas 55Anotación de datos Soporte de validación de atributos ............................................ ........................................... 55Ayudantes con plantilla 55Los datos dinámicos 55Habilitación de los datos dinámicos para los proyectos existentes ............................................ .............................................. 56Sintaxis declarativa del control de DynamicDataManager .............................................. ................................... 57Plantillas de entidad 57Nuevas plantillas de campo para las direcciones URL y las direcciones de correo electrónico ........................................ ..................................... 59Creación de vínculos con el control de DynamicHyperLink ............................................ ................................... 60Apoyo a la herencia en el modelo de datos ........................................... ................................................. 60Soporte para muchos-a-muchos (Entity Framework solamente) ..................................... ................. 60Nuevos atributos para controlar la visualización y las enumeraciones de apoyo .......................................... .................... 60Compatibilidad mejorada con filtros 61Visual Studio 2010 mejoras en el desarrollo Web ............................................ ........................... 61Mejora de la compatibilidad de CSS 61Fragmentos de HTML y JavaScript 62IntelliSense de JavaScript Mejoras ............................................... .................................................. ... 62La implementación de aplicaciones Web con Visual Studio 2010 ........................................... ........................... 62Web Packaging 63Web.config Transformación 63Base de datos 64Un clic en Publicar para la Web 64ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation2

Page 3: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Recursos 6466

Core ServicesASP.NET 4 presenta una serie de características que mejoran los servicios básicos de ASP.NET, como el almacenamiento en caché de saliday una sesión de almacenamiento de estado.Refactorización archivo Web.configLa Web.config archivo que contiene la configuración de una aplicación web ha crecido considerablemente enlas versiones anteriores de pocos. NET Framework, como las nuevas características se han añadido, como el Ajax, el enrutamiento,y la integración con IIS 7. Esto ha hecho que sea más difícil de configurar o iniciar nuevas aplicaciones Web sin necesidad de unaherramienta como Visual Studio. En. NET Framework 4, los elementos de configuración más importantes han sido trasladados ala machine.config presentar, y las aplicaciones ahora heredan esta configuración. Esto permite que el Web.config archivo enASP.NET 4 aplicaciones ya sea para estar vacía o contener sólo las líneas siguientes, los cuales especifican para VisualEstudio de la versión del marco de la aplicación está dirigida a:<? Xml version = "1.0"?><configuration><system.web><compilation targetFramework="4.0" /></ System.web></ Configuration>

El almacenamiento en caché de salida extensibleDesde el momento en que ASP.NET 1.0, memoria caché de salida ha permitido a los desarrolladores para almacenar elgenera la producción de páginas, controles, y las respuestas HTTP en la memoria. En las solicitudes Web posteriores,ASP.NET puede servir contenido más rápidamente mediante la recuperación de la salida generada a partir de la memoria en lugar dela salida de datos desde cero. Sin embargo, este enfoque tiene una limitación - contenido generado por elsiempre tiene que ser almacenado en la memoria, y en los servidores que están experimentando mucho tráfico, la memoriaconsumida por el almacenamiento en caché de salida puede competir con las demandas de memoria de otras porciones de un Webaplicación.ASP.NET 4 agrega un punto de extensibilidad para el almacenamiento en caché de salida que le permite configurar una o máspersonalizados caché de resultados proveedores. Memoria caché de salida-los proveedores pueden utilizar cualquier mecanismo de almacenamiento para conservarEl contenido HTML. Esto hace que sea posible crear sus propios proveedores de la caché de resultados para la persistencia de diversosmecanismos, que pueden incluir discos locales o remotos, almacenamiento en nube, y los motores de caché distribuida.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation3

Page 4: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Para crear una costumbre de salida-caché del proveedor como una clase que se deriva de la nuevaSystem.Web.Caching.OutputCacheProvider tipo. A continuación, puede configurar el proveedor en el Web.configarchivo con el nuevo proveedores párrafo de la OutputCache elemento, como se muestra en la siguienteejemplo:<caching><OutputCache defaultProvider = "AspNetInternalProvider"><providers><Añadir name = "DiskCache"type = "Test.OutputCacheEx.DiskOutputCacheProvider, DiskCacheProvider "/></ Providers></ OutputCache></ Cache>De forma predeterminada en ASP.NET 4, todas las respuestas HTTP, páginas prestados, y los controles de utilizar la salida en la memoriacaché, como se muestra en el ejemplo anterior, donde el defaultProvider atributo se establece enAspNetInternalProvider. Puede cambiar la opción predeterminada de salida-caché utilizado para un proveedor de Internetaplicación especificando un nombre de proveedor diferente para defaultProvider.Además, puede seleccionar diferentes proveedores de la caché de resultados por el control y por solicitud. La manera más fácilpara elegir un proveedor de memoria caché de salida para los diferentes controles de usuario Web es hacerlo mediante declaraciónutilizando el nuevo providerName atributo en una directiva de control, como se muestra en el ejemplo siguiente:<% @ OutputCache Duración = "60" VaryByParam = "Ninguno" providerName = "DiskCache" %>Especificar un proveedor de caché de resultados diferentes para una solicitud HTTP requiere un trabajo un poco más. En lugar dedeclaración que especifica el proveedor, se reemplaza la nueva GetOuputCacheProviderName método en elGlobal.asax presentar para especificar mediante programación proveedor que va a utilizar para una solicitud específica. El siguienteejemplo muestra cómo hacer esto.public override string GetOutputCacheProviderName (HttpContext context){si (Context.Request.Path.EndsWith ("Advanced.aspx"))volver "DiskCache";másvolver base.GetOutputCacheProviderName (contexto);}Con la incorporación de la extensibilidad de proveedor de la producción-cache para ASP.NET 4, ahora se puede perseguir másagresivos y más inteligentes de almacenamiento en caché de salida de las estrategias para sus sitios web. Por ejemplo, ahora esposible almacenar en caché los "Top 10" páginas de un sitio en la memoria, mientras que el almacenamiento en caché las páginas que reciben reducción de pasajeros enASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation4

Page 5: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

disco. Alternativamente, usted puede almacenar en caché cada varían-por la combinación de una página representada, pero el uso de un sistema distribuidocaché para que el consumo de memoria se descarga desde los servidores front-end web.Inicio automático de aplicaciones WebAlgunas aplicaciones Web que cargar grandes cantidades de datos o realizar la inicialización costosael procesamiento antes de servir la primera solicitud. En versiones anteriores de ASP.NET, para estas situaciones tiene queelaborar enfoques personalizados para "despertar" de una aplicación ASP.NET ya continuación, ejecute el código de inicialización enla Application_Load método en el Global.asax archivo.Una característica de escalabilidad nuevo llamado inicio automático que aborda directamente este escenario está disponible cuandoASP.NET 4 se ejecuta en IIS 7.5 en Windows Server 2008 R2. La función de inicio automático proporciona un controlenfoque para la puesta en marcha de un grupo de aplicaciones, la inicialización de una aplicación ASP.NET, y luego aceptarPeticiones HTTP.IIS Aplicación de calentamiento Módulo para IIS 7.5El equipo de IIS ha lanzado la versión beta de la primera prueba de la aplicación de calentamiento Módulo para IIS7,5. Esto hace que el calentamiento de sus aplicaciones aún más fácil que se ha descrito anteriormente. En lugar deescribir código personalizado, debe especificar la URL de los recursos para ejecutar antes de la aplicación Webacepta las peticiones de la red. Este calentamiento se produce durante el inicio del servicio IIS (siconfigurado 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 continúa ejecutando las solicitudes hasta que el nuevoproceso generado trabajador se haya calentado totalmente, por lo que las aplicaciones no experimentan interrupciones ootros problemas debido a los cachés sin preparar. Tenga en cuenta que este módulo funciona con cualquier versión de ASP.NET,partir de la versión 2.0.Para obtener más información, consulte Aplicación de calentamiento en el sitio Web IIS.net. Para un tutorial en el quemuestra cómo utilizar la característica de calentamiento, consulte Introducción a IIS 7.5 AplicaciónWarm-Up del módulo en el sitio Web IIS.net.Para utilizar la función de inicio automático, un administrador de IIS establece un grupo de aplicaciones en IIS 7.5 de forma automáticacomenzó con la siguiente configuración en el applicationHost.config archivo:<applicationPools><Añadir name = "MyApplicationPool" StartMode = "AlwaysRunning" /></ ApplicationPools>Debido a que un grupo de aplicaciones puede contener múltiples aplicaciones, puede especificar las solicitudes individuales dese inicia automáticamente con la configuración siguiente en el applicationHost.config archivo:<sites>ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation5

Page 6: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Web < name = "Mi sitio" id = "1">Aplicación < path = "/"serviceAutoStartEnabled = "true"serviceAutoStartProvider = "PrewarmMyCache" ><! - El contenido adicional -></ Application></ Site></ Sitios><! - El contenido adicional -><serviceAutoStartProviders><Añadir name = "PrewarmMyCache"type = "MyNamespace.CustomInitialization, MyLibrary "/></ ServiceAutoStartProviders>Cuando un servidor de IIS 7.5 es frío iniciado o cuando un grupo de aplicación individual se recicla, IIS 7.5 utiliza elinformación en el applicationHost.config archivo para determinar qué aplicaciones web tienen que serinicia automáticamente. Para cada aplicación que está marcada para el inicio automático, IIS7.5 envía una solicitud alASP.NET 4 para iniciar la aplicación en un estado en el que la aplicación temporal no aceptaPeticiones HTTP. Cuando se encuentra en este estado, ASP.NET instancia del tipo definido por elserviceAutoStartProvider atributo (como se muestra en el ejemplo anterior) y pone en su entrada públicapunto.Puede crear una gestión de inicio automático de tipo con el punto de entrada necesario mediante la aplicación delIProcessHostPreloadClient interfaz, como se muestra en el ejemplo siguiente:public class CustomInitialization : System.Web.Hosting.IProcessHostPreloadClient{public void Precarga (String [] parámetros){/ / Realizar la inicialización.}}Después de que su código de inicialización se ejecuta en el Precarga método y el método de la rentabilidad, la de ASP.NETaplicación está lista para procesar peticiones.Con la incorporación de inicio automático de IIS 0.5 y ASP.NET 4, ahora tiene un enfoque bien definido parala realización de inicialización de la aplicación costosa antes de procesar la primera solicitud HTTP. Por ejemplo,ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation6

Page 7: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

puede utilizar la nueva función de inicio automático al iniciar una aplicación y luego indicar un equilibrador de carga quela aplicación se ha inicializado y listo para aceptar el tráfico HTTP.Permanentemente Redirección de una páginaEs una práctica común en las aplicaciones Web para mover las páginas y otros contenidos en torno a lo largo del tiempo, quepuede conducir a una acumulación de enlaces obsoletos en los motores de búsqueda. En ASP.NET, los desarrolladores tradicionalmente hanmaneja las solicitudes a las direcciones URL de edad mediante el uso mediante el Response.Redirect método para remitir una solicitud ala nueva dirección URL. Sin embargo, el Redirigir cuestiones de método HTTP 302 Found (redirección 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 método de ayuda que hace que sea fácil de emitir HTTP 301 MovedPermanentemente las respuestas, como en el ejemplo siguiente:RedirectPermanent ("/ newpath / foroldcontent.aspx");Los motores de búsqueda y otras aplicaciones de usuario que reconocen redirecciones permanentes almacenará la nueva dirección URL que esasociada con el contenido, lo que elimina la viaje innecesario redonda hecha por el navegador pararedirecciones temporales.Reducir el estado de sesiónASP.NET proporciona dos opciones por defecto para almacenar el estado de sesión a través de una granja de servidores web: un estado de sesiónproveedor que invoca un fuera de proceso de estado de sesión de servidor, y un proveedor de estado de sesión que almacenadatos en una base de datos de Microsoft SQL Server. Debido a que ambas opciones implican el almacenamiento fuera de la información de estadoproceso de una aplicación web de los trabajadores, el estado de sesión tiene que ser serializado antes de ser enviado al almacenamiento remoto.Dependiendo de la cantidad de información que un desarrollador guarda en el estado de sesión, el tamaño de los datos serializadospuede crecer bastante.ASP.NET 4 presenta una nueva opción de compresión para ambos tipos de fuera de proceso de estado de sesiónproveedores. Cuando el CompressionEnabled opción de configuración se muestra en el siguiente ejemplo se establece averdadero, ASP.NET, comprimen (y descomprimen) estado serializado sesión mediante. NET FrameworkSystem.IO.Compression.GZipStream clase.<SessionStatemode = "SQLServer"sqlConnectionString = "data source = dbserver; Initial Catalog = aspnetstate "allowCustomSqlDatabase = "true"CompressionEnabled = "true"/>ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation7

Page 8: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Con la simple adición del nuevo atributo al Web.config de archivos, aplicaciones con ciclos de CPU de repuestoen los servidores web pueden lograr reducciones sustanciales en el tamaño de los seriados de estado de sesión de datos.La ampliación del rango de direcciones URL permitidaASP.NET 4 introduce nuevas opciones para ampliar el tamaño de las direcciones URL de la aplicación. Las versiones anteriores deASP.NET limitada longitud de URL a 260 caracteres, basados en la ruta de acceso de archivos NTFS-límite. En ASP.NET 4,usted tiene la opción de aumentar (o disminuir) el límite adecuado para sus aplicaciones, utilizando dosnuevo httpRuntime atributos de configuración. El siguiente ejemplo muestra estos nuevos atributos.<HttpRuntime maxRequestPathLength = "260" maxQueryStringLength = "2048" />Para permitir que las rutas más largas o más cortas (la parte de la dirección URL que no incluye el protocolo, el nombre del servidor,y la cadena de consulta), modificar el maxRequestPathLength atributo. Para permitir que más o menos largo de cadenas de consulta,modificar el valor del maxQueryStringLength atributo.ASP.NET 4 también permite configurar los caracteres que se utilizan por la comprobación de caracteres URL. CuandoASP.NET encuentra un carácter no válido en la parte de ruta de una dirección URL, se rechaza la solicitud y emite un HTTP400 de error. En las versiones anteriores de ASP.NET, los controles de carácter URL se limita a un conjunto fijo depersonajes. En ASP.NET 4, usted puede personalizar el conjunto de caracteres válidos con el nuevorequestPathInvalidChars atributo del httpRuntime elemento de configuración, como se muestra en la siguienteejemplo:<HttpRuntime requestPathInvalidChars = "<,>, *,%, &,:, \"/>Por defecto, el requestPathInvalidChars atributo define ocho caracteres como no válido. (En la serie que seasignado 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 decaracteres no válidos, según 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 válidos 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, elhttp.sys controlador de dispositivo de protocolo rechaza automáticamente las direcciones URL con estos personajes.Validación de solicitudes extensibleLa validación de solicitudes de ASP.NET busca en los datos entrantes de solicitud HTTP para las cadenas que se utilizan comúnmente encross-site scripting (XSS) Los ataques. Si las cadenas posibles de XSS se encuentran, la validación de solicitudes marca el sospechosocadena y devuelve un error. La validación de las solicitudes incorporadas devuelve un error cuando se encuentra máscadenas comunes utilizados en los ataques XSS. Los intentos anteriores para hacer la validación XSS más agresivoASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation8

Page 9: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

dio lugar a demasiados falsos positivos. Sin embargo, los clientes puede ser que desee la validación de solicitudes que es másagresivo, o por el contrario puede ser que desee para relajar los controles intencionadamente XSS para páginas específicas o para determinadostipos de solicitudes.En ASP.NET 4, la función de la validación de solicitudes se ha hecho extensible, de modo que usted puede utilizar a medidasolicitud de validación de la lógica. Para extender la validación de solicitudes, se crea una clase que deriva de la nuevaSystem.Web.Util.RequestValidator escribir, y configurar la aplicación (en el httpRuntime secciónde los Web.config archivo) para utilizar el tipo de encargo. El siguiente ejemplo muestra cómo configurar una costumbresolicitud de validación de la clase:<httpRuntime requestValidationType="Samples.MyValidator, Samples" />El nuevo requestValidationType atributo requiere una norma. NET Framework cadena identificadora queespecifica la clase que proporciona la validación de solicitudes de encargo. Para cada solicitud, ASP.NET invoca eltipo personalizado para procesar cada pedazo de los datos entrantes de solicitud HTTP. La dirección URL entrante, todos los protocolos HTTP(cabeceras de las cookies y encabezados personalizados), y el cuerpo de la entidad están disponibles para su inspección por unsolicitud personalizado clase de validación como la que se muestra en el ejemplo siguiente:CustomRequestValidation clase de público: 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 validaciónpuede volver a caer para que el defecto de ASP.NET la validación de solicitudes ejecuta simplemente llamandobase.IsValidRequestString.El almacenamiento en caché de objetos y extensibilidad almacenamiento en caché de objetosDesde su primer lanzamiento, ASP.NET ha incluido un gran alcance en la memoria caché de objetos(System.Web.Caching.Cache). La aplicación caché ha sido tan popular que se ha utilizado enaplicaciones no Web. Sin embargo, es difícil para una Formas Windows o aplicación de WPF para incluir unreferencia a System.Web.dll sólo 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 nuevoespacio de nombres, algunos tipos de base, y una implementación de almacenamiento en caché de hormigón. El nuevoASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation9

Page 10: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

System.Runtime.Caching.dll ensamblado contiene una API de almacenamiento en caché de nuevo en el System.Runtime.Cachingespacio de nombres. El espacio de nombres contiene dos conjuntos básicos de clases:Los tipos abstractos que constituyen la base para la construcción de cualquier tipo de aplicación personalizada de caché.Un hormigón en memoria caché objeto de implementación (el System.Runtime.Caching.MemoryCacheclase).El nuevo MemoryCache clase se sigue muy de cerca en la memoria caché de ASP.NET, y que comparte gran parte de lacaché lógica interna del motor con ASP.NET. Aunque la API de almacenamiento en caché del público en System.Runtime.Cachingse han actualizado para apoyar el desarrollo de los depósitos de costumbre, si usted ha usado de ASP.NET Cacheobjeto, se encuentran conceptos familiares en las nuevas API.Una discusión en profundidad de la nueva MemoryCache clase y el apoyo a las API de base debe ser todo undocumento. Sin embargo, el siguiente ejemplo se le da una idea de cómo la API de caché de nuevas obras. Laejemplo, fue escrito para una aplicación de Windows Forms, sin ningún 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 múltiple (s) en el interior/ / De una sola aplicación.ObjectCache cache = MemoryCache.Default;/ / En este ejemplo la caché está almacenando el contenido de un archivocadena fileContents = cache ["filecontents"] como una cadena;/ / Si el contenido del archivo no está actualmente en la caché y, a continuación/ / 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 política CacheItemPolicy = nuevo CacheItemPolicy ();/ / Construir la información necesaria para crear una dependencia de archivo./ / En este caso sólo 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 Información general de Desarrollo Web© 2010 Microsoft Corporation10

Page 11: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

/ / Para este ejemplo, queremos que la entrada de la caché de forma automática 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 archivofileContents File.ReadAllText = ("c: \ \ datos.txt");/ / Y a continuación, almacenar el contenido del archivo en la memoria cachécache.Set ("filecontents", fileContents, la política);}MessageBox.Show (fileContents);}

HTML extensible, la URL y la codificación del encabezado HTTPEn ASP.NET 4, se puede crear rutinas personalizadas de codificación para los siguientes comunes de codificación de texto tareas:Codificación HTML.URL de codificación.Codificación de los atributos HTML.Codificación de las cabeceras HTTP de salida.Puede crear un codificador personalizado derivando de la nueva System.Web.Util.HttpEncoder tipo y, a continuaciónla configuración de ASP.NET para que utilice el tipo personalizado en el httpRuntime sección de la Web.config presentar, como se muestraen el ejemplo siguiente:<HttpRuntime encoderType = "Samples.MyCustomEncoder, Las muestras "/>Después de un codificador personalizado se ha configurado, ASP.NET llama automáticamente a la codificación personalizadade aplicación siempre que los métodos de codificación públicas de la System.Web.HttpUtility oSystem.Web.HttpServerUtility clases se llaman. Esto permite que una parte de un equipo de desarrollo Web crear uncodificador personalizado que implementa la codificación de caracteres agresivos, mientras que el resto del desarrollo del Webel equipo sigue utilizando la codificación de ASP.NET API pública. Al centro de la configuración de un codificador personalizado en lala httpRuntime elemento, se le garantiza que todas las llamadas de codificación de texto del público en ASP.NETcodificación de las API se enrutan a través del codificador personalizado.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation11

Page 12: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Supervisión del rendimiento para aplicaciones individuales en un proceso de trabajo individualCon el fin de aumentar el número de sitios Web que se pueden alojar en un único servidor, muchos hosters ejecutarvarias aplicaciones ASP.NET en un proceso de trabajo individuales. Sin embargo, si varias aplicaciones utilizan una solacompartida del proceso de trabajo, es difícil para los administradores de servidores para identificar una solicitud individual que esexperimentando problemas.ASP.NET 4 aprovecha la nueva funcionalidad de monitoreo de recursos presentado por el CLR. Para activar estafuncionalidad, se puede añadir el siguiente fragmento de configuración XML para el aspnet.config configuraciónarchivo.<? 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 elWeb.config archivo.Cuando el appDomainResourceMonitoring característica ha sido activada, dos contadores de rendimiento de los nuevosestán disponibles en la categoría "Aplicaciones ASP.NET" rendimiento: Gestionado% de tiempo de procesador yMemoria administrados utilizados. Ambos de estos contadores de rendimiento de CLR utilizar el nuevo dominio de la aplicaciónfunción de gestión de recursos para medir el tiempo estimado de utilización de la CPU y la memoria de gestiónlas aplicaciones ASP.NET individuales. Como resultado de ello, con ASP.NET 4, los administradores ahora tienen una más granularver en el consumo de recursos de las aplicaciones individuales que se ejecutan en un proceso de trabajo individual.Multi-TargetingPuede crear una aplicación que apunta a una versión específica de. NET Framework. En ASP.NET 4, un nuevoatributo en el compilación elemento del Web.config archivo permite orientar el 4. NET Framework ymás tarde. Si que se identifique explícitamente. NET Framework 4, y si se incluyen los elementos opcionales en elWeb.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 infierede la falta de una entrada en el Web.config archivo.)El siguiente ejemplo muestra el uso del targetFramework atributo en el compilación elemento dela Web.config archivo.<Recopilatorio targetFramework = "4.0" />ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation12

Page 13: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Tenga en cuenta lo siguiente sobre la orientación de una versión específica de. NET Framework:En una piscina. NET Framework 4, el sistema de generación ASP.NET asume. NET Framework 4,un destino si el Web.config archivo no incluye el targetFramework atributo o si el Web.configel archivo no existe. (Puede que tenga que hacer cambios de codificación para su aplicación para que funcione en el marco del. NET Framework 4.)Si se incluye el targetFramework atributo, y si el system.codedom elemento se define enla 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 aplicación (por ejemplo, en una construcciónmedio ambiente), debe utilizar la versión correcta de la aspnet_compiler comando para el objetivomarco. 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 yversiones anteriores. Utilice el compilador que viene con el 4. NET Framework para compilar aplicacionescreado con este marco o el uso de versiones posteriores.En tiempo de ejecución, el compilador utiliza las últimas asambleas del marco que se instalan en el ordenador(Y por tanto en la GAC). Si se efectúa una actualización más tarde con el marco (por ejemplo, un hipotéticola versión 4.1 está instalado), usted será capaz de utilizar las características de la versión más reciente de la estructura, inclusoaunque el targetFramework atributo se dirige a una versión inferior (por ejemplo, 4.0). (Sin embargo, en el diseñotiempo en Visual Studio 2010 o cuando se utiliza el aspnet_compiler comandos, usando las nuevas características deel marco hará que los errores del compilador).

AjaxjQuery incluye con formularios Web Forms y MVCLas plantillas de Visual Studio para ambos formularios Web Forms y MVC incluir la librería jQuery de código abierto. Cuandose crea una nueva página 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, versión unminified de la librería jQuery.jQuery 14.1.min.js - La versión miniaturizada de la librería jQuery.jQuery 1.4.1-vsdoc.js - El archivo de documentación de Intellisense para la librería jQuery.Incluye la versión unminified de jQuery, mientras que el desarrollo de una aplicación. Incluye la versión miniaturizada de lajQuery para aplicaciones de producción.Por ejemplo, la siguiente página de formularios Web ilustra cómo se puede usar jQuery para cambiar elcolor de fondo de ASP.NET los controles TextBox a amarillo cuando tiene el foco.<% @ Página Language = "C #" AutoEventWireup = "true" CodeFile = "ShowjQuery.aspx.cs"Inherits = "ShowjQuery" %>ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation13

Page 14: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

<! 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 ApoyoEl contenido de Microsoft Ajax Delivery Network (CDN) le permite añadir fácilmente ASP.NET Ajax y jQuerylas secuencias de comandos a las aplicaciones Web. Por ejemplo, usted puede comenzar a utilizar la librería jQuery, simplemente añadiendo un<script> etiqueta a la página 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 suAjax aplicaciones. El contenido de la CDN Microsoft Ajax se almacenan en caché en los servidores ubicados en todo elmundo. Además, la Microsoft AJAX CDN permite a los navegadores para reutilizar los archivos almacenados en caché de JavaScript para la Websitios 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 webpágina utilizando el protocolo Secure Sockets Layer.Para obtener más información acerca de la CDN Microsoft Ajax, visite el siguiente sitio web:ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation14

Page 15: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

http://www.asp.net/ajaxlibrary/CDN.ashxEl ScriptManager ASP.NET es compatible con el Microsoft Ajax CDN. Simplemente mediante el establecimiento de una propiedad, elLa propiedad EnableCdn, puede recuperar todos los archivos de ASP.NET Framework de JavaScript de la CDN:<Asp: ScriptManager ID = "SM1" EnableCdn = "true" runat = "server" />Después de establecer la propiedad EnableCdn al valor verdadero, el marco de ASP.NET recuperará todos ASP.NETmarco de JavaScript archivos de la CDN, incluyendo todos los archivos de JavaScript utilizados para la validación y lasUpdatePanel. Al establecer esta propiedad se puede tener un impacto dramático en el rendimiento de su webaplicación.Usted puede establecer la ruta de venta para sus propios archivos JavaScript mediante el atributo WebResource. El nuevoCdnPath propiedad especifica la ruta de la CDN utiliza cuando se establece la propiedad EnableCdn al valorverdad:[Assembly: WebResource ("Foo.js", "application / x-javascript", CdnPath ="Http://foo.com/foo/bar/foo.js")]ScriptManager explícitas secuencias de comandosEn el pasado, si ha utilizado la ScriptManger ASP.NET, entonces se requiere para cargar toda la monolíticaASP.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 sólo lacomponentes 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 automáticamente los MicrosoftAjax.jsarchivo de script, que es un archivo de comandos combinado de todos los scripts de marco básico (comportamiento heredado).Personas de movilidad reducida - Especifica que todas las características de Microsoft Ajax de secuencias de comandos están deshabilitadas y que elScriptManager de control no hace referencia a las secuencias de comandos de forma automática.Explícito - Especifica que de forma explícita, se incluyen referencias de secuencias de comandos a los recursos básicos marco individualarchivo de comandos que la página requiere, y que se incluyen referencias a las dependencias quecada archivo de secuencia de comandos requiere.Por ejemplo, si se establece la propiedad AjaxFrameworkMode al valor explícito a continuación, puede especificar elparticular, las secuencias de comandos de ASP.NET AJAX componentes que se necesitan:<Asp: ScriptManager ID = "SM1" AjaxFrameworkMode = "explícito" runat = "server"><Scripts><Asp: ScriptReference Name = "MicrosoftAjaxCore.js" /><Asp: ScriptReference Name = "MicrosoftAjaxComponentModel.js" />ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation15

Page 16: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

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

Los formularios Web FormsFormularios Web ha sido una característica central en ASP.NET desde el lanzamiento de ASP.NET 1.0. Muchas de las mejorashan estado en esta área para ASP.NET 4, incluyendo las siguientes:La capacidad de establecer meta etiquetas.Más control sobre el estado de vista.Más fáciles maneras de trabajar con las capacidades del navegador.Soporte para el uso con el enrutamiento de ASP.NET Web Forms.Más control sobre los identificadores generados.La capacidad de persistir filas seleccionadas en los controles de datos.Más control sobre el código HTML representado en el FormView y ListView controles.Apoyo de filtrado para los controles de origen de datos.Configuración de Meta Tags con las Page.MetaKeywords y Page.MetaDescriptionPropiedadesASP.NET 4 agrega dos propiedades a la Página clase, MetaKeywords y MetaDescription. Estos dospropiedades representan correspondiente meta etiquetas en la página, como se muestra en el ejemplo siguiente:<La cabeza id = "Título1" runat = "server">Página <title> título </ title><Meta name = "keywords" content = "Se trata, son, mis, palabras clave "/><Meta name = "description" content = "Este es la descripción de mi página "/></ Head>Estas dos propiedades funcionan del mismo modo que la página Título 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 página cuando es prestados.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation16

Page 17: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

2. Si ya hay meta las etiquetas con estos nombres, estas propiedades actúan como obtener y establecer métodos para la contenido de las etiquetas existentes.Puede establecer estas propiedades en tiempo de ejecución, que le permite obtener el contenido de una base de datos o de otro tipofuente, y que le permite configurar las etiquetas de forma dinámica para describir lo que una página en particular es para.También puede establecer el Palabras clave y Descripción propiedades en el @ Page Directiva en la parte superior de la webFormas página marcado, como en el ejemplo siguiente:<% @ Página Language = "C #" AutoEventWireup = "true"CodeFile = "Default.aspx.cs"Inherits = "_Default"Palabras clave = "Se trata, son, mis, palabras clave "Descripción = "Esta es una descripción "%>Esto anulará el meta contenido de la etiqueta (si existe) ya declaró en la página.Los contenidos del descripción meta etiquetas se utilizan para mejorar la búsqueda de inclusión previstas en Google. (Paramás información, consulte Mejorar fragmentos con un cambio de imagen descripción de la meta en el Centro para webmasters de Googleblog.) de Google y Windows Live Search no utilizar los contenidos de las palabras clave para cualquier cosa, pero otramotores de búsqueda de poder. Para obtener más información, consulte Palabras clave Meta Consejos en la Guía del Search EngineSitio web.Estas nuevas propiedades son una característica simple, pero te salvará de la obligación de agregar estosmanualmente o de escribir su propio código para crear el meta etiquetas.Habilitar el estado de vista para los controles individualesDe forma predeterminada, el estado de vista está habilitado para la página, con el resultado de que cada control en la página de potencialtiendas de estado de vista, incluso si no es necesario para la aplicación. Ver los datos de estado está incluido en el marcadoque una página genera y aumenta la cantidad de tiempo que se tarda en enviar una página al cliente y colocarloespalda. Almacenar más el estado de vista de la necesaria puede provocar una degradación del rendimiento significativo. Enversiones anteriores de ASP.NET, los desarrolladores pueden desactivar el estado de vista de los controles individuales a fin de reducirtamaño de la página, pero tuvo que hacerlo de forma explícita para los controles individuales. En ASP.NET 4, controles de servidor Web incluyen unaViewStateMode propiedad que le permite deshabilitar el estado de la vista por defecto y luego permitirle sólo para elcontroles que se requieren en la página.La ViewStateMode la propiedad tiene una enumeración que tiene tres valores: Activado, Desactivado, yHeredar. Habilitado permite que el estado de vista de que el control y para todos los controles secundarios que se establecen en Heredar oque han establecido nada. Discapacitado deshabilita el estado de vista y Heredar especifica que el control utiliza elViewStateMode establecimiento del control de los padres.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation17

Page 18: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

El siguiente ejemplo muestra cómo el ViewStateMode propiedad funciona. El marcado y el código para elcontroles en la página siguiente incluye valores para el ViewStateMode la propiedad:<Form id = "form1" runat = "server"><Script runat = "server">anulación 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 = "devolución de datos" /><% - Más marcado aquí -%>Como puede ver, los desactiva el estado de vista de código para el PLACEHOLDER1 controlar. El niño label1 controlarhereda este valor de la propiedad (Heredar es el valor predeterminado para ViewStateMode para los controles.) y por lo tantono salva a nadie el estado de vista. En el PLACEHOLDER2 de control, ViewStateMode se establece a Habilitado, tan label2 heredaesta propiedad y guarda el estado de vista. Cuando la página se carga por primera vez, el Texto característica de ambos Etiquetalos controles se establece en la cadena "* DynamicValue +".El efecto de esta configuración es que cuando la página carga por primera vez, la salida se muestra el siguienteen el navegador:Discapacitados: [DynamicValue]Habilitado:[DynamicValue]Después de una devolución 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 quese estableció en el código. Sin embargo, el label2 de control (cuya ViewStateMode valor se establece en ) Activado tieneconserva su estado.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation18

Page 19: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

También puede establecer ViewStateMode en el @ Page directiva, como en el ejemplo siguiente:<% @ Página Language = "C #" AutoEventWireup = "true"CodeBehind = "Default.aspx.cs"Inherits = "WebApplication1._Default"ViewStateMode = "Disabled" %>La Página la clase es más que otro de control, sino que actúa como control primario para todos los otros controles en la página.El valor predeterminado de ViewStateMode es Habilitado para las instancias de Página. Dado que los controles por defecto paraHeredar, controles heredarán el Habilitado valor de la propiedad a menos que establezca ViewStateMode en la página o el controlnivel.El valor del ViewStateMode propiedad determina si el estado de vista se mantiene sólo si elEnableViewState propiedad se establece en cierto. Si el EnableViewState propiedad se establece en falsa, el estado de vista seno se mantiene incluso si ViewStateMode se establece a Habilitado.Un buen uso de esta función es con ContentPlaceHolder controles en las páginas principales, donde se pueden establecerViewStateMode a Discapacitado para la página maestra y luego individualmente para permitir ContentPlaceHolderlos controles que a su vez contienen los controles que requieren el estado de vista.Cambios en funciones del exploradorASP.NET determina las funciones del explorador que un usuario está utilizando para navegar por su sitio web mediante el uso de unacaracterística llamada capacidades del navegador. Capacidades del explorador están representados por el HttpBrowserCapabilitiesobjeto (expuesta por el Request.Browser la propiedad). Por ejemplo, puede utilizar elHttpBrowserCapabilities objeto para determinar si el tipo y la versión del navegador actuales compatible con una versión particular de JavaScript. O bien, puede utilizar el HttpBrowserCapabilities oponerse adeterminar si la solicitud se originó desde un dispositivo móvil.La HttpBrowserCapabilities objeto es impulsado por un conjunto de archivos de definición del explorador. Estos archivos contieneninformación sobre las capacidades de los navegadores en particular. En ASP.NET 4, estos archivos de definición del exploradorse han actualizado para incluir información sobre los navegadores de reciente introducción y dispositivos tales comoGoogle Chrome, Research in Motion, los teléfonos inteligentes BlackBerry y el iPhone de Apple.La siguiente lista muestra los nuevos archivos de definición del explorador:blackberry.browserchrome.browserDefault.browserfirefox.browsergateway.browserASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation19

Page 20: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

generic.browserie.browseriemobile.browseriphone.browseropera.browsersafari.browserUso de funciones del explorador ProveedoresEn ASP.NET versión 3.5 Service Pack 1, puede definir las capacidades que tiene un navegador en la siguientemaneras:En el nivel de equipo, crear o actualizar una . Explorador Archivo XML en la carpeta siguiente:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ BrowsersDespués de definir las capacidades del navegador, ejecutar el siguiente comando desde el Visual StudioSímbolo del sistema con el fin de reconstruir el conjunto de funciones de explorador y agregarlo a la GAC:Aspnet_regbrowsers.exe-I cPara una aplicación individual, se crea una . Explorador en el archivo de la aplicación App_Browsers carpeta.Estos enfoques requieren que usted cambie los archivos XML, y los cambios de nivel del equipo, debe reiniciarla aplicación después de ejecutar el Aspnet_regbrowsers.exe proceso.ASP.NET 4 incluye una característica denominada capacidades de los proveedores de navegadores. Como su nombre lo indica, estele permite crear un proveedor que a su vez le permite utilizar su propio código para determinar las capacidades del navegador.En la práctica, los desarrolladores no suelen definir las capacidades de explorador. Los archivos del navegador son difíciles deactualización, el proceso de actualización es bastante complicado, y la sintaxis XML para . Explorador los archivos puedenser difícil de utilizar y definir. Lo que haría que este proceso es mucho más fácil si hubiera un comúnnavegador de sintaxis de la definición, o una base de datos que contenían hasta al día las definiciones de navegador, o incluso una webservicio para tal base de datos. La nueva función de navegador de las capacidades de los proveedores hace que estos escenariossea posible y práctico para los desarrolladores de terceras partes.Hay dos enfoques principales para utilizar el nuevo navegador de ASP.NET 4 función de proveedor de capacidades:ampliar las capacidades del navegador ASP.NET funcionalidad de definición, o en su totalidad que lo sustituya. El siguientesecciones describen primero la forma de reemplazar la funcionalidad, y luego cómo se extienden.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation20

Page 21: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Sustitución de la funcionalidad de las capacidades de explorador ASP.NETPara reemplazar el navegador ASP.NET capacidades funcionalidad de definición por completo, siga estos pasos:1.Crear una clase de proveedor que se deriva de HttpCapabilitiesProvider y que anula elGetBrowserCapabilities método, como en el ejemplo siguiente:public class CustomProvider : HttpCapabilitiesProvider{public override HttpBrowserCapabilitiesGetBrowserCapabilities (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 código de este ejemplo se crea una nueva HttpBrowserCapabilities objeto, especificando sólo elcapacidad de llamada navegador y el establecimiento de esa capacidad para MyCustomBrowser.2. Registre el proveedor de la aplicación.Con el fin de utilizar un proveedor con una aplicación, debe agregar la proveedor atribuyen a la browserCapsen la sección Web.config o Machine.config archivos. (También puede definir los atributos del proveedor en unubicación elemento para directorios específicos en aplicación, como en una carpeta para un dispositivo móvil específico.)El siguiente ejemplo muestra cómo establecer la proveedor atribuir en un fichero de configuración:<system.web>Menores browserCaps Provider = "ClassLibrary2.CustomProvider, ClassLibrary2,Version = 1.0.0.0, Culture = neutral "/></ System.web>Otra forma de registrar la definición de explorador nueva capacidad es utilizar código, como se muestra en la siguienteejemplo:anular Application_Start (object sender, EventArgs e){HttpCapabilitiesBase.BrowserCapabilitiesProvider =ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation21

Page 22: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

nuevo ClassLibrary2.CustomProvider ();/ / ...}Este código debe ejecutarse en el Application_Start caso de la Global.asax archivo. Cualquier cambio en elBrowserCapabilitiesProvider clase debe ocurrir antes de cualquier código de la aplicación se ejecuta, en orden aasegúrese de que el caché se mantiene en un estado válido para la resuelta HttpCapabilitiesBase objeto.Almacenamiento en caché del objeto HttpBrowserCapabilitiesEl ejemplo anterior tiene un problema, que es que el código se ejecuta cada vez que la costumbreproveedor se invoca con el fin de obtener el HttpBrowserCapabilities objeto. Esto puede ocurrir varias vecesdurante cada petición. En el ejemplo, el código del proveedor no hace mucho. Sin embargo, si el códigoen 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 HttpBrowserCapabilitiesobjeto. 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 HttpBrowserCapabilitiesGetBrowserCapabilities (solicitud HttpRequest){cadena cacheKey BuildCacheKey = ();int cacheTime GetCacheTime = ();HttpBrowserCapabilities browserCaps =HttpContext.Current.Cache [cacheKey] comoHttpBrowserCapabilities;si (BrowserCaps == null){HttpBrowserCapabilities browserCaps = nuevoHttpBrowserCapabilities ();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 Información general de Desarrollo Web© 2010 Microsoft Corporation22

Page 23: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

}volver browserCaps;}}En el ejemplo, el código genera una clave de caché llamando una costumbre BuildCacheKey método, y seobtiene la longitud de tiempo para llamar a un caché por costumbre GetCacheTime método. El código a continuación, añade laresuelto 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 aplicación como se describe en el procedimiento anterior.Ampliación de las capacidades de explorador ASP.NET FuncionalidadLa sección anterior describe cómo crear una nueva HttpBrowserCapabilities objeto en ASP.NET 4. UstedTambién puede ampliar la funcionalidad del navegador ASP.NET capacidades mediante la adición de nuevas capacidades de navegadordefiniciones a las que ya están en ASP.NET. Usted puede hacer esto sin usar el navegador XMLdefiniciones. El procedimiento siguiente muestra cómo hacerlo.1. Cree una clase que se deriva de HttpCapabilitiesEvaluator y que anula el GetBrowserCapabilities método, como se muestra en el ejemplo siguiente:public class CustomProvider : HttpCapabilitiesEvaluator{public override HttpBrowserCapabilitiesGetBrowserCapabilities (solicitud HttpRequest){HttpBrowserCapabilities browserCaps =base.GetHttpBrowserCapabilities (petición);si (BrowserCaps.Browser == "Desconocido"){browserCaps = MyBrowserCapabilitiesEvaulator (petición);}volver browserCaps;}}Este código 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 información definida en la solicitud (es decir, si elNavegador característica de la HttpBrowserCapabilities objeto es la cadena "desconocido"), el código llama a laproveedor personalizado (MyBrowserCapabilitiesEvaluator) Para identificar el navegador.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation23

Page 24: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

2. Registrar el proveedor con la aplicación como se describe en el ejemplo anterior.Ampliación de la funcionalidad de navegador de prestaciones con la incorporación de nuevas capacidades existentesCapacidades DefinicionesAdemás de crear un proveedor de definición del explorador personalizado y la creación dinámica nueva del navegadordefiniciones, se puede extender las definiciones existentes navegador con capacidades adicionales. Esto le permite utilizar undefinición que se acerca a lo que quieras, pero carece de sólo unos pocos capacidades. Para ello, utilice el siguientepasos.1. Cree una clase que se deriva de HttpCapabilitiesEvaluator y que anula el GetBrowserCapabilities método, como se muestra en el ejemplo siguiente:public class CustomProvider : HttpCapabilitiesEvaluator{public override HttpBrowserCapabilitiesGetBrowserCapabilities (solicitud HttpRequest){HttpBrowserCapabilities browserCaps =base.GetHttpBrowserCapabilities (petición);browserCaps.Frames = cierto;browserCaps.Capabilities ["MultiTouch"] = "Verdadero";volver browserCaps;}}El código de ejemplo se extiende la actual ASP.NET HttpCapabilitiesEvaluator clase y obtiene elHttpBrowserCapabilities objeto que coincide con la definición actual solicitud mediante el siguientecódigo:HttpBrowserCapabilities browserCaps =base.GetHttpBrowserCapabilities (petición);El código a continuación, puede añadir o modificar la capacidad de este navegador. Hay dos formas de especificar una nuevanavegador de la capacidad de:Añadir un par clave / valor a la IDictionary objeto que está expuesta por el Capacidades característica de laHttpCapabilitiesBase objeto. En el ejemplo anterior, el código añade una capacidad de llamadaMultiTouch con un valor de cierto.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation24

Page 25: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Definición de las propiedades existentes en la HttpCapabilitiesBase objeto. En el ejemplo anterior, el códigoestablece el Marcos propiedad para cierto. Esta propiedad no es más que un descriptor de acceso para el IDictionary objetoque está expuesta por el Capacidades propiedad.Nota Este modelo se aplica a cualquier propiedad de la HttpBrowserCapabilities, incluyendo el controladaptadores.2. Registrar el proveedor con la aplicación como se describe en el procedimiento anterior.Enrutamiento de ASP.NET 4ASP.NET 4 añade soporte integrado para el uso de enrutamiento con formularios Web Forms. Routing le permite configurar unaaplicación para que acepte una demanda de direcciones URL que no se asignan a los archivos físicos. En su lugar, puede utilizar el enrutamiento dedefinir las direcciones URL que sean significativas para los usuarios y que puede ayudar con la optimización de los motores de búsqueda (SEO) parasu aplicación. Por ejemplo, la URL de una página que muestra las categorías de productos en una ya existentela aplicación podría ser similar al siguiente ejemplo:http://website/products.aspx?categoryid=12Mediante el uso de enrutamiento, puede configurar la aplicación para aceptar la siguiente dirección URL para hacer que la mismainformación:http://website/products/softwareEnrutamiento ha estado disponible a partir de ASP.NET 3.5 SP1. (Para un ejemplo de cómo utilizar el encaminamiento enDe 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 características que lo hacen más fácil 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 página que la solicitud se dirige a.Las nuevas propiedades HttpRequest.RequestContext y Page.RouteData (Lo cual es un indicador de laHttpRequest.RequestContext.RouteData objeto). Estas propiedades hacen que sea más fácil accesoinformación que se pasa de la ruta.Los siguientes nuevos constructores de expresión, que se definen enSystem.Web.Compilation.RouteUrlExpressionBuilder ySystem.Web.Compilation.RouteValueExpressionBuilder:RouteUrl, que proporciona una forma sencilla de crear una dirección URL que corresponde a una ruta dentro de la URLun control de servidor ASP.NET.RouteValue, que proporciona una forma sencilla para extraer información de la RouteContext objeto.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation25

Page 26: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

La RouteParameter clase, que hace más fácil para pasar los datos contenidos en un RouteContext oponerse auna consulta para un control de origen de datos (similar a la FormParameter).Enrutamiento para páginas Web FormsEl siguiente ejemplo muestra cómo definir una ruta de formularios Web Forms mediante el uso de la nueva MapPageRoutemétodo del Ruta clase:public class Global : System.Web.HttpApplication{anular Application_Start (object sender, EventArgs e){RouteTable.Routes.MapPageRoute ("SearchRoute","Búsqueda / {} término de búsqueda", "~ / search.aspx");RouteTable.Routes.MapPageRoute ("UserRoute","Los usuarios de / {nombre de usuario}", "~ / users.aspx");}}ASP.NET 4 presenta el MapPageRoute método. El siguiente ejemplo es equivalente alSearchRoute definición se muestra en el ejemplo anterior, pero utiliza el PageRouteHandler clase.RouteTable.Routes.Add ("SearchRoute", nuevo Ruta ("search / {} término de búsqueda",nueva PageRouteHandler ("~ / search.aspx")));El código en el ejemplo de traza de la ruta a una página física (en la primera ruta, que ~ / Search.aspx). Ladefinición de la primera ruta también se especifica que el parámetro denominado término de búsqueda debe ser extraído de laURL y pasa a la página.La MapPageRoute método es compatible con las sobrecargas del método 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 parámetro especifica si la ruta debe comprobar la seguridadpermisos de la página física sea dirigido a (en este caso, search.aspx) Y los permisos dela dirección de entrada (en este caso, buscar / {} término de búsqueda). Si el valor de checkPhysicalUrlAccess es falsa,sólo los permisos de la dirección URL entrante será verificada. Estos permisos se definen en elWeb.config presentar con la configuración, tales como los siguientes:ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation26

Page 27: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

<configuration><Ubicación path = "search.aspx"><system.web><authorization><Permiten los roles = "admin" /><Niegan los usuarios = "*" /></ Authorization></ System.web></ Location><Ubicación path = "Buscar"><system.web><authorization><Permiten los usuarios = "*" /></ Authorization></ System.web></ Location></ Configuration>En la configuración de ejemplo, se niega el acceso a la página física search.aspx para todos los usuarios exceptoaquellos que están en el administración papel. Cuando el checkPhysicalUrlAccess parámetro se establece en verdadero (Que es suel valor por defecto), sólo administración los usuarios pueden acceder a la URL / Search / {} término de búsqueda, Debido a que elpágina física search.aspx está restringido a usuarios en ese papel. Si checkPhysicalUrlAccess se establece a falso yel sitio está configurado como se muestra en el ejemplo anterior, todos los usuarios autenticados pueden acceder ala dirección URL / Search / {} término de búsqueda.La lectura de información de enrutamiento en una página de formularios Web FormsEn el código de la página Web Forms física, puede acceder a la información de enrutamiento que se ha extraídodesde la dirección URL (o cualquier otra información que otro objeto ha añadido a la RouteData objeto) mediantedos nuevas propiedades: HttpRequest.RequestContext y Page.RouteData. (Page.RouteData envuelveHttpRequest.RequestContext.RouteData.) El siguiente ejemplo muestra cómo utilizar Page.RouteData.protected void Page_Load (object sender, EventArgs e){cadena = término de búsqueda Page.RouteData.Values ["término de búsqueda"] como una cadena;Label1.Text = término de búsqueda;}El código extrae el valor que se pasó para el término de búsqueda parámetro, tal como se define en el ejemploruta anterior. Tenga en cuenta la siguientes URL:ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation27

Page 28: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

http://localhost/search/scott/Cuando esta solicitud se hace, la palabra "Scott" se representa en el search.aspx página.Acceso a la información de enrutamiento en el marcadoEl método descrito en la sección anterior se muestra cómo obtener los datos de ruta en el código en una Web Formspágina. También puede utilizar las expresiones en el marcado que le dan acceso a la misma información. Expresiónlos constructores son una forma eficaz y elegante para trabajar con código declarativo. (Para obtener más información, consulte laentrada Exprésate 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 muestracómo usarlos.<Asp: HyperLink ID = "HyperLink1" runat = "server"NavigateUrl = "<% $ RouteUrl: SearchTerm =% scott>"> Buscar para Scott </ asp: HyperLink>En el ejemplo, el RouteUrl expresión se utiliza para definir una dirección que se basa en un parámetro ruta. Estenos evita tener que codificar la URL completa en el marcado, y le permite cambiar la dirección URLestructurar más adelante sin necesidad de ningún cambio en este enlace.Sobre la base de la ruta definida anteriormente, este marcado genera la siguiente URL:http://localhost/search/scottASP.NET funciona automáticamente la ruta correcta (es decir, que genera la dirección correcta) basado en elparámetros de entrada. También puede incluir un nombre de ruta en la expresión, que le permite especificar una ruta deutilizar.El siguiente ejemplo muestra cómo utilizar el RouteValue expresión.<Asp: Label ID = "Label1" runat = "server" Text = "<% $ RouteValue: SearchTerm%>" />Cuando la página que contiene este control se ejecuta, el valor de "Scott" se muestra en la etiqueta.La RouteValue expresión hace que sea fácil de usar datos de la ruta en el marcado, y evita tener que trabajarcon el más complejo Page.RouteData ["x"] la sintaxis en el marcado.Uso de los datos de ruta de los parámetros de datos de control de código fuenteLa RouteParameter clase le permite especificar datos de la ruta como valor de parámetro para las consultas en una fuente de datoscontrolar. 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 Información general de Desarrollo Web© 2010 Microsoft Corporation28

Page 29: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

ConnectionString = "<% $ ConnectionStrings: MyNorthwind%> "SelectCommand = "SELECT CompanyName, ShipperID de los cargadores cuandoCompanyName = @ CompanyName "<selectparameters><Asp: routeparameter name = "CompanyName" RouteKey = "término de búsqueda" /></ SelectParameters></ Asp: SqlDataSource>En este caso, el valor del parámetro ruta término de búsqueda se utilizará para el @ CompanyName parámetroen el Seleccionar declaración.Configuración de los ID de clienteEl nuevo ClientIDMode la propiedad se dirige a un problema de larga data en ASP.NET, es decir, cómo crear controlesla identificación atributo para los elementos que hacen. El conocimiento de la identificación atributo para los elementos prestados esimportante si la aplicación incluye un script de cliente que hace referencia a estos elementos.La identificación atributo HTML que se representa para los controles de servidor Web se genera a partir de la ClientIDpropiedad del control. Hasta ASP.NET 4, el algoritmo para generar el identificación atributo de la ClientIDpropiedad ha sido para concatenar el contenedor de nombres (si existe) con el ID, y en el caso de repetirselos controles (como en los controles de datos), para agregar un prefijo y un número secuencial. Si bien esto siempre ha garantizadoque los identificadores de los controles en la página son únicos, el algoritmo se ha traducido en identificadores de control que no fueronpredecible, y por lo tanto difícil de referenciar en el script de cliente.El nuevo ClientIDMode la propiedad permite especificar con mayor precisión cómo el ID de cliente se genera paracontroles. Puede configurar el ClientIDMode la propiedad de cualquier control, incluyendo la página. Los ajustes posiblesson los siguientes:AutoID - Esto es equivalente al algoritmo para generar ClientID valores de las propiedades que se utilizan enversiones anteriores de ASP.NET.Estático - Esto especifica que el ClientID valor será el mismo que el ID sin la concatenación delIdentificadores 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 webde control puede estar situado en páginas diferentes y en los controles contenedores diferentes, puede ser difícil paraescribir script de cliente para los controles que utilizan la AutoID algoritmo porque no se puede predecir lo que el IDvalores será.Previsible - Esta opción es principalmente para su uso en los controles de datos que utilizan plantillas de repetición. Loconcatena las propiedades de identificación de los contenedores de nomenclatura del control, sino que se generan ClientID Los valores hacenno contienen cadenas como "ctlxxx". Este ajuste funciona en conjunción con el ClientIDRowSuffixpropiedad del control. Se establece el ClientIDRowSuffix propiedad en el nombre de un campo de datos, y elASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation29

Page 30: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

valor de ese campo se utiliza como el sufijo para el generado ClientID valor. Normalmente, se utiliza elclave 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 generación de un control de identificación eslo mismo que su padre.Puede configurar el ClientIDMode la propiedad a nivel de página. Esto define el valor por defecto ClientIDMode valor paratodos los controles en la página actual.El valor por defecto ClientIDMode valor en el nivel de la página es AutoID, y el valor predeterminado ClientIDMode valor en elnivel de control es Heredar. Como resultado, si no se establece esta propiedad en cualquier parte del código, todos los controlespor defecto a la AutoID algoritmo.Se establece el valor a nivel de página en el @ Page directiva, como se muestra en el ejemplo siguiente:<% @ Página Language = "C #" AutoEventWireup = "true"CodeFile = "Default.aspx.cs"Inherits = "_Default"ClientIDMode = "predecible" %>También puede establecer el ClientIDMode valor en el archivo de configuración, ya sea en el ordenador (máquina) nivelo en el nivel de aplicación. Esto define el valor por defecto ClientIDMode establecer para todos los controles en todas las páginas dela aplicación. Si establece el valor en el nivel de equipo, que define el valor predeterminado ClientIDMode estableciendo paratodos los sitios web de ese equipo. El siguiente ejemplo muestra el ClientIDMode poniendo en elarchivo de configuración:<system.web>Menores páginas ClientIDMode = "predecibles"> </ pages></ System.web>Como se señaló anteriormente, el valor del ClientID propiedad se deriva desde el contenedor de nomenclatura para una de controlpadre. En algunos casos, como cuando se utiliza las páginas maestras, controles puede terminar con identificadores comolos 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 Información general de Desarrollo Web© 2010 Microsoft Corporation30

Page 31: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

A pesar de que el entrada elemento se muestra en el marcado (a partir de una TextBox de control) está a sólo dos nombrescontenedores de profundidad en la página (el anidado ContentPlaceHolder controles), debido a las páginas manera maestrasse procesan, el resultado final es un identificador de control como la siguiente:ctl00_ContentPlaceHolder1_ParentPanel_NamingPanel1_TextBox1Esta identificación se garantiza que sea único en la página, pero es innecesariamente largo para la mayoría de los propósitos. Imagine quedesea reducir la longitud de la ID prestados, y para tener más control sobre cómo es el ID degenerado. (Por ejemplo, usted quiere eliminar "ctlxxx" prefijos.) La forma más sencilla de lograr esto esfijar el ClientIDMode propiedad tal como se muestra en el ejemplo siguiente:<Tc: NamingPanel runat = "server" ID = "ParentPanel" ClientIDMode = "estático"><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 Estático para el exterior NamingPanel elemento, yestablecido en Previsible para el interior NamingControl elemento. Estos ajustes dan como resultado el siguiente marcado(El resto de la página y la página 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 Estático ajuste tiene el efecto de restablecer la jerarquía de nombres para todos los controles en el interior del exteriorNamingPanel elemento, y de eliminar el ContentPlaceHolder y MasterPage Identificadores de lagenerado ID. (El nombre atributo de elementos prestados no se ve afectada, por lo que el normal de ASP.NETse mantiene la funcionalidad para eventos, del estado de vista, etc.) Un efecto secundario de restablecer el nombramientojerarquía es que incluso si se mueve el marcado de la NamingPanel elementos a una diferenteContentPlaceHolder 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, puederomper cualquier funcionalidad que requiere identificadores únicos para los distintos elementos HTML, como por ejemplo el clientedocument.getElementById función.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation31

Page 32: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

La creación de identificadores predecibles cliente en controles enlazados a datosLa ClientID Los valores que se generan para los controles en un control de lista enlazado a datos mediante el algoritmo de herenciapuede ser largo y en realidad no son predecibles. La ClientIDMode funcionalidad puede ayudarle a tener másel control sobre cómo 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. LaClientIDRowSuffix propiedad se puede utilizar sólo en controles enlazados a datos, y su comportamiento difiere segúnen el que el control que está utilizando. Las diferencias son las siguientes:GridView de control - Se puede especificar el nombre de una o más columnas del origen de datos, que soncombinado en tiempo de ejecución 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_1ListView de control - Puede especificar una única columna en el origen de datos que se adjunta al clienteID. Por ejemplo, si se establece ClientIDRowSuffix a "ProductName", los identificadores de control prestados tendrán unaformato como el siguiente:rootPanel_ListView1_ProductNameLabel_1En este caso, la fuga 1se deriva de la identificación del producto del elemento de datos actual.Repetidor control Este control no es compatible con la ClientIDRowSuffix propiedad. En una Repetidorcontrol, el índice de la fila actual se utiliza. Cuando se utiliza ClientIDMode = "predecible" con unaRepetidor de control, ID de cliente que se generan tienen el siguiente formato:Repeater1_ProductNameLabel_0El final 0es el índice de la fila actual.La FormView y DetailsView los controles no se muestran varias filas, por lo que no apoyan laClientIDRowSuffix propiedad.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation32

Page 33: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

La persistencia de la selección de filas en los controles de datosLa GridView y ListView controles pueden permitir a los usuarios seleccionar una fila. En las versiones anteriores de ASP.NET, la selecciónse ha basado en el índice de fila en la página. Por ejemplo, si selecciona el tercer elemento en la página 1 yluego pasar a la página 2, el tercer elemento en esa página está seleccionada.Selección persistió fue apoyada inicialmente sólo en los proyectos de datos dinámicos en el. NET Framework 3.5 SP1.Cuando esta función está activada, el elemento seleccionado se basa en la clave de datos para el elemento. Estesignifica que si se selecciona la tercera fila en la página 1 y pasar a la página 2, no hay nada seleccionado en la página 2.Al regresar a la página 1, la tercera fila está aún seleccionado. Selección persistentes es ahora compatible conla GridView y ListView los controles en todos los proyectos mediante el uso de la EnablePersistedSelection propiedad, comomuestra en el ejemplo siguiente:<Asp: GridView id = "GridView2" runat = "server" EnablePersistedSelection = "true"></ Asp: GridView>

ASP.NET gráfico de controlEl ASP.NET Gráfico el control se amplía la oferta de visualización de datos en el. NET Framework. Utilizando elGráfico de control, puede crear páginas ASP.NET que tienen gráficos intuitivos y visualmente atractivos para loscomplejo análisis estadístico o financiero. El ASP.NET Gráfico de control se introdujo como un add-on a la. NET Framework versión 3.5 Service Pack 1 y es parte del. NET Framework 4.El control incluye las siguientes características:35 tipos de gráficos diferentes.Un número ilimitado de áreas de gráfico, títulos, leyendas y anotaciones.Una amplia variedad de configuraciones de aspecto para todos los elementos del gráfico.3-D de apoyo a la mayoría de los tipos de gráficos.Las etiquetas de datos inteligentes que automáticamente se ajustan alrededor de los puntos de datos.Las franjas, saltos de escala, y la escala logarítmica.Más de 50 fórmulas financieros y estadísticos para el análisis y transformación de datos.Unión simple y manipulación de datos del gráfico.Soporte para formatos de datos comunes, tales como fechas, horas, y la moneda.Apoyo a la interactividad y la personalización basada en eventos, incluyendo eventos de clic del cliente utilizando Ajax.Estado de gestión.Transmisión binaria.Las siguientes figuras muestran ejemplos de gráficos financieros que se producen por el control Chart ASP.NET.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation33

Page 34: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Para más ejemplos de cómo utilizar el control Chart ASP.NET, descargue el código de ejemplo en la Las muestrasMedio Ambiente para Microsoft Chart Controls página en el sitio web de MSDN. Usted puede encontrar más muestras deContenido de la comunidad en la Gráfico Foro de control.Agregar el control de gráfico a una página ASP.NETEl siguiente ejemplo muestra cómo agregar un Gráfico controlar a una página ASP.NET mediante el uso de marcas. En elejemplo, el Gráfico de control produce una tabla en la columna para puntos de datos estáticos.<Asp: Gráfico ID = "Gráfico1" 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 Información general de Desarrollo Web© 2010 Microsoft Corporation34

Page 35: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

<AxisY IsLogarithmic = "True" /></ Asp: ChartArea></ ChartAreas><Legends><Asp: Legend Name = "Legend1" title = "Producto Ventas "/></ Leyendas></ Asp: Gráfico>Uso de gráficos 3-DLa Gráfico de control contiene una ChartAreas recolección, que puede contener ChartArea objetos que definencaracterísticas de las áreas de gráfico. Por ejemplo, para usar en 3-D para un área de gráfico, utilice el Area3DStyle propiedad comoen el ejemplo siguiente:<Asp: ChartArea Name = "ChartArea1"><Area3DStyleRotación = "10"Perspectiva = "10"Enable3D = "True"Inclinación = "15"IsRightAngleAxes = "false"WallWidth = "0"IsClustered = "false" /><% - Marcado adicional aquí -%></ Asp: ChartArea>La siguiente figura muestra un gráfico 3-D con cuatro series de la Bar tipo de gráfico.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation35

Page 36: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Mediante los saltos de escala y escalas logarítmicasQuiebres de escala y las escalas logarítmicas son dos formas adicionales para añadir sofisticación a la carta. Estoscaracterísticas son específicas para cada eje en un área del gráfico. Por ejemplo, para utilizar estas características en el eje Y primariode un área de gráfico, utilice el AxisY.IsLogarithmic y ScaleBreakStyle propiedades en una ChartArea objeto. Lasiguiente fragmento de código muestra cómo utilizar saltos de escala en el eje Y principal.<Asp: ChartArea Name = "ChartArea1"><axisy><ScaleBreakStyleBreakLineStyle = "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 QueryExtenderUna tarea muy común para los desarrolladores que crean basadas en datos las páginas Web es para filtrar los datos. Este tradicionalSe ha realizado mediante la construcción Donde cláusulas en los controles de origen de datos. Este enfoque puede sercomplicada, y en algunos casos el Donde la sintaxis no le permite tomar ventaja de la plenafuncionalidad de la base de datos subyacente.Para hacer más fácil el filtrado, una nueva QueryExtender control ha sido añadido en ASP.NET 4. Este control puede serañadido a EntityDataSource o LinqDataSource controles con el fin de filtrar los datos devueltos por éstosASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation36

Page 37: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

controles. Debido a que el QueryExtender el control se basa en LINQ, se aplica el filtro en el servidor de base de datosantes de los datos se envían a la página, 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 estasopciones y proporcionan ejemplos de cómo usarlos.BuscarPara la opción de búsqueda, el QueryExtender de control realiza una búsqueda en campos específicos. En la siguienteejemplo, el control utiliza el texto que se introduce en el TextBoxSearch de control y busca sucontenido en el ProductName y Supplier.CompanyName las columnas de los datos que se devuelven desde elLinqDataSource 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>SerieLa opción de rango es similar a la opción de búsqueda, pero especifica un par de valores para definir el intervalo. En elsiguiendo el ejemplo, el QueryExtender busca en el control de Precio por unidad columna de los datos devueltosdesde LinqDataSource controlar. La gama se lee desde el TextBoxFrom y TextBoxTo los controles sobrela página.<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 Información general de Desarrollo Web© 2010 Microsoft Corporation37

Page 38: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

PropertyExpressionLa opción de la expresión de la propiedad permite definir una comparación con un valor de la propiedad. Si la expresiónse evalúa verdadero, los datos que están siendo examinados se devuelve. En el ejemplo siguiente, elQueryExtender filtros de control de datos mediante la comparación de los datos en el Suspendido columna en el valor dela CheckBoxDiscontinued controlar en la página.<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>CustomExpressionPor último, se puede especificar una expresión personalizada para usar con el QueryExtender controlar. Esta opción le permitellamar a una función en la página que define la lógica de filtro personalizado. El siguiente ejemplo muestra cómodeclaración especifica una expresión 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 función personalizada que se invoca por el QueryExtender controlar. En estecaso, en lugar de utilizar una base de datos de consulta que incluye un Donde cláusula, el código utiliza una consulta LINQ tofiltrar los datos.protected void FilterProducts (object sender, CustomExpressionEventArgs e){e.Query = de pen e.Query.Cast <Product> ()donde p.UnitPrice> = 10seleccionar p;}Estos ejemplos muestran sólo una expresión 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 Información general de Desarrollo Web© 2010 Microsoft Corporation38

Page 39: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Html expresiones de código codificadosAlgunos sitios de ASP.NET (en especial con ASP.NET MVC) dependen en gran medida sobre el uso de <% = Expresión%> sintaxis(A menudo llamado "código de pepitas de oro") para escribir algún texto para la respuesta. Cuando se utilizan expresiones de código, esfácil de olvidar para codificar en HTML el texto, si el texto proviene de la entrada del usuario, puede dejar las páginas abiertas de unXSS (Cross Site Scripting) ataque.ASP.NET 4 presenta la siguiente sintaxis nueva para las expresiones de código:<%: Expresión%>Esta sintaxis utiliza la codificación HTML de forma predeterminada cuando se escribe en la respuesta. Esta nueva expresiónefectivamente se traduce en lo siguiente:<% = HttpUtility.HtmlEncode (expresión)%>Por ejemplo, <%: Solicitud ["Entrada del usuario"]%> realiza la codificación HTML en el valor deSolicitud ["Entrada del usuario"].El objetivo de esta función es hacer posible la sustitución de todas las instancias de la sintaxis antigua con la nuevala sintaxis para que no se ven obligados a decidir en cada paso que se debe utilizar. Sin embargo, hay casos enque la salida de texto ser está destinado a ser HTML o se codifica ya, en cuyo caso esto podría conducir adoble codificación.Para esos casos, ASP.NET 4 presenta una nueva interfaz, IHtmlString, junto con un hormigónaplicación, HtmlString. Los casos de este tipo permiten indicar que el valor de retorno es yacorrectamente codificados (o de lo contrario examinados) para mostrar como HTML, y que por lo tanto, el valor debeno 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 métodos auxiliares se han actualizado para trabajar con esta nueva sintaxis para que no sedoble codificación, pero sólo cuando se está ejecutando ASP.NET 4. Esta nueva sintaxis no funciona cuando seejecutar una aplicación usando ASP.NET 3.5 SP1.Tenga en cuenta que esto no garantiza la protección contra ataques XSS. Por ejemplo, HTML que utilizavalores de atributos que no están en comillas puede contener la entrada del usuario que todavía es susceptible. Nótese quela salida de los controles ASP.NET y ASP.NET MVC ayudantes siempre incluye los valores de atributos en la cotizaciónmarcas, que es el enfoque recomendado.Del mismo modo, esta sintaxis no lleva a cabo la codificación de JavaScript, como por ejemplo cuando se crea una cadena de JavaScriptbasado en la entrada del usuario.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation39

Page 40: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Cambios en el proyecto de plantillaEn versiones anteriores de ASP.NET, cuando se utiliza Visual Studio para crear un proyecto nuevo sitio Web o WebProyecto de aplicación, los proyectos resultantes contienen sólo una página Default.aspx, el incumplimiento Web.config archivo,y el App_Data carpeta, como se muestra en la ilustración siguiente:Visual Studio también es compatible con un sitio web vacío tipo de proyecto, que no contiene archivos en absoluto, como se muestra enla siguiente figura:El resultado es que para el principiante, hay muy poca orientación sobre cómo construir un sitio Web de la producciónaplicación. Por lo tanto, ASP.NET 4 presenta tres nuevas plantillas, una para una aplicación Web vacíoproyecto, y uno cada uno para una aplicación Web y el proyecto del sitio web.Web vacío de plantillas de aplicación Como el nombre sugiere, la plantilla de aplicación Web vacía es una aplicación web despojadaproyecto. Puede seleccionar esta plantilla de proyecto de Visual Studio cuadro de diálogo Nuevo proyecto, como se muestra en ella siguiente figura:ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation40

Page 41: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Cuando se crea un vacío en Aplicación Web ASP.NET, Visual Studio crea el diseño de la carpeta siguiente:Esto es similar a la disposición del sitio web vacío de versiones anteriores de ASP.NET, con una excepción. EnVisual Studio 2010, Web Application vacíos o casi vacíos proyectos de sitio web contiene los siguientes mínimosWeb.config archivo que contiene información utilizada por Visual Studio para identificar el marco que laproyecto se dirige a:Sin esta targetFramework de propiedad, el valor predeterminado de Visual Studio a los objetivos. NET Framework 2.0 en elel fin de preservar la compatibilidad al abrir las aplicaciones más antiguas.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation41

Page 42: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Aplicaciones Web y Plantillas de sitio Web del proyectoLas otras dos nuevas plantillas de proyecto que se distribuyen con Visual Studio 2010 contiene cambios importantes.La siguiente figura muestra el diseño del proyecto que se crea cuando se crea una nueva aplicación Webproyecto. (El diseño de un proyecto de sitio web es prácticamente idéntico.)El proyecto incluye una serie de archivos que no fueron creados en versiones anteriores. Además, el nuevoProyecto de aplicación Web está configurada con la funcionalidad de los miembros de base, que le permite obtener rápidamentese inició en garantizar el acceso a la nueva aplicación. Debido a esta inclusión, el Web.config archivo para lanuevo proyecto incluye las entradas que se utilizan para configurar la pertenencia, roles y perfiles. El siguienteejemplo muestra el Web.config presentar un proyecto nuevo de aplicación Web. (En este caso, roleManager esdesactivada.)ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation42

Page 43: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

El proyecto también contiene un segundo Web.config archivo en el Cuenta directorio. La segunda configuraciónarchivo proporciona una manera de asegurar el acceso a la página ChangePassword.aspx por falta de usuarios registrados. Lasiguiente ejemplo muestra el contenido de la segunda Web.config archivo.Las páginas creadas por defecto en las plantillas de proyecto nuevas contienen también más contenido que en años anterioresversiones. El proyecto contiene una página principal predeterminada y el archivo CSS, y es la página por defecto (Default.aspx)configurado para utilizar la página principal de forma predeterminada. El resultado es que cuando se ejecuta la aplicación Web oASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation43

Page 44: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Sitio Web por primera vez, el valor predeterminado (inicio) ya es funcional. De hecho, es similar alpágina por defecto que se ve al poner en marcha una nueva aplicación MVC.La intención de estos cambios en las plantillas de proyecto es proporcionar orientación sobre cómo iniciar la construcción de unanueva aplicación web. Con semánticamente correcta, estricta XHTML 1.0 compatible con el marcado y con la disposiciónque se especifica el uso de CSS, las páginas en las plantillas representan las mejores prácticas para la construcción de ASP.NET 4Las aplicaciones Web. Las páginas predeterminadas también tienen un diseño de dos columnas que se pueden personalizar fácilmente.Por ejemplo, imagine que para una nueva aplicación Web que desea cambiar algunos de los colores e insertarlogotipo de su empresa en lugar de la Mi aplicación ASP.NET logotipo. Para ello, se crea una nuevadirectorio en el Contenido para almacenar la imagen del logotipo:Para añadir la imagen a la página, a continuación, abra la Site.Master presentar, encontrar dónde está el Mi ASP.NETAplicación el texto se define, y sustituirla por una imagen cuyo elemento src atributo se establece en el nuevoimagen del logotipo, como en el ejemplo siguiente:ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation44

Page 45: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

A continuación, puede entrar en el archivo Site.css y modificar definiciones de clases CSS para cambiar el color de fondo dela página, así como la de la cabecera, como en el ejemplo siguiente:El resultado de estos cambios es que se puede mostrar una página de inicio personalizada con muy poco esfuerzo:Mejoras CSSUna de las principales áreas de trabajo de ASP.NET 4 ha sido ayudar a HTML de representación que es compatible con laúltimos estándares HTML. Esto incluye cambios en la forma controles de servidor ASP.NET Web utilizan los estilos CSS.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation45

Page 46: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Compatibilidad Marco para la representación dePor defecto, cuando una aplicación web o sitio web dirigido. NET Framework 4, elcontrolRenderingCompatibilityVersion atributo del páginas elemento se establece en "4.0". Este elemento esdefinido en el nivel de equipo Web.config archivo y por defecto se aplica a todas las aplicaciones ASP.NET 4:<system.web>Menores páginas controlRenderingCompatibilityVersion = "3,5 | 4,0" /></ System.web>El valor para controlRenderingCompatibility es una cadena, que permite a los posibles definiciones de la nueva versión defuturas versiones. En la versión actual, los valores siguientes son compatibles con esta propiedad:"3.5". Este valor indica la representación heredada y marcado. Marcado que se representa por los controles es del 100%compatible hacia atrás, y el ajuste del xhtmlConformance la propiedad es un honor."4.0". Si la propiedad tiene esta configuración, controles de servidor ASP.NET Web haga lo siguiente:La xhtmlConformance la propiedad siempre es tratado como "estricto". Como resultado, los controles rendir XHTML1,0 marcado estricta.Desactivación de la no entrada de los controles ya no hace que los estilos no válidos.div elementos alrededor de los campos ocultos están ahora labrado para que no interfiera con el usuario creado CSSreglas.Los controles del menú representan el marcado que es semánticamente correcto y compatible con la accesibilidaddirectrices.Los controles de validación no se representan los estilos en línea.Los controles que previamente prestados border = "0" (Controles que se derivan de la ASP.NET Mesade control, y ASP.NET de la Imagen de control) ya no hacen este atributo.Controles de DesactivaciónEn ASP.NET 3.5 SP1 y versiones anteriores, el marco hace que el discapacitado atributo en el código HTMLmarcado para ningún tipo de control, cuya Habilitado propiedad establecida en falso. Sin embargo, de acuerdo con el HTML 4,01especificación, sólo entrada elementos que debe tener este atributo.En ASP.NET 4, se puede establecer el controlRenderingCompatabilityVersion propiedad a "3,5", como en elsiguiendo el ejemplo:<system.web>Menores páginas controlRenderingCompatibilityVersion = "3.5" /></ System.web>Usted puede crear un formato para un Etiqueta controlar como la siguiente, que desactiva el control de:ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation46

Page 47: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

<Asp: Label id = "Etiqueta" runat = "server" Text = "prueba" Enabled = "false">La Etiqueta de control haría que el código HTML siguiente:<Span id = "Label1" disabled = "disabled"> Prueba </ span>En ASP.NET 4, se puede establecer el controlRenderingCompatabilityVersion a "4.0". En ese caso, sólo controlaque hacen entrada elementos prestará un discapacitado atribuyen cuando el control es Habilitado propiedad se establece enfalso. Los controles que no hacen HTML entrada los elementos en lugar de prestar un clase atributo que haga referenciauna clase CSS que se puede utilizar para definir un aspecto de lesionados por el control. Por ejemplo, el Etiqueta controlarse muestra en el ejemplo anterior podría 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, puedecambiar este valor por defecto mediante la estática DisabledCssClass propiedad estática de la WebControl clase.Para los programadores de controles, el comportamiento a utilizar para un control específico también se puede definir mediante elSupportsDisabledAttribute propiedad.Ocultación de elementos div alrededor de los campos ocultosASP.NET 2.0 y versiones posteriores hacen específicos del sistema campos ocultos (como el oculto elemento utilizado paraalmacenar la información de estado de la vista) en el interior div elementos con el fin de cumplir con el estándar XHTML. Sin embargo,esto puede causar un problema cuando afecta a una regla CSS div elementos de una página. Por ejemplo, puede resultar en unade un píxel línea que aparece en la página en torno oculta div elementos. En ASP.NET 4, div elementos queincluir los campos ocultos generados por ASP.NET, agregue una referencia de clase CSS como en el ejemplo siguiente:<Div class = "aspNetHidden"> ... </ div>A continuación, puede definir una clase CSS que se aplica sólo a la oculto elementos que son generados por ASP.NET,como en el ejemplo siguiente:<Style type = "text / css"># DIV aspNetHidden {Border: 0;}</ Style>

Representación de una tabla externa para los controles con plantillaDe forma predeterminada, los siguientes controles de servidor Web ASP.NET que admiten plantillas son automáticamenteenvuelto en una tabla externa que se utiliza para aplicar estilos en línea:FormViewASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation47

Page 48: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Iniciar sesiónPasswordRecoveryChangePasswordMagoCreateUserWizardUna nueva propiedad denominada RenderOuterTable Se ha añadido a estos controles que permiten la tabla externaser 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 página, 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 RenderOuterTablepropiedad, como en el ejemplo siguiente:<Asp: FormView ID = "FormView1" runat = "server" RenderOuterTable = "false">El ejemplo anterior hace que la salida siguiente, sin el tabla, tr, y td elementos:ContenidoEsta mejora puede hacer que sea más fácil de peinar el contenido del control con CSS, porque ningúnetiquetas inesperados son prestados por el control.Nota Este cambio desactiva el soporte para la función de auto-formato en el diseñador de Visual Studio 2010,porque ya no hay una mesa elemento que puede albergar los atributos de estilo que se generan por elauto-formato opción.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation48

Page 49: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Control ListView de MejorasLa ListView el control se ha hecho más fácil de usar en ASP.NET 4. La versión anterior del controlnecesario especificar una plantilla de diseño que contiene un control de servidor con un ID conocida. Lamarcado siguiente se muestra un ejemplo típico de cómo 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 diseño. El marcado se muestra en laejemplo 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 MejorasEn ASP.NET 3.5, puede especificar el diseño de la CheckBoxList y RadioButtonList utilizando los siguientes dosajustes: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 Información general de Desarrollo Web© 2010 Microsoft Corporation49

Page 50: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

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 artículos, para representar HTML semánticamente correcto, se debe prestarsu contenido utilizando HTML lista (li) elementos. Esto hace que sea fácil para los usuarios que leen las páginas Web usandotecnología de asistencia, y hace que los controles más fácil de peinar el uso de CSS.En ASP.NET 4, el CheckBoxList y RadioButtonList controles admiten los siguientes valores nuevos para laRepeatLayout 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 cómo 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 código 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 Información general de Desarrollo Web© 2010 Microsoft Corporation50

Page 51: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

<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 puededeje de utilizarse y se producirá una excepción en tiempo de ejecución si la propiedad se ha establecido dentro de sumarcado o código. La propiedad no tendría ningún valor, porque el diseño visual de estos controles esdefine el uso de CSS en su lugar.Mejoras del menú de controlAntes de ASP.NET 4, el Menú control representado una serie de tablas HTML. Esto hace más difícil aaplicar estilos CSS fuera de la configuración de las propiedades en línea y tampoco era compatible con la accesibilidadnormas.En ASP.NET 4, el control ahora representa HTML con marcado semántico, que consiste en una lista desordenaday los elementos de lista. El siguiente ejemplo muestra el marcado de una página 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" /></ Artículos></ Asp: Menu>Cuando se representa la página, el control produce el código HTML siguiente (el onclick código se ha omitidopara 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>Además de mejoras en la representación, navegación mediante el teclado del menú se ha mejorado utilizandoenfoque de gestión. Cuando el Menú control obtiene el foco, puede utilizar las teclas de flecha para navegarASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation51

Page 52: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

elementos. La Menú el control ahora también concede accesibles las aplicaciones de Internet enriquecidas (ARIA), y los rolessiguientes 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 página, en lugar de en línea conel prestado elementos HTML. Si usted quiere tomar el control total sobre el estilo para el control, se puede establecerel nuevo IncludeStyleBlock propiedad para falsa, en cuyo caso el bloque de estilo no se emite. Una manera de utilizaresta propiedad es utilizar la función de auto-formato en el diseñador de Visual Studio para definir el aspecto de lamenú. A continuación, puede ejecutar la página, abra la fuente de la página, y luego copiar el bloque de estilo prestados a unaarchivo CSS externo. En Visual Studio, deshacer el diseño y ajuste IncludeStyleBlock a falso. El resultado es quela apariencia del menú se define el uso de estilos en una hoja de estilos externa.Asistente y controles CreateUserWizardEl ASP.NET Mago y CreateUserWizard controles admiten plantillas que le permiten definir el código HTMLque hacen. (Deriva de CreateUserWizard Asistente.) El siguiente ejemplo muestra el marcado deuna 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 Información general de Desarrollo Web© 2010 Microsoft Corporation52

Page 53: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

</ 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 todavía tiene un control limitado sobrela salida del Mago controlar. En ASP.NET 4, se puede crear un LayoutTemplate plantilla y el insertoPlaceHolder los controles (con nombres reservados) para especificar cómo desea que el Asistente para el control va a representar. Lasiguiendo 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 Información general de Desarrollo Web© 2010 Microsoft Corporation53

Page 54: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

<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 posición con nombre en el LayoutTemplate elemento:headerPlaceholder - En tiempo de ejecución, esta se sustituye por el contenido del HeaderTemplate elemento.sideBarPlaceholder - En tiempo de ejecución, esta se sustituye por el contenido del SideBarTemplate elemento.wizardStepPlaceHolder - En tiempo de ejecución, esta se sustituye por el contenido del WizardStepTemplateelemento.navigationPlaceholder - En tiempo de ejecución, esta se sustituye por las plantillas de navegación que tienedefinido.El marcado en el ejemplo que utiliza marcadores de posición hace que el código HTML siguiente (sin el contenidoen realidad se define en las plantillas):<span></ Span>El HTML sólo 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 prácticamente todo elcontenido que es generado por el Mago controlar.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation54

Page 55: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

ASP.NET MVCASP.NET MVC fue introducido como un marco de add-on para ASP.NET 3.5 SP1 en marzo de 2009. Visual Studio2010 incluye ASP.NET MVC 2, que incluye nuevas características y capacidades.Áreas de ApoyoÁreas permiten controladores de grupo y puntos de vista en secciones de una aplicación grande en un relativo aislamiento de laotras secciones. Cada área puede ser implementado como un proyecto separado ASP.NET MVC que luego puede serhace referencia a la aplicación principal. Esto ayuda a gestionar la complejidad cuando se genera una aplicación de gran tamañoy hace más fácil para varios equipos a trabajar juntos en una sola aplicación.Anotación de datos de atributos de validación de ApoyoDataAnnotations atributos para colocarlo lógica de validación de un modelo mediante el uso de atributos de metadatos.DataAnnotations atributos se introdujeron en datos dinámicos de ASP.NET en ASP.NET 3.5 SP1. Estosatributos se han integrado en la carpeta por defecto del modelo y proporcionan un medio basadas en metadatos-avalidar la entrada del usuario.Ayudantes con plantillaAyudantes con plantillas le permiten asociar automáticamente editar y mostrar las plantillas con tipos de datos. Paraejemplo, puede utilizar una plantilla de ayuda para especificar que un elemento de interfaz de usuario de selector de fecha de forma automáticadictada por un System.DateTime valor. Esto es similar a las plantillas de campo de datos dinámicos de ASP.NET.La Html.EditorFor y Html.DisplayFor métodos auxiliares se han incorporado en el apoyo a la prestación normalTipos de datos, así como objetos complejos con múltiples propiedades. También personalizar la representación, dejandosolicitar datos de anotación atributos como DisplayName y ScaffoldColumn al ViewModel objeto.A menudo usted desea personalizar la salida de los ayudantes de interfaz de usuario aún más y tener un control total sobrelo que se genera. La Html.EditorFor y Html.DisplayFor métodos auxiliares apoyar esta utilizando unplantillas mecanismo que le permite definir plantillas externas que pueden anular y controlar la salidaprestados. Las plantillas pueden ser prestados de forma individual para una clase.

Los datos dinámicosLos datos dinámicos se introdujo en el. NET Framework 3.5 SP1 a mediados de 2008. Esta característica proporcionamuchas mejoras para la creación de aplicaciones controladas por datos, incluyendo los siguientes:ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation55

Page 56: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Una experiencia RAD para construir rápidamente un sitio Web orientado a datos.Validación automática que se basa en las limitaciones definidas en el modelo de datos.La capacidad de cambiar fácilmente el formato que se genera para los campos de la GridView y DetailsViewcontroles mediante el uso de plantillas de campo que forman parte de su proyecto de datos dinámicos.Nota Para obtener más información, consulte la Datos de la documentación dinámico en MSDN Library.Para ASP.NET 4, los datos dinámicos se ha mejorado para ofrecer a los desarrolladores aún más el poder de forma rápidala construcción basadas en los datos sitios Web.Habilitación de los datos dinámicos para los proyectos existentesLas características de datos dinámicos que se entregan en las NET Framework 3.5 SP1 trajo nuevas características tales como elsiguientes:Las plantillas de campo - Estas proporcionan plantillas de datos basadas en el tipo de controles enlazados a datos. Las plantillas de campoproporcionar una manera más sencilla de personalizar el aspecto de los controles de datos que el uso de campos de la plantilla para cadacampo.Validación - Dynamic Data le permite utilizar los atributos en las clases de datos para especificar la validación para el comúnescenarios como los campos requeridos, la comprobación de rango, comprobación de tipos, de coincidencia de patrones utilizando regularmenteexpresiones, y de validación personalizada. La validación se aplican los controles de datos.Sin embargo, estas características tenía 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 sólo de fuentes compatibles con estas características fueron la EntityDataSource oLinqDataSource controles.Las características requiere un proyecto Web que se había creado con los datos dinámicos o de datos dinámicosPlantillas de las entidades con el fin de tener todos los archivos que se requieren para apoyar la función.Un objetivo importante de la ayuda de datos dinámicos de ASP.NET 4 es permitir que la nueva funcionalidad de datos dinámicospara cualquier aplicación ASP.NET. El siguiente ejemplo muestra el marcado de los controles que pueden aprovecharde los datos de funcionalidad dinámica en una página 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 Información general de Desarrollo Web© 2010 Microsoft Corporation56

Page 57: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

En el código de la página, el siguiente código se debe agregar el fin de habilitar el soporte de datos dinámica paraestos controles:GridView1.EnableDynamicData (typeof (productos));Cuando el GridView control está en modo de edición, los datos dinámicos valida automáticamente que los datos introducidoses en el formato adecuado. Si no lo es, un mensaje de error.Esta funcionalidad también ofrece otros beneficios, tales como ser capaz de especificar los valores predeterminados para la inserciónmodo. Sin los datos dinámicos, para poner en práctica 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 llamarapoya un segundo parámetro que le permite pasar valores por defecto para cualquier campo en el objeto, como se muestra eneste ejemplo:DetailsView1.EnableDynamicData (typeof (del producto), el nuevo {ProductName = "DefaultName"});

Sintaxis declarativa del control de DynamicDataManagerLa DynamicDataManager el control se ha mejorado para que pueda configurar de forma declarativa, al igual quemayoría de los controles en ASP.NET, en lugar de sólo en el código. El marcado para la DynamicDataManager controlarse 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 dinámico de datos para la GridView1 control que se hace referencia en elDataControls sección de la DynamicDataManager controlar.Plantillas de entidadPlantillas de la entidad ofrecen una nueva forma de personalizar el diseño de los datos sin necesidad de crear unde página personalizado. Las plantillas de página utilice el FormView de control (en lugar del DetailsView de control, tal como se utiliza enplantillas de página en las versiones anteriores de datos dinámicos) y las DynamicEntity control para representar la entidadplantillas. Esto le da más control sobre el marcado que se representa los datos dinámicos.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation57

Page 58: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

La siguiente lista muestra el diseño 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.ascxLa 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 ael marcado creado por el DetailsView de control utilizado por los datos dinámicos en ASP.NET 3.5 SP1. El siguienteejemplo 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 sensación en todo el sitio. Hay plantillaspara la visualización, edición y las operaciones de inserción. Nuevas plantillas se pueden añadir en función del nombre de los datosobjetos con el fin de cambiar la apariencia de un solo tipo de objeto. Por ejemplo, puede agregar eldespués de plantilla:\ DynamicData \ EntityTemplates \ Products.aspxLa plantilla puede contener el siguiente marcado:<tr><td> Nombre </ td><td> <asp: DynamicControl runat = "server" DataField = "ProductName" /> </ Td><td> Categoría </ td><td> <asp: DynamicControl runat = "server" DataField = "Categoría" /> </ Td></ Tr>ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation58

Page 59: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Las plantillas de la nueva entidad se muestran en una página mediante el uso de la nueva DynamicEntity controlar. En tiempo de ejecución,este control se sustituye con el contenido de la plantilla de la entidad. El marcado siguiente se muestra laFormView control en el Detail.aspx página de la plantilla que utiliza la plantilla de la entidad. Observe elDynamicEntity 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 esteelemento ");?Text = "Borrar" /></ Td></ Tr></ Table></ ItemTemplate></ Asp: FormView>

Nuevas plantillas de campo para las direcciones URL y direcciones de correo electrónicoASP.NET 4 introduce dos nuevos incorporados en las plantillas de campo, EmailAddress.ascx y Url.ascx. Estoslas plantillas se utilizan para los campos que están marcados como EmailAddress o Url con el DataType atributo. ParaEmailAddress objetos, el campo se muestra como un hipervínculo que se crea mediante la mailto: protocolo.Cuando los usuarios hacen clic en el vínculo, se abre el usuario de correo electrónico del cliente y crea un mensaje de esqueleto. Los objetos introducidoscomo Url se muestran como hipervínculos ordinarios.El siguiente ejemplo muestra cómo los campos se marcó.[Tipo de datos (DataType.EmailAddress)]objeto público HomeEmail { get; }ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation59

Page 60: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

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

Creación de vínculos con el control de DynamicHyperLinkLos datos dinámicos utilizan la característica de la nueva ruta que se ha agregado en el. NET Framework 3.5 Service Pack 1 para controlarlas direcciones URL que los usuarios finales ver cuando acceda a la página web. El nuevo DynamicHyperLink el control se hacefácil construir enlaces a páginas de un sitio dinámico de datos. El siguiente ejemplo muestra cómo utilizar elDynamicHyperLink 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 página de la lista para el Productos tabla basada en las rutas que sondefinido en el Global.asax archivo. El control utiliza automáticamente el nombre de la tabla por defecto que la dinámicaPágina de datos se basa en.Apoyo a la herencia en el modelo de datosTanto el Entity Framework y LINQ to SQL admiten la herencia en sus modelos de datos. Un ejemplo de estepodría ser una base de datos que tiene una InsurancePolicy mesa. También puede contener CarPolicy yHousePolicy tablas que tienen los mismos campos que InsurancePolicy y luego añadir más campos. DinámicoLos datos se ha modificado para comprender los objetos heredados en el modelo de datos y para apoyar andamiaje paralas 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 esimplementado mediante la exposición de la relación como una colección en un Entidad objeto. Nuevo ManyToMany.ascxy ManyToMany_Edit.ascx plantillas de campo se han añadido para proporcionar soporte para visualizar yedición de datos que están implicados en muchos-a-muchos.Nuevos atributos para el Control de las enumeraciones de pantalla y soporte técnicoLa DisplayAttribute se ha añadido para darle más control sobre cómo se muestran los campos. LaDisplayName atributo en las versiones anteriores de los datos dinámicos permite cambiar el nombre que se utilizacomo un título para un campo. El nuevo DisplayAttribute clase le permite especificar más opciones para la visualización de unacampo, tales como el orden en que se visualiza un campo y si un campo se utiliza como un filtro. LaASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation60

Page 61: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

atributo también proporciona un control independiente del nombre que se utiliza para las etiquetas en un GridView control, elnombre utilizado en una DetailsView de control, el texto de ayuda para el campo, y la marca de agua utilizada para el campo (siel campo acepta el ingreso de texto).La EnumDataTypeAttribute la clase se ha añadido que le permite asignar campos a las enumeraciones. Cuando seaplicar este atributo a un campo, se especifica un tipo de enumeración. Los datos dinámicos utilizan la nuevaEnumeration.ascx plantilla de campo para crear la interfaz de usuario para mostrar y editar valores de la enumeración. Laplantilla asigna los valores de la base de datos a los nombres en la enumeración.Compatibilidad mejorada con filtrosDinámica 1.0 Datos enviados con una función de filtros para las columnas booleanas y columnas de clave externa. Los filtrosno le permiten especificar si se muestra o en qué orden se muestran. El nuevoDisplayAttribute atributo aborda ambas cuestiones, que le da el control sobre si una columna esmuestra 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 QueryExtendercaracterística de los formularios Web Forms. Esto le permite crear filtros sin necesidad de conocimientos de la fuente de datoscontrolar que los filtros se utiliza con. Junto con estas extensiones, filtros también se han convertido enlos controles de la plantilla, lo que le permite añadir otras nuevas. Por último, el DisplayAttribute de clase mencionado másanterior permite que el filtro predeterminado para ser reemplazado, de la misma manera que UIHint permite que el campo por defectoplantilla para una columna para ser anulado.

Visual Studio 2010 mejoras en el desarrollo WebEl desarrollo Web en Visual Studio 2010 se ha mejorado para una mayor compatibilidad CSS, el aumento deproductividad a través de fragmentos de HTML y ASP.NET marcado y nueva dinámica de IntelliSense de JavaScript.Mejora de la compatibilidad de CSSEl diseñador de Visual Web Developer en Visual Studio 2010 se ha actualizado para mejorar el CSS 2.1cumplimiento de los estándares. El mejor diseñador preserva la integridad del código fuente HTML y es más robustoque en versiones anteriores de Visual Studio. Bajo el capó, las mejoras arquitectónicas también han sidohecho, que permitirá futuras mejoras en el renderizado, la disposición y capacidad de servicio.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation61

Page 62: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Fragmentos de HTML y JavaScriptEn el editor de HTML, IntelliSense completa automáticamente los nombres de etiquetas. La característica IntelliSense fragmentos de auto-completa las etiquetas completas y mucho más. En Visual Studio 2010, fragmentos de IntelliSense son compatibles conJavaScript, junto con C # y Visual Basic, que fueron apoyadas en versiones anteriores de Visual Studio.Visual Studio 2010 incluye más de 200 fragmentos que le ayudan a auto-comunes de ASP.NET y HTMLetiquetas, incluidos los atributos necesarios (por ejemplo, runat = "server") Y los atributos específicos de una etiqueta(Tales como Identificación, DataSourceID, ControlToValidate, y Texto).Puede descargar fragmentos adicionales, o puede escribir sus propios fragmentos que encapsulan los bloquesde margen de beneficio que usted o su equipo utilizan para tareas comunes.JavaScript IntelliSense MejorasEn Visual 2010, JavaScript IntelliSense ha sido rediseñado para ofrecer una experiencia de edición aún más rico.IntelliSense ahora reconoce los objetos que han sido generadas dinámicamente por métodos tales comoregisterNamespace y mediante técnicas similares a los utilizados por otros frameworks de JavaScript. El rendimiento tienese ha mejorado para analizar las grandes bibliotecas de secuencias de comandos y para mostrar IntelliSense con el procesamiento de poca o ningunademore. Compatibilidad se ha incrementado dramáticamente para apoyar casi todas las bibliotecas de terceros yapoyo a diversos estilos de codificación. Los comentarios de documentación ahora se analiza como se escribe y sede inmediato aprovechada por IntelliSense.

La implementación de aplicaciones Web con Visual Studio 2010Cuando los desarrolladores de ASP.NET implementar una aplicación Web, a menudo encuentran que se encuentran temas como lael siguiente:Implementación de un sitio de alojamiento compartido requiere de tecnologías tales como FTP, que puede ser lento. Además,manualmente debe realizar tareas tales como ejecutar scripts de SQL para configurar una base de datos y usted debecambiar la configuración de IIS, como configurar una carpeta de directorio virtual como una aplicación.En un entorno empresarial, además de desplegar los archivos de aplicación web, los administradorescon frecuencia tiene que modificar los archivos de configuración de ASP.NET y la configuración de IIS. Los administradores de bases de datos debenejecutar una serie de scripts de SQL para obtener el funcionamiento de aplicaciones de bases. Estas instalaciones son la mano de obraintensiva, a menudo tardan horas en completarse, y debe ser cuidadosamente documentada.Visual Studio 2010 incluye tecnologías que aborden estas cuestiones y que le permiten implementar sin problemasLas aplicaciones Web. Una de estas tecnologías es la herramienta IIS Web Deployment (MsDeploy.exe).Características de implementación web en Visual Studio 2010 se incluyen las siguientes áreas principales:ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation62

Page 63: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Web de envasesWeb.config de transformaciónBase de datos de implementaciónUn clic con el botón publicar para aplicaciones WebLas siguientes secciones proporcionan detalles acerca de estas características.Web PackagingVisual Studio 2010 utiliza la herramienta de MSDeploy para crear un archivo comprimido (. Zip) para su aplicación, quese refiere como un Web paquete. El archivo de paquete contiene metadatos acerca de su aplicación, más lasiguiente contenido:Configuración de IIS, que incluye la configuración del grupo de aplicaciones, la configuración de página de error, y así sucesivamente.El contenido de la Web actual, que incluye páginas web, controles de usuario, el contenido estático (imágenes y HTMLarchivos), y así sucesivamente.SQL Server base de datos y esquemas de datos.Los certificados de seguridad, componentes para instalar en la configuración del GAC, registro, y así sucesivamente.Un paquete Web puede ser copiado a cualquier servidor y después 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 línea de comandoscomandos o mediante el uso de las API de implementación.Visual Studio 2010 proporciona funcionalidad integrada en las tareas de MSBuild y objetivos para crear paquetes de Web. Para obtener másinformación, consulte Aplicación Web ASP.NET Información general del proyecto de implementación 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 TransformaciónPara la implementación de aplicaciones Web, Visual Studio 2010 presenta Documento XML Transformación (XDT), quees una característica que le permite transformar un Web.config presentar en el contexto del desarrollo a los ajustes de producción.Ajustes de transformación se especifican en los archivos de transformación con nombre web.debug.config,web.release.config, Y así sucesivamente. (Los nombres de estos archivos se corresponden con las configuraciones de MSBuild.) Una transformaciónarchivo incluye sólo los cambios que usted necesita para hacer a un desplegado Web.config archivo. Se especifica elcambios mediante el uso de sintaxis simple.El siguiente ejemplo muestra una porción de un web.release.config archivo que puede ser producido pordespliegue de la configuración de su liberación. La Reemplazar palabra clave en el ejemplo se especifica que durante elel despliegue de la connectionString nodo en el Web.config archivo será reemplazado por los valores que sonenumeradas en el ejemplo.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation63

Page 64: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

Menores connectionStrings xdt: Transform = "Reemplazar"><Añadir name = "BlogDB" connectionString = "Conexión detalles cadena] " /></ ConnectionStrings>Para obtener más información, consulte Sintaxis Transformación Web.config para la implementación de proyectos de aplicaciones Weben el sitio web de MSDN y Web Deployment: Transformación Web.Config en el blog de Vishal Joshi.Base de datos de implementación deUna de Visual Studio 2010 puede incluir paquete de implementación de las dependencias en las bases de datos de SQL Server. Como parte dela definición del paquete, se proporciona la cadena de conexión para la base de datos de origen. Cuando se creael paquete Web, Visual Studio 2010 crea secuencias de comandos SQL para el esquema de base de datos y, opcionalmente, para eldatos, y luego los agrega al paquete. También puede proporcionar scripts de SQL y especificar ella secuencia en que deben ejecutarse en el servidor. En el tiempo de implementación, proporciona una cadena de conexiónque sea apropiado para el servidor de destino, el proceso de implementación utiliza entonces esta cadena de conexión para ejecutarlas secuencias de comandos que crean el esquema de base de datos y agregar los datos.Además, mediante el uso de un clic con el botón publicar, usted puede configurar la implementación de publicar su base de datos directamentecuando la aplicación se publica en un sitio remoto de alojamiento compartido. Para obtener más información, consulte Cómo:Implementación de una base de datos con un proyecto de aplicación Web en el sitio web de MSDN y Base de datos de implementación decon VS 2010 en el blog de Vishal Joshi.Uno-Haga clic en Publicar para aplicaciones WebVisual Studio 2010 también le permite utilizar el servicio de administración remota de IIS para publicar una aplicación web paraun servidor remoto. Se puede crear un perfil de publicación para su cuenta de hosting o los servidores de prueba oservidores de ensayo. Cada perfil puede guardar de forma segura las credenciales apropiadas. A continuación, puede implementar cualquiera delos 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,también puede publicar mediante el uso de la línea de comandos de MSBuild. Esto le permite configurar su equipo de construcciónmedio ambiente para incluir la publicación en un modelo continuo de integración.Para obtener más información, consulte Cómo: Implementar un proyecto de aplicación Web con un solo clic en Publicar y WebDesplegar en el sitio web de MSDN y Web 1-Haga clic en Publicar con VS 2010 en el blog de Vishal Joshi. Para verpresentaciones en video acerca de la implementación de aplicaciones Web en Visual Studio 2010, consulte VS 2010 para la WebDesarrollador Previews en el blog de Vishal Joshi.RecursosLos siguientes sitios Web proporcionan información adicional acerca de ASP.NET 4 y Visual Studio 2010.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation64

Page 65: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

ASP.NET 4 - La documentación 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 dinámicos de ASP.NET Mapa de contenido - Recursos en línea sobreel sitio del equipo de ASP.NET y en la documentación oficial de datos dinámicos 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 incluyeinformación acerca de características 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 Información general de Desarrollo Web© 2010 Microsoft Corporation65

Page 66: ASP NET 4 and Visual Studio 2010 Web Development Overview.en.Es

RenunciaEste es un documento preliminar y puede cambiar sustancialmente antes del lanzamiento comercial definitivo de lasoftware descrito en este documento.La información contenida en este documento representa la visión actual de Microsoft Corporation enlos temas tratados a partir de la fecha de publicación. Debido a que Microsoft debe responder a cambios del mercadocondiciones, no debe interpretarse como un compromiso por parte de Microsoft, y Microsoftno puede garantizar la exactitud de la información presentada después de la fecha de publicación.Este Libro Blanco es sólo para fines informativos. MICROSOFT NO OTORGA GARANTÍAS EXPRESAS,IMPLÍCITAS O LEGALES, EN CUANTO A LA INFORMACIÓN DE ESTE DOCUMENTO.Cumplir con todas las leyes de derechos de autor aplicables es responsabilidad del usuario. Sin limitar los derechospor derechos de autor, ninguna parte de este documento puede ser reproducida, almacenada o introducida en un sistema de recuperaciónsistema, o transmitida en cualquier forma o por cualquier medio (electrónico, mecánico, fotocopia, grabación ode lo contrario), o para cualquier propósito, 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 intelectuallos derechos sobre los contenidos de este documento. Salvo que se indique expresamente en el escrito de licenciaAcuerdo de Microsoft, la entrega de este documento no le otorga ninguna licencia sobre estaspatentes, marcas, derechos de autor u otra propiedad intelectual.A menos que se indique lo contrario, los ejemplos de compañías, organizaciones, productos, nombres de dominio, de correo electrónicoelectrónico, logotipos, personas, lugares y eventos mencionados son ficticios, y ninguna asociación concompañía, organización, producto, nombre de dominio, dirección de correo electrónico, logotipo, persona, lugar o evento espretende ni debe deducirse.© 2009 Microsoft Corporation. Todos los derechos reservados.Microsoft y Windows son marcas comerciales registradas o marcas comerciales de Microsoft Corporation en losEstados Unidos y / u otros países.Los nombres de compañías y productos reales aquí mencionados pueden ser marcas comerciales de susrespectivos propietarios.ASP.NET 4 y Visual Studio 2010 Información general de Desarrollo Web© 2010 Microsoft Corporation66