Créer et déployer une application ASP.NET Core sous Linux : les outils open source à votre disposition
Un tutoriel de Hinault Romaric

Le , par Hinault Romaric, Responsable .NET
De nombreuses personnes m’ont déjà posé la question à savoir s’il était possible de créer et déployer un site Web pro avec ASP.NET Core sous un système d’exploitation Linux. C’est possible et en utilisant uniquement des outils open source.

Je vais présenter dans ce billet quelques outils open source que vous pouvez utiliser pour créer un site web pro sous Linux.


Framework : ASP.NET Core

.NET Core à ce jour est assez stable pour être utilisé dans un environnement de production sous le système d’exploitation Linux. Le CLI (.NET Core command-line interface tools) offre un riche ensemble d’outils pour la création, le débogage, la génération et le déploiement des applications .NET Core.

https://github.com/aspnet/Home

Éditeur de code : Visual Studio Code

Bien qu’on soit loin de la richesse fonctionnelle de Visual Studio, VS Code a le mérite d’être épuré, léger et offre le nécessaire pour développer une application ASP.NET : coloration syntaxique, IntelliSense, refactoring, contrôle de version Git intégré, débogage, etc.

https://code.visualstudio.com/

Scaffolding : Yeoman

Yeoman est un générateur très pratique. Il met a porté de main les modèles de projets ASP.NET Core tels que dans Visual Studio.

http://yeoman.io/

Accès aux données : Dapper

Dapper est un ORM light gratuit et open source dont la force réside essentiellement dans les bonnes performances qu’il offre.

https://github.com/StackExchange/dapper-dot-net

Tests Unitaires : xUnit et Moq

Le framework de test unitaire xUnit est entièrement compatible avec .NET Core et offre les mêmes fonctionnalités que son implémentation pour le Framework .NET.

https://xunit.github.io/

L’outil de mocking Moq a déjà été porté par son équipe sur .NET Core. Bien qu’encore au stade de préversion, je le trouve déjà assez robuste.

https://github.com/moq/moq4

Journalisation : Nlog

Nlog est compatible avec ASP.NET Core et peut facilement être intégré à son application pour le suivi de diagnostic de cette dernière.

https://github.com/NLog

Déploiement : Nginx et Docker

Nginx peut facilement être configuré pour servir de reverse proxy au serveur Kestrel disponible avec ASP.NET Core.

https://github.com/nginx/nginx

En utilisant le générateur Yeoman, vous avez par défaut à la racine de votre projet un dockerfile configurer pour vous permettre de déployer rapidement et facilement votre application via un conteneur Docker

https://www.docker.com/

Comme vous pouvez le constater, vous avez à votre disposition les outils indispensables pour développer une application de qualité avec .NET Core sur votre système d’exploitation Linux favoris.

Il existe de nombreux autres outils compatibles .NET Core. J’ai juste présenté le nécessaire, selon moi. Toutefois, vous pouvez compléter la liste en postant un commentaire.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster un commentaire

Avatar de jolt-counter jolt-counter - Membre du Club https://www.developpez.com
le 16/11/2016 à 17:45
Bonjour,

pourquoi tu préfères utiliser dapper plutôt que Entity Framework core ?
Avatar de Hinault Romaric Hinault Romaric - Responsable .NET https://www.developpez.com
le 17/11/2016 à 18:13
Citation Envoyé par jolt-counter;bt3286
Bonjour,

pourquoi tu préfères utiliser dapper plutôt que Entity Framework core ?

Dapper est léger et beaucoup plus performant que Entity Framework Core. De plus, à ce moment il n y avait pas de provider officiel d'Entity Framework Core pour MySQL. Je ne sais pas si c'est déjà le cas actuellement.
Avatar de jolt-counter jolt-counter - Membre du Club https://www.developpez.com
le 18/11/2016 à 15:27
Citation Envoyé par Hinault Romaric;bt3295
Dapper est léger et beaucoup plus performant que Entity Framework Core. De plus, à ce moment il n y avait pas de provider officiel d'Entity Framework Core pour MySQL. Je ne sais pas si c'est déjà le cas actuellement.

Ah ok, après moi en SGBDR open source et gratuit sur Linux j'utilise PostgreSQL (ça doit faire des années que j'ai pas touché à MySQL depuis que Heroku propose gratuitement des hébergements PostgreSQL), j'avais fait quelques tests rudimentaires avec Entity Framework Core y a quelques mois et ça avait l'air de bien marcher avec. Je dois avouer que ce qui me séduit avec ASP.net (contrairement à J2EE par exemple), c'est que Microsoft a pris la peine de fournir de solides briques logicielles standard afin qu'on évite d'avoir plein d'outils différents sur le marchés qui font la même choses (Hibernate, Eclipse Top Link...), mais si sur Linux faut changer d'ORM j'avoue ça risque vite de me soûler (à moins que Drapper soit aussi privilégié sur Windows et/ou que l'API soit (vraiment!) la même que pour Entity Framework Core).

J’essaierai de jeter un coup d’œil à Drapper mais je pense que ça va être dur de me faire bouger d'Entity Framework Core.
Avatar de Hinault Romaric Hinault Romaric - Responsable .NET https://www.developpez.com
le 25/11/2016 à 21:52
Citation Envoyé par jolt-counter;bt3300
Ah ok, après moi en SGBDR open source et gratuit sur Linux j'utilise PostgreSQL (ça doit faire des années que j'ai pas touché à MySQL depuis que Heroku propose gratuitement des hébergements PostgreSQL), j'avais fait quelques tests rudimentaires avec Entity Framework Core y a quelques mois et ça avait l'air de bien marcher avec. Je dois avouer que ce qui me séduit avec ASP.net (contrairement à J2EE par exemple), c'est que Microsoft a pris la peine de fournir de solides briques logicielles standard afin qu'on évite d'avoir plein d'outils différents sur le marchés qui font la même choses (Hibernate, Eclipse Top Link...), mais si sur Linux faut changer d'ORM j'avoue ça risque vite de me soûler (à moins que Drapper soit aussi privilégié sur Windows et/ou que l'API soit (vraiment!) la même que pour Entity Framework Core).

J’essaierai de jeter un coup d’œil à Drapper mais je pense que ça va être dur de me faire bouger d'Entity Framework Core.

EntityFramework Core est cross-Platform, donc aussi disponible sous Linux. Comme je l'ai dit plus haut, Dapper est un MicroORM qui vient pallier le problème de performance avec EntityFramework. Toutefois, son utilisation demande beaucoup plus d'effort en terme de programmation. Faire un choix entre l'un ou l'autre dépend des exigences du projet en terme de performance. Dans mes développements, j'utilise plus EntityFramework. Mais, sur Linux, j'utilise Dapper, dans la mesure ou je suis en mode exploration pour évaluer ce dernier.
Offres d'emploi IT
Expert application Supply Chain & Achats H/F
Safran - Ile de France - Evry (91)
Ingénieur développement logiciels temps réel embarqué H/F
Safran - Ile de France - Éragny (95610)
Responsable de lot / architecte fpga H/F
Safran - Ile de France - Éragny (95610)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique Microsoft DotNET : Hinault Romaric -