Lo nuevo de .NET Framework versión 3.5
Actualización: noviembre 2007
Este tema contiene información sobre las características nuevas y mejoradas de .NET Framework versión 3.5.
.NET Compact Framework
.NET Compact Framework versión 3.5 amplía la compatibilidad con aplicaciones móviles distribuidas al incorporar la tecnología Windows Communication Foundation (WCF). También agrega nuevas características de lenguaje como LINQ, incluye nuevas API basadas en los comentarios de la comunidad y mejora la depuración con herramientas y características de diagnóstico actualizadas.
Para obtener información detallada sobre estas nuevas características y mejoras, vea Lo nuevo en .NET Compact Framework 3.5.
ASP.NET
.NET Framework 3.5 incorpora características mejoradas en áreas concretas de ASP.NET y Visual Web Developer. El avance más significativo es la mejora de la compatibilidad con el desarrollo de sitios web habilitados para AJAX. ASP.NET agrega compatibilidad con el desarrollo de AJAX centrado en el servidor mediante un conjunto de nuevos controles de servidor y nuevas API. Puede habilitar una página ASP.NET 2.0 existente en AJAX agregando un control ScriptManager y un control UpdatePanel, de modo que la página pueda actualizarse sin que sea necesario realizar una actualización de la página completa.
ASP.NET agrega también compatibilidad con el desarrollo de AJAX centrado en el cliente a través de una biblioteca de cliente denominada Microsoft AJAX Library. Microsoft AJAX Library es compatible con el desarrollo centrado en el cliente y orientado a objetos, que es independiente del explorador. Utilizando las clases de biblioteca de ECMAScript (JavaScript), puede habilitar comportamientos enriquecidos de la interfaz de usuario sin necesidad de realizar viajes de ida y vuelta al servidor (round trip). Puede combinar el grado de desarrollo que se centra en el servidor y en el cliente para satisfacer las necesidades de su aplicación. Por otro lado, Visual Web Developer mejora la compatibilidad de IntelliSense con JavaScript e incorpora la compatibilidad con Microsoft AJAX Library.
ASP.NET y Visual Web Developer admiten ahora la creación de servicios web basados en ASMX y WCF y hacen posible que se pueda utilizar sin problemas cualquier implementación de páginas web con Microsoft AJAX Library. Además, los servicios de aplicación del servidor, incluida la autenticación de formularios, la administración de funciones y los perfiles, se exponen ahora como servicios web que pueden utilizarse en aplicaciones compatibles con WCF, como el script de cliente y los clientes de formularios Windows Forms. ASP.NET permite que todas las aplicaciones basadas en web compartan estos servicios de aplicación comunes.
Otras mejoras que incluye ASP.NET son un nuevo control de datos, ListView, para mostrar los datos; un nuevo control de origen de datos, LinqDataSource, que expone Language Integrated Query (LINQ) a los desarrolladores web a través de las arquitecturas de controles de origen de datos de ASP.NET; una herramienta nueva, Herramienta Combinación de ASP.NET (Aspnet_merge.exe), para la combinación de ensamblados precompilados, y una estrecha integración con IIS 7.0. ListView es un control con un alto grado de personalización (utiliza plantillas y estilos) que también permite realizar operaciones de edición, inserción y eliminación, además de ofrecer funciones de ordenación y paginación. La funcionalidad de paginación de ListView se proporciona a través de un nuevo control denominado DataPager. La herramienta de combinación se puede utilizar para combinar ensamblados y agregar compatibilidad con un buen número de escenarios de administración de lanzamientos e implementación. La integración de ASP.NET e IIS 7.0 ofrece la posibilidad de utilizar los servicios de ASP.NET, como la autenticación y el almacenamiento en caché, con cualquier tipo de contenido. También ofrece la posibilidad de desarrollar módulos de canalización de servidor en código administrado de ASP.NET y admite la configuración unificada de módulos y controladores.
Otras mejoras de Visual Web Developer incluyen la compatibilidad con varios destinos, la inclusión de proyectos de aplicaciones web, una nueva vista Diseño, nuevas herramientas de diseño de Hojas de estilos en cascada (CSS) y compatibilidad con LINQ en bases de datos de SQL. La compatibilidad con varios destinos permite utilizar Visual Web Developer para desarrollar aplicaciones web destinadas a versiones concretas de .NET Framework, incluidas las versiones 2.0, 3.0 y 3.5.
Para obtener más información, vea Lo nuevo en ASP.NET y desarrollo web.
Complementos y extensibilidad
El ensamblado System.AddIn.dll de .NET Framework 3.5 proporciona un grado de compatibilidad eficaz y flexible a los programadores de aplicaciones extensibles. Introduce una nueva arquitectura y un nuevo modelo que ayudan a los programadores en las tareas preliminares al agregar extensibilidad a una aplicación y garantizar que sus extensiones siguen funcionando cuando la aplicación host cambia. El modelo proporciona las características siguientes:
Detección
Puede buscar y administrar con facilidad conjuntos de complementos en diversas ubicaciones de un equipo con la clase AddInStore. Puede utilizar esta clase para buscar y obtener información sobre los complementos mediante sus tipos base sin tener que cargarlos.
Activación
Una vez que una aplicación elige un complemento, la clase AddInToken facilita su activación. Sólo debe elegir un nivel de aislamiento y un recinto de seguridad, y el sistema se encargará de todo lo demás.
Aislamiento
La compatibilidad con dominios de aplicación y el aislamiento de procesos de complementos está integrada. El nivel de aislamiento de cada complemento depende del host. El sistema se ocupa de cargar los dominios de aplicación y los procesos y de cerrarlos una vez que sus complementos detienen su ejecución.
Recintos de seguridad
Resulta sencillo configurar los complementos con un nivel de confianza predeterminado o personalizado. Los conjuntos de permisos admitidos son los permisos de Internet, Intranet, plena confianza y el conjunto de permisos del host, así como las sobrecargas que permiten al host especificar un conjunto de permisos personalizados.
Composición de la interfaz de usuario
El modelo de complementos admite la composición directa de controles de Windows Presentation Foundation (WPF) que traspasan los límites del dominio de aplicación. Puede hacer que los complementos contribuyan directamente en la interfaz de usuario del host a la vez que mantiene los beneficios que suponen el aislamiento, la capacidad de descarga, los recintos de seguridad y el control de versiones.
Control de versiones
La arquitectura de los complementos hace posible que los hosts introduzcan nuevas versiones de su modelo de objetos sin interrumpir la compatibilidad con los complementos existentes y sin que esto afecte en modo alguno a la experiencia del desarrollador con los complementos nuevos.
Para obtener más información, vea Complementos y extensibilidad.
Common Language Runtime
Colecciones
La clase HashSet<T> proporciona operaciones de conjuntos de alto rendimiento a .NET Framework. Un conjunto es una colección que no contiene ningún elemento duplicado y cuyos elementos no están ordenados de un modo determinado. Para obtener más información, vea Tipo de colección HashSet.
Diagnósticos
La clase EventSchemaTraceListener proporciona la traza de eventos conformes al esquema de un extremo a otro. Puede utilizar la traza de un extremo a otro en un sistema con componentes heterogéneos que atraviesan los límites de los subprocesos, de AppDomain, de los procesos y de los equipos. Se ha definido un esquema de eventos normalizado (vea Event Representation for Event Consumers) para habilitar la traza entre estos límites. Este esquema es compartido por varias tecnologías de traza, incluidas las herramientas de diagnóstico de Windows Vista, como el Visor de eventos. El esquema también permite agregar elementos personalizados conformes al esquema.
La clase EventSchemaTraceListener se ha adaptado para registrar el rendimiento a la vez que se mantiene compatibilidad implícita con la traza sin bloqueo.
E/S y canalizaciones
Las canalizaciones proporcionan comunicación entre procesos que se ejecutan en el mismo equipo o en cualquier otro equipo de Windows de una red. .NET Framework proporciona acceso a dos tipos de canalizaciones: las canalizaciones anónimas y las canalizaciones con nombre. Para obtener más información sobre las canalizaciones, vea Canalizaciones.
Recolección de elementos no utilizados
La clase GCSettings tiene una nueva propiedad LatencyMode que se puede utilizar para ajustar el momento en que el recolector de elementos no utilizados irrumpe en la aplicación. Esta propiedad se establece en uno de los valores de la nueva enumeración GCLatencyMode.
La clase GC tiene una nueva sobrecarga del método Collect(Int32, GCCollectionMode) que se puede utilizar para ajustar el comportamiento de una operación de recolección de elementos no utilizados forzada. Por ejemplo, puede utilizar esta sobrecarga para especificar que el recolector de elementos no utilizados debe determinar si el momento actual es el apropiado para reclamar los objetos. Esta sobrecarga toma un valor de la nueva enumeración GCCollectionMode.
Reflexión y emisión de reflexión con confianza parcial
Los ensamblados que se ejecutan con confianza parcial ahora pueden emitir código y ejecutarlo. El código emitido que sólo llama a tipos y métodos públicos no necesita ningún otro permiso además de los que solicitan los tipos y los métodos a los que tiene acceso. El nuevo constructor DynamicMethod(String, Type, array<Type[]) facilita la emisión de este tipo de código.
Cuando el código emitido necesita obtener acceso a datos privados, el nuevo constructor DynamicMethod(String, Type, array<Type[], Boolean) permite el acceso restringido. El host debe conceder permisos ReflectionPermission con el nuevo marcador RestrictedMemberAccess para habilitar esta característica, que permite al código emitido obtener acceso a datos privados exclusivamente en aquellos tipos y métodos de los ensamblados que tienen un nivel de confianza equivalente o menor. Vea Tutorial: Emitir código en escenarios que no son de plena confianza.
De igual forma, en la reflexión el host concede RestrictedMemberAccess, lo que permite utilizar de forma restringida métodos para obtener acceso a propiedades privadas, llamar a métodos privados, etc., pero sólo en ensamblados con un nivel de confianza equivalente o menor.
Subprocesos
Bloqueo de lectura y escritura mejorado
La nueva clase ReaderWriterLockSlim proporciona un rendimiento significativamente mejor que ReaderWriterLock y es comparable a la instrucción lock (SyncLock en Visual Basic). Las transiciones entre los estados de bloqueo se han simplificado para facilitar la programación y reducir la posibilidad de interbloqueo. La nueva clase admite la recursividad para simplificar la migración de lock y ReaderWriterLock.
Mejoras de rendimiento de ThreadPool
El rendimiento de la distribución de los elementos de trabajo y las tareas de E/S en el grupo de subprocesos administrados ha mejorado significativamente. La distribución se administra ahora en el código administrado, sin que se produzcan transiciones al código no administrado y con menos bloqueos. Es preferible utilizar ThreadPool que implementaciones del grupo de subprocesos administrados específicas de la aplicación.
Características mejoradas para las zonas horarias
Dos nuevos tipos, DateTimeOffset y TimeZoneInfo, mejoran la compatibilidad con las zonas horarias y facilitan el desarrollo de aplicaciones que trabajan con fechas y horas de diferentes zonas horarias. Para obtener una explicación de qué tipo debe utilizarse en cada situación específica, vea Elegir entre DateTime, DateTimeOffset y TimeZoneInfo.
TimeZoneInfo
La nueva clase TimeZoneInfo reemplaza con creces la funcionalidad de la clase TimeZone existente. Puede utilizar TimeZoneInfo para recuperar cualquier zona horaria definida en el Registro, y no sólo la zona horaria local y la hora universal coordinada (UTC). También puede utilizar esta clase para definir zonas horarias personalizadas, serializar y deserializar los datos de la zona horaria personalizada y convertir valores entre distintas zonas horarias. Para obtener más información sobre el desarrollo de aplicaciones que utilizan la clase TimeZoneInfo, vea Horas y zonas horarias.
DateTimeOffset
La nueva estructura DateTimeOffset amplía la estructura DateTime para facilitar el trabajo con valores de tiempo entre distintas zonas horarias. La estructura DateTimeOffset almacena información de fecha y hora como un valor de fecha y hora UTC junto con un valor de desfase que indica cuánto difiere ese valor de la hora UTC.
Criptografía
Manifiestos de ClickOnce
Existen nuevas clases de criptografía para la comprobación y obtención de información sobre las firmas de manifiestos de aplicaciones ClickOnce. La clase ManifestSignatureInformation obtiene información sobre una firma de manifiesto cuando se utiliza la sobrecarga de su método VerifySignature. Puede utilizar la enumeración ManifestKinds para especificar los manifiestos que se van a comprobar. El resultado de la comprobación es uno de los valores de la enumeración SignatureVerificationResult. ManifestSignatureInformationCollection proporciona una colección de sólo lectura de los objetos ManifestSignatureInformation de las firmas comprobadas. Además, las clases siguientes proporcionan información de firma específica:
StrongNameSignatureInformation
Contiene información sobre la firma de nombre seguro de un manifiesto.
AuthenticodeSignatureInformation
Representa la información sobre la firma Authenticode de un manifiesto.
-
Contiene información sobre la marca de tiempo de una firma Authenticode.
-
Proporciona un mecanismo sencillo para comprobar si se confía en una firma Authenticode.
Compatibilidad con Suite B
.NET Framework 3.5 admite el conjunto de algoritmos criptográficos Suite B publicado por la Agencia de Seguridad Nacional (NSA). Para consultar la documentación de la NSA, visite www.nsa.gov/ia/industry/crypto_suite_b.cfm.
Se incluyen los siguientes algoritmos:
Estándar de cifrado avanzado (AES) con tamaños clave de cifrado de 128 y 256 bits.
Algoritmo hash seguro (SHA-256 y SHA-384) para aplicar un algoritmo hash.
Algoritmo de firma digital de curva elíptica (ECDSA) que utiliza curvas de módulos primos de 256 bits y 384 bits. Este algoritmo lo proporciona la clase ECDsaCng. Permite firmar con una clave privada y realizar las comprobaciones con una clave pública.
Diffie-Hellman de curva elíptica (ECDH), que utiliza curvas de módulos primos de 256 bits y 384 bits para el acuerdo confidencial o intercambio de claves. Este algoritmo lo proporciona la clase ECDiffieHellmanCng.
Los contenedores de código administrado para las implementaciones certificadas del Estándar federal de procesamiento de información (FIPS) de AES, SHA-256 y SHA-384 están disponibles en las nuevas clases AesCryptoServiceProvider, SHA256CryptoServiceProvider y SHA384CryptoServiceProvider.
Las clases de Criptografía de próxima compilación (CNG) proporcionan una implementación administrada de la Crypto API (CAPI) nativa. La clase de contenedor de claves CngKey es fundamental en este grupo, pues abstrae el almacenamiento y el uso de claves CNG. Esta clase permite almacenar de forma segura un par de claves o una clave pública y hacer referencia a ella utilizando un nombre de cadena simple. Las clases ECDsaCng y ECDiffieHellmanCng utilizan objetos CngKey.
La clase CngKey se utiliza en otras numerosas operaciones, entre las que se incluyen la apertura, creación, eliminación y exportación de claves. También proporciona acceso al identificador de clave subyacente que se va a utilizar en las llamadas directas a las API nativas.
Existe un buen número de clases CNG compatibles, como CngProvider, que mantiene un proveedor de almacenamiento de claves, CngAlgorithm, que mantiene un algoritmo de CNG, y CngProperty, que mantiene propiedades de clave que se utilizan habitualmente.
Conexión de red
Conexión de red punto a punto
La conexión de red punto a punto es una tecnología de red sin servidor que permite que varios dispositivos de red compartan recursos y se comuniquen directamente entre sí. El espacio de nombres System.Net.PeerToPeer proporciona un conjunto de clases compatibles con el Protocolo de resolución de nombres de mismo nivel (PNRP) que permite detectar otros nodos del mismo nivel a través de los objetos PeerName registrados en una nube punto a punto. PNRP puede resolver nombres del mismo nivel en direcciones IP de tipo IPv6 o IPv4.
Colaboración a través de la conexión de red punto a punto
El espacio de nombres System.Net.PeerToPeer.Collaboration proporciona un conjunto de clases que admiten la colaboración a través de la infraestructura de conexión de red punto a punto. Estas clases simplifican el proceso por el que las aplicaciones pueden:
Realizar un seguimiento de la presencia de elementos del mismo nivel sin un servidor.
Enviar invitaciones a los participantes.
Detectar elementos del mismo nivel en la misma subred o LAN.
Administrar contactos.
Interactuar con elementos del mismo nivel.
La infraestructura de colaboración punto a punto de Microsoft proporciona un marco basado en conexiones de red punto a punto para actividades de colaboración sin servidor. El uso de este marco permite que aplicaciones de red descentralizadas utilicen el potencial colectivo de varios equipos a través de una subred o Internet. Estos tipos de aplicaciones se pueden utilizar en actividades como el planeamiento de la colaboración, la comunicación, la distribución de contenido o incluso servicios de contacto con contrincantes de juego en red.
Características mejoradas de rendimiento del socket
La clase Socket se ha mejorado para su uso en aplicaciones que utilizan la E/S de red asincrónica con el fin de lograr el mayor rendimiento posible. Se ha agregado una serie de nuevas clases que forman parte de un conjunto de mejoras del espacio de nombres Socket. Estas clases proporcionan un modelo asincrónico alternativo que se puede utilizar en aplicaciones de socket de alto rendimiento especializadas. Estas mejoras se han diseñado específicamente para aplicaciones de servidores de red que requieren un alto rendimiento.
Windows Communication Foundation
Integración con WCF y WF — Servicios de flujo de trabajo
.NET Framework 3.5 unifica los marcos de Windows Workflow Foundation (WF) y Windows Communication Foundation (WCF) para que puedan utilizar WF como un mecanismo de creación de servicios de WCF o para que pueda exponer el flujo de trabajo de WF existente como un servicio. De este modo, es posible crear servicios que se pueden almacenar, pueden transferir datos con facilidad dentro y fuera de un flujo de trabajo y pueden exigir protocolos en el nivel de la aplicación. Para obtener más información, vea Creación de servicios de flujo de trabajo y de servicios duraderos. Para obtener ejemplos de código, vea Ejemplos de servicios de flujo de trabajo.
Servicios duraderos
.NET Framework 3.5 también incorpora la compatibilidad con los servicios de WCF que utilizan el modelo de persistencia de WF para almacenar la información de estado del servicio. Estos servicios duraderos conservan la información de estado en el nivel de la aplicación, de modo que si una sesión se interrumpe y se reanuda de nuevo más tarde, la información de estado de ese servicio se puede volver a cargar desde el almacén de persistencia. Para obtener más información, vea Creación de servicios de flujo de trabajo y de servicios duraderos. Para obtener un ejemplo de código, vea Ejemplo de servicio duradero.
Modelo de programación web de WCF
El modelo de programación web de WCF permite a los programadores generar servicios de tipo Web con WCF. El modelo de programación web incluye una capacidad de procesamiento de URI enriquecida, admite todos los verbos de HTTP, incluso GET, y un sencillo modelo de programación que permite trabajar con una gran variedad de formatos de mensajes (entre los que se incluye XML, JSON y secuencias binarias opacas). Para obtener más información, vea Modelo de programación web. Para obtener ejemplos de código, vea Ejemplos de modelo de programación web.
Distribución de WCF
WCF incluye ahora un modelo de objetos con establecimiento inflexible de tipos para procesar las fuentes de distribución, incluidos los formatos Atom 1.0 y RSS 2.0. Para obtener más información, vea Sindicación en WCF. Para obtener ejemplos de código, vea Ejemplos de sindicación.
WCF y confianza parcial
En .NET Framework 3.5, las aplicaciones que se ejecutan con permisos reducidos pueden utilizar un subconjunto limitado de las características de WCF. Las aplicaciones de servidor que se ejecutan con permisos de nivel de confianza medios de ASP.NET pueden utilizar el modelo de servicio de WCF para crear servicios HTTP básicos. Las aplicaciones cliente que se ejecutan con permisos de Zona de Internet (como aplicaciones de explorador XAML o aplicaciones sin firmar implementadas con ClickOnce) pueden utilizar los proxys de WCF para utilizar los servicios HTTP. Asimismo, las características del modelo de programación web de WCF (incluido AJAX y Distribución) están disponibles para su uso en aplicaciones con confianza parcial. Para obtener más información, vea Confianza parcial. Para obtener ejemplos de código, vea Ejemplos de WCF de confianza parcial.
Integración de WCF y ASP.NET AJAX
La integración de WCF con las funciones de AJAX (Asynchronous JavaScript and XML) en ASP.NET proporciona un modelo de programación de un extremo a otro para la compilación de aplicaciones web que pueden utilizar servicios de WCF. En las aplicaciones web de tipo AJAX, el cliente (por ejemplo, el explorador de una aplicación web) intercambia cantidades pequeñas de datos con el servidor utilizando solicitudes asincrónicas. La integración con características de AJAX en ASP.NET proporciona un mecanismo sencillo para generar servicios web de WCF a los que se puede obtener acceso mediante el JavaScript de cliente del explorador. Para obtener más información, vea Integración de AJAX y compatibilidad de JSON. Para obtener ejemplos de código, vea Ejemplos de AJAX.
Interoperabilidad de servicios web
En .NET Framework 3.5, Microsoft mantiene su compromiso con la interoperabilidad y los estándares públicos e incorpora la compatibilidad con los nuevos estándares de servicios web de transacciones, que son más seguros y confiables:
La implementación de estos protocolos se realiza utilizando los nuevos enlaces estándar, <ws2007HttpBinding> y <ws2007FederationHttpBinding>, que están documentados en Guía de interoperabilidad de los protocolos de servicios web. Para obtener un ejemplo de código, vea Ejemplos de enlace WS.
Windows Presentation Foundation
En .NET Framework 3.5, Windows Presentation Foundation contiene modificaciones y mejoras en numerosas áreas, entre las que se incluyen el control de versiones, el modelo de la aplicación, el enlace de datos, los controles, los documentos, las anotaciones y los elementos de la interfaz de usuario 3D.
Para obtener información detallada sobre estas nuevas características y mejoras, vea Lo nuevo en Windows Presentation Foundation versión 3.5.
Windows Workflow Foundation
Integración con WCF y WF — Servicios de flujo de trabajo
.NET Framework 3.5 unifica los marcos de Windows Workflow Foundation (WF) y Windows Communication Foundation (WCF) para que puedan utilizar WF como un mecanismo de creación de servicios de WCF o para que pueda exponer el flujo de trabajo de WF existente como un servicio. De este modo, es posible crear servicios que se pueden almacenar, pueden transferir datos con facilidad dentro y fuera de un flujo de trabajo y pueden exigir protocolos en el nivel de la aplicación. Para obtener más información, vea Creación de servicios de flujo de trabajo y de servicios duraderos. Para obtener ejemplos de código, vea Ejemplos de servicios de flujo de trabajo (WF).
Reglas
El motor de reglas admite ahora los métodos de extensión, la sobrecarga de operadores y el uso del nuevo operador en las reglas. Para obtener más información, vea Cambios de reglas en .NET Framework 3.5. Para obtener ejemplos de código, vea Ejemplos de reglas y condiciones.
Formularios Windows Forms
Características mejoradas de Click-Once
Se han realizado varias mejoras en ClickOnce. Entre las características mejoradas se incluye la implementación desde varias ubicaciones y la personalización de marca de terceros. Para obtener más información, vea Implementar aplicaciones ClickOnce sin nueva firma y Crear aplicaciones ClickOnce para que las implementen terceros.
La herramienta Mage.exe, que en ocasiones se utiliza con ClickOnce, se ha actualizado para .NET Framework 3.5. Para obtener más información, vea Herramienta de generación y edición de manifiestos (Mage.exe).
Servicios de autenticación, funciones y configuración
Los servicios de aplicaciones cliente son nuevos en .NET Framework 3.5 y permiten a las aplicaciones basadas en Windows (incluidos los formularios Windows Forms y las aplicaciones de Windows Presentation Foundation) tener fácil acceso a los servicios de inicio de sesión, funciones y perfiles de ASP.NET. Con estos servicios podrá autenticar a los usuarios y recuperar las funciones de usuario y la configuración de aplicaciones de un servidor compartido.
Puede habilitar los servicios de aplicaciones cliente si especifica y configura los proveedores de servicios del cliente en su archivo de configuración de la aplicación o en el Diseñador de proyectos de Visual Studio. Estos proveedores se acoplan al modelo de extensibilidad web y permiten tener acceso a los servicios web a través de las API de inicio de sesión, funciones y configuración de .NET Framework. Los servicios de la aplicación cliente también admiten una conectividad ocasional mediante el almacenamiento y recuperación de información acerca del usuario en una caché de datos local cuando la aplicación está sin conexión.
Para obtener más información, vea Servicios de aplicación cliente.
Compatibilidad con Windows Vista
Las aplicaciones de formularios Windows Forms funcionan perfectamente en Windows Vista y se han actualizado para que tengan el mismo aspecto que las aplicaciones escritas específicamente para Windows Vista, siempre que sea posible. Los cuadros de diálogo de archivos comunes se actualizan automáticamente a la versión de Windows Vista. .NET Framework 3.5 admite también el icono de escudo del Control de cuentas de usuario (UAC). Para obtener más información, vea FileDialog (Clase) y Shield.
Compatibilidad con WPF
Puede utilizar los formularios Windows Forms para hospedar controles y contenido de Windows Presentation Foundation (WPF) junto con los controles de formularios Windows Forms. También puede abrir las ventanas de WPF desde un formulario Windows Forms. Para obtener más información acerca del uso conjunto de formularios Windows Forms y WPF, vea Migración e interoperabilidad.
LINQ
Language-Integrated Query (LINQ) es una nueva característica de Visual Studio 2008 y .NET Framework 3.5. LINQ que incorpora eficaces capacidades de consulta a la sintaxis de los lenguajes C# y Visual Basic en forma de patrones de consulta estándar fáciles de aprender. Esta tecnología se puede extender para que sea compatible con cualquier tipo de almacén de datos. .NET Framework 3.5 incluye ensamblados de proveedor de LINQ que habilitan el uso de LINQ para consultar colecciones de .NET Framework, bases de datos de SQL Server, conjuntos de datos ADO.NET y documentos XML.
Los componentes de LINQ que forman parte de .NET Framework 3.5 son:
El espacio de nombres System.Linq, que contiene el conjunto de operadores de consulta estándar, además de tipos e interfaces que se utilizan en la infraestructura de una consulta de LINQ. Este espacio de nombres está en el ensamblado System.Core.dll.
El espacio de nombres System.Data.Linq, que contiene clases que admiten la interacción con bases de datos relacionales en aplicaciones de LINQ to SQL.
El espacio de nombres System.Data.Linq.Mapping, que contiene clases que se pueden utilizar para generar un modelo de objetos de LINQ to SQL que represente la estructura y el contenido de una base de datos relacional.
El espacio de nombres System.Xml.Linq, que contiene clases de LINQ to XML. LINQ to XML es una interfaz de programación XML en memoria que permite modificar los documentos XML de forma eficaz y sencilla. Con LINQ to XML, puede cargar XML, serializar XML, crear árboles XML desde el principio, manipular árboles XML en memoria y realizar validaciones con XSD. También puede usar una combinación de estas características para transformar la forma de los árboles XML.
Nuevos tipos de los espacios de nombres System.Web.UI.WebControls y System.Web.UI.Design.WebControls. Estos nuevos tipos, como LinqDataSource, admiten el uso de LINQ en páginas web ASP.NET a través de un control de origen de datos.
Las clases DataRowComparer, DataRowExtensions y DataTableExtensions del espacio de nombres System.Data admiten consultas de LINQ en objetos DataSet de ADO.NET.
En la biblioteca de clases, los métodos de extensión de LINQ que se aplican a una clase se muestran en la página de los miembros de la clase, en el panel Contenido y en el panel Índice.
Árboles de expresión
Los árboles de expresiones son nuevos en .NET Framework 3.5 y proporcionan un mecanismo para representar código de nivel de lenguaje en forma de datos. El espacio de nombres System.Linq.Expressions contiene los tipos que conforman los bloques de creación de los árboles de expresiones. Estos tipos se pueden utilizar para representar diferentes expresiones de código, por ejemplo una llamada al método o una comparación de igualdad.
Los árboles de expresiones se utilizan habitualmente en las consultas de LINQ que tienen como destino un origen de datos remoto, como una base de datos SQL. Estas consultas se representan como árboles de expresiones, y esta representación permite a los proveedores de consultas examinarlos y traducirlos a un lenguaje de consulta específico del dominio.
El espacio de nombres System.Linq.Expressions está en el ensamblado System.Core.dll.
Lenguajes de programación
Son tres los lenguajes de programación de Microsoft que tienen .NET Framework como destino explícito. Para obtener más información sobre las funciones nuevas y mejoradas de estos lenguajes, vea los siguientes temas:
Lo nuevo en el lenguaje Visual Basic
Vea también
Conceptos
Lo nuevo en ASP.NET y desarrollo web
Lo nuevo en .NET Compact Framework 3.5