This document provides a peek into the work we've planned for .NET through December 2020.
The .NET product roadmap communicates project priorities for evolving and extending the scope of the product. New product experiences and features will include changes in various layers of the product, in some combination of the runtime, framework, language compilers and tools. Each component may have its own component-level roadmap that is available in the repository for that component.
These are some of the high level themes for the .NET 5.0 release. A more comprehensive list of the work we’re doing organized by technology can be found further below in this document.
- Developers can build great cloud infrastructure components with .NET.
- Developers can build great mobile apps for new devices with .NET 5 – we will support not only the latest in iOS and Android, but unify the platform and deliver first-class support for delivering cross-platform applications.
- .NET 5.0 has excellent fundamentals - continue to deliver on reliability, performance, diagnosability, compliance, security, acquisition and deployment.
These are some key moments in our .NET 5.0 roadmap.
Date | Moment/Rally Point | Key Message |
---|---|---|
Sep 2020 | Ignite | |
Nov 2020 | .NET Conf | .NET 5.0 Launch |
Nov 2020 | .NET 5.0 GA |
Items in each section include the following icons:
gRPC-web
gRPC-web client support in Blazor
Improve gRPC server performance (to match C++/Go)
Use Span APIs in protobuf marshaller (to reduce allocations)
Configurable HTTP/2 PING frames
Instrument gRPC for use with OpenTelemetry
Add support for HttpSysServer
Add support for IIS
Introduce additional transports (e.g., Unix-domain sockets, Windows Named Pipes)
Run many services with one command
Use dependencies in containers
Discover addresses of other services using simple conventions
Automatically containerizing .NET applications
Deploy to Kubernetes
Generating Kubernetes manifests with minimal knowledge or configuration
Using the same conventions as development to keep it consistent
Support Azure Functions in development
VS Code tooling
Fully transparent many-to-many mapping by convention
Many-to-many navigation properties (a.k.a "skip navigations")
Table-per-type (TPT) inheritance mapping
Filtered Include
Split Include
Required one-to-one dependents
Rationalize ToTable, ToQuery, ToView, FromSql, etc.
General query enhancements
Migrations and deployment experience
EF Core platforms experience
Performance improvements
Local GPU training for Image Classification in Model Builder
Add Ranking scenario to local ML.NET AutoML API
Add new algorithm and root cause detection for anomaly detection
Add time series seasonality and de-seasonality
GA Model Builder in Visual Studio
Add Azure Object Detection training to Model Builder
Add local Image Classification training scenario to ML.NET CLI
Add advanced options for data loading in Model Builder
Improve Azure training from Model Builder (better errors, multi-GPU multi-machine, reduced overhead)
Add local Ranking scenario to tooling
Add support for re-opening Model Builder and adding multiple models to a project
Add integration with MLOps
Support all local and Azure AutoML supported scenarios in tooling
Improve debugging experience
Spark 2.4 API compatibility
Spark 3.0 API compatibility
.NET Core project templates for .NET for Spark
VS deploy for .NET for Spark jobs
Improving P95+ latency
Improving ARM64 Performance in .NET 5.0 – Closing the gap with x64
Support Windows ARM64
Support Single-File Apps
Support WinRT APIs in .NET 5
Support WebAssembly (Mono Runtime)
Multi Language support for Jupyter Notebooks (C#, F#, PowerShell)
.NET Notebooks support in VS code Support
Improve Productivity
.NET Interactive for makers
Documentation - done but always improving
Automation / DevOps
Please see the following links to view work items and themes across:
Target-typed new
Relax ordering of
ref
andpartial
modifiersParameter null-checking
Skip locals init
Lambda discard parameters
Native ints
Attributes on local functions
Function pointers
Pattern matching improvements
Static lambdas
Records
Target-typed conditional
Covariant Returns
Extension GetEnumerator
Module initializers
Extending Partial
Top-level statements
Caller expression attribute
Generic attributes
Default in deconstruction
Constant Interpolated Strings
.NET Core appropriate features of the Visual Basic Runtime (Microsoft.VisualBasic.dll) ported to .NET 5.0
Single instance application support
WinForms support in Visual Studio (designer and events)
Visual Basic Application Models ported to .NET 5.0
Line continuation comments
Relax null-coalescing operator requirements
nameof
supportString interpolation
Open type declarations
Improved F# quotations: constraints retained in quotation metadata
Improved Computation Expressions: Applicative forms
Improved Computation Expressions: Overloads for custom keywords
Consistent slicing for FSharp.Core collection types
Fixed-index slicing for 3D and 4D arrays
Interfaces can be implemented at different generic instantiations
Improved .NET interop: consumption support for Default Interface Members
Improved .NET interop: type-directed implicit conversions for
Nullable
value typesSupport for reverse indexes in collection types
Changes to Target Framework Moniker - TFM
Xamarin runs on .NET and via the CLI
Optional Workload infrastructure
Acquisition improvements
Improvements to templates (performance and list output)
Improvements to tab CLI tab completion and parsing
Online Structured Log Viewer for MSBuild
Solution filter support in MSBuild
Low priority builds for MSBuild
Resolve Assembly References (RAR) pre-built cache
Share RAR cache between projects
Visual Studio WinForms .NET Core Designer
Accessibility enhancements to support common UIA patterns so that Accessibility tools (like Narrator and others) can more easily interact with our controls
Customer reported issues and migration blockers
Keep pace with changes in the underlying OS to ensure compatibility with the latest changes in Win10.
Android 11 / API 30 Support
Android smaller APK sizes
Xcode 12 and iOS 14 Support
Hot Restart for Android
AndroidX and Google Play Services Bindings Updates
.NET 6 Support
Xamarin.Essentials integration to .NET 6 BCL (System namespace)
AppTheme aka Dark Mode support
CarouselView
Drag-and-drop Gestures
Gradient and Solid Brushes
Shapes and Paths
SwipeView
Slim Renderers - performance improvements, decouple from bindable, and introduce interfaces
WinUI 3 Support - testing integration