Nello speech che ho tenuto settimana scorsa alla .NET Conference con la commnity DotNetToscana, ho descritto da un punto di vista generale le novità e i pillars fondamentali di .NET Core 3.0 - la nuova major release del framework .NET Cross Platform che pian piano staimo tutti imparando a conoscere ed amare. Le novità di questa major release sono molte. Vediamo se riesco a fare un pò di ordine alle mie idee tramite questo post.

The story with .NE Core 2

Quella che vediamo in basso è la situazione a cui ormai ci siamo abituati. Il concetto di .NET everywhere è manna dal cielo per noi sviluppatori ma risulta comunque limitata poichè i workload che siamo in grado di aggredire riutilizzando le nostre conoscenze sono i classici, ovvero Web e Cloud.

In questo caso i workload Web e Cloud si siedono on top a .NET Core e ad una serie di librerie supportate da un layer infrastrutturale che come sappiamo, è stato riscritto. Pensiamo a Roslyn e al RyuJIT. Con i workload Web e Cloud .NET Core è comunque fedele alle promesse che ne hanno guidato il suo sviluppo, ovvero:

  • Improved Web API Development
  • Microservices and Azure
  • Continued Performance Improvement

Arrivando al succo del post, quindi parlando di .NET Core 3.0 la situazione è cambiata. Prima di tutto dal punto di vista dei Workload che siamo in grado di aggredire con le nostre skill da sviluppatori .NET.

Come possiamo vedere, i livello in basso non sono cambiati - o meglio, sono cambiati sotto al cofano perchè il team è costantemente al lavoro per rendere toolchain e librerie più efficenti possibili - sono cambiati invece i workload in grado di consumare .NET Core. Vediamo dunque aggiunti una voca per Desktop, IoT, e AI. Questo molto semplicemente perchè ormai IoT e AI stanno entrando nel core di Windows da un punto di vista concettuale, ma anche pratico con ML.NET e poi il Desktop comunque è ancora la piattaforma preferita dalle Enterprise.

Una serie di altri Why di .NET Core su Desktop sono la possibilità di avere versioni del framework SxS (Side by Side), sfruttare il nuovo e più snello project system e come dicevo prima, sopratutto portare anche nel mondo desktop le evoluzioni più agili del Framework

What’s new in .NET Core 3.0 for Desktop

Vediamo però di seguito le novità principali di .NET Core 3.0 per quanto riguarda la parte desktop.

  • .NET Core 3 supporta WinForms e WPF (attenzione, i componenti UI però solo su Windows)
  • Accesso a tutte le Windows 10 API (secondo me la UWP rimane una delle piattaforme più belle su cui sviluppare)
  • NET Core App Bundler - a supporto dei SCD (self contained deployment) o FDD (framework dependent deployments)

Updates since Build 2018

Da //Buidl 2018 il team ha lavorato sodo e all’ultima .NET Conf ha potuto annunciare una serie di migliorie. Che riguardano sopratutto l’integrazione, seppur grezza, dei tools con .NET Core 3. Nello specifico abbiamo il supporto al debugging tramite Visual Studio (senza visual designer però) e la possibilità di sfruttare WinForms se ci agganciamo al feed delle nightly build. Personalmente un comando del genere non mi sarei mai aspettato di vederlo :D

dotnet new winforms

Wrap up

Che dire, .NET Core 3.0 si prospetta come un bella novità nel panorama tecnologico. Nell’attesa di avere qualche bit più stabile possiamo tenere d’occhio il repo ufficiale per rimanere aggiornati con i progressi del team e scaricare i bits non appena vengono resi disponibili https://github.com/dotnet/core-sdk