Iniziare a sviluppare in .NET e C#

Nonostante i 18 anni di età, il framework .NET è una delle piattaforme più utilizzate e ancora promettenti nel panorama dello sviluppo software grazie ai tanti tipi di dispositivi e di sistemi operativi supportati, al solido linguaggio C# e a Visual Studio, un ambiente che integra tutti gli strumenti necessari.

In questo articolo ho raccolto alcune informazioni per iniziare ad utilizzare .NET e C#.

La storia in breve

Il progetto .NET nasce nel 2002, nel periodo d’oro dei sistemi Java e della grande diffusione dei sistemi Linux sia in ambito server che desktop.

L’idea era quella di creare su Windows un modello di sviluppo ad oggetti che fosse più di alto livello rispetto a quello di linguaggi con compilazione nativa come C++, esattamente come accadeva con Java, ma di spostare l’attenzione sui sistemi Windows, con una compilazione JIT (just in time) più efficiente grazie all’impiego di implementazioni native per le librerie fornite.

I linguaggi supportati di base erano (e sono) il classico Visual Basic e l’allora nuovo C#, l’ambiente di sviluppo è ancora oggi Visual Studio, insieme al recente Visual Studio Code, più leggero e multipiattaforma. Il framework originario si è evoluto fino alla sua ultima versione 4.8 (del 2019) per Windows.

Nel 2016 Microsoft ha rilasciato la prima versione di .NET Core, un fork open source della libreria originaria (ora definita “.NET Framework”) che, oltre a godere del miglioramento prestazionale dato dalla riscrittura completa del codice, supporta anche Linux e Mac.

A novembre 2020 è previsto il rilascio di .NET 5, una evoluzione di .NET Core che unificherà le librerie .NET, anche quelle utilizzate in progetti secondari come Mono e Xamarin (per Android-iOS) ed aggiungerà nuove ed interessanti funzionalità ai tool, come ad esempio la compilazione AOT (ahead of time).

Cosa ci si può fare?

Dopo tanti anni è difficile creare un elenco esaustivo delle possibilità date dall’utilizzo di una libreria così ampia, quindi mi limiterò alle tecnologie con le quali ho avuto a che fare fino a questo momento nella mia esperienza di sviluppatore.

In generale i punti di forza del progetto sono:

  • Riutilizzo del codice C# (e VB) e cura per la compatibilità delle librerie esistenti;
  • Utilizzo desktop, mobile e server (anche microservizi cloud);
  • Evoluzione continua per supportare le nuove tecnologie.

Applicazioni Desktop

Per software desktop .NET Core dispone di due librerie (Windows Forms e WPF) che permettono di scrivere applicazioni per windows da 7 in poi ed una libreria UWP per applicazioni per il solo Windows 10 da pubblicare su Microsoft Store.

Applicazioni Web

Per il web è possibile creare progetti ASP.NET Core, che sfruttano C# per applicazioni web o API anche molto complesse.

App per dispositivi mobili

Grazie alla piattaforma Xamarin (acquisita da Microsoft nel 2016) è possibile utilizzare C# per sviluppare app Android, iOS e UWP con codice anche condiviso grazie alle interfacce Xamarin Forms, che vengono poi compilate separatamente per i singoli OS.

E poi…

Se si vogliono sviluppare videogiochi (sia desktop, sia mobile, sia web), il motore grafico Unity3D, permette di scrivere una sola base di codice e distribuirli ovunque.

Sono anche disponibili librerie per IoT, AI (ML.NET) e WebAssembly (Blazor) e con .NET 5 arriveranno altre novità.

Risorse per sviluppatori

Per cominciare consiglio di scegliere la tecnologia a seconda del tipo di progetto che si vuole sviluppare, elenco qui i link che possono esservi di ausilio.

Guide e news

Ambienti di sviluppo e librerie

Sperando che questa introduzione sia stata una buona infarinatura non resta che augurarvi di provare questa tecnologia con tutte le sue potenzialità.

Buon lavoro!