mardi 29 octobre 2019

ASP.NET Core & Entity Framework - Présentation 1

Peut-on aujourd'hui définir une stack stable avec laquelle développer les types d'applications web les plus utilisés les meilleures applications ? Que faut-il choisir comme Framework Serveur / Applicatif quels sont les choix ?


ASP.NET Core
ASP.NET Core
On à déjà vu ici beaucoup de choses, ce blog est un peu le reflet de la galère que c'est de définir aujourd'hui les briques d'une stack de développement qui serait pérenne sur trois ou quatre ans. Je vais pourtant essayer de développer un projet, une véritable application.

ASP.NET Core 2.0 c'est quoi ?

Ou encore

 A quoi sert le framework JavaScript React avec ASP.NET MVC ?

Mon projet se compose d'ASP.NET Core d'Entity Framework et d'Angular je souhaite donc découvrir d'avantage de choses sur EF Core.

Je vais directement au bute avec l'étude des exemples aspnet/AspNetCore.Docs
et j'ai donc encore un choix à faire Razor ou MVC comme on me dit que bientôt il y a Blazor je prends MVC non finalement, je prends Angular !

ASP.NET Core et SQL dans Razor ou dans MVC

La documentation de Microsoft fait un distinguo entre les pages Razor et les pages MVC. Dans razor les pages sont dans le répertoire Pages il y a du .cshtml et du code behind .cshtml.cs. Dans MVC les pages sont dans View et le code dans Controllers conformément au modèle Modèle View Controller.

Concernant la BD le répertoire Data est constitué du code DbInitialiser.cs et d'un SchoolContext.cs qui sont quasi identique (au commentaire prêt).

Et maintenant la doc Microsoft on a quasi le même code dans le Startup.cs :

public void ConfigureServices(IServiceCollection services)
{

services.AddDbContext<SchoolContext>(options =>
 options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

Razor ou MVC même code !

Si on se souviens le web.config devient le appsettings.json

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ContosoUniversity3;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}


Maintenant tout ceci se ressemble beaucoup, je vais suivre MVC ...

Microsoft - Utiliser SQL dans ASP.NET Core

Pour créer la base, il faut exécuter l'application qui exécutera :

DbInitializer.Initialize(context);

J'exécute donc l'application :

ASP.NET Core MVC Contoso Univertisity Application
ASP.NET Core MVC Contoso Univertisity Application

Si je clique sur "Students" : Ooouuups !


ASP.NET Core MVC Contoso Univertisity Application - Il faut créer la BD
ASP.NET Core MVC Contoso Univertisity Application - Il faut créer la BD

Evidemment, il me faut créer la base de données m'enfin. Et pourtant, je croyais qu'elle l'était automatiquement au démarrage de l'application. Non, il exite du code C# pour le faire mais il n'est pas implémenté dans l'application ContosoUniversity.

Je lance une fenêtre Power Shell :


Visual Studio - Exécuter une commande PowerShell
Visual Studio - Exécuter une commande PowerShell
J'exécute la commande PowerShell "Update-Database" : Et Ooouuups !


Ajouter une légende
Peut être qu'il faut que j'installe la Nuget Entity Framework. Mais moi je pensais que les nugets étaient mis à jour automatiquement ... décidément Grrr.


EtityFramework - Install
Du coup j'essaye la commande dans une fenêtre de commandes dos :

>dotnet ef database update

Création de la base de données ContosoUniversity3

Résultat, j'ai bien ma base de données construite par le code :

Création de la base de données ContosoUniversity3

Je vais pouvoir poursuivre mon didacticiel.

Voilà, nous venons d'apprendre à créer la base sql server manquante ContosoUniversity3 dans l'application dont les codes source se trouvent ici :

GitHub - aspnet/AspNetCore.Docs

Have Fun!

Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.