With Microsoft’s release of .Net Framework 4.7.1 this week, the development platform gains critical improvements to garbage collection, security, and application configuration.
To boost memory allocation performance, particularly for large object heap allocations, an architectural change to the garbage collector splits the heap allocation into small and large object heaps. Applications making a lot of large object heap allocations should experience a reduction in allocation lock contention and better performance.
The update also adds secure hash options for ASP.Net forms authentication, including SHA-2 (Secure Hash Algorithm), the stronger successor to SHA-1. For compatibility, SHA-1 is still the default option. SHA-2 is also supported for Message.HashAlgorithm, which specifies the hash algorithm used by message queuing when authenticating.
New configuration builders in .Net 4.7.1 allow developers to inject and build configuration for applications at runtime. The configuration data can be taken from sources beyond the config file; in previous versions of .Net, configuration is static. Through configuration builders, applications are able to apply a custom-defined set of builders to a section of config. Builders can modify configuration data contained in a config section or build it from scratch, even drawing new data from sources other than static files.
Other features of the upgrade include:
- Support for the .Net Standard 2.0 specification, which features a set of APIs shared by multiple .Net implementations.
- Accessibility improvements in WPF (Windows Presentation Foundation) and Windows Forms, including High Contrast enhancements, enhanced UI patterns, and improved experiences in tools such as Narrator.
- Visual diagnostics support in WPF, which enables the use of tools for analyzing XAML visual trees.
- Compiler support for
ReadOnlyReferencesin the C# 7.2 language, for passing variables by reference but without exposing data to modifications.
- A runtime feature detection API to determine whether a runtime supports a particular feature.
SystemValueTupletypes, which should make it easier to migrate from
System.Tupleto the new tuple syntax in C# 7.0 and Visual Basic 15.5.
- An ASP.Net API providing a standardized way to build an
HttpCookieobject from a string and capture cookie properties such as expiration date and path.
- An execution step feature in ASP.Net, called
ExecutionStepInvoker, which allows developers to run execution steps inside their code, rather than in ASP.Net’s pre-defined pipeline. This feature is intended for libraries concerned with application execution flow.