Installer ASP.NET Core 1.0 sous Xubuntu 14.04


Cela fait maintenant plus d'une année qu'on entend parler de ASP.NET 5, vNext, .NET Core... Difficile de s'y retrouver dans le nouvel écosystème de développement Microsoft. Une chose est sûre cependant: on ne peut qu'applaudir les efforts du géant de l'informatique pour s'ouvrir au monde de l'Open Source.

Ces changements peuvent faire peur, surtout pour les fidèles de la plateforme .NET originale. Chacun a son expérience et ses habitudes bien ancrées. Quel sera le futur de .NET? Dans quel direction orienter ses futurs développements?

Là encore, l'arrivée d'une nouvelle mouture de .NET "open source" et "cross-platform" ne pourra que renforcer l'adoption de ce framework.



Le point sur les versions...


Pas de panique pour les habitués de .NET. La version actuelle que nous connaissons poursuit son évolution sous Windows. .NET 4.6.1 continue à supporter et à améliorer les WebForms, MVC, WPF... que nous utilisons depuis des années.

Trop rapidement baptisé .NET 5 ou vNext, le nouveau framework, désormais appelé .NET Core 1.0 ne remplace pas l'existant. Il s'agit bien d’une réécriture complète, sur une base multi-plateforme et open source (licence MIT). dont le fonctionnement actuel se rapproche davantage de Node HTTP.


La précision est importante, car il n’y aura pas vraiment de transition simple depuis les versions 4.6. L’ensemble doit être considéré comme une nouvelle plateforme très clairement orientée vers la création et le déploiement de micro-services et/ou centrée sur le cloud.

.NET Core 1.0 représente donc un nouveau départ et, bien qu’il puisse intéresser de nombreux développeurs (puisqu'il est disponible sous Linux, OS X et Windows), d’autres préféreront rester sur l’actuelle version 4.6 du framework .NET, qui reste pour l’heure plus complet.

Quelle distribution Linux utiliser?


Précision importante: je suis très novice dans le monde Linux. Ce tutorial est donc également pour moi l'occasion de me faire la main sur cet OS.

Mon choix s'est porté sur Xubuntu 14.04 64 bits. Tout d'abord car son interface graphique Xfce est plus légère que Unity de Ubuntu, d'autre part parce qu'il s'agit d'une version LTS (Long Term Support) supportée jusque Avril 2017. Elle convient tout à fait à l'ultra-PC que j'emporte dans mes déplacements.

Oubliez immédiatement les versions 32-bits car DNU (Dot Net Utility) n'existe qu'en 64 bits sous Linux.

J'avais tenté précédemment d'installer .NET Core sous LinuxMint 17.30, mais le shell installé par défaut ne semble pas compatible avec la procédure d'installation de Microsoft. Je me suis retrouvé avec des erreurs de syntaxe dans mes variables d'environnement qui empêchaient l'interface graphique de démarrer!

Ce tutorial partira donc d'une installation toute fraîche de Xubuntu. Une fois loggé, démarrez un nouveau Terminal.

Installer UNZIP et CURL


CURL est un outil de transfert HTTP. Nous allons en avoir besoin tout de suite pour télécharger DNVM depuis Github. Tapez la commande suivante:

sudo apt-get install unzip curl

Installer DNVM


Dot Net Version Manager (DNVM) permet d'installer et d'activer les versions du framework .NET que vous souhaitez utiliser. Le framework se veut modulaire; chaque projet peut embarquer sa propre version, adaptée à ses besoins.

Commençons par le télécharger:

curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh


Installer DNX


Dot Net Execution Environment (DNX) est le nouveau runtime .NET. Les librairies ci-dessous sont requises par DNX pour fonctionner sous Linux.

sudo apt-get install libunwind8 gettext libssl-dev libcurl4-openssl-dev zlib1g libicu-dev uuid-dev

Nous allons maintenant récupérer et installer la dernière version du framework via DNVM.

dnvm upgrade -r coreclr

Nous pouvont maintenant vérifier les versions de .NET Core installées, en tapant:

dnvm list

Installer Kestrel


Kestrel est le nouveau serveur web intégré à .NET Core. Sous Linux, celui-ci repose en grande partie sur libuv, qui est  une librairie d'IO asynchrone. Malheurement, il va falloir compiler cette dernière à partir des fichiers sources mis à disposition sur GitHub.

sudo apt-get install make automake libtool
curl -sSL https://github.com/libuv/libuv/archive/v1.4.2.tar.gz | sudo tar zxfv - -C /usr/local/src
cd /usr/local/src/libuv-1.4.2
sudo sh autogen.sh
sudo ./configure
sudo make
sudo make install
sudo rm -rf /usr/local/src/libuv-1.4.2
cd ~
sudo ldconfig

Installer les exemples de projets .NET Core


Parmi ceux-ci, on trouvera une application HelloMVC, HelloWeb et même une simple application console.

Première étape, installer un client Git:

sudo apt-get install git

Deuxièment, créer un répertoire de travail pour les projets de démonstration:

mkdir Projects
cd Projects
mkdir AspNetCore
cd AspNetCore

Enfin, clôner le repository du projet depuis GitHub:

git clone https://github.com/aspnet/home

Compiler et lancer l'application HelloMVC


Aller dans le répertoire du projet:

cd home/samples/1.0.0-rc1-update1/HelloMvc/

Le projet contient un fichier .json qui contient la liste de toutes les dépendances vers le framework .NET. Nous allons maintenant utiliser DNU (Dot Net Utility) pour télécharger les librairies en question et se créer un framework sur mesure:

dnu restore



Enfin, nous allons compiler l'application et lancer le serveur Web Kestrel.

dnx web



Après quelques secondes, le serveur est prêt à écouter nos requêtes. Nous pouvons démarrer Firefox et surfer sur le port par défaut:

http://localhost:5004




A noter que pour démarrer une application de type console, il faut taper:

dnx run

Modifier le projet avec Visual Studio Code


Visual Studio Code 1.0 étant sorti sous Windows, OSX et Linux, nous pouvons l'installer via le Package Manager par défaut.


Si vous souhaitez que tout fichier .cs modifié soit immédiatement recompilé et vos changements directement visibles dans votre browser en rafraîchissant la page par un simple [F5], il vous faudra installer un outil supplémentaire, car la commande dnx --watch web ne fonctionne pas (encore?) sous Linux.

dnu commands install Microsoft.Dnx.Watcher

dnx-watch web




Conclusion


Voilà pour ce premier tutorial .NET Core sous Linux. La procédure d'installation est encore très rudimentaire, mais les premiers tests sont prometteurs.

Dans un prochain tutorial, je vous parlerai de Yeoman, un gestionnaire de templates de projets multi-languages.






Commentaires