.NET Core: un framework open source per i tuoi progetti
Cosa (ma anche chi) c’è dietro le applicazioni che sviluppiamo per i nostri clienti?
Come decidiamo quali framework e quali linguaggi di programmazione utilizzare?
E perché abbiamo scelto di puntare sul .NET Core di Microsoft?
A queste e ad altre domande risponderanno due nostri esperti sviluppatori: Ernesto e Michele. Ascoltiamoli.
.NET Core: l’open source di casa Microsoft
Da quando gli smartphone hanno raggiunto una diffusione di massa (49.3 milioni di utenti mobile solo in Italia nel 2018 – Fonte Hootsuite) il web è cresciuto in maniera esponenziale, sia per quanto riguarda i contenuti che le tecnologie.
In poco più di 10 anni abbiamo visto l’ingresso di numerosi framework, in larga parte open source, che hanno aumentato le potenzialità del web e le possibilità per gli sviluppatori di creare applicazioni performanti e a misura di utente.
Tra questi spicca il .NET Core di Microsoft.
Microsoft??
Ebbene si, anche Microsoft è entrata nel mondo open source e, secondo i nostri esperti, sembra proprio l’abbia fatto “dalla porta principale”.
Come scegliere un framework? Quale caratteristiche dovrebbe avere?
Avere un’ampia scelta è sempre una buona cosa. Sembra preistoria, ma fino a 20 anni fa il concetto di framework era molto lontano da ciò che conosciamo oggi e la scelta era piuttosto obbligata.
Tra linguaggi proprietari e open source, le opzioni erano davvero poche. Ora la selezione è ampia, ma bisogna fare attenzione perché grandi possibilità necessitano di grande responsabilità.
Quindi, come districarsi nel mondo della programmazione web, tra decine di framework e correnti di pensiero differenti?
Per fare chiarezza chiediamo aiuto a due nostri sviluppatori, ragazzi che che fanno del codice il loro pane quotidiano.
Si chiamano Ernesto e Michele, respirano aria e web applications.
Iniziamo…
1. Ciao Ernesto, partiamo dall’inizio: cos’è .NET Core?
Attenzione, però, a non confonderlo con il .NET Framework, del quale può essere considerata un’evoluzione. È un nuovo strumento, più attrezzato per rispondere alle esigenze della Digital Trasformation.
2. Michele, perché dovremmo utilizzare il .NET Core in ambito web?
La recente apertura di Microsoft al mondo open source ci da due grandi vantaggi: la possibilità di utilizzare il linguaggio di programmazione C# e quella di realizzare applicazioni web multipiattaforma.
Poter creare web app che vadano bene per dispositivi Windows, Linux o macOS è già un ottimo incentivo. Inoltre il gran numero di strumenti e librerie messi a disposizione tramite i pacchetti NuGet, facilitano il lavoro degli sviluppatori evitando loro di “reinventare la ruota”.
A conferma di ciò c’è un sondaggio di StackOverflow secondo il quale .NET Core è il framework più amato dagli sviluppatori (per l’anno 2020).
3. Ernesto, hai detto di non confondere .NET Core e .NET Framework. Cosa cambia tra i due?
In una parola? Tutto. L’unica cosa in comune è il linguaggio C#.
Il .NET Framework, nato nei primi anni 2000, ci ha sempre mostrato un modo di sviluppare fortemente tipizzato, costruito sui paradigmi fondamentali della programmazione ad oggetti. Nel tempo si è vista già una certa “rivoluzione”, ma con il .NET Core è cambiato proprio l’approccio: costruire una web app ora significa vedere il progetto completo come fosse costituito da più servizi specializzati, ognuno indipendente, adatto a svolgere il proprio compito.
Alla fine, quando tutti i “services” hanno svolto il loro lavoro, si ottiene il risultato finale.
4. Michele, la curva di apprendimento del .NET Core è alta?
In questo caso dipende molto dal background dello sviluppatore. Provenendo dal .NET Framework si avrà un apprendimento piuttosto rapido, così da potersi concentrare sugli aspetti più rilevanti e sulla gestione dei flussi di informazioni asincroni.
E quello che ho appena descritto è proprio il mio caso.
5. Ernesto, che differenza c’è tra Node.js e .NET Core?
Tu, quale preferisci? E perché?
Ci sono alcune differenze:
- La principale è che il .NET Core consente di sviluppare in più linguaggi (C#, F#, Visual Basic .NET), mentre Node.js è limitato al solo utilizzo del Javascript. A livello di prestazioni entrambi gli ambienti sono estremamente validi. Node.js è più adatto per applicazioni “real-time”, grazie al suo sistema di metodi non-bloccanti per servire le richieste I/O.
- .NET Core invece è più indicato per la realizzazione di applicativi enterprise su larga scala grazie alla sua affidabilità, scalabilità, sicurezza e performance.
A livello di strumenti per la gestione delle dipendenze e librerie, entrambi hanno un proprio gestore dei pacchetti che consente di organizzare al meglio le numerose librerie messe a disposizione dalle varie community. - L’ultimo aspetto da tenere in considerazione per confrontare i due ambienti di sviluppo è la piattaforma su cui ospitare le applicazioni realizzate. Anche se entrambi operano in modalità “multipiattaforma”, i server Linux sono considerati la scelta migliore per eseguire il deploy di applicazioni Node.js, mentre per quello che riguarda il .NET Core siamo meno vincolati ad una tipologia di server specifico.
6. Michele, quali erano le aspettative iniziali? E quali difficoltà avete riscontrato?
Questo framework porta con sé aspettative molto alte sia perché è rilasciato da un colosso dell’IT come Microsoft, sia per le sue caratteristiche che lo vedono protagonista nella realizzazione di applicazioni multipiattaforma ad alte prestazioni. Il fatto di offrire agli sviluppatori strumenti già pronti e una serie di automatismi, come ad esempio l’Identity Framework per la gestione delle autenticazioni utente, rende questo ambiente molto interessante e versatile. A volte però, date le grandi possibilità, occorre studiare in maniera approfondita i meccanismi che ne regolano il funzionamento.
7. Concludiamo questa intervista con una domanda per Ernesto: quali progetti avete sviluppato in azienda con questa tecnologia?
In azienda stiamo lavorando a 3 grandi progetti che utilizzano il .NET Core 3.x: un ecommerce che ha grandi volumi sia in termini di prodotti che di visite al sito, un software per l’elaborazione dati e rich content e… sì alla nuova versione di ImporterONE, che sarà completamente web (ma al momento non possiamo aggiungere altro).
Grazie ragazzi, adesso abbiamo le idee più chiare.
Ora vediamo di trarre alcune conclusioni:
- .NET Core è un’alternativa molto valida a Node.js
- In azienda lo utilizziamo con successo su progetti piccoli e grandi
- È un framework che può semplificare la vita degli sviluppatori
- È open source ed ha un’ampia comunità di supporto
- È il più amato dagli sviluppatori