Blazor avec starter API! ? (.Net 7)?
Il s'agit d'un projet / modèle de démarrage qui se compose d'un frontend Blazor et d'un backend Core ASP.NET. L'application Blazor de ce modèle est servie à partir du serveur Core ASP.NET.
Lorsque vous exécutez cette solution, veuillez définir le projet Server en tant que projet de démarrage si vous l'exécutez dans Visual Studio ou si l'exécution via le code VS, veuillez CD dans le dossier du projet Server et exécutez dotnet run dans votre CMD / PowerShell / Terminal of Choice
D'AILLEURS! Sentez-vous absolument libre de fourrer / cloner ce repo et de le remixer pour créer votre propre démarreur ❤️ EG comme échanger EF Core contre Dapper ou toute autre bibliothèque d'accès ORM ou de données que vous préférez.
De quoi avez-vous besoin pour gérer ce projet de démarrage?
- Le SDK net 7 (https://dotnet.microsoft.com/en-us/download/dotnet/7.0)
- VS Code ou Visual Studio 2022 (actuel dernier, n'hésitez pas à utiliser l'aperçu, mais je n'ai testé cela que sur le courant)
- Devrait être en mesure d'exécuter sur Windows / Mac / Linux (je n'ai pas testé ceci, simplement en manquant de la capacité de .NET 7 à être transformatrice), sinon s'il vous plaît laissez-moi savoir car il pourrait y avoir un paramètre ou une configuration idiote qui me manque.
En un coup d'œil, ce projet contient:
- Un client de blazor (contenant les pièces de projet Blazor par défaut moins les bits Weatherapi)
- ASP.NET Core Server (API)
- Un projet partagé (pour partager le code et les services entre le frontend et le backend)
- Tester les projets Client, serveur et partagé
Alors, qu'est-ce qui est configuré?
- Tous les projets ciblent .net 7
- Tous les projets de test sont configurés pour utiliser Xunit et contenir le MOQ pour la moquerie des dépendances.
- Le projet de test Blazor a Bunit pour tester des pages et des composants
- Le projet de test de serveur contient un luminaire qui crée une base de données en entité en entité Core 7 (voir l'exemple dans le fichier InMemoryDBtests.cs du test du serveur), cela vous permettra de tester sans utiliser de base de données physique!
- Le projet client a un exemple de client HTTP tapé à appeler vers le serveur qui peut être injecté dans vos composants et pages.
- Le projet serveur propose des exemples de:
- Un contrôleur
- Un service
- Un middleware
- Un DBContext (EF Core 7) qui est lié à un DB SQLite appelé Exemple.db (c'est pour avoir une base de données de travail hors de la boîte, n'hésitez pas à retarder à tout ce que EF-core prend en charge!)
- Utilisation de l'automappeur
Technologies / Libs inclus en un coup d'œil.
- Framework Entity Core 7
- MOQ
- Automappeur
- FluentValidation & Blazored.fluentValidation (ce qui est si bon que j'ai même contribué: D, FluentValidation est ma préférence pour échanger le système standard.
- Butin
- Xunit
- System.Text.json
- Microsoft.Extensions.http (pour configurer httpclient et httpMessageHandler dans ihttpclientfactory, pour moi, cela fournit la méthode sympa.AddhttpClient pour ajouter httpclients à DI i i dans le client / programme.