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

Merge main into live #44414

Merged
merged 33 commits into from
Jan 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
fc620f3
Bump the dotnet group (#44361)
dependabot[bot] Jan 16, 2025
1fe1a44
Resolved bug 44181 for namespaces. (#44275)
shethaadit Jan 16, 2025
712b45d
Bump the dotnet group (#44374)
dependabot[bot] Jan 16, 2025
cc86b90
Bump the dotnet group (#44373)
dependabot[bot] Jan 16, 2025
d1dbce6
Bump Azure.Identity (#44369)
dependabot[bot] Jan 16, 2025
1fc5063
Bump the dotnet group (#44368)
dependabot[bot] Jan 16, 2025
ef21ccb
Bump the dotnet group (#44375)
dependabot[bot] Jan 16, 2025
077437a
Bump the dotnet group (#44372)
dependabot[bot] Jan 16, 2025
ea46e7d
Bump Microsoft.Extensions.Hosting (#44371)
dependabot[bot] Jan 16, 2025
9b8bb63
Bump the dotnet group (#44367)
dependabot[bot] Jan 16, 2025
e3c0029
Bump Microsoft.Extensions.Caching.Memory (#44366)
dependabot[bot] Jan 16, 2025
f4fd1eb
Bump the dotnet group (#44362)
dependabot[bot] Jan 16, 2025
c2135fe
Bump the dotnet group (#44364)
dependabot[bot] Jan 16, 2025
8323eed
Bump the dotnet group (#44365)
dependabot[bot] Jan 16, 2025
6a86039
Bump the dotnet group (#44382)
dependabot[bot] Jan 16, 2025
546ed4e
Bump the dotnet group (#44383)
dependabot[bot] Jan 16, 2025
9f5346f
Bump System.Threading.RateLimiting (#44385)
dependabot[bot] Jan 16, 2025
0eb293b
Bump the dotnet group (#44386)
dependabot[bot] Jan 16, 2025
eaba332
Bump the dotnet group (#44387)
dependabot[bot] Jan 16, 2025
8b03918
Bump the dotnet group (#44377)
dependabot[bot] Jan 16, 2025
33a542e
Bump the dotnet group (#44381)
dependabot[bot] Jan 16, 2025
ea59a6c
Bump the dotnet group (#44389)
dependabot[bot] Jan 16, 2025
4287554
Update package index with latest published versions (#44396)
azure-sdk Jan 16, 2025
e0c2179
Bump Microsoft.Extensions.Caching.Memory (#44390)
dependabot[bot] Jan 16, 2025
7496633
Bump the dotnet group across 1 directory with 5 updates (#44407)
dependabot[bot] Jan 16, 2025
2cd0538
Bump Microsoft.AspNetCore.OpenApi (#44388)
dependabot[bot] Jan 16, 2025
e904f43
Bump the dotnet group (#44392)
dependabot[bot] Jan 16, 2025
0e7112c
Explain How Shebang Works with dotnet fsi in F# Scripting Section. (#…
shethaadit Jan 16, 2025
a8a3b9d
Remove Xamarin references (#44398)
gewarren Jan 16, 2025
acd3564
Fix minor word swap error. (#44405)
frdij Jan 16, 2025
8e70c7e
Add CA2022 to reliability category page (#44402)
mpidash Jan 16, 2025
cf92601
Add documentation for CA2024 (#44401)
mpidash Jan 16, 2025
042ad29
EventsThreadShutdown obsoletion (#44287)
gewarren Jan 17, 2025
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
5 changes: 5 additions & 0 deletions .openpublishing.redirection.standard.json
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,11 @@
"redirect_url": "/previous-versions/dotnet/framework/data/xml/xslt/outputs-from-an-xsltransform",
"redirect_document_id": false
},
{
"source_path_from_root": "/docs/standard/data/sqlite/xamarin.md",
"redirect_url": "/dotnet/standard/data/sqlite/",
"redirect_document_id": false
},
{
"source_path_from_root": "/docs/standard/data/xml/resolving-external-xslt-style-sheets-and-documents.md",
"redirect_url": "/previous-versions/dotnet/framework/data/xml/xslt/resolving-external-xslt-style-sheets-and-documents",
Expand Down
24 changes: 12 additions & 12 deletions docs/ai/quickstarts/quickstart-local-ai.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,21 +101,21 @@ The Semantic Kernel SDK provides many services and features to connect to AI mod
Tell me three facts about .NET.

AI response:
1. **Cross-Platform Development:** One of the significant strengths of .NET,
1. **Cross-Platform Development:** One of the significant strengths of .NET,
particularly its newer iterations (.NET Core and .NET 5+), is cross-platform support.
It allows developers to build applications that run on Windows, Linux, macOS,
and various other operating systems seamlessly, enhancing flexibility and
reducing barriers for a wider range of users.

2. **Rich Ecosystem and Library Support:** .NET has an incredibly rich ecosystem,
comprising an extensive collection of libraries (such as those provided by the
official NuGet Package Manager), tools, and services. This allows developers
to work on web applications (.NET Framework for desktop apps and ASP.NET Core
for modern web applications), mobile applications (.NET MAUI or Xamarin.Forms),
IoT solutions, AI/ML projects, and much more with a vast array of pre-built
2. **Rich Ecosystem and Library Support:** .NET has a rich ecosystem,
comprising an extensive collection of libraries (such as those provided by the
official NuGet Package Manager), tools, and services. This allows developers
to work on web applications (.NET for desktop apps and ASP.NET Core
for modern web applications), mobile applications (.NET MAUI),
IoT solutions, AI/ML projects, and much more with a vast array of prebuilt
components available at their disposal.
3. **Type Safety:** .NET operates under the Common Language Infrastructure (CLI)

3. **Type Safety:** .NET operates under the Common Language Infrastructure (CLI)
model and employs managed code for executing applications. This approach inherently
offers strong type safety checks which help in preventing many runtime errors that
are common in languages like C/C++. It also enables features such as garbage collection,
Expand All @@ -133,11 +133,11 @@ The Semantic Kernel SDK provides many services and features to connect to AI mod
AI Response:
**Cross-platform Capabilities:** .NET allows building for various operating systems
through platforms like .NET Core, promoting accessibility (Windows, Linux, macOS).

**Extensive Ecosystem:** Offers a vast library selection via NuGet and tools for web
(.NET Framework), mobile development (Maui/Xamarin.Forms), IoT, AI, providing rich
(.NET Framework), mobile development (.NET MAUI), IoT, AI, providing rich
capabilities to developers.

**Type Safety & Reliability:** .NET's CLI model enforces strong typing and automatic
garbage collection, mitigating runtime errors, thus enhancing application stability.
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.0.0-preview.9.24556.5" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.1" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.0.0-preview.9.24556.5" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.1" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ When .NET and ASP.NET Web Forms first shipped, the platform ecosystem looked muc

Most modern web frameworks are now also open-source, which has a number of benefits. Users aren't beheld to a single project owner to fix bugs and add features. Open-source projects provide improved transparency on development progress and upcoming changes. Open-source projects enjoy contributions from an entire community, and they foster a supportive open-source ecosystem. Despite the risks of open-source, many consumers and contributors have found suitable mitigations that enable them to enjoy the benefits of an open-source ecosystem in a safe and reasonable way. Examples of such mitigations include contributor license agreements, friendly licenses, pedigree scans, and supporting foundations.

The .NET community has embraced both cross-platform support and open-source. .NET Core is an open-source and cross-platform implementation of .NET that runs on a plethora of platforms, including Windows, macOS, and various Linux distributions. Xamarin provides Mono, an open-source version of .NET. Mono runs on Android, iOS, and a variety of other form factors, including watches and smart TVs. In 2020, Microsoft released [.NET 5](https://devblogs.microsoft.com/dotnet/announcing-net-5-0/) that reconciled .NET Core and Mono into "a single .NET runtime and framework that can be used everywhere and that has uniform runtime behaviors and developer experiences."
The .NET community has embraced both cross-platform support and open-source. .NET Core is an open-source and cross-platform implementation of .NET that runs on a plethora of platforms, including Windows, macOS, and various Linux distributions. Mono is an open-source version of .NET that runs on Android, iOS, and a variety of other form factors, including watches and smart TVs. In 2020, Microsoft released [.NET 5](https://devblogs.microsoft.com/dotnet/announcing-net-5-0/) that reconciled .NET Core and Mono into "a single .NET runtime and framework that can be used everywhere and that has uniform runtime behaviors and developer experiences."

Will ASP.NET Web Forms benefit from the move to open-source and cross-platform support? The answer, unfortunately, is no, or at least not to the same extent as the rest of the platform. The .NET team [made it clear](https://devblogs.microsoft.com/dotnet/net-core-is-the-future-of-net/) that ASP.NET Web Forms won't be ported to .NET Core or .NET 8. Why is that?

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ ms.date: 04/06/2022

[!INCLUDE [download-alert](includes/download-alert.md)]

Although not required, Azure is well-suited to supporting the eShopOnContainers because the project was built to be a cloud-native application. The application is built with .NET, so it can run on Linux or Windows containers depending on the Docker host. The application is made up of multiple autonomous microservices, each with its own data. The different microservices showcase different approaches, ranging from simple CRUD operations to more complex DDD and CQRS patterns. Microservices communicate with clients over HTTP and with one another via message-based communication. The application supports multiple platforms for clients as well, since it adopts HTTP as a standard communication protocol and includes ASP.NET Core and Xamarin mobile apps that run on Android, iOS, and Windows platforms.
Although not required, Azure is well-suited to supporting the eShopOnContainers because the project was built to be a cloud-native application. The application is built with .NET, so it can run on Linux or Windows containers depending on the Docker host. The application is made up of multiple autonomous microservices, each with its own data. The different microservices showcase different approaches, ranging from simple CRUD operations to more complex DDD and CQRS patterns. Microservices communicate with clients over HTTP and with one another via message-based communication. The application supports multiple platforms for clients as well, since it adopts HTTP as a standard communication protocol and includes ASP.NET Core and Xamarin mobile apps that run on Android, iOS, and Windows platforms. (Xamarin is unsupported as of May 2024.)

The application's architecture is shown in Figure 2-5. On the left are the client apps, broken up into mobile, traditional Web, and Web Single Page Application (SPA) flavors. On the right are the server-side components that make up the system, each of which can be hosted in Docker containers and Kubernetes clusters. The traditional web app is powered by the ASP.NET Core MVC application shown in yellow. This app and the mobile and web SPA applications communicate with the individual microservices through one or more API gateways. The API gateways follow the "backends for front ends" (BFF) pattern, meaning that each gateway is designed to support a given front-end client. The individual microservices are listed to the right of the API gateways and include both business logic and some kind of persistence store. The different services make use of SQL Server databases, Redis cache instances, and MongoDB/CosmosDB stores. On the far right is the system's Event Bus, which is used for communication between the microservices.

Expand Down
2 changes: 1 addition & 1 deletion docs/architecture/maui/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ In addition, unit tests are provided for some of the classes in the eShop multi-

## Multi-Platform app solution

The eShop multi-platform app solution organizes the source code and other resources into a multiple projects. All of the core mobile components are contained in a singular project named eShopContainers. This is a feature introduced with .NET 6 that allows a project to target multiple outputs which helps eliminate the need for multiple platform projects that we would have used in Xamarin.Forms and earlier .NET versions. An additional project is included for unit testing.
The eShop multi-platform app solution organizes the source code and other resources into a multiple projects. All of the core mobile components are contained in a singular project named eShopContainers. This is a feature introduced with .NET 6 that allows a project to target multiple outputs which helps eliminate the need for multiple platform projects that we would have used in earlier .NET versions. An additional project is included for unit testing.

While this project has all of its components stored in a singular project, it is worth considering separating it into multiple projects based on your needs. For example, if you have multiple implementations of service providers based off of a service with their own dependencies, it may make sense to break those service provider implementations out into their own separate project. Good candidates for project separation include shared models, service implementations, api client components, database or caching layers. Any place where you feel that the business could re-use a component in another project is a potential candidate for separation. These projects can then be packaged via [NuGet](/nuget/) for easy distribution and versioning.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,33 +27,33 @@ Figure 4-21 shows a version of this composite UI approach. This approach is simp

Each of those UI composition microservices would be similar to a small API Gateway. But in this case, each one is responsible for a small UI area.

A composite UI approach that's driven by microservices can be more challenging or less so, depending on what UI technologies you're using. For instance, you won't use the same techniques for building a traditional web application that you use for building an SPA or for native mobile app (as when developing Xamarin apps, which can be more challenging for this approach).
A composite UI approach that's driven by microservices can be more challenging or less so, depending on what UI technologies you're using. For instance, you won't use the same techniques for building a traditional web application that you use for building an SPA or for native mobile app (which can be more challenging for this approach).

The [eShopOnContainers](https://aka.ms/MicroservicesArchitecture) sample application uses the monolithic UI approach for multiple reasons. First, it's an introduction to microservices and containers. A composite UI is more advanced but also requires further complexity when designing and developing the UI. Second, eShopOnContainers also provides a native mobile app based on Xamarin, which would make it more complex on the client C\# side.
The [eShopOnContainers](https://aka.ms/MicroservicesArchitecture) sample application uses the monolithic UI approach for multiple reasons. First, it's an introduction to microservices and containers. A composite UI is more advanced but also requires further complexity when designing and developing the UI. Second, eShopOnContainers also provides a native mobile app based on Xamarin (unsupported as of May 2024), which would make it more complex on the client C\# side.

However, we encourage you to use the following references to learn more about composite UI based on microservices.

## Additional resources

- **Micro Frontends (Martin Fowler's blog)**
- **Micro Frontends (Martin Fowler's blog)**
<https://martinfowler.com/articles/micro-frontends.html>
- **Micro Frontends (Michael Geers site)**

- **Micro Frontends (Michael Geers site)**
<https://micro-frontends.org/>
- **Composite UI using ASP.NET (Particular's Workshop)**

- **Composite UI using ASP.NET (Particular's Workshop)**
<https://github.com/Particular/Workshop/tree/master/demos/asp-net-core>

- **Ruben Oostinga. The Monolithic Frontend in the Microservices Architecture**
- **Ruben Oostinga. The Monolithic Frontend in the Microservices Architecture**
<https://xebia.com/blog/the-monolithic-frontend-in-the-microservices-architecture/>

- **Mauro Servienti. The secret of better UI composition**
- **Mauro Servienti. The secret of better UI composition**
<https://particular.net/blog/secret-of-better-ui-composition>

- **Viktor Farcic. Including Front-End Web Components Into Microservices**
- **Viktor Farcic. Including Front-End Web Components Into Microservices**
<https://technologyconversations.com/2015/08/09/including-front-end-web-components-into-microservices/>

- **Managing Frontend in the Microservices Architecture**
- **Managing Frontend in the Microservices Architecture**
<https://allegro.tech/2016/03/Managing-Frontend-in-the-microservices-architecture.html>

>[!div class="step-by-step"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Even when using client-side validation, you should always validate your commands

Therefore, in client-side code you typically validate the ViewModels. You could also validate the client output DTOs or commands before you send them to the services.

The implementation of client-side validation depends on what kind of client application you are building. It will be different if you are validating data in a web MVC web application with most of the code in .NET, a SPA web application with that validation being coded in JavaScript or TypeScript, or a mobile app coded with Xamarin and C#.
The implementation of client-side validation depends on what kind of client application you are building. It will be different if you're validating data in an MVC web application with most of the code in .NET versus a SPA web application with the validation code in JavaScript or TypeScript.

## Additional resources

Expand Down
2 changes: 1 addition & 1 deletion docs/azure/includes/dotnet-all.md
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,7 @@
| App Service - API Apps Service | NuGet [0.9.64](https://www.nuget.org/packages/Microsoft.Azure.AppService.ApiApps.Service/0.9.64) | | |
| Code Analyzers for Durable Functions | NuGet [0.5.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers/0.5.0) | | GitHub [0.5.0](https://github.com/Azure/azure-functions-durable-extension/tree/Analyzer-v0.3.0/src/WebJobs.Extensions.DurableTask.Analyzers) |
| Cosmos DB - BulkExecutor | NuGet [2.5.1-preview](https://www.nuget.org/packages/Microsoft.Azure.CosmosDB.BulkExecutor/2.5.1-preview) | | GitHub [2.5.1-preview](https://github.com/Azure/azure-cosmosdb-bulkexecutor-dotnet-getting-started) |
| Cosmos DB - Direct | NuGet [3.37.6](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Direct/3.37.6) | | GitHub [3.37.6](https://github.com/Azure/azure-cosmos-dotnet-v3) |
| Cosmos DB - Direct | NuGet [3.37.7](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Direct/3.37.7) | | GitHub [3.37.7](https://github.com/Azure/azure-cosmos-dotnet-v3) |
| Cosmos DB - Encryption | NuGet [2.0.3](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption/2.0.3)<br>NuGet [2.1.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption/2.1.0-preview4) | | GitHub [2.0.3](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/encryption/1.0.0-preview4/Microsoft.Azure.Cosmos.Encryption) |
| Cosmos DB - Encryption | NuGet [1.0.0-preview07](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption.Custom/1.0.0-preview07) | | |
| Extensions - Caching Cosmos | NuGet [1.7.0](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Cosmos/1.7.0) | | GitHub [1.7.0](https://github.com/Azure/Microsoft.Extensions.Caching.Cosmos/tree/v1.0.0-preview4) |
Expand Down
19 changes: 5 additions & 14 deletions docs/azure/index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,20 +122,11 @@ conceptualContent:
- title: Create mobile apps
links:
- itemType: learn
text: Consume REST services from Azure in Xamarin apps
url: /training/modules/consume-rest-services/
- itemType: quickstart
text: Create a Xamarin.Forms app with .NET SDK and Azure Cosmos DB's API for MongoDB
url: /azure/cosmos-db/create-mongodb-xamarin
- itemType: quickstart
text: Azure Blob storage client library with Xamarin.Forms
url: /azure/storage/blobs/storage-quickstart-blobs-xamarin
- itemType: tutorial
text: Send push notifications to Xamarin.Forms apps using ASP.NET Core and Azure Notification Hubs
url: /azure/notification-hubs/notification-hubs-backend-service-xamarin-forms
- itemType: concept
text: Add authentication and manage user identities in your mobile apps
url: /azure/developer/mobile-apps/authentication
text: Consume REST web services in .NET MAUI apps
url: /training/modules/consume-rest-services-maui/
- itemType: overview
text: Mobile architecture design
url: /azure/architecture/guide/mobile/mobile-start-here
- title: Work with storage & data
links:
- itemType: concept
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.0" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.1" />
<PackageReference Include="Azure.Messaging.ServiceBus" Version="7.18.2" />
<PackageReference Include="Azure.Security.KeyVault.Secrets" Version="4.7.0" />
<PackageReference Include="Azure.Storage.Blobs" Version="12.23.0" />
Expand Down
2 changes: 1 addition & 1 deletion docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<ItemGroup>
<PackageReference Include="Azure.Extensions.AspNetCore.DataProtection.Blobs" Version="1.4.0" />
<PackageReference Include="Azure.Extensions.AspNetCore.DataProtection.Keys" Version="1.3.0" />
<PackageReference Include="Azure.Identity" Version="1.13.1" />
<PackageReference Include="Azure.Identity" Version="1.13.2" />
<PackageReference Include="Microsoft.Extensions.Azure" Version="1.9.0" />
</ItemGroup>

Expand Down
Loading
Loading