Skip to content
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

Artifacts for .NET 9.0 Preview 3 Release #9268

Merged
merged 2 commits into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ The following [.NET releases](./releases.md) are currently supported:

| Version | Release Date | Support | Latest Patch Version | End of Support |
| :-- | :-- | :-- | :-- | :-- |
| [.NET 9](release-notes/9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.2][9.0.0-preview.2] | |
| [.NET 9](release-notes/9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.3][9.0.0-preview.3] | |
| [.NET 8](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | [8.0.4][8.0.4] | November 10, 2026 |
| [.NET 7](release-notes/7.0/README.md) | [November 8, 2022](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7/) | [STS][policies] | [7.0.18][7.0.18] | May 14, 2024 |
| [.NET 6](release-notes/6.0/README.md) | [November 8, 2021](https://devblogs.microsoft.com/dotnet/announcing-net-6/) | [LTS][policies] | [6.0.29][6.0.29] | November 12, 2024 |


You can find release notes for all releases, including out-of-support releases, in the [release-notes](release-notes) directory.

[9.0.0-preview.2]: release-notes/9.0/preview/preview2/9.0.0-preview.2.md
[9.0.0-preview.3]: release-notes/9.0/preview/preview3/9.0.0-preview.3.md
[8.0.4]: release-notes/8.0/8.0.4/8.0.4.md
[7.0.18]: release-notes/7.0/7.0.18/7.0.18.md
[6.0.29]: release-notes/6.0/6.0.29/6.0.29.md
Expand Down
7 changes: 7 additions & 0 deletions release-notes/9.0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,36 @@

| Date | Release |
| :-- | :-- |
| 2024/04/11 | [9.0.0 Preview 3](preview/preview3/README.md) |
| 2024/03/12 | [9.0.0 Preview 2](preview/preview2/README.md) |
| 2024/02/13 | [9.0.0 Preview 1](preview/preview1/README.md) |

### .NET Libraries
* [Preview 1](preview/preview1/libraries.md)
* Preview 2: No release notes
* [Preview 3](preview/preview3/libraries.md)

### .NET Runtime
* [Preview 1](preview/preview1/runtime.md)
* [Preview 2](preview/preview2/runtime.md)
* [Preview 3](preview/preview3/runtime.md)

### .NET SDK
* [Preview 1](preview/preview1/sdk.md)
* [Preview 2](preview/preview2/sdk.md)
* [Preview 3](preview/preview3/sdk.md)

### ASP.NET Core
* [Preview 1](preview/preview1/aspnetcore.md)
* [Preview 2](preview/preview2/aspnetcore.md)
* [Preview 3](preview/preview3/aspnetcore.md)

### .NET MAUI
* [Preview 1](preview/preview1/dotnetmaui.md)
* [Preview 2](preview/preview2/dotnetmaui.md)
* [Preview 3](preview/preview3/dotnetmaui.md)

### Entity Framework Core
* [Preview 1](preview/preview1/efcoreanddata.md)
* [Preview 2](preview/preview2/efcoreanddata.md)
* [Preview 3](preview/preview3/efcoreanddata.md)
822 changes: 822 additions & 0 deletions release-notes/9.0/preview/preview3/9.0.0-preview.3.md

Large diffs are not rendered by default.

29 changes: 29 additions & 0 deletions release-notes/9.0/preview/preview3/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# .NET 9 Preview 3 - Release Notes

.NET 9 Preview 3 released on April 11th, 2024. Find more information on new features released in .NET 9 Preview 3 by browsing through the release notes below:

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

### Feature Release Notes

* [.NET Data and EF Core](./efcoreanddata.md)
* [.NET MAUI](./dotnetmaui.md)
* [ASP.NET Core](./aspnetcore.md)

## Get Started

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


## Stay up-to-date

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

* [What's new in .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview)
* [What's new in ASP.NET Core](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-9.0)
* [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9)
* [What's new in EF Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew)

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

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

- Endpoint metadata on the developer exception page
- Added `InternalServerError` and `InternalServerError<TValue>` to `TypedResults`
- Handle keyboard composition events in Blazor

ASP.NET Core updates in .NET 9 Preview 3:

- [What's new in ASP.NET Core in .NET 9](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-9.0) documentation.
- [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/9.0#aspnet-core)
- [Roadmap](https://aka.ms/aspnet/roadmap)

.NET 9 Preview 3:

- [Discussion](https://aka.ms/dotnet/9/preview3)
- [Release notes](./README.md)

## Endpoint metadata on the developer exception page

ASP.NET Core endpoints have associated metadata that can be used for a variety of purposes, like configuring routing, authentication and authorization, response caching, rate limiting, OpenAPI generation, and much more. The Routing tab of the ASP.NET Core [developer exception page](https://learn.microsoft.com/aspnet/core/fundamentals/error-handling#developer-exception-page) now desplays endpoint metadata alongside other routing information to facilitate debugging.

![image](media/aspnetcore-dev-page-endpoint-metadata.png)

Thank you [@Kahbazi](https://github.com/Kahbazi) for this contribution!

## Added `InternalServerError` and `InternalServerError<TValue>` to `TypedResults`

`TypedResults` are a helpful vehicle for returning strongly-typed HTTP status code-based responses from a minimal API. The `TypedResults` class now includes factory methods and types for returning "500 Internal Server Error" responses from your endpoints.

```csharp
var app = WebApplication.Create();

app.MapGet("/", () => TypedResults.InternalServerError("Something went wrong!"));

app.Run();
```

Thank you [@onurmicoogullari](https://github.com/onurmicoogullari) for this contribution!

## Handle keyboard composition events in Blazor

The new `KeyboardEventArgs.IsComposing` property indicates if the keyboard event [is part of a composition session](https://w3c.github.io/uievents/#dom-keyboardevent-iscomposing). This is useful for tracking the composition state of keyboard events, which is crucial for handling international character input methods.

Thank you [@BattlefieldDuck](https://github.com/BattlefieldDuck) for this contribution!

## Community contributors

Thank you contributors! ❤️

- [omajid](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Aomajid)
- [tcortega](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Atcortega)
- [marcin-burak](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Amarcin-burak)
- [BattlefieldDuck](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3ABattlefieldDuck)
- [JamieMagee](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3AJamieMagee)
- [khellang](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Akhellang)
- [MythoclastBM](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3AMythoclastBM)
- [merijndejonge](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Amerijndejonge)
- [onurmicoogullari](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Aonurmicoogullari)
- [johatuni](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Ajohatuni)
- [andrewjsaid](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Aandrewjsaid)
- [Kahbazi](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3AKahbazi)
77 changes: 77 additions & 0 deletions release-notes/9.0/preview/preview3/dotnetmaui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# .NET MAUI in .NET 9 Preview 3 - Release Notes

The team is continuing work on core fundamentals of the .NET MAUI SDK to improve overall product quality. This includes expanding test coverage, end to end scenario testing, and bug fixing.

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

- Multi-target versions of .NET for iOS bindings
- Android Asset Packs

.NET MAUI updates in .NET 9 Preview 3:

* [What's new in .NET MAUI in .NET 9](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9) documentation
* [GitHub Release](https://aka.ms/maui9p3)

.NET 9 Preview 3:
* [Discussion](https://aka.ms/dotnet/9/preview3)
* [Release notes](./README.md)

## .NET for Android

### Asset packs

.NET Android 9 Preview 3 introduces the ability to place assets into a separate package, known as an *asset pack*. This enables you to upload games and apps that would normally be larger than the basic package size allowed by Google Play. By putting these assets into a separate package you gain the ability to upload a package which is up to 2Gb in size, rather than the basic package size of 200Mb.

> [!IMPORTANT]
> Asset packs can only contain assets. In the case of .NET Android this means items that have the `AndroidAsset` build action.

.NET MAUI apps define assets via the `MauiAsset` build action. An asset pack can be specified via the `AssetPack` attribute:

```xml
<MauiAsset
Include="Resources\Raw\**"
LogicalName="%(RecursiveDir)%(Filename)%(Extension)"
AssetPack="myassetpack" />
```

> [!NOTE]
> The additional metadata will be ignored by other platforms.

If you have specific items you want to place in an asset pack you can use the `Update` attribute to define the `AssetPack` metadata:

```xml
<MauiAsset Update="Resources\Raw\MyLargeAsset.txt" AssetPack="myassetpack" />
```

Asset packs can have different delivery options, which control when your assets will install on the device:

- Install time packs are installed at the same time as the app. This pack type can be up to 1Gb in size, but you can only have one of them. This delivery type is specified with `InstallTime` metadata.
- Fast follow packs will install at some point shortly after the app has finished installing. The app will be able to start while this type of pack is being installed so you should check it has finished installing before trying to use the assets. This kind of asset pack can be up to 512Mb in size. This delivery type is specified with `FastFollow` metadata.
- On demand packs will never be downloaded to the device unless the app specifically requests it. The total size of all your asset packs can't exceed 2Gb, and you can have up to 50 separate asset packs. This delivery type is specified with `OnDemand` metadata.

In .NET MAUI apps, the delivery type can be specified with the `DeliveryType` attribute on a `MauiAsset`:

```xml
<MauiAsset Update="Resources\Raw\myvideo.mp4" AssetPack="myassetpack" DeliveryType="FastFollow" />
```

- [Android Asset Packs](https://github.com/xamarin/xamarin-android/blob/main/Documentation/guides/AndroidAssetPacks.md)
- [GitHub Release](https://github.com/xamarin/xamarin-android/releases/)

## .NET for iOS

Projects can now multi-target versions of .NET for iOS bindings. For example, a library project may need to build for 2 distinct versions.

```xml
<TargetFrameworks>net9.0-ios17.0;net9.0-ios17.2</TargetFrameworks>
```

This will produce 2 libraries, one using iOS 17.0 bindings, and one using iOS 17.2 bindings. An app project should always target the latest iOS SDK.

- [Multi-targeting iOS](https://github.com/xamarin/xamarin-macios/blob/main/docs/multi-target-framework.md) documentation
- [GitHub Release](https://github.com/xamarin/xamarin-macios/releases/)
- [Known issues](https://github.com/xamarin/xamarin-macios/wiki/Known-issues-in-.NET9)

## Community Contributions

Thanks to contributors [@wcoder](https://github.com/wcoder), [@rpendleton](https://github.com/rpendleton), [@filipnavara](https://github.com/filipnavara), [@snechaev](https://github.com/snechaev), [@symbiogenesis](https://github.com/symbiogenesis), [@bradencohen](https://github.com/bradencohen), [@licon4812](https://github.com/licon4812), [@kubaflo](https://github.com/kubaflo).
37 changes: 37 additions & 0 deletions release-notes/9.0/preview/preview3/efcoreanddata.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Entity Framework Core 9 Preview 3 - Release Notes

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

- Auto-compiled models
- Sugar for `HierarchyId` path generation

Entity Framework Core 9:

- [What's new in Entity Framework Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew) documentation.
- [Discussion](https://github.com/dotnet/efcore/issues/33030)

.NET 9 Preview 3:

- [Discussion](https://aka.ms/dotnet/9/preview3)
- [Release notes](./README.md)


## Auto-compiled models
Auto-compiled models allow the [EF Core compiled model](https://learn.microsoft.com/ef/core/performance/advanced-performance-topics#compiled-models) to be automatically regenerated when the model project is built. This means you no longer need to remember to re-run the `dotnet ef dbcontext optimize` command after your EF model changes. See [Auto-compiled models](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#auto-compiled-models) in the _What's New_ docs for more information.

## Sugar for `HierarchyId` path generation
First class support for the SQL Server `HierarchyId` type was [added in EF8](https://learn.microsoft.com/ef/core/providers/sql-server/hierarchyid). In EF9, a sugar method has been added to make it easier to create new child nodes in the tree structure. See [Sugar for HierarchyId path generation](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#hierarchyid-path-generation) in the _What's New_ docs for more information.

## Everything else in Preview 3
Preview 3 contains:

* [6 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview3+is%3Aclosed+label%3Atype-enhancement+)
* [5 bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview3+is%3Aclosed+label%3Atype-bug)

EF Core 9 preview 3 (and Microsoft.Data.Sqlite) contains work from the EF Team at Microsoft (@roji @AndriySvyryd @maumar @ajcvickers @cincuranet @SamMonoRT @luisquintanilla) as well as contributions from the EF Core community. The community PRs in EF9 Preview 3 are:

* @lauxjpn: [Cleanup duplicate tests (same test ID)](https://github.com/dotnet/efcore/pull/33185)
* @clement911: [Fixed typo in getting-and-building-the-code.md](https://github.com/dotnet/efcore/pull/33166)
* @Rezakazemi890: [32943-Sugar for HierarchyId path generation](https://github.com/dotnet/efcore/pull/33062)
* @lauxjpn: [Change Where_math(f)_log_new_base queries, so they fail if LOG() parameters are swapped](https://github.com/dotnet/efcore/pull/33342)
* @SteSinger: [33196 command timeout allow zero](https://github.com/dotnet/efcore/pull/33198)
Loading
Loading