ASP.NET Core 2.0, la dernière évolution majeure de la jeune plateforme de développement Web est disponible en version stable depuis une dizaine de jours. Dans ce billet de blog, je vais présenter les modifications qu'il faut apporter à une application ASP.NET Core 1.x pour profiter des fonctionnalités de cette nouvelle version.
Mise à jour de la version du Framework
Pour migrer votre application sous ASP.NET Core 1.x vers ASP.NET Core 2.0, la première chose à faire sera d’éditer le fichier .csproj et modifier la version du Framework qui est utilisée.
La section suivante :
| Code xml : | Sélectionner tout |
1 2 3 | <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> |
| Code xml : | Sélectionner tout |
1 2 3 | <PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup> |
| Code xml : | Sélectionner tout |
<TargetFramework>net461</TargetFramework>
Mise à jour des packages
Une fois cela fait, vous devez faire passer tous les packages ASP.NET Core (Microsoft.AspNetCore.xxx) qui sont référencés dans votre projet vers les nouvelles versions de ceux-ci. Vous pouvez également modifier les packages pour EntityFramework Core vers la version 2.0 qui a été publiée au même moment.
Pour mon application dont les packages suivants sont référencés :
| Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | <ItemGroup> <PackageReference Include="BuildBundlerMinifier" Version="2.4.337" /> <PackageReference Include="Microsoft.AspNetCore" Version="1.0.4" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.0.3" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.0.2" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SQLite" Version="1.0.*" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.0.*" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.Dotnet" Version="1.0.0" /> </ItemGroup> |
| Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | <ItemGroup> <PackageReference Include="BuildBundlerMinifier" Version="2.4.337" /> <PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SQLite" Version="2.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.Dotnet" Version="2.0.0" /> </ItemGroup> |
| Code xml : | Sélectionner tout |
1 2 3 4 | <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" /> </ItemGroup> |
Mise à jour des outils .NET Core
Dans le fichier .csproj, il pourrait également exister une section dans laquelle sont référencés les outils CLI .NET Core. Ils sont notamment utilisés pour la génération de code ou par EntityFramework pour la génération des bases de données.
| Code xml : | Sélectionner tout |
1 2 3 4 | <ItemGroup> <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" /> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" /> </ItemGroup> |
| Code xml : | Sélectionner tout |
1 2 3 4 | <ItemGroup> <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" /> </ItemGroup> |
Le fichier Program.cs a été refactorisé dans ASP.NET Core 2.0. Pour éviter les potentiels problèmes que pourrait causer le code de la version avec ASP.NET Core 1.x, je vous recommande de modifier le code de votre classe Program pour utiliser celui proposé avec ASP.NET Core 2.0.
Vous devez donc éditer votre fichier Program.cs, et remplacer le code suivant :
| Code c# : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); } } |
| Code c# : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 | public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build(); } |
Si dans votre fichier .csproj, vous avez la section PackageTargetFallBack :
| Code xml : | Sélectionner tout |
<PackageTargetFallback>portable-net45+win8</PackageTargetFallback>
| Code xml : | Sélectionner tout |
<AssetTargetFallback>portable-net45+win8</AssetTargetFallback>
Vous avez lu gratuitement 2 046 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.