Come abbiamo segnalato qui su ASPItalia.com, da qualche giorno ASP.NET Core 2.1 è finalmente realtà, insieme con una serie di interessanti novità che avremo modo di esplorare nelle prossime settimane.
La buona notizia è che il processo di migrazione delle applicazioni esistenti al nuovo framework è piuttosto indolore, grazie al fatto che tutte le librerie sono distribuite in un package wrapper tramite NuGet.
Cerchiamo di capire quali sono i passi per portare le nostre applicazioni su ASP.NET Core 2.1, così che possiamo da subito sfruttare le nuove funzionalità, quali il supporto a GDPR, IHttpClientFactory o le altre novità elencate nella documentazione (https://docs.microsoft.com/en-us/aspnet/core/aspnetcore-2.1?view=aspnetcore-2.1)
Innanzi tutto il pre-requisito è di aggiornare Visual Studio 2017 almeno alla versione 15.7, cosa che possiamo fare dall'interno dell'ambiente di sviluppo tramite le notifiche o nella sezione Extensions and Updates.
Successivamente, con un click del tasto destro, editiamo il file di progetto della nostra applicazione e apportiamo le modifiche mostrate in basso:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.0" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" /> <!-- .. altri elementi qui .. --> </ItemGroup> <!-- .. altri elementi qui .. --> </Project>
Nello snippet in alto, abbiamo omesso i contenuti che non sono rilevanti, evidenziando solo le parti che devono essere modificate:
- TargetFramework va impostato a netcoreapp2.1;
- Dobbiamo modificare il PackageReference principale da Microsoft.AspNetCore.All a Microsoft.AspNetCore.App e impostare la versione a 2.1.0;
- Se stiamo lavorando in un progetto ASP.NET Core MVC, dobbiamo modificare la versione di Microsoft.VisualStudio.Web.CodeGeneration.Design a 2.1.0.
Una volta effettuato queste modifiche, l'ultimo passaggio che ci resta da compiere è quello di impostare il livello di compatibilità. Come sappiamo, il team di ASP.NET ha introdotto numerose migliorie al Framework, che hanno per esempio un grande impatto benefico sulle prestazioni. Tuttavia, alcune di queste potrebbero provocare delle breaking change nel caso abbiamo personalizzato di molto la pipeline di risposta.
Per semplificare la mirgrazine al nuovo framework, è disponibile un metodo denominato SetCompatibilityVersion che determina a quale livello di compatibilità vogliamo operare. Questo metodo va invocato nella configurazione dei servizi all'interno della classe Startup:
public void ConfigureServices(IServiceCollection services) { services.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_2_1); // ... altro codice qui ... }
Nel nostro esempio abbiamo scelto di sfruttare la nuova pipeline, ma ovviamente abbiamo la possibilità di forzare il comportamento della versione precedente.
L'ultima modifica è relativa a BrowserLink, una funzionalità che consente una comunicazione bidirezionale tra Visual Studio 2017 e il sito web che stiamo sviluppando. In ASP.NET Core 2.1 è contenuta in un package esterno e non è inclusa per default nell'insieme delle librerie installate da NuGet. Se abbiamo lasciato la chiamata all'extension method UseBrowserLink, pertanto, la nostra applicazione non compilerà.
Abbiamo due opzioni: possiamo ovviamente eliminare la chiamata, che è la scelta più idonea se non stiamo utilizzando la funzionalità, oppure possiamo aggiungere il package Microsoft.VisualStudio.Web.BrowserLink tramite NuGet.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Miglioramenti nell'accessibilità con Angular CDK
Gestire undefined e partial nelle reactive forms di Angular
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Evitare la command injection in un workflow di GitHub
.NET Conference Italia 2023
Migrare una service connection a workload identity federation in Azure DevOps
Utilizzare Model as a Service su Microsoft Azure
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Utilizzare i primary constructor in C#
gRPC con .NET
I più letti di oggi
- Utilizzare Docker Compose con Azure App Service
- Utilizzare QuickGrid di Blazor con Entity Framework
- Modernizzare le applicazioni WPF e Windows Forms con Blazor
- ASP 3 per esempi
- annunciato #netstandard 2.1. .NET Core lo supporterà a partire da #netcore3, così come le prossime versione di #xamarin, #mono e #unity.il supporto per #netfx 4.8, invece, non ci sarà. https://aspit.co/bq2
- Steel Style CheckBox per Silverlight 4.0