Files
webzine/Webzine.Documentation/Installation/equipe 1 - dossier de configuration.md

6.6 KiB

Dossier de configuration — Projet Webzine

Équipe 1 Formation : Développement .NET niveau 1 / Dr1-P4 Date : Mars 2026


Table des modifications

Date Auteur
25/03 Clément Bobin

1. Prérequis

Avant de lancer l'application, assurez-vous d'avoir installé les outils suivants :

Outil Version minimale Lien
.NET SDK 10.0 https://dotnet.microsoft.com/download
Node.js (optionnel, pour outils front) 18+ https://nodejs.org
Git 2.x https://git-scm.com
Un IDE Visual Studio 2022+ ou Rider

2. Récupérer le projet

git clone <url-du-dépôt>
cd Webzine

3. Structure des projets

Le projet est organisé en plusieurs bibliothèques de classes et une application web :

Webzine.sln
├── Webzine.Entity/                  → Entités du domaine (modèles)
├── Webzine.Entity.Tests/            → Tests unitaires MSTest
├── Webzine.Repository.Contracts/   → Interfaces des repositories
├── Webzine.Repository/             → Implémentations des repositories
├── Webzine.Business.Contracts/     → Interfaces de la couche métier
├── Webzine.Business/               → Logique métier
├── Webzine.EntitiesContext/        → Contexte Entity Framework (à venir)
├── Webzine.Documentation/          → Documentation, StyleCop, rapports
└── Webzine.WebApplication/         → Application ASP.NET Core MVC (.NET 10)

4. Lancer l'application

Via la ligne de commande

cd Webzine.WebApplication
dotnet run

L'application est accessible par défaut à :

Ces URLs sont configurées dans Webzine.WebApplication/Properties/launchSettings.json.

Via Visual Studio

Ouvrir Webzine.sln, sélectionner le profil https ou http, puis lancer avec F5 ou Ctrl+F5.


5. Configuration applicative

Le fichier principal de configuration est Webzine.WebApplication/appsettings.json :

{
  "Webzine": {
    "NombreDerniereChronique": 3,
    "NombreDeTopTitres": 3
  }
}
Propriété Type Description Valeur par défaut
NombreDerniereChronique int Nombre de chroniques affichées sur la page d'accueil (section "Derniers titres") 3
NombreDeTopTitres int Nombre de titres affichés dans le bloc "Titres les plus populaires" 3

Ces valeurs sont injectées dans AccueilController via IConfiguration et peuvent être modifiées sans recompilation.

Pour l'environnement de développement, les surcharges se font dans appsettings.Development.json.


6. Logging (NLog)

La configuration du logging se trouve dans Webzine.WebApplication/nlog.config.

Les logs sont écrits dans le dossier /Logs/ avec deux fichiers :

Fichier Contenu
nlog-all-{date}.log Tous les logs (Debug et supérieur pour l'application)
nlog-own-{date}.log Logs applicatifs avec URL de la requête

Les logs de la console sont également activés, utiles lors du développement.

Niveaux configurés :

  • Webzine.WebApplication.* → Debug et supérieur
  • Microsoft.* → Warning et supérieur (pour réduire le bruit)
  • Microsoft.Hosting.Lifetime* → Info (pour voir le démarrage de l'appli)

Pour modifier le niveau de log minimum sans recompiler, éditer la règle correspondante dans nlog.config. NLog recharge automatiquement sa configuration (autoReload="true").


7. Lancer les tests

cd Webzine.Entity.Tests
dotnet test

Ou depuis la solution complète :

dotnet test Webzine.sln

Les tests vérifient les contraintes de validation (annotations DataAnnotations) sur toutes les entités. Ils s'exécutent en parallèle au niveau des méthodes ([assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]).

Résultat attendu : 55 tests passants, 0 échec.


8. Routes principales

URL Contrôleur Description
/ AccueilController.Index Page d'accueil
/artiste/{nom} ArtisteController.Index Page d'un artiste
/titre/{id} TitreController.Details Détail d'un titre
/titre/style/{style} TitreController.Style Titres par style
/recherche (POST) RechercheController.Index Résultats de recherche
/Administration/Dashboard DashboardController.Index Tableau de bord admin
/Administration/Artiste ArtisteController (admin) Gestion des artistes
/Administration/Titre TitreController (admin) Gestion des titres
/Administration/Style StyleController Gestion des styles
/Administration/Commentaire CommentaireController Gestion des commentaires

10. Variables d'environnement

L'environnement est contrôlé par la variable ASPNETCORE_ENVIRONMENT. En développement, elle vaut Development (configuré dans launchSettings.json).

En production, positionner :

export ASPNETCORE_ENVIRONMENT=Production

Cela désactive les pages d'erreur détaillées et active les optimisations de performance ASP.NET Core.

Ajout du pre-commit

Les fichiers présents dans le dossier git_hooks sont à copier dans le dossier caché .git. Le pre-commit reformatte le code à chaque commit. Le commit-msg vérifie si le message du commit respecte bien les conventions du cahier des charges:

  • le message référence un ticket
  • le message termine par un point
  • le message doit faire au moins 10 caractères