L’injection de dépendances est un concept plutôt avancé en poo donc cela demande d’avoir des bases solides avec ce paradigme mais un des points fort de .Net Core, c’est justement la vulgarisation de ce concept et c’est tellement bien fait que l’on y vient tout naturellement. Pour ce qui est d’Entity, j’ai mis du temps à m’y mettre. J’avais plutôt la réputation d’etre le type qu’il fallait aller voir quand on avait besoin d’une requête de sorcier (et je peux te dire que j’en ai fait de la sorcellerie sql
). Pour ce qui est des performances, un appel avec la fonction d’un orm semble forcément plus lourde qu’une requête sql brute, mais il faut penser à tout et ca change tout . Exemple :
Quand tu fais une requête SELECT, à l’usage créer une commande, tu définies la requete sql, tu executes ta commande qui te retourne le jeu d’enregistrements, puis généralement tu crées une liste d’objets que tu instancies un par un par itération (en t’infusant au passage toutes les conversions de types).
Avec Entity tu fais tout ça en une seule commande. Tu ne te soucis plus du tout de la base de données et tu peux te concentrer uniquement sur la structure et les types de tes objets. Exemple basic :
Code : Tout sélectionner
var l = dbcontext.Personnes.Where(x=>x.age == 16).OrderBy(x=>x.prenom) ;
C’est tout, et tu as directement une liste d’objets Personne qui ont 16 ans ordonnée par prénom
Code : Tout sélectionner
lar ll = l.Where(x=>x.prenom == ‘alain’) ;
l.RemoveRange(ll) ;
tu as virés tous les ‘alain’ de la liste l
la db est à jour.
Adapter Entity a un programme et un context de données déja existant peut etre très délicats voir impossible parce que les objets ne reflètent pas forcement la structure des données de la base, mais pour démarrer un nouveau programme qui repose sur un sgbd, c’est vraiment dommage de s’en priver, surtout avec .Net Core qui là aussi facilite énormément la mise en œuvre d’Entity.
Si tu veux faire une API alors .Net Core est un très bon choix. Tu n’as pas besoin de NGinx ou autre et encore moins d’Owin . Tout est déjà dans la boite Asp Net Core. Je ferais un petit exemple d’api spécialement dédié au PI et tu verras que c'est vraiment taillé pour ça.
En attendant voilà un petit exemple de contrôleur d’api qui utilise entity.
- apipersonne.png (38.86 Kio) Vu 4751 fois
Difficile de faire plus simple non ?
http://ipouurl/api/personne retourne directement la listes des personnes (json) depuis la table Personnes
http://ipouurl/api/personne/5 retourne l’objet personne (json) depuis la table Personnes