Un petit guide pour comprendre la structure du projet LetsTalk, comment le configurer et le lancer localement.
Le dépôt contient une solution multi-projet pour une application Blazor/MVVM :
LetsTalk/— Projet serveur (ASP.NET Core) qui expose des composants interactifs, configure EF Core et sert l'application.Program.cs: configuration et démarrage de l'application serveur.Context/:AppDbContext.cs(configuration EF Core).Migrations/: migrations EF Core.Models/: entités côté serveur.Components/etwwwroot/: ressources et composants Razor.
LetsTalk.Client/— Client Blazor WebAssembly (projet front-end). Contient lesViews/,ViewModels/et les ressources front.Program.cs: point d'entrée WebAssembly.ViewModels/: ViewModels (ex.CounterViewModel.cs).Views/: pages et layout.
LetsTalk.Shared/— Types partagés entre le client et le serveur (DTOs, modèles légers). La solution racine contientLetsTalk.sln.
- .NET 9 SDK (ou version compatible utilisée par le projet)
- MySQL / MariaDB si vous utilisez la connexion configurée par défaut
- (Optionnel) dotnet-ef pour gérer les migrations :
Les fichiers de configuration sont situés dans :
LetsTalk/appsettings.jsonetLetsTalk/appsettings.Development.jsonLetsTalk.Client/appsettings.jsonetLetsTalk.Client/appsettings.Development.json
Assurez-vous de renseigner la chaîne de connexion nommée DefaultConnection dans LetsTalk/appsettings.json avant de lancer les migrations ou de démarrer l'application.
Depuis la racine du dépôt :
- Restaurer les packages et compiler :
dotnet restore
dotnet build2a) Lancer le projet serveur (recommandé) — le serveur expose les composants interactifs et peut servir le client : dotnet run --project LetsTalk/LetsTalk.csproj 2b) (Optionnel) Lancer uniquement le client WebAssembly : dotnet run --project LetsTalk/LetsTalk.Client/LetsTalk.Client.csproj Accédez ensuite à l'URL indiquée dans la sortie (généralement https://localhost:nnnn).
Exemples de commandes (depuis la racine du dépôt). Ici on cible explicitement le projet serveur :
- Créer une nouvelle migration :
dotnet ef migrations add NomDeLaMigration --project LetsTalk/LetsTalk.csproj --startup-project LetsTalk/LetsTalk.csproj- Appliquer les migrations à la base de données :
dotnet ef database update --project LetsTalk/LetsTalk.csproj --startup-project LetsTalk/LetsTalk.csproj- Supprimer la dernière migration (non appliquée) :
dotnet ef migrations remove --project LetsTalk/LetsTalk.csproj --startup-project LetsTalk/LetsTalk.csproj- Lister les migrations :
dotnet ef migrations list --project LetsTalk/LetsTalk.csproj --startup-project LetsTalk/LetsTalk.csprojNotes :
- Si
dotnet efsignale des erreurs, vérifiez que le SDK et le package provider (ex. Pomelo.EntityFrameworkCore.MySql) sont correctement restaurés. - Vous pouvez exécuter les commandes EF depuis le dossier
LetsTalk/en enlevant les paramètres--project/--startup-project.
- ViewModels :
LetsTalk.Client/ViewModels/ - Views :
LetsTalk.Client/Views/ - Entités / modèles serveur :
LetsTalk/Models/ - Contexte EF Core :
LetsTalk/Context/AppDbContext.cs
- Créez une branche feature, testez localement et ouvrez une MR/PR vers la branche principale.
- Pour des changements de schéma : ajoutez une migration et testez l'application après
dotnet ef database update.
Si vous voulez, je peux :
- Ajouter des instructions de debug plus détaillées (ex : variables d'environnement, ports),
- Générer un script de lancement pour Windows (cmd) ou PowerShell,
- Ajouter un fichier CONTRIBUTING.md ou des badges CI.
Indiquez ce que vous souhaitez que j'ajoute ensuite.
> `InitialMigration` est le nom de la migration (à adapter selon vos changements)
### Appliquer la migration à la base de données
```bash
dotnet ef database update --project LetsTalk --startup-project LetsTalk
-
Supprimer la dernière migration (non appliquée) :
dotnet ef migrations remove --project LetsTalk --startup-project LetsTalk
-
Lister les migrations :
dotnet ef migrations list --project LetsTalk --startup-project LetsTalk
-
Revenir à une migration spécifique :
dotnet ef database update NomDeLaMigration --project LetsTalk --startup-project LetsTalk