1 votes

Suggéstions ORM - Avec Sprocs

D'accord, j'ai une question que je sais être très subjective (basée sur tous les messages que j'ai lus), mais j'ai besoin d'aide. En résumé, j'ai utilisé le modèle suivant pour l'accès aux données ces dernières années.

Base de données->Sprocs->XSD(Ensemble de données typé, glisser-déposer sproc en .net)-> Dans le projet DAL, créer des fonctions pour appeler les méthodes créées par XSD, charger toutes les données puis les mapper sur les objets métier du projet.

Les avantages de cela :

1) Facile de glisser-déposer pour créer des appels SQL

2) Les Sprocs sont presque indispensables en raison d'autres contraintes et faciles à ajouter

3) Le projet utilise ses propres objets métier qui correspondent à la solution et non à la base de données, je les mappe simplement en C#

4) Le mapping du code, facile à refactoriser

5) Qui n'aime pas que tout soit tapé et intellisensed

Inconvénients :

1) Lent à construire

2) Lent à extraire des données (l'adaptateur de table et les ensembles de données ont de mauvaises performances par rapport à un DataReader)

3) Buggé quand il s'agit de valeurs nulles. Et mon dieu, ce krap peut être buggé et cela gaspille beaucoup de temps.

Voilà ce que j'ai fait et en n'étant pas un idiot, j'ai réalisé qu'il devait y avoir de meilleures façons de faire. J'ai donc passé la dernière semaine à étudier NHiberabte, LINQ to SQL, Entity Framework, ou à revenir à tout faire avec du code avec des DataReaders et non typé.

DONC, la question est quel est un bon mappage de base de données (sprocs probablement vers des objets).

Mon avis sur les 3 que j'ai étudiés :

1) Linq to SQL - Eh bien, c'est uniquement du SQL et Microsoft a pratiquement dit que c'était une technologie obsolète, donc cela semble inutile.

2) Entity Framework - J'ai probablement besoin de plus d'exposition à celui-ci, mais il me semble que mapper ces choses à mes propres objets me ramènerait là où j'étais.

3) Nhibernate - Semblait prometteur, mais bon sang, je déteste écrire des fichiers XML et mes projets actuels ont entre 30 et 50 objets métier. De plus, je dois utiliser des sprocs dans divers domaines.

Toute suggestion ou un lien vraiment bon vers un tutoriel sur un bon ORM serait grandement apprécié. Désolé pour la longueur de cette question. Merci, Joe

2voto

Webjedi Points 2554

Découvrez : www.summerofnhibernate.com et cet article sur les SPROCS et nHibernate de Davy Brion : Sprocs et NHibernate

Vous pouvez également utiliser Fluent NHibernate pour éviter le XML... qui n'est pas vraiment si mal.

1voto

Reed Copsey Points 315315

Vous voudriez peut-être considérer:

Fluent NHibernate - c'est NHibernate avec une interface .NET beaucoup plus propre, plus agréable, donc vous n'avez pas besoin d'écrire autant d'XML, etc.

1voto

Quibblesome Points 14441

En ce qui concerne l'écriture des fichiers xml, je suis assez sûr qu'il existe des outils là-bas qui inspecteront vos classes et généreront des fichiers xml pour vous (que vous devrez probablement encore ajuster mais c'est mieux qu'un coup de poing dans la figure :) ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X