20 KiB
.NET Product Roadmap
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:
ASP.NET
gRPC
- 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)
Tye
- 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
EF
- 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
ML.NET
- 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
Spark
- 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
Runtime
- 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)
.NET Interactive
- Multi Language support for Jupyter Notebooks (C#, F#, PowerShell)Post
- .NET Notebooks support - Available in VS Code Insiders.
- VS Code
- Adding SQL to .NET Interactive
- 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:
Languages
C# 9
- Target-typed new
- Relax ordering of
ref
andpartial
modifiers - Parameter 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
C# Next
- Caller expression attribute
- Generic attributes
- Default in deconstruction
- Constant Interpolated Strings
Visual Basic
- .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
F# 5
-
nameof
support - String 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 types - Support for reverse indexes in collection types
CLI/SDK and MSBuild
- 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
Desktop
WPF
WinForms
- 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.
Xamarin
- 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)
Xamarin.Forms 5
- AppTheme aka Dark Mode support
- CarouselView
- Drag-and-drop Gestures
- Gradient and Solid Brushes
- Shapes and Paths
- SwipeView
Xamarin.Forms vNext (.NET MAUI)
- Slim Renderers - performance improvements, decouple from bindable, and introduce interfaces
- WinUI 3 Support - testing integration