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:

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 WPF versión 4

Novedades en ADO.NET

Novedades de Visual Basic 2010

Novedades de Visual C# 2010

Lo nuevo en Visual C++ 2010

Novedades de Visual F# 2010

Otros recursos

Nuevos tipos y miembros en .NET Framework 4

What's New in Windows Communication Foundation

What's New in Windows Workflow Foundation

What's New in WCF Data Services