ASP.NET su Linux

Microsoft Love Linux (!) fino a qualche tempo fa sembrava impossibile, eppure oggi sembra proprio vero.

Che sia l’ennesima strategia di Microsoft per guadagnare quote di mercato è probabile, ma intanto vedere “girare” in modo nativo applicazioni C# su Linux è una bella soddisfazione. La cosa era già possibile in passato con Mono ma senza un supporto ufficiale. Oggi l’integrazione tra Visual Studio su Windows e Linux è notevole, la documentazione prodotta da Microsoft è ricca e piena di esempi.

Infine tutto questo è open-source e disponibile gratuitamente su GitHub.

Il link seguente è di chiarimento sulla compatibilità tra le varie librerie .NET, mettendo a confronto .NET Framework (quello cui siamo abituati su PC Windows), .NET Portable (quello nato dopo l’acquisizione di Xamarin, per iOS e Android) e .NET Standard (diciamo il nuovo multi-piattaforma).

.NET platforms support

Nell’esempio vediamo come installare ASP.NET Core 1.1 su CentOS Linux.

Semplice! Certo che passo avanti per chi su Windows ha lottato anni contro versioni DLL che si ostacolavano l’un l’altra. Ma qui siamo su Linux e tutto risiede in una sola cartella.

Da questo momento in poi, semplicemente lanciando “dotnet [nomefile]”, saremo in grado di eseguire un nuovo programma .NET anche se compilato su Windows.

Proviamo a creare quindi da Visual Studio una nuova soluzione ASP.NET Core:

Modifichiamo l’impostazione di Kestrel (il web server integrato in ASP.NET Core) per rispondere a tutti gli indirizzi:

Modifichiamo la vista di default con un messaggio di benvenuto (ricordo che ASP.NET Core offre come approccio principale quello MVC):

Pubblichiamo il progetto e trasferiamo l’output su Linux (per provare si può fare con SCP, in produzione meglio un server FTP stabile). Si noti come la cartella di output comprenda anche le DLL di tutta la libreria .NET oltre all’applicazione e risorse correlate (JavaScript, HTML, CSS…)

Da Linux, con la stessa semplicità di prima, lanciamo il server:

Et voilà! Aprendo il browser e puntando alla porta 5000 del server, l’applicazione ASP.NET risponderà, come se fosse su Windows!

Per gli ambienti di produzione conviene proxare Kestrel, ad esempio con Nginx: Set up a hosting environment for ASP.NET Core on Linux with Nginx, and deploy to it

 

Chiama subito per maggiori informazioni +39 0113473770
oppure lasciaci i tuoi recapiti e sarai contattato il prima possibile:



 

Lascia un commento