Nieuw in .NET 9
Meer informatie over de nieuwe functies in .NET 9 en koppelingen naar verdere documentatie.
.NET 9, de opvolger van .NET 8, heeft een speciale focus op cloudeigen apps en prestaties. Het wordt ondersteund voor 18 maanden als een STS-release (Standard-Term Support). U kunt .NET 9 hier downloaden.
Nieuw voor .NET 9, het technische team plaatst .NET 9 preview-updates op GitHub-discussies. Dat is een geweldige plek om vragen te stellen en feedback te geven over de release.
.NET runtime
De .NET 9-runtime bevat een nieuw kenmerkmodel voor functieswitches met ondersteuning voor bijsnijden. Met de nieuwe kenmerken kunt u functieswitches definiëren die bibliotheken kunnen gebruiken om gebieden van functionaliteit in te schakelen.
Garbagecollection bevat een dynamische aanpassing van toepassingsgrootte functie die standaard wordt gebruikt in plaats van Server GC.
De runtime bevat ook talloze prestatieverbeteringen, waaronder lusoptimalisaties, inlining en arm64-vectorisatie en codegeneratie.
Zie Wat is er nieuw in de .NET 9-runtimevoor meer informatie.
.NET-bibliotheken
System.Text.Json voegt ondersteuning toe voor aantekeningen voor nullable-referentietypen en het exporteren van JSON-schema’s van typen. Er worden nieuwe opties toegevoegd waarmee u de inspringing van geschreven JSON kunt aanpassen en meerdere JSON-waarden op hoofdniveau kunt lezen vanuit één stream.
In LINQ maken de nieuwe methoden CountBy en AggregateBy het mogelijk om de status per sleutel te aggregeren zonder tussenliggende groeperingen toe te wijzen via GroupBy.
Voor verzamelingstypen bevat het System.Collections.Generic.PriorityQueue<TElement,TPriority> type een nieuwe Remove(TElement, TElement, TPriority, IEqualityComparer<TElement>) methode die u kunt gebruiken om bij te werken de prioriteit van een item in de wachtrij.
Voor cryptografie voegt .NET 9 een nieuwe hashmethode met één shot toe op het CryptographicOperations type. Er worden ook nieuwe klassen toegevoegd die gebruikmaken van het KMAC-algoritme.
Voor reflectie kunt u met het nieuwe type PersistedAssemblyBuilder een verzonden assembly opslaan. Deze nieuwe klasse bevat ook PDB-ondersteuning, wat betekent dat u symboolgegevens kunt verzenden en deze kunt gebruiken om fouten op te sporen in een gegenereerde assembly.
De TimeSpan-klasse bevat nieuwe From*
methoden waarmee u een TimeSpan
-object kunt maken op basis van een int
(in plaats van een double
). Deze methoden helpen fouten te voorkomen die worden veroorzaakt door inherente onnauwkeurigheid in berekeningen met drijvende komma.
Zie Wat is er nieuw in de .NET 9-bibliothekenvoor meer informatie.
.NET SDK
De .NET 9 SDK introduceert workloadsets, waarbij al uw workloads op één specifieke versie blijven staan totdat deze expliciet is bijgewerkt. Voor hulpprogramma's kan een nieuwe optie voor dotnet tool install
gebruikers (in plaats van auteurs van hulpprogramma's) bepalen of een hulpprogramma mag worden uitgevoerd op een nieuwere .NET-runtimeversie dan de versie waarop het hulpprogramma is gericht. Bovendien:
- Eenheidstests hebben betere MSBuild-integratie waarmee u tests parallel kunt uitvoeren.
- NuGet-beveiligingscontroles worden standaard uitgevoerd op zowel directe als transitieve pakketverwijzingen.
- De terminallogger is standaard ingeschakeld en heeft ook een verbeterde bruikbaarheid. Het totale aantal fouten en waarschuwingen wordt nu samengevat aan het einde van een build.
- Er zijn nieuwe MSBuild-scriptanalyses ('build checks') beschikbaar.
- De SDK kan niet-overeenkomende versies detecteren en aanpassen tussen de .NET SDK en MSBuild.
- Met de opdracht
dotnet workload history
ziet u de geschiedenis van installaties en wijzigingen van werkbelasting voor de huidige .NET SDK-installatie.
Zie Wat is er nieuw in de SDK voor .NET 9voor meer informatie.
AI-bouwstenen
.NET 9 introduceert een uniforme C#-abstractie via de Microsoft.Extensions.AI en Microsoft.Extensions.VectorData pakketten. Deze abstracties faciliteren interactie met AI-services, waaronder kleine en grote taalmodellen (SLM's en LLM's), insluitingen, vectorarchieven en middleware.
.NET 9 bevat ook nieuwe tensortypen waarmee AI-mogelijkheden worden uitgebreid. TensorPrimitives en het nieuwe Tensor<T> type breiden AI-mogelijkheden uit door efficiënte codering, manipulatie en berekening van multidimensionale gegevens mogelijk te maken. U vindt deze typen in de nieuwste versie van het System.Numerics.Tensors-pakket.
TensorPrimitives
- Uitgebreid methodebereik: verhoogd van 40 tot bijna 200 overbelastingen, nu inclusief numerieke bewerkingen die vergelijkbaar zijn met
Math
,MathF
enINumber<T>
, maar voor reeksen waarden. - Prestatieverbeteringen: veel bewerkingen zijn nu geoptimaliseerd voor SIMD voor betere prestaties.
- Algemene overbelastingen: ondersteunt elk type
T
dat een bepaalde interface implementeert, die verder gaat dan alleen zwevende waarden in .NET.
Tensor<T>
- Bouwt voort op
TensorPrimitives
voor efficiënte wiskundige bewerkingen. - Biedt efficiënte interoperabiliteit met AI-bibliotheken (ML.NET, TorchSharp, ONNX Runtime) met behulp van nul kopieën waar mogelijk.
- Maakt eenvoudige en efficiënte gegevensmanipulatie mogelijk met indexerings- en segmenteringsbewerkingen.
- Is experimenteel in .NET 9.
ML.NET
ML.NET is een opensource-platformoverschrijdend framework waarmee aangepaste machine learning-modellen kunnen worden geïntegreerd in .NET-toepassingen.
ML.NET 4.0 brengt de volgende verbeteringen:
- Nieuwe manieren om programmatisch
MLContext
opties te configureren. - ONNX-modellen laden als
Stream
. - DataFrame-verbeteringen.
- Nieuwe mogelijkheden voor tokenizers.
- (Experimenteel) TorchSharp overzettingen van de Llama- en Phi-model-families.
- (Experimenteel) CausalLM-pijplijn-API's.
Zie Wat is er nieuw in ML.NETvoor meer informatie.
Tokenizers
De Microsoft.ML.Tokenizers-bibliotheek biedt .NET-ontwikkelaars mogelijkheden voor het coderen en decoderen van tekst naar tokens. Voor AI-scenario's is dit belangrijk om context te beheren, kosten te berekenen en tekst vooraf te verwerken bij het werken met lokale modellen.
De nieuwste release introduceert belangrijke nieuwe mogelijkheden voor tokenizers:
- Tiktoken voor GPT-modellen (3, 3.5, 4, 4o, o1) en Llam3
- Llama (gebaseerd op SentencePiece) voor Llama- en Mistral-modellen
- CodeGen voor codegeneratiemodellen zoals codegen-350M-mono
- Phi2 (gebaseerd op CodeGen) voor het Microsoft Phi2-model
- WordPiece
- Bert (gebaseerd op WordPiece) voor modellen die door Bert worden ondersteund, zoals optimum--all-MiniLM-L6-v2
.NET Aspire
.NET Aspire is een set krachtige hulpprogramma's, sjablonen en pakketten voor het bouwen van waarneembare, productieklare apps. De nieuwste release van .NET Aspire bevat verbeteringen in het beheer van de levenscyclus van dashboards en resources. Er worden ook nieuwe integraties en API's toegevoegd voor meer flexibiliteit tijdens de ontwikkeling. .NET Aspire 9 werkt met zowel .NET 9- als .NET 8-apps. Zie Wat is er nieuw in .NET Aspire 9voor meer informatie.
ASP.NET Core
ASP.NET Core-apps die zijn gebouwd met .NET 9, zijn standaard beveiligd, bieden uitgebreide ondersteuning voor compilatie van tevoren en hebben verbeterde bewaking en tracering. Met de prestatieverbeteringen ziet u hogere doorvoer en snellere opstarttijd, en allemaal met minder geheugengebruik. ASP.NET Core in .NET 9 omvat:
- Geoptimaliseerde verwerking van statische bestanden, zoals JavaScript en CSS, tijdens het bouwen en publiceren van versies met automatische vingerafdrukversies.
- Blazor: Nieuwe sjablonen voor hybride en web-apps, detectie van de weergavemodus voor onderdelen, nieuwe ervaring voor opnieuw verbinden met serverrendering.
- API's: ingebouwde ondersteuning voor het genereren van OpenAPI-documenten met behulp van
Microsoft.AspNetCore.OpenAPI
, verbeterde systeemeigen AOT-ondersteuning. - Verbeterde beveiliging met nieuwe API's voor verificatie en autorisatie.
- Eenvoudiger instellen van een vertrouwd ontwikkelingscertificaat op Linux om HTTPS tijdens de ontwikkeling in te schakelen.
Dit zijn slechts enkele van de functies en verbeteringen in .NET 9. Zie Wat is er nieuw in ASP.NET Core 9.0voor meer informatie.
.NET MAUI
De focus van .NET Multi-Platform App UI (.NET MAUI) in .NET 9 is verbeterde prestaties en betrouwbaarheid, en diepere integraties voor desktop- en mobiele toepassingen. .NET MAUI bevat een nieuwe, beter presterende implementatie van CollectionView en CarouselView voor iOS en Mac Catalyst, updates voor bestaande besturingselementen, nieuwe app-levenscyclusgebeurtenissen en native AOT en verbeteringen voor bijsnijden om de app-grootte en opstarttijd te verbeteren. Bovendien:
- Er is een nieuwe TitleBar bureaubladbediening beschikbaar voor Windows.
- Met een nieuw HybridWebView controle kunt u eenvoudiger JavaScript-ingeschakelde inhoud opnemen vanuit frameworks zoals ReactJS, Vue.jsen Angular.
- Entry ondersteunt nu extra toetsenbordmodi.
- Besturingshandlers verbreken, indien mogelijk, automatisch de verbinding met hun besturingselementen.
- MainPage is afgeschaft ten gunste van het instellen van de primaire pagina van de app door Application.CreateWindow(IActivationState) klasse te overschrijven.
Zie Wat is er nieuw in .NET MAUI voor .NET 9voor meer informatie over deze nieuwe functies en meer.
EF Core
Entity Framework Core bevat belangrijke updates voor de databaseprovider voor Azure Cosmos DB for NoSQL. Het bevat ook enkele stappen voor AOT-compilatie en vooraf gecompileerde query's, onder andere verbeteringen. Zie Wat is er nieuw in EF Core 9voor meer informatie.
C# 13
C# 13 wordt geleverd met de .NET 9 SDK en bevat de volgende nieuwe functies:
- verzamelingen
params
- Nieuw
lock
type en semantiek - Nieuwe escapereeks -
\e
- Verbeteringen aan groep van natuurlijke typen methodes
- Impliciete indexer toegang in objectinitialisators
-
ref
lokalen enunsafe
contexten inschakelen in iterators en asynchrone methoden -
ref struct
typen inschakelen om interfaces te implementeren - "Ref-structtypen toestaan als argumenten voor typeparameters in generics."
- Gedeeltelijke eigenschappen en indexeerfuncties zijn nu toegestaan in
partial
typen. - Met overbelastingsresolutieprioriteit kunnen bibliotheekauteurs één overbelasting aanwijzen als beter dan andere.
Bovendien voegt C# 13 een proefversie toe: field
met ondersteunde eigenschappen.
Zie Wat is er nieuw in C# 13voor meer informatie.
F# 9
F# 9 wordt geleverd met de .NET 9 SDK en bevat de volgende nieuwe functies:
- Nullbare verwijzingstypen
- Gediscrimineerde unie Is*-eigenschappen
- Gedeeltelijke actieve patronen kunnen bool retourneren in plaats van eenheidsoptie
- Voorkeur geven aan uitbreidingsmethoden voor intrinsieke eigenschappen wanneer argumenten worden opgegeven
- Lege rekenkundige expressies
- Hash-instructies mogen niet-tekenreeksargumenten gebruiken
- Uitgebreide #help instructie in fsi om documentatie weer te geven in de read-eval-print lus (REPL)
- Toestaan dat #nowarn het FS-voorvoegsel voor foutcodes ondersteunt om waarschuwingen uit te schakelen
- Waarschuwing over het TailCall-kenmerk voor niet-recursieve functies of let-gebonden waarden
- Attribuutdoelen afdwingen
- Willekeurige functies voor verzamelingen
- Ondersteuning voor C#-verzamelingsexpressies voor F#-lijsten en -sets
- Verschillende productiviteits-, prestatie- en hulpprogrammaverbeteringen voor ontwikkelaars
Zie Wat is er nieuw in F# 9voor meer informatie.
Windows Presentation Foundation
WPF in .NET 9 biedt verbeterde ondersteuning voor het bouwen van moderne apps met verschillende themaverbeteringen en meer:
- Ondersteuning voor het Windows Fluent-thema.
- Themaondersteuning voor Windows-licht- en donkere modi toegevoegd.
- Thema's ondersteunen nu de windows-accentkleur.
- Lettertypeweergave is verbeterd ter ondersteuning van ligaturen op basis van afbreekstreepjes.
-
BinaryFormatter
wordt niet meer ondersteund.
Zie Wat is er nieuw in WPF voor .NET 9voor meer informatie.
Windows Forms
WinForms in .NET 9 biedt ondersteuning voor nieuwe thema's, verbeteringen voor asynchrone ontwikkeling en meer:
-
Form
enTaskDialog
ondersteunen nuShowDialogAsync
. (Experimentele functie) -
BinaryFormatter
wordt niet meer ondersteund. - Experimentele ondersteuning voor het weergeven van de app in de donkere modus, zoals ondersteund door Windows.
-
FolderBrowserDialog
enToolStrip
hadden enkele kleine verbeteringen. - De System.Drawing-bibliotheek heeft veel verbeteringen ondergaan, waaronder het omhullen van GDI+-effecten, ondersteuning voor
ReadOnlySpan
en verbeterde generatie van interopcode.
Zie Wat is er nieuw in Windows Forms voor .NET 9voor meer informatie.