Novedades de Microsoft .Net Framework 4.8

Microsoft ha lanzado .Net Framework 4.8, la última versión del marco de desarrollo de aplicaciones de la compañía para Windows. La actualización incluye una serie de correcciones de errores, parches de seguridad y mejoras en Common Language Runtime, ASP.Net, Windows Forms, Windows Presentation Foundation y Windows Communication Foundation. 

Dónde descargar .Net Framework 4.8

Puede descargar la versión de producción de .Net Framework desde el sitio .Net de Microsoft. 

Versión actual: las nuevas funciones de .Net Framework 4.8

Publicado el 18 de abril de 2019, .Net Framework 4.8 incluye las siguientes funciones nuevas y mejoras:

  • Para NGEN (Native Image Generator), las imágenes en .Net Framework ya no tienen secciones de escritura y ejecutables. Esto reduce el área de superficie disponible para los ataques que intentan ejecutar código arbitrario modificando las direcciones de memoria NGEN.
  • El análisis antimalware ahora se inicia para todos los ensamblados, ya sea que se carguen desde el disco o la red. Anteriormente, el tiempo de ejecución de .Net solo iniciaba análisis (por parte de Windows Defender y software antimalware de terceros que implementaba la Interfaz de análisis antimalware) de los ensamblados cargados desde el disco. 
  • El compilador JIT de .Net Framework 4.8 se basa en .Net Core 2.1. Las correcciones de errores y las optimizaciones basadas en la generación de código de .Net Core 2.1 ahora están disponibles en .Net Framework.
  • En la BCL (biblioteca de clases base), se ha mejorado la biblioteca de compresión externa Zlib, se ha reducido el número de finalizaciones de objetos que ocurren como resultado del uso de X509Certificate2 y tipos relacionados, y se ha agregado una API para obtener huellas digitales con un llamador- algoritmo de resumen especificado.
  • Además, el BCL en .Net Framework 4.8 reduce el impacto de FIPS (Estándares federales de procesamiento de información) en la criptografía. Desde .Net Framework 2.0, las clases de proveedores criptográficos han lanzado una excepción cuando las bibliotecas criptográficas se configuran en modo FIPS. Con .Net 4.8, estas excepciones ya no se lanzarán de forma predeterminada.
  • Se ofrecen mejoras de accesibilidad para Windows Forms, para mejorar la comunicación de los datos de la aplicación a las personas con discapacidad visual.
  • En ASP.Net, se ha solucionado un problema relacionado con el manejo de encabezados HTTP de varios valores que pueden afectar el procesamiento de datos de varias partes.
  • Se solucionaron problemas de CLR (Common Language Runtime) en los que se enviaban valores incorrectos como EventListeners.
  • Las etiquetas habilitadas en Windows Forms ahora siempre se representan a través de un color de texto de alto contraste cuando se habilita un modo de alto contraste. Esto afecta a las aplicaciones recompiladas para .Net Framework 4.8.
  • Se ha cambiado el algoritmo de hash utilizado para generar sumas de comprobación de archivos XOML cuando se crean proyectos con archivos XOML. Los desarrolladores aún pueden usar el algoritmo anterior.
  • Se ha modificado el algoritmo hash para calcular las claves de las memorias caché internas. Los desarrolladores aún pueden usar el algoritmo anterior.
  • Se ha solucionado una pérdida de memoria que afectaba a HttpWebRequest cuando se comunicaba con un servidor HTTPS a través de un proxy.
  • En Windows Presentation Foundation, se ha solucionado una pérdida de memoria que había surgido al eliminar elementos de datos de colecciones principales cuando UIAutomation estaba presente.
  • Windows Presentation Foundation ha agregado compatibilidad para el reconocimiento de DPI por monitor V2 y DPI de modo mixto.
  • En Windows Communication Foundation, se ha solucionado un problema de accesibilidad que provocaba que los controles ComboBox tuvieran un tema incorrecto en temas de alto contraste.
  • En Windows Communication Foundation, ServiceHealthBehavior se presenta como un comportamiento de servicio agregado a la colección ServiceDescription.Behaviors. Puede devolver el estado del servicio con códigos de respuesta HTTP y permitir la publicación del estado del servicio. 

Versión anterior: las nuevas funciones de .Net Framework 4.7.2

Ya popular en tecnologías como Spring Framework, la inyección de dependencias permite que un objeto proporcione dependencias de otro objeto. .Net Framework 4.7.2 facilita el uso de esta capacidad en formularios web ASP.net. Se admite la inyección basada en instaladores, interfaces y constructores, y se pueden conectar otros marcos de inyección de dependencias.

