From 531c01af9505ad1bdcde2d7b9fd9f7815259dc8a Mon Sep 17 00:00:00 2001 From: Ebicoglu Date: Thu, 27 Oct 2022 17:33:29 +0300 Subject: [PATCH] add dotnet7 upgrade article --- ...grade-Your-Existing-Projects-to-Dotnet7.md | 261 ++++++++++++++++++ .../as-single-query.jpg | Bin 0 -> 39759 bytes 2 files changed, 261 insertions(+) create mode 100644 docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/Upgrade-Your-Existing-Projects-to-Dotnet7.md create mode 100644 docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/as-single-query.jpg diff --git a/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/Upgrade-Your-Existing-Projects-to-Dotnet7.md b/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/Upgrade-Your-Existing-Projects-to-Dotnet7.md new file mode 100644 index 0000000000..3fc625c6db --- /dev/null +++ b/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/Upgrade-Your-Existing-Projects-to-Dotnet7.md @@ -0,0 +1,261 @@ +# Upgrade Your Existing Projects to .NET7 + +A new .NET version has come. As open-source contributors, we are tracking the latest libraries and adopting them to our existing projects. In this sense, we completed our .NET 7 upgrade in our repositories for ABP Framework and ABP Commercial. In this article, I'll share our experiences we faced, while upgrading to the new .NET version 👉 .NET 7. + +At the time I wrote this article, the latest .NET version was `7.0.0-rc.2`. So some of the version statements I wrote below must be changed due to the stable version release. + + + +**To see the latest and greatest stuff, let's see how to upgrade our existing projects to .NET 7!** + + + +## Install .NET7 SDK + +If you are on your development computer, then you need to install the .NET7 SDK `7.x.x`. For the production servers, you need to install the .NET 7 runtimes. Download link for the .NET7 SDK and runtimes is: + +* https://dotnet.microsoft.com/en-us/download/dotnet/7.0 + + + +## Update Your *.csproj Files + +First of all, you need to update all your `*.csproj` files to support .NET7. Find and replace all your `*` in the `*.csproj` files to support .NET 7: + +```xml +net7.0 +``` + +We already did this in ABP Framework, see this commit as an example [github.com/abpframework/abp/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.csproj](https://github.com/abpframework/abp/blob/dev/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj#L4). + + + +### Microsoft Package Updates + +You must be using Microsoft packages as well, then you need to update them to the latest .NET 7 version. +At the time, I wrote this article, the latest version was `7.0.0-rc.2.22476.2`, so I'll update them to this version including minor version changes. + +Here's the list of all package reference updates I did: + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + + + +--- + + + +## Entity Framework Core Updates + +If you are using EF Core as your data access library, then you should update your `dotnet-ef` CLI tool. Here's the terminal command to update it: + +```bash +dotnet tool update dotnet-ef --global --prerelease +``` + +We already did the the EF Core package reference update in the *Microsoft Package Updates* section. + + + +### Breaking Change: OrderBy + +In this release, there's a breaking change in an EF Core query running behavior. We faced this issue in some of our queries that were missing `OrderBy` statement. It throws an exception and does not run the query. Here's the explanation of a EF Core team member for this issue: [github.com/dotnet/efcore/issues/21202#issuecomment-913206415](https://github.com/dotnet/efcore/issues/21202#issuecomment-913206415). + +The following exception is being thrown: + +> InvalidOperationException: The query uses 'Skip' without specifying ordering and uses split query mode. This generates incorrect results. Either provide ordering or run query in single query mode using AsSingleQuery(). See https://go.microsoft.com/fwlink/?linkid=2196526 for more information + +If you don't want to add `OrderBy` statement to solve the issue, you can also use `AsSingleQuery()`. + +![AsSingleQuery](./as-single-query.jpg) + + + +### EF Core - SQL Client Connection String Update + +With this version, the behavior of the SQL connection has been changed. There is a keyword in the SQL connection string called `TrustServerCertificate`. This keyword indicates whether the channel will be encrypted while bypassing walking the certificate chain to validate trust. + +> When `TrustServerCertificate` is set to `True`, the transport layer will use SSL to encrypt the channel and bypass walking the certificate chain to validate trust. If `TrustServerCertificate` is set to `true` and encryption is turned on, the encryption level specified on the server will be used even if `Encrypt` is set to `false`. The connection will fail otherwise. + + + +After the .NET7 update, it just started to throw the following exception: + +> A connection was successfully established with the server, but then an error occurred during the login process. + + + +We fixed this problem by adding the `TrustServerCertificate=true` to your connection string. Here's an example connection string that supports, + +````sql +Server=localhost; Database=MyProjectName; Trusted_Connection=True; TrustServerCertificate=True +```` + +See our commit for this fix: + +* [github.com/abpframework/abp/commit/96f17e67918eb87edd2baf876d4a7598281fe608](https://github.com/abpframework/abp/commit/96f17e67918eb87edd2baf876d4a7598281fe608) + +Related docs: + +* [learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/breaking-changes#encrypt-true](https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/breaking-changes#encrypt-true) +* [stackoverflow.com/questions/34430550/a-connection-was-successfully-established-with-the-server-but-then-an-error-occ](https://stackoverflow.com/questions/34430550/a-connection-was-successfully-established-with-the-server-but-then-an-error-occ) + + + +--- + + + +## Blazor Update + +Ensure that you have updated your Blazor project's csproj to support .NET7: + +```xml +net7.0 +``` + +### Install Blazor Workloads + +#### .NET Web Assembly build tools + +If you have a Blazor-WASM project, install the workloads by running the following in a command shell: + +```bash +dotnet workload install wasm-tools +``` + + **OR** you can update your workloads by running the following command in your Blazor project directory: + +```bash +dotnet workload restore +``` + + + +--- + + + +## .NET MAUI Update + +Ensure that you have updated your Blazor project's csproj to support .NET7: + +```xml +net7.0-android;net7.0-ios;net7.0-maccatalyst +$(TargetFrameworks);net7.0-windows10.0.19041.0 +``` + + + +### Install MAUI Workloads + +If you have .NET MAUI project, then you also need to update your `TargetFramework` as below: + +If you have a .NET MAUI project, after installing the .NET 7 SDK, install the latest workloads with the following command: + +```bash +dotnet workload install maui +``` + + **OR** run the following command in your existing .NET MAUI project directory + +```bash +dotnet workload restore +``` + + + +Further information, check out https://github.com/dotnet/maui/wiki/.NET-7-and-.NET-MAUI + +--- + + + +#### Dotnet Maui Check Tool + +Alternatively, there's a 3rd party tool for .NET MAUI to install the required workloads. This tool installs the missing SDK packs. You can reach the tool's repository at [github.com/Redth/dotnet-maui-check](https://github.com/Redth/dotnet-maui-check). + +Installation: + +```bash +dotnet tool install -g Redth.Net.Maui.Check +``` + +Run: + +```bash +maui-check +``` + + + +--- + + + +## Docker Image Update + +If you are using Docker for automating the deployment of applications, you also need to update your images. We were using `aspnet:6.0.0-bullseye-slim` base and after the .NET 7, we started using `aspnet:6.0.0-bullseye-slim` in our Docker files. + +``` +FROM mcr.microsoft.com/dotnet/aspnet:7.0-bullseye-slim AS base +``` + +For this update, you can check out the following PR as an example: + +* [github.com/abpframework/abp/commit/2d07b9bd00152bef4658c48ff9b2cbee5788d308](https://github.com/abpframework/abp/commit/2d07b9bd00152bef4658c48ff9b2cbee5788d308) + + + +## ABP Framework .NET 7 Update + +We have update all our dependencies from .NET6 to .NET7. Not all the changes are here but here's the commit of our .NET 7 update process: + +[github.com/abpframework/abp/commit/e7e9756cf228acdeaf0eaa2eee49264d6927fdd5](https://github.com/abpframework/abp/commit/e7e9756cf228acdeaf0eaa2eee49264d6927fdd5) + + + +Happy coding with .NET 7 🤗 diff --git a/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/as-single-query.jpg b/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/as-single-query.jpg new file mode 100644 index 0000000000000000000000000000000000000000..38e3bde39e591d466ba7d2916fd136df27a3379b GIT binary patch literal 39759 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ʇ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