# hn-dotnet : un clone d'Hacker News en dotnet ! ## Démarche On crée un fichier solution avec `dotnet new sln`. Commençons par le commencement, les building blocks, des classes pour nous faciliter la vie ! ```console $ mkdir BuildingBlocks $ cd BuildingBlocks $ dotnet new classlib && dotnet new gitignore ``` Ensuite viens le domaine : ```console $ mkdir Domain $ cd Domain $ dotnet new classlib && dotnet new gitignore ``` On crée ensuite les différentes classes nécessaires au fonctionnement de l'application... Ensuite viens la couche applicative avec nos **commands** et nos **queries** pour un couplage faible. ```console $ mkdir Application $ cd Application $ dotnet new classlib && dotnet new gitignore ``` On ajoute aussi le package MediatR avec `dotnet add package MediatR` et la référence au domaine avec `dotnet add reference ../Domain`. Création du répertoire et de la première appli razor pour exposer le domaine. ```console $ mkdir Apps $ cd Apps $ dotnet new mvc -o Website $ cd Website $ dotnet new gitignore ``` On peut aussi installer les outils de scaffolding avec `dotnet tool install -g dotnet-aspnet-codegenerator`... On ajoute les extensions MediatR pour pouvoir facilement enregistrer les services dans le conteneur IoC d'ASP.Net Core avec `dotnet add package MediatR.Extensions.Microsoft.DependencyInjection`. Pour la couche d'infrastructure, il nous faut implémenter notre `ILinkRepository` avec EF Core dans un nouveau projet `Infrastructure`. ```console $ dotnet new classlib -o Infrastructure $ cd Infrastructure $ dotnet new gitignore $ dotnet add package Microsoft.EntityFrameworkCore.Sqlite $ dotnet add package Microsoft.EntityFrameworkCore.Design ``` On installe les outils Entity framework `dotnet tool install --global dotnet-ef`. Pour plus tard, pour la génération de doc : project.csproj true bin\YourApi.XML