Otras características nuevas en .Net Framework 4.7.2 incluyen:

  • La SameSitepropiedad se agrega al marco web ASP.Net, para afirmar que no se debe enviar una cookie con solicitudes entre sitios. El objetivo del SameSiteatributo es reducir la fuga de información y proteger contra ataques de falsificación entre sitios. La propiedad se agrega HttpCookieType. También aparece en las cookies FormsAuthentication y SessionState.
  • Para mejorar la seguridad y el cumplimiento, la autenticación de Azure Active Directory se admite a través de una palabra clave de autenticación interactiva agregada a la autenticación multifactor. Es una extensión de la cadena de conexión SqlClient.
  • Las API se agregan a los tipos de colección estándar, lo que permite nuevas funciones, como los constructores HashSet, que permiten construir HashSets con una capacidad. Esto ofrece un beneficio de rendimiento cuando se sabe cuál es el tamaño del HashSet.
  • Las mejoras criptográficas simplifican la creación de objetos y llamadas RSA y DSA ImportParameters.
  • Windows Presentation Foundation (WPF) ha agregado la StaticResourcefunción de referencias que permite que se notifique a un asistente de diagnóstico cuando StaticResourcese resuelve una referencia. Por ejemplo, un asistente de diagnóstico como la función Editar y continuar de Visual Studio puede querer actualizar los usos de un recurso cuando cambia o reemplaza un valor en un diccionario de recursos.
  • La WorkflowDesignerColorsclase se ha agregado para mejorar las experiencias de la interfaz de usuario en modo de alto contraste.
  • A través de la descompresión de Zlib, se ha mejorado el rendimiento para descomprimir archivos Zip mediante una implementación nativa de Zip.
  • Las cargas de trabajo de .Net Framework ahora pueden generar solicitudes de firma de certificados, lo que permite que la generación de solicitudes se transforme en herramientas existentes.
  • Se ha agregado compatibilidad por monitor para Windows Presentation Foundation y aplicaciones VSTO (Visual Studio Tools para Office) compatibles con HDPI implementadas mediante ClickOnce.
  • Se ha mejorado la compatibilidad con .Net Standard 2.0.
  • Los asistentes de diagnóstico pueden localizar ResourceDictionaries creados a partir de un URI de origen determinado.

Versión anterior: Novedades de .Net Framework 4.7.1

Con el lanzamiento de .Net Framework 4.7.1 de Microsoft a mediados de octubre de 2017, la plataforma de desarrollo obtuvo mejoras críticas en la recolección de basura, la seguridad y la configuración de aplicaciones. 

Para mejorar el rendimiento de la asignación de memoria, especialmente para asignaciones de montón de objetos grandes, un cambio de arquitectura en el recolector de basura divide la asignación de montón en montones de objetos pequeños y grandes. Las aplicaciones que realizan muchas asignaciones de montón de objetos grandes deberían experimentar una reducción en la contención de bloqueo de asignación y un mejor rendimiento.

La actualización también agrega opciones seguras de hash para la autenticación de formularios ASP.Net, incluido SHA-2 (algoritmo de hash seguro), el sucesor más sólido de SHA-1. Por compatibilidad, SHA-1 sigue siendo la opción predeterminada. SHA-2 también es compatible con Message.HashAlgorithm, que especifica el algoritmo hash que utiliza la cola de mensajes al autenticarse. 

Los nuevos constructores de configuración en .Net 4.7.1 permiten a los desarrolladores inyectar y compilar configuraciones para aplicaciones en tiempo de ejecución. Los datos de configuración se pueden tomar de fuentes más allá del archivo de configuración; en versiones anteriores de .Net, la configuración es estática. A través de los constructores de configuración, las aplicaciones pueden aplicar un conjunto de constructores definido de forma personalizada a una sección de config. Los constructores pueden modificar los datos de configuración contenidos en una sección de configuración o compilarlos desde cero, incluso extrayendo nuevos datos de fuentes que no sean archivos estáticos.

Otras características de la actualización incluyen:

  • Soporte para la especificación .Net Standard 2.0, que presenta un conjunto de API compartidas por múltiples implementaciones .Net.
  • Mejoras de accesibilidad en WPF (Windows Presentation Foundation) y Windows Forms, incluidas mejoras de alto contraste, patrones de interfaz de usuario mejorados y experiencias mejoradas en herramientas como Narrador.
  • Soporte de diagnóstico visual en WPF, que permite el uso de herramientas para analizar árboles visuales XAML.
  • Soporte del compilador ReadOnlyReferences en el lenguaje C # 7.2, para pasar variables por referencia pero sin exponer los datos a modificaciones.
  • Una API de detección de funciones en tiempo de ejecución para determinar si un tiempo de ejecución admite una función en particular.
  • SystemValueTupleTipos serializables , que deberían facilitar la migración desde  System.Tuple la nueva sintaxis de tupla en C # 7.0 y Visual Basic 15.5.
  • Una API ASP.Net que proporciona una forma estandarizada de crear un HttpCookieobjeto a partir de una cadena y capturar las propiedades de las cookies, como la fecha de vencimiento y la ruta.
  • Una característica de paso de ejecución en ASP.Net, denominada ExecutionStepInvoker, que permite a los desarrolladores ejecutar pasos de ejecución dentro de su código, en lugar de en la canalización predefinida de ASP.Net. Esta función está destinada a bibliotecas relacionadas con el flujo de ejecución de aplicaciones.