Skip to content

.NET 10 Preview 4 #9828

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions release-notes/10.0/preview/preview4/10.0.0-preview.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# .NET 10 Preview 4 Binaries

.NET 10 Preview 4 installers and binaries can be downloaded for the following product versions:

- `.NET 10.0.0 Preview 4`
- `.NET SDK 10.0.100-preview.4.xxxx.xx`
40 changes: 40 additions & 0 deletions release-notes/10.0/preview/preview4/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# .NET 10 Preview 4 - Release Notes

.NET 10 Preview 4 released on April X, 2025. Find more information on new features released in .NET 10 Preview 4 by browsing through the release notes below:

- [Libraries](./libraries.md)
- [Runtime](./runtime.md)
- [SDK](./sdk.md)

## Languages

- [C#](./csharp.md)
- [F#](./fsharp.md)
- [Visual Basic](./visualbasic.md)

## Workloads, Libraries, & More

- [.NET MAUI](./dotnetmaui.md)
- [ASP.NET Core](./aspnetcore.md)
- [Container images](./containers.md)
- [EF Core & Data](./efcore.md)
- [Windows Forms](./winforms.md)
- [WPF](./wpf.md)

## Get Started

Instructions on getting started with .NET 10 can be found in the [getting started guide](../../get-started.md). Installers and binaries for .NET 10 Preview 4 can be found [here on GitHub](./10.0.0-preview.3.md).

## Stay up-to-date

You can find a detailed overview of all new features in .NET 10:

- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview)
- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14)
- [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10)
- [What's new in ASP.NET Core](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0)
- [What's new in Entity Framework Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew)
- [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100)
- [What's new in WPF](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100)

The latest .NET 10 release is always available at [dotnet.microsoft.com](https://dotnet.microsoft.com/download/dotnet/10.0) and [.NET 10 Releases](../../README.md).
15 changes: 15 additions & 0 deletions release-notes/10.0/preview/preview4/aspnetcore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# ASP.NET Core in .NET 10 Preview 4 - Release Notes

Here's a summary of what's new in ASP.NET Core in this preview release:

- [Feature](#feature)

ASP.NET Core updates in .NET 10:

- [What's new in ASP.NET Core in .NET 10](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0) documentation.
- [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/10.0#aspnet-core)
- [Roadmap](https://github.com/dotnet/aspnetcore/issues/59443)

## Feature

Something about the feature
9 changes: 9 additions & 0 deletions release-notes/10.0/preview/preview4/containers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Container image updates in .NET 10 Preview 4 - Release Notes

Here's a summary of what's new in container images in this preview release:

- [Feature](#feature)

## Feature

Something about the feature
14 changes: 14 additions & 0 deletions release-notes/10.0/preview/preview4/csharp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# C# 14 updates in .NET 10 Preview 43 - Release Notes

Here's a summary of what's new in C# in this preview release:

- [Feature](#feature)

C# 14 updates:

- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) documentation
- [Breaking changes in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/breaking-changes/compiler%20breaking%20changes%20-%20dotnet%2010)

## Feature

Something about the feature
24 changes: 24 additions & 0 deletions release-notes/10.0/preview/preview4/dotnetmaui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# .NET MAUI in .NET 10 Preview 4 - Release Notes

Here's a summary of what's new in .NET MAUI, .NET for Android, and .NET for iOS, Mac Catalyst, macOS, and tvOS in this preview release:

- .NET MAUI
- [Feature](#feature)
- [.NET for Android](#net-for-android)
- [.NET for iOS, Mac Catalyst, macOS, tvOS](#net-for-ios-mac-catalyst-macos-tvos)

.NET MAUI updates in .NET 10:

- [What's new in .NET MAUI in .NET 10](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) documentation.

## Feature

Something about the feature

## .NET for Android

This release was focused on quality improvements. A detailed list can be found on [dotnet/android GitHub releases](https://github.com/dotnet/android/releases/).

## .NET for iOS, Mac Catalyst, macOS, tvOS

This release was focused on quality improvements. A detailed list can be found on [dotnet/macios GitHub releases](https://github.com/dotnet/macios/releases/) including a list of [Known issues](https://github.com/dotnet/macios/wiki/Known-issues-in-.NET10).
159 changes: 159 additions & 0 deletions release-notes/10.0/preview/preview4/efcore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# Entity Framework Core 10 Preview 4 - Release Notes

Here's a summary of what's new in Entity Framework Core in this preview release:

- [Full-text search support on Azure Cosmos DB for NoSQL](#full-text-search-support-on-azure-cosmos-db-for-nosql)
- [Vector similarity search exits preview](#vector-similarity-search-exits-preview)
- [Small improvements](#small-improvements)

Entity Framework Core 10 updates:

- [What's new in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) documentation
- [Breaking change in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/breaking-changes)

## Full-text search support on Azure Cosmos DB for NoSQL

Azure Cosmos DB now offers support for [full-text search](/azure/cosmos-db/gen-ai/full-text-search). It enables efficient and effective text searches using advanced techniques like stemming, as well as evaluating the relevance of documents to a given search query. It can be used in combination with vector search (i.e. hybrid search) to improve the accuracy of responses in some AI scenarios.
EF Core 10 is adding support for this feature allowing for modeling the database with full-text search enabled properties and using full-text search functions inside queries targeting Azure Cosmos DB.

### Model configuration

A property can be configured inside `OnModelCreating` to use full-text search by enabling it for the property and defining a full-text index:

```c#
public class Blog
{
...

public string Contents { get; set; }
}

public class BloggingContext
{
...

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>(b =>
{
b.Property(x => x.Contents).EnableFullTextSearch();
b.HasIndex(x => x.Contents).IsFullTextIndex();
});
}
}
```

> [!NOTE]
> Configuring the index is not mandatory, but it is recommended as it greatly improves performance of full-text search queries.
Full-text search operations are language specific, using American English (`en-US`) by default. You can customize the language for individual properties as part of `EnableFullTextSearch` call:

```c#
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>(b =>
{
b.Property(x => x.Contents).EnableFullTextSearch();
b.HasIndex(x => x.Contents).IsFullTextIndex();
b.Property(x => x.ContentsGerman).EnableFullTextSearch("de-DE");
b.HasIndex(x => x.ContentsGerman).IsFullTextIndex();
});
}
```

You can also set a default language for the container - unless overridden in the `EnableFullTextSearch` method, all full-text properties inside the container will use that language.

```c#
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>(b =>
{
b.HasDefaultFullTextLanguage("de-DE");
b.Property(x => x.ContentsEnglish).EnableFullTextSearch("en-US");
b.HasIndex(x => x.ContentsEnglish).IsFullTextIndex();
b.Property(x => x.ContentsGerman).EnableFullTextSearch();
b.HasIndex(x => x.ContentsGerman).IsFullTextIndex();
b.Property(x => x.TagsGerman).EnableFullTextSearch();
b.HasIndex(x => x.TagsGerman).IsFullTextIndex();
});
}
```

> [!NOTE]
> Configuring the index is not mandatory, but it is recommended as it greatly improves performance of full-text search queries.
### Querying

As part of the full-text search feature, Azure Cosmos DB introduced several built-in functions which allow for efficient querying of content inside the full-text search enabled properties. These functions are: [`FullTextContains`](/azure/cosmos-db/nosql/query/fulltextcontains), [`FullTextContainsAll`](/azure/cosmos-db/nosql/query/fulltextcontainsall), [`FullTextContainsAny`](/azure/cosmos-db/nosql/query/fulltextcontainsany), which look for specific keyword or keywords and [`FullTextScore`](/azure/cosmos-db/nosql/query/fulltextscore), which returns [BM25 score](https://en.wikipedia.org/wiki/Okapi_BM25) based on provided keywords.

> [!NOTE]
> `FullTextScore` can only be used inside `OrderBy` to rank the documents based on the score.
EF Core exposes these functions as part of `EF.Functions` so they can be used in queries:

```c#
var cosmosBlogs = await context.Blogs.Where(x => EF.Functions.FullTextContainsAll(x.Contents, "database", "cosmos")).ToListAsync();

var keywords = new string[] { "AI", "agent", "breakthrough" };
var mostInteresting = await context.Blogs.OrderBy(x => EF.Functions.FullTextScore(x.Contents, keywords)).Take(5).ToListAsync();
```

### Hybrid search

Full-text search can be used with vector search in the same query (i.e. hybrid search), by combining results of `FullTextScore` and `VectorDistance` functions. It can be done using the [`RRF`](/azure/cosmos-db/nosql/query/rrf) (Reciprocal Rank Fusion) function, which EF Core also provides inside `EF.Functions`:

```c#
public class Blog
{
...

public float[] Vector { get; set; }
public string Contents { get; set; }
}

public class BloggingContext
{
...

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>(b =>
{
b.Property(x => x.Contents).EnableFullTextSearch();
b.HasIndex(x => x.Contents).IsFullTextIndex();

b.Property(x => x.Vector).IsVectorProperty(DistanceFunction.Cosine, dimensions: 1536);
b.HasIndex(x => x.Vector).IsVectorIndex(VectorIndexType.Flat);
});
}
}

float[] myVector = /* generate vector data from text, image, etc. */
var hybrid = await context.Blogs.OrderBy(x => EF.Functions.Rrf(
EF.Functions.FullTextScore(x.Contents, "database"),
EF.Functions.VectorDistance(x.Vector, myVector)))
.Take(10)
.ToListAsync();
```

> [!TIP]
> You can combine more than two scoring functions inside `Rrf` call, as well as using only `FullTextScore`, or only `VectorDistance`.
## Vector similarity search exits preview

In EF9 we added experimental support for [vector similarity search](/ef/core/what-is-new/ef-core-9.0/whatsnew#vector-similarity-search-preview). In EF Core 10, vector similarity search support is no longer experimental. We have also made some improvements to the feature:

- EF Core can now generate containers with vector properties defined on owned reference entities. Containers with vector properties defined on owned collections still have to be created by other means. However, they can be used in queries.
- Model building APIs have been renamed. A vector property can now be configured using the `IsVectorProperty` method, and vector index can be configured using the `IsVectorIndex` method.

## Small improvements

- Translate `COALESCE` as `ISNULL` ([#34171](https://github.com/dotnet/efcore/pull/34171), contributed by [@ranma42](https://github.com/ranma42)).

## Everything else in Preview 4

Preview 4 contains:

- [10 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20state%3Aclosed%20label%3Apreview-4%20milestone%3A10.0.0%20label%3Atype-enhancement)
- [2 regression bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20state%3Aclosed%20label%3Apreview-4%20milestone%3A10.0.0%20label%3Atype-bug%20label%3Aregression)
- [3 non-regression bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20state%3Aclosed%20label%3Apreview-4%20milestone%3A10.0.0%20label%3Atype-bug%20-label%3Aregression%20)
21 changes: 21 additions & 0 deletions release-notes/10.0/preview/preview4/fsharp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# F# updates in .NET 10 Preview 4 - Release Notes

Here's a summary of what's new in F# in this preview release:

- [F# Language](#f-language)
- [FSharp.Core standard library](#fsharpcore-standard-library)
- [FSharp.Compiler.Service](#fsharpcompilerservice)

> Note: Release notes for F# are generated for all contributions to the [dotnet/fsharp](https://github.com/dotnet/fsharp) repository and split across language, library and compiler changes.
## F# Language

[Release notes for new F# language features](https://fsharp.github.io/fsharp-compiler-docs/release-notes/Language.html) list language changes that have to be enabled by `<LangVersion>preview</LangVersion>` project property in `.fsproj` project file. They will become the default with .NET 10 release.

## FSharp.Core Standard Library

[Changes to the FSharp.Core standard library](https://fsharp.github.io/fsharp-compiler-docs/release-notes/FSharp.Core.html) are applied automatically to projects compiled with new SDK, unless they pin down a lower FSharp.Core version.

## FSharp.Compiler.Service

General improvements and bugfixes in the compiler implementation are at [Release notes for FSharp.Compiler.Service](https://fsharp.github.io/fsharp-compiler-docs/release-notes/FSharp.Compiler.Service.html).
13 changes: 13 additions & 0 deletions release-notes/10.0/preview/preview4/libraries.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# .NET Libraries in .NET 10 Preview 4 - Release Notes

Here's a summary of what's new in .NET Libraries in this preview release:

- [Feature](#feature)

.NET Libraries updates in .NET 10:

- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation

## Feature

Something about the feature
13 changes: 13 additions & 0 deletions release-notes/10.0/preview/preview4/runtime.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# .NET Runtime in .NET 10 Preview 4 - Release Notes

Here's a summary of what's new in the .NET Runtime in this preview release:

- [Feature](#feature)

.NET Runtime updates in .NET 10:

- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation

## Feature

Something about the feature
13 changes: 13 additions & 0 deletions release-notes/10.0/preview/preview4/sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# .NET SDK in .NET 10 Preview 4 - Release Notes

Here's a summary of what's new in the .NET SDK in this preview release:

- [Feature](#feature)

.NET SDK updates in .NET 10:

- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation

## Feature

Something about the feature
6 changes: 6 additions & 0 deletions release-notes/10.0/preview/preview4/visualbasic.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Visual Basic updates in .NET 10 Preview 4 - Release Notes

This preview release does not contain new Visual Basic features. Please checkout the lastest documentation:

- [What's new in Visual Basic](https://learn.microsoft.com/dotnet/visual-basic/whats-new/) documentation
- [Breaking changes](https://learn.microsoft.com/dotnet/visual-basic/whats-new/breaking-changes)
14 changes: 14 additions & 0 deletions release-notes/10.0/preview/preview4/winforms.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Windows Forms in .NET 10 Preview 4 - Release Notes

Here's a summary of what's new in Windows Forms in this preview release:

- [Feature](#feature)

## Windows Forms updates in .NET 10

- [What's new in Windows Forms in .NET 10](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100) documentation.
- [Issues List for Windows Forms in .NET 10 Preview 2](https://github.com/dotnet/winforms/issues?q=is%3Aissue%20milestone%3A%2210.0%20Preview2%22%20)

## Feature

Something about the feature
13 changes: 13 additions & 0 deletions release-notes/10.0/preview/preview4/wpf.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# WPF in .NET 10 Preview 4 - Release Notes

Here's a summary of what's new in WPF in this preview release:

- [Feature](#feature)

WPF updates in .NET 10:

- [What's new in WPF in .NET 10](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) documentation.

## Feature

Something about the feature