IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web avec .NET Discussion :

[Tutoriel]Création et déploiement d'une application ASP.NET Core sous Linux


Sujet :

Développement Web avec .NET

  1. #1
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut [Tutoriel]Création et déploiement d'une application ASP.NET Core sous Linux
    Bonjour,

    J’ouvre cette discussion pour annoncer la publication d’un nouveau tutoriel. Ce dernier couvre la création et la publication d’une application ASP.NET Core sous Linux avec Visual Studio Code, le générateur Yeoman, Entity Framework Core, Nginx et Docker.

    Pour consulter l'article au complet, c'est par ici : http://rdonfack.developpez.com/tutor...re-sous-linux/

    Bonne lecture et n’hésitez pas à commenter ce dernier.

    Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation DotNet
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Membre régulier
    Homme Profil pro
    ingénieur IT
    Inscrit en
    Août 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : ingénieur IT

    Informations forums :
    Inscription : Août 2014
    Messages : 29
    Points : 107
    Points
    107
    Par défaut
    Merci pour ce tutoriel, ça fait plaisir

    En effet quand on regarde les tuto sur la documentation de Microsoft, on voit que la majoritée des exemples se base sur Visual Studio ( et non Visual Studio Code) et son générateur de code ce qui fait qu'ils sont durs à suivre quand on n'utilise pas cet IDE.
    Pour moi qui préfère Visual Studio Code (et qui suis sur Linux en plus) c'est super d'avoir un tutoriel qui n'est pas basé sur un éditeur en particulier.

    Cependant j'ai remarqué certains points où j'ai eu du mal.

    Déjà j'ai pas réussi à utiliser la commande "yo aspnet:MvcController" pour générer automatiquement un contrôleur ou une vue.
    J'ai pourtant bien installé le générateur aspnet avec la commande "npm install -g generator-aspnet" et j'ai réussi à générer un projet aspnet comme expliqué sur le tutoriel.
    J'ai cherché sur le net mais j'ai pas trouvé de solution, sais-tu comment faire pour installer ces générateurs ? (J'ai testé sur Ubuntu 16.04 avec dotnet core version 1.0.1 et yo version 1.8.5)

    Sinon, pour l'installation de NodeJS, je pense qu'il faut mieux installer la version 6 (ou 7) plutôt que la version 4 car c'est celle là qui est actuellement supporté à long terme (plus d'info https://github.com/nodejs/LTS#lts-schedule1)

    Ensuite, avec la version 1.0.1 de dotnet core, il faut en effet utiliser le format .csproj pour la gestion des dépendances par contre le fichier .csproj qui est montré est incomplet. Il manque notamment les références à la bibliothèque CommandLine (quand on modifie le fichier Program.cs dans la partie "XI-B. Configuration de Nginx" et il manque aussi la référence à l'outil Microsoft.EntityFrameworkCore.Tools.DotNet pour pouvoir lancer la commande "dotnet ef" comme illustré dans la partie "VI. Ajout d'Entity Framework au projet".
    Voici mon fichier .csproj (PS: je ne suis pas sûr que c'est comme ça qu'il faut faire pour la partie où j'inclus le fichier hosting.json)

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk.Web">
     
      <PropertyGroup>
        <TargetFramework>netcoreapp1.0</TargetFramework>
     
      </PropertyGroup>
     
      <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore" Version="1.0.4" />
        <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.0.3" />
        <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.0.2" />
        <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.0.2" />
        <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.0.1" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.0.3" PrivateAssets="All" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="1.0.3" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Design" Version="1.0.3" PrivateAssets="All" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.0.0-msbuild3-final" PrivateAssets="All" />
        <PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="1.1.1" />
     
      </ItemGroup>
     
      <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild3-final" />
        <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0" />
     
      </ItemGroup>
     
      <ItemGroup>
        <None Include="hosting.json" CopyToPublishDirectory="Always" />
     
      </ItemGroup>
     
     
    </Project>

    Vous remarquerez que j'ai mis aussi une référence à la commande Microsoft.DotNet.Watcher.Tools, c'est pour moi une commande très utile car elle permet de lancer une seule fois la commande "dotnet run" et à chaque fois qu'on change nos fichiers, l'application est automatiquement mise à jour de façon transparente et on peut voir ses changements directement dans son navigateur (un peu comme avec des langages tel que php).
    Pour l'utiliser c'est simple, il suffit de lancer "dotnet watch run" dans un terminal (on peut directement utiliser le terminal intégré dans visual studio code en allant dans le menu affichage > terminal intégré). (Plus sur "dotnet watch" d'info ici https://docs.microsoft.com/en-us/asp...s/dotnet-watch)


    Enfin, est-ce que c'est normal que dans le fichier /etc/nginx/sites-available/default le port soit 5001, que dans le fichier hosting.json le port soit 5050 et que dans le fichier Dockerfile le port soit 5100, ça ne devrait pas être toujours le même port ?

    De plus y a t'il pas un erreur sur le chemin vers le fichier de configuration de supervisor, ce serait pas /etc/supervisor/conf.d/ au lieu de src/supervisor/conf.d/ ?

  3. #3
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Déjà j'ai pas réussi à utiliser la commande "yo aspnet:MvcController" pour générer automatiquement un contrôleur ou une vue.
    J'ai pourtant bien installé le générateur aspnet avec la commande "npm install -g generator-aspnet" et j'ai réussi à générer un projet aspnet comme expliqué sur le tutoriel.
    Avant que les outils pour .NET Core n’atteignent la version 1.0, il y a eu beaucoup de changements. Dans la migration vers le support du .csproj, les développeurs de Yeoman ont supprimé la "sous génération" pour le contrôleur MVC et la vue. Par ailleurs, le projet a perdu sa pertinence avec l'intégration des modèles de projets directement dans les outils de développement pour .NET Core.

    D'ailleurs, sur leur page GitHub, ils recommandent que les contributions soient centralisées sur le projet de templates des outils pour .NET Core.

    Voici un billet de blog que j'avais publié pour présenter les modèles de projets de .NET Core Tools.

    Ensuite, avec la version 1.0.1 de dotnet core, il faut en effet utiliser le format .csproj pour la gestion des dépendances par contre le fichier .csproj qui est montré est incomplet. Il manque notamment les références à la bibliothèque CommandLine (quand on modifie le fichier Program.cs dans la partie "XI-B. Configuration de Nginx" et il manque aussi la référence à l'outil Microsoft.EntityFrameworkCore.Tools.DotNet pour pouvoir lancer la commande "dotnet ef" comme illustré dans la partie "VI. Ajout d'Entity Framework au projet".
    Voici mon fichier .csproj (PS: je ne suis pas sûr que c'est comme ça qu'il faut faire pour la partie où j'inclus le fichier hosting.json)
    Tu as raison il faut ajouter une référence à Microsoft.EntityFrameworkCore.Tools.DotNet pour utiliser les commandes dotnet ef. Au moment de la rédaction de cet article, les outils pour .NET Core n'avaient pas encore atteint la version 1.0. Lors de mes tests ça marchait tel que. Pour le fichier hosting.json, je crois que ce que tu as fait est correct.

    Le fichier de configuration de Nginx doit utiliser le port 5050. C'est une erreur de ma part. Pour Docker, le port est bel et bien 5100. Il faut noter que l'application déployée sur Docker n'utilise pas Nginx. Les applications ASP.NET Core sont self-hosted. Donc, elles peuvent être déployées sans nécessiter un serveur Web.
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/05/2014, 20h22
  2. Réponses: 0
    Dernier message: 24/11/2013, 08h30
  3. Déploiement d'une application asp.net
    Par javalhoussain dans le forum ASP.NET
    Réponses: 9
    Dernier message: 27/07/2011, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo