Lo nuevo en .NET Framework 4
Este tema contiene información sobre las principales características y mejoras de .NET Framework versión 4. No proporciona información completa sobre todas las características nuevas y está sujeto a cambios.
.NET Framework 4 incluye un modelo de seguridad mejorado. Para obtener más información, vea Cambios de seguridad en .NET Framework 4.
En las siguientes secciones se describen otras nuevas características y mejoras que se han incluido en .NET Framework 4:
Compatibilidad e implementación de aplicaciones
Principales características nuevas y mejoras
Managed Extensibility Framework
Informática en paralelo
Redes
Web
Cliente
Datos
Windows Communication Foundation
Windows Workflow Foundation
Vea Nuevos tipos y miembros en .NET Framework 4 para obtener listas de los nuevos espacios de nombres, tipos y miembros agregados a los tipos existentes.
Visual Studio 2010 Service Pack 1 (SP1) incluye una actualización para .NET Framework 4.
Compatibilidad e implementación de aplicaciones
.NET Framework 4 es muy compatible con las aplicaciones que se han compilado con versiones anteriores de .NET Framework, salvo con respecto a algunos cambios que se han realizado para mejorar la seguridad, el cumplimiento de normas, la exactitud, la confiabilidad y el rendimiento.
.NET Framework 4 no utiliza automáticamente su versión de Common Language Runtime para ejecutar las aplicaciones que se han compilado con versiones anteriores de .NET Framework. Para ejecutar aplicaciones anteriores con .NET Framework 4, es preciso compilar la aplicación con la versión de .NET Framework de destino especificada en las propiedades del proyecto en Visual Studio, o se puede especificar el runtime compatible mediante el <supportedRuntime> (Elemento) en un archivo de configuración de la aplicación.
Si su aplicación o componente no funciona una vez instalado .NET Framework 4, envíe un error al sitio web Microsoft Connect. Para probar la compatibilidad, vea el tema .NET Framework 4 Application Compatibility. Para obtener información sobre las características nuevas, vea Tutoriales de Visual Studio 2010 y .NET Framework 4.
Para obtener instrucciones sobre cómo migrar a .NET Framework 4, vea Guía de migración para .NET Framework 4 y Compatibilidad de versiones en .NET Framework
En las secciones siguientes se describen las mejoras en la implementación.
Client Profile
.NET Framework 4 Client Profile admite más plataformas que en versiones anteriores y proporciona una implementación rápida de las aplicaciones. Ahora varias plantillas de proyecto nuevas tienen como destino Client Profile de manera predeterminada. Para obtener más información, vea .NET Framework Client Profile.
Ejecución en paralelo en el mismo proceso
Esta característica permite a una aplicación cargar e iniciar varias versiones de .NET Framework en el mismo proceso. Por ejemplo, se pueden ejecutar aplicaciones que cargan en el mismo proceso complementos (o componentes) basados en .NET Framework 2.0 SP1 y complementos basados en .NET Framework 4. Los componentes más antiguos siguen usando la versión anterior de .NET Framework y los nuevos componentes emplean la nueva versión de .NET Framework. Para obtener más información, vea Ejecución en paralelo y en proceso.
Biblioteca de clases portable
Cuando se instala Visual Studio 2010 Service Pack 1 (SP1) y Portable Library Tools, se pueden crear bibliotecas de clases portables que funcionan en diversas plataformas .NET Framework sin necesidad de volver a compilar. Para obtener más información, vea Bibliotecas de clases portables.
Volver al principio
Principales características nuevas y mejoras
En las siguientes secciones, se describen las nuevas características y mejoras proporcionadas por Common Language Runtime (CLR) así como las bibliotecas de clases base.
Diagnósticos y rendimiento
Las versiones anteriores de .NET Framework no proporcionaban ninguna manera de determinar si un dominio de aplicación concreto estaba afectando a otros dominios de aplicación, ya que las API y las herramientas del sistema operativo, como el Administrador de tareas de Windows, solo eran precisas en el nivel de proceso. A partir de .NET Framework 4, puede calcular el uso del procesador y de la memoria por dominio de aplicación.
Puede supervisar el uso de la CPU y de la memoria de cada dominio de aplicación. La supervisión de recursos del dominio de aplicación está disponible a través de las API de hospedaje administrado y nativo, y de Seguimiento de eventos para Windows (ETW). Cuando esta característica está habilitada, recopila estadísticas para todos los dominios de aplicación del proceso mientras dure el proceso. Vea la nueva propiedad AppDomain.MonitoringIsEnabled.
Ahora puede tener acceso a los eventos de ETW con fines de diagnóstico para mejorar el rendimiento. Para obtener más información, vea Eventos ETW de CLR y Controlar el registro de .NET Framework. Vea también Contadores de rendimiento y aplicaciones en paralelo en proceso.
El atributo System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute permite al código administrado administrar excepciones que indican un estado de proceso dañado.
Globalización
.NET Framework 4 proporciona nuevas referencias culturales neutras y específicas, valores de propiedad actualizados, mejoras en el tratamiento de cadenas y otras mejoras. Para obtener más información, vea Novedades de la globalización y localización.
Recolección de elementos no utilizados
.NET Framework 4 proporciona recolección de elementos no utilizados en segundo plano. Esta característica reemplaza la recolección simultánea de elementos no utilizados de las versiones anteriores y proporciona un mayor rendimiento. Para obtener más información, vea Fundamentos de la recolección de elementos no utilizados.
Contratos de código
Los contratos de código le permiten especificar información contractual que no está representada exclusivamente por la firma de un método o un tipo. El nuevo espacio de nombres System.Diagnostics.Contracts contiene clases que proporcionan una manera independiente del idioma de expresar los supuestos de programación en forma de condiciones previas, condiciones posteriores y objetos invariables. Los contratos mejoran las pruebas con comprobación en tiempo de ejecución, permiten una comprobación del contrato estática y admiten la generación de documentación. Para obtener más información, vea Contratos de código.
Ensamblados de interoperabilidad en tiempo de diseño
Ya no es necesario incluir ensamblados de interoperabilidad primarios (PIA) para implementar aplicaciones que interoperan con objetos COM. En .NET Framework 4, los compiladores pueden incrustar la información de tipo de los ensamblados de interoperabilidad, seleccionando únicamente los tipos realmente usados por una aplicación (por ejemplo, un complemento). Common Language Runtime garantiza la seguridad de tipos. Vea Utilizar tipos COM en código administrado y Tutorial: Incrustar información de tipos de los ensamblados de Microsoft Office (C# y Visual Basic).
Dynamic Language Runtime
Dynamic Language Runtime (DLR) es un nuevo entorno en tiempo de ejecución que agrega un conjunto de servicios para lenguajes dinámicos a CLR. Con DLR es más fácil desarrollar lenguajes dinámicos para su ejecución en .NET Framework y agregar características dinámicas a lenguajes con tipos estáticos. Para admitir DLR, se ha agregado el nuevo espacio de nombres System.Dynamic a .NET Framework.
Los árboles de expresión se extienden con nuevos tipos que representan el flujo de control; por ejemplo, System.Linq.Expressions.LoopExpression y System.Linq.Expressions.TryExpression. Estos nuevos tipos los utiliza Dynamic Language Runtime (DLR) y no los utiliza LINQ.
Además, se han agregado al espacio de nombres System.Runtime.CompilerServices varias clases nuevas que admiten la infraestructura de .NET Framework. Para obtener más información, vea Información general acerca de Dynamic Language Runtime.
Covarianza y contravarianza
Varias interfaces genéricas y delegados admiten ahora covarianza y contravarianza. Para obtener más información, vea Covarianza y contravarianza en genéricos.
BigInteger y números complejos
La nueva estructura System.Numerics.BigInteger es un tipo de datos Integer de precisión arbitraria que admite todas las operaciones con enteros estándar, incluyendo la manipulación de bits. Se puede usar desde cualquier lenguaje de .NET Framework. Además, algunos de los nuevos lenguajes de .NET Framework (como F# e IronPython) tienen compatibilidad integrada para esta estructura.
La nueva estructura System.Numerics.Complex representa un número complejo que admite operaciones aritméticas y trigonométricas con números complejos.
Tuplas
.NET Framework 4 proporciona la clase System.Tuple para crear objetos de tupla que contienen datos estructurados. También proporciona clases de tupla genéricas para admitir tuplas que tienen entre uno y ocho componentes (es decir, desde singleton hasta óctuple). Para admitir objetos de tupla con nueve o más componentes, hay una clase de tupla genérica que tiene siete parámetros de tipo y un octavo parámetro de cualquier tipo de tupla.
Mejoras de enumeración en el sistema de archivos
Los nuevos métodos de enumeración de archivos mejoran el rendimiento de las aplicaciones que obtienen acceso a directorios de archivos grandes o que iteran por las líneas de archivos de gran tamaño. Para obtener más información, vea Cómo: Enumerar directorios y archivos.
Archivos asignados a memoria
.NET Framework es compatible ahora con archivos asignados a memoria. Puede usar archivos asignados a memoria para editar archivos muy grandes y crear memoria compartida para la comunicación entre procesos.
Sistemas operativos y procesos de 64 bits
Puede identificar sistemas operativos y procesos de 64 bits con las propiedades Environment.Is64BitOperatingSystem y Environment.Is64BitProcess.
Puede especificar una vista de 32 o de 64 bits del Registro con la enumeración Microsoft.Win32.RegistryView al abrir las claves base.
Otras características nuevas
En la lista siguiente se describen las nuevas capacidades, mejoras y ventajas adicionales. Algunas de ellas están basadas en sugerencias de los clientes.
Para admitir el formato dependiente de la referencia cultural, la estructura System.TimeSpan incluye nuevas sobrecargas de los métodos ToString, TryParse y Parse, así como nuevos métodos TryParseExact y ParseExact.
El nuevo método String.IsNullOrWhiteSpace indica si una cadena es nula, está vacía o consta solo de caracteres de espacio en blanco. Se han agregado nuevas sobrecargas a los métodos String.Join y String.Concat, que concatenan los miembros de colecciones System.Collections.Generic.IEnumerable<T>.
El método String.Concat permite concatenar todos los elementos de una colección enumerable sin convertir primero los elementos en cadenas.
Hay dos nuevos métodos útiles: StringBuilder.Clear y Stopwatch.Restart.
El nuevo método Enum.HasFlag determina si uno o más campos o marcas de bits están establecidos en un valor de enumeración. El método Enum.TryParse devuelve un valor booleano que indica si una cadena o un valor entero se pudo analizar correctamente.
La enumeración System.Environment.SpecialFolder contiene varias carpetas nuevas.
Ahora puede copiar fácilmente una secuencia a otra con el método CopyTo en clases que heredan de la clase System.IO.Stream.
Las nuevas sobrecargas del método Path.Combine le permiten combinar rutas de acceso de archivos.
Las nuevas interfaces System.IObserver<T> y System.IObservable<T> proporcionan un mecanismo generalizado para las notificaciones mediante inserción.
Las clases System.UIntPtr y System.IntPtr incluyen ahora compatibilidad con los operadores de resta y suma.
Ahora puede habilitar la inicialización diferida para cualquier tipo personalizado ajustando el tipo dentro de una clase System.Lazy<T>.
La nueva clase System.Collections.Generic.SortedSet<T> proporciona un árbol que mantiene los datos ordenados después de que se hayan realizado operaciones de inserción, eliminación y búsqueda. Esta clase implementa la nueva interfaz System.Collections.Generic.ISet<T>.
Los algoritmos de compresión para las clases System.IO.Compression.GZipStream y System.IO.Compression.DeflateStream se han mejorado para que no aumenten más los datos que ya están comprimidos. Asimismo, se ha quitado la restricción de tamaño de 4 gigabytes para comprimir secuencias.
La nueva sobrecarga del método Monitor.Enter(Object, Boolean) toma una referencia booleana y la establece de forma atómica en true solo si se entra correctamente en el monitor.
Puede usar el método Thread.Yield para que el subproceso que realiza la llamada ceda la ejecución a otro subproceso que está listo para ejecutarse en el procesador actual.
La estructura System.Guid contiene ahora los métodos TryParse y TryParseExact.
La nueva enumeración Microsoft.Win32.RegistryOptions permite especificar una clave volátil del Registro que no se conserva cuando el equipo se reinicia.
Las claves del Registro ya no están restringidas a una longitud máxima de 255 caracteres.
Volver al principio
Managed Extensibility Framework
Managed Extensibility Framework (MEF) es una nueva biblioteca de .NET Framework 4 que le ayuda a compilar aplicaciones extensibles y ajustables. MEF le permite especificar los puntos donde se puede extender una aplicación, exponer los servicios que se van a ofrecer a otras aplicaciones extensibles y crear partes para su consumo por parte de aplicaciones extensibles. También facilita la detectabilidad de las partes disponibles basándose en metadatos, sin necesidad de cargar los ensamblados para las partes. Para obtener más información, vea Información general sobre Managed Extensibility Framework y Managed Extensibility Framework. Para obtener una lista de los tipos de MEF, vea el espacio de nombres System.ComponentModel.Composition.
Volver al principio
Informática en paralelo
.NET Framework 4 presenta un nuevo modelo de programación para escribir código multiproceso y asincrónico que simplifica considerablemente el trabajo de los desarrolladores de aplicaciones y de bibliotecas. El nuevo modelo permite a los desarrolladores escribir código paralelo eficaz, específico y escalable en una locución natural sin tener que trabajar directamente con subprocesos o el bloque de subprocesos. El nuevo espacio de nombres System.Threading.Tasks y otros tipos relacionados admiten este nuevo modelo. Parallel LINQ (PLINQ), que es una implementación en paralelo de LINQ to Objects, ofrece una funcionalidad mediante sintaxis declarativa. Para obtener más información, vea Programación paralela en .NET Framework.
Volver al principio
Redes
Entre las mejoras de red, se encuentran las siguientes:
Mejoras de seguridad para la autenticación de Windows en varias clases, incluidas System.Net.HttpWebRequest, System.Net.HttpListener, System.Net.Mail.SmtpClient, System.Net.Security.SslStream y System.Net.Security.NegotiateStream. Hay protección extendida para las aplicaciones en Windows 7 y Windows Server 2008 R2. Para obtener más información, vea Integrated Windows Authentication with Extended Protection.
Compatibilidad con NAT (Traducción de direcciones de red) transversal a través de IPv6 y Teredo. Para obtener más información, vea NAT Traversal using IPv6 and Teredo.
Nuevos contadores de rendimiento de la red que proporcionan información sobre los objetos HttpWebRequest. Para obtener más información, vea Contadores de rendimiento de redes.
En la clase System.Net.HttpWebRequest, se admite el uso de encabezados de intervalo de bytes de gran tamaño (intervalos de 64 bits) con nuevas sobrecargas para el método AddRange. Nuevas propiedades de la clase System.Net.HttpWebRequest permiten a una aplicación establecer un gran número de encabezados HTTP. Se puede utilizar la propiedad Host para establecer el valor del encabezado host de una solicitud HTTP que es independiente del identificador URI de la solicitud.
Compatibilidad con la capa de sockets seguros (SSL) para la clase System.Net.Mail.SmtpClient y las clases relacionadas.
Mayor compatibilidad con los encabezados de correo en la clase System.Net.Mail.MailMessage.
Compatibilidad con el cifrado null. Se puede especificar la directiva de cifrado mediante la clase System.Net.ServicePointManager y la propiedad EncryptionPolicy. Ahora, los constructores de la clase System.Net.Security.SslStream toman una clase System.Net.Security.EncryptionPolicy como parámetro.
Credenciales para esquemas de autenticación basados en contraseña, como la autenticación básica, implícita, NTLM y Kerberos, en la clase System.Net.NetworkCredential. Para mejorar la seguridad, las contraseñas pueden tratarse ahora como instancias de System.Security.SecureString en lugar de como instancias de System.String.
Capacidad para especificar cómo se convierte un identificador URI con valores codificados por porcentaje y cómo se normaliza en las clases System.Net.HttpListener y System.Uri. Para obtener más información, vea las clases System.Net.Configuration.HttpListenerElement, System.Configuration.SchemeSettingElement, System.Configuration.SchemeSettingElementCollection y System.Configuration.UriSection.
Volver al principio
Web
ASP.NET versión 4 presenta nuevas características en las áreas siguientes:
Servicios principales, incluida una nueva API que permite extender el almacenamiento en caché, la compatibilidad con la compresión de los datos de estado de sesión y un nuevo administrador de precarga de aplicación (característica de inicio automático).
Formularios Web Forms, con más compatibilidad integrada con el enrutamiento de ASP.NET, compatibilidad mejorada con estándares web, actualización de la compatibilidad de los exploradores, nuevas características para los controles de datos y nuevas características para la administración de los estados de vista.
Controles de formularios Web Forms, con un nuevo control Chart.
MVC, con nuevos métodos de aplicación auxiliar para las vistas, compatibilidad con aplicaciones MVC subdivididas y controladores asincrónicos.
Datos dinámicos, con compatibilidad con las aplicaciones web existentes, compatibilidad con las relaciones de varios a varios y con la herencia, nuevos atributos y plantillas de campo, y filtrado de datos mejorado.
Microsoft Ajax, con compatibilidad adicional con las aplicaciones Ajax basadas en cliente en Microsoft Ajax Library.
Visual Web Developer, con IntelliSense mejorado para JScript, nuevos fragmentos de código de autocompletar para marcado HTML y ASP.NET, y compatibilidad mejorada con CSS.
Implementación, con nuevas herramientas para automatizar las tareas de implementación típicas.
Compatibilidad con múltiples versiones, con mejora del filtrado de las características que no están disponibles en la versión de destino de .NET Framework.
Para obtener más información sobre estas características, vea Novedades de ASP.NET 4 y Visual Web Developer.
Volver al principio
Cliente
La versión 4 de Windows Presentation Foundation (WPF) contiene cambios y mejoras en las áreas siguientes:
Nuevos controles, incluidos Calendar, DataGrid y DatePicker.
VisualStateManager admite el cambio de estados de los controles.
Entrada táctil y manipulación le permite crear aplicaciones que reciben datos de varias entradas táctiles simultáneamente en Windows 7.
Gráficos y animación admite el redondeo del diseño, Pixel Shader versión 3.0, composición en caché y funciones de aceleración.
Texto ha mejorado la presentación de texto, y admite personalizar el color del símbolo de intercalación y seleccionar el color en los cuadros de texto.
El enlace se admite en la propiedad Command de InputBinding, objetos dinámicos y la propiedad Text.
Las aplicaciones del explorador XAML (XBAP) admiten la comunicación con la página web y la implementación de plena confianza.
Los nuevos tipos del espacio de nombres System.Windows.Shell le permiten comunicarse con la barra de tareas de Windows 7 y pasar datos al shell de Windows.
WPF y Silverlight Designer de Visual Studio 2010 cuentan con varias mejoras del diseñador para facilitar la creación de aplicaciones de WPF o Silverlight.
Para obtener más información, vea Novedades de WPF versión 4.
Volver al principio
Datos
ADO.NET
ADO.NET proporciona nuevas características para Entity Framework, incluidos objetos que ignoran la persistencia, funciones en consultas LINQ y generación de código personalizado de la capa de objeto. Para obtener más información, vea Novedades en ADO.NET.
Datos dinámicos
En ASP.NET 4, se ha mejorado Datos dinámicos para ofrecerle aún más eficacia a la hora de compilar rápidamente sitios web controlados por datos. Entre estas estructuras se incluyen las siguientes:
Validación automática basada en restricciones que se definen en el modelo de datos.
Posibilidad de cambiar fácilmente el código que se genera para campos en los controles DetailsView y GridView usando plantillas de campo que forman parte de un proyecto de Datos dinámicos.
Para obtener más información, vea Novedades de ASP.NET 4 y Visual Web Developer.
Servicios de datos de WCF
Servicio de datos de ADO.NET se denomina ahora Servicios de datos de WCF y tiene las siguientes características nuevas:
Enlace de datos.
Contar las entidades de un conjunto de entidades.
Paginación controlada por servidor.
Proyecciones de consultas.
Proveedores de servicios de datos personalizados.
Transmitir por secuencias recursos binarios.
Para obtener más información, vea What's New in WCF Data Services.
Volver al principio
Windows Communication Foundation
Windows Communication Foundation (WCF) proporciona las mejoras siguientes:
Activación basada en la configuración: ya no es necesario tener un archivo .svc.
Integración de System.Web.Routing: le ofrece más control sobre la dirección URL del servicio al permitir el uso de direcciones URL sin extensión.
Compatibilidad con varios enlaces de sitios de IIS: le permite tener varias direcciones base con el mismo protocolo en el mismo sitio web.
Servicio de enrutamiento: le permite enrutar mensajes según el contenido.
Compatibilidad con WS-Discovery: le permite crear y buscar servicios reconocibles.
Extremos estándar: extremos predefinidos que le permiten especificar únicamente ciertas propiedades.
Servicios de flujo de trabajo: integra WCF y WF proporcionando actividades para enviar y recibir mensajes, la posibilidad de poner en correlación mensajes basándose en el contenido y un host de servicio de flujo de trabajo.
Características de WCF REST:
Almacenamiento en memoria caché de servicios Web HTTP: permite almacenar en memoria caché respuestas de servicios Web HTTP.
Compatibilidad con formatos web HTTP: le permite determinar dinámicamente el mejor formato para la respuesta de una operación de servicio.
Página de ayuda de los servicios Web HTTP: proporciona una página de ayuda automática para los servicios Web HTTP, similar a la página de ayuda de los servicios de WCF.
Control de errores Web HTTP: permite que los servicios Web HTTP devuelvan información de error en el mismo formato que la operación.
Compatibilidad con JavaScript entre dominios web HTTP: permite el uso de relleno de JSON (JSONP).
Configuración simplificada: reduce la cantidad de configuración que un servicio necesita.
Para obtener más información, vea What's New in Windows Communication Foundation.
Volver al principio
Windows Workflow Foundation
Windows Workflow Foundation (WF) proporciona mejoras en las áreas siguientes:
Modelo mejorado de actividad de flujo de trabajo: la clase Activity proporciona la abstracción base del comportamiento de flujo de trabajo.
Opciones completas de actividad de composición: los flujos de trabajo se benefician de las nuevas actividades de control de flujo que modelan las estructuras de control de flujo tradicionales, como Flowchart, TryCatch y Switch<T>.
Biblioteca de actividades integrada ampliada: entre las nuevas características de la biblioteca de actividades se incluyen nuevas actividades de control de flujo, actividades para manipular datos de miembros y actividades para controlar transacciones.
Modelo explícito de datos de actividad: las nuevas opciones para almacenar o mover datos incluyen argumentos de variable y direccionales.
Opciones mejoradas de hospedaje, persistencia y seguimiento: entre las mejoras de hospedaje se incluyen más opciones para ejecutar flujos de trabajo, persistencia explícita mediante la actividad Persist, persistencia sin descarga, impedir la persistencia mediante zonas sin persistencia, uso de transacciones de ambiente del host, grabación de información de seguimiento en el registro de eventos y reanudación de flujos de trabajo pendientes usando un objeto Bookmark.
Mayor facilidad para extender el diseñador de WF: el nuevo diseñador de WF se compila en Windows Presentation Foundation (WPF) y proporciona un modelo más fácil de usar cuando se vuelve a hospedar el diseñador de WF fuera de Visual Studio.
Para obtener más información, vea What's New in Windows Workflow Foundation.
Volver al principio
Vea también
Conceptos
Novedades de Visual Studio 2010
Novedades de ASP.NET 4 y Visual Web Developer
Novedades de Visual Basic 2010
Otros recursos
Nuevos tipos y miembros en .NET Framework 4
What's New in Windows Communication Foundation