Nous avons actuellement la pile suivante:
Nous prévoyons de passer à ceci:
Ma question est, lorsque nous passons à MVC avec VS 2010, devons-nous utiliser Entity Framework (ou un autre ORM), un micro ORM (comme Massive ), ou simplement du SQL?
Tous les didacticiels que j'ai lus sur VS 2010 sont tous destinés à utiliser Entity Framework pour les transactions de données, mais cela va-t-il durer dans un avenir prévisible (5 ans et plus)?
Si cela est important, les applications de nos clients peuvent compter de 10 à 1 000 utilisateurs actifs.
Je suis récemment passé de l'utilisation de requêtes SQL en ligne à l'utilisation d'EF et voici ce que j'ai trouvé:
Avantages
Les inconvénients
1:0-1
relation dans laquelle EF souhaite utiliser un 1:0-*
Je ne suis pas un expert EF cependant, j'ai donc probablement raté certaines choses. Ce ne sont que les éléments que je sais que j'ai rencontrés dans le passé lors du passage de SQL en ligne à Entity Framework. Je suis content d'avoir fait le changement, mais il y a eu des moments où j'ai vraiment détesté EF en raison de ses caprices.
Entity Framework est un outil de productivité. Sauf si vous avez une bonne raison de ne pas le faire (par exemple, vous êtes sur SQL 2000 ou n'avez pas le temps de vous lancer dans la technologie), utilisez les meilleurs outils à votre disposition.
Cela étant dit, je trouve que le concept d'entités se traduit très bien dans le modèle du modèle MVC. Tout en ayant une relation 1: 1 avec les modèles et les tables est une mauvaise pratique, penser en termes d'entités a tendance à produire des conceptions propres, un code facile à lire (en particulier avec LINQ).
Entity Framework est activement pris en charge par Microsoft. Personne n'a une boule de cristal magique pour dire "le soutien durera X ans". Je ne vois aucune raison de croire que l'entité mourra au cours des 5 prochaines années.
Une autre solution potentielle consiste à utiliser une autre bibliothèque Entity Framework qui n'est pas celle fournie avec V.S. Il y en a quelques-uns sur le Web.
Le concept de framework Entity/3 couches existe depuis un certain temps et a fonctionné avec plusieurs bibliothèques personnalisées, comme de nombreux autres développeurs, avant que Microsoft ne publie son propre framework "officiel".
Avantages
Bénéficiez des avantages du framework Entity (D.A.L.), sans être bloqué par les changements constants des bibliothèques/frameworks de Microsoft.
Ajouter des fonctionnalités à une bibliothèque qui ne sont peut-être pas disponibles pour la bibliothèque officielle existante, comme l'utilisation de plusieurs marques de base de données.
Contre
Doit prendre en charge la bibliothèque ou les outils. Il est très courant d'avoir un outil de génération de code d'entité pour générer les entités.
Vous devez prendre une décision architecturale en fonction du problème et de la solution existante. Comme pour toute technologie, il y a des avantages et des inconvénients.
Personnellement, j'utiliserais normalement le framework d'entité pour de nouveaux développements mais ne réécrirais pas le code existant. Vous obtenez alors la vitesse de développement futur, mais vous n'avez pas à investir beaucoup de temps pour convertir le code. L'inconvénient de cette approche est qu'elle réduit la cohérence.
Dans votre situation, j'utiliserais certainement Entity Framework, j'ai trouvé que cela fonctionne bien avec MVC.
Voici quelques vraies raisons et indications.
Il y a cependant un certain nombre de choses que vous devrez apprendre à utiliser un ORM.
Choses à considérer
Je recommanderais également fortement l'approche du code en premier, même si vous avez une base de données existante.