Question

Salut je semble être à un carrefour d'outils ORM et je voudrais quelques conseils de personnes qui ont fait face à un défi similaire. Dans le passé, je l'ai utilisé avec CodeSmith NetTiers modèles pour générer mon DAL tout a été assez bon, mais je l'ai décidé d'abandonner ce pour une raison ou une autre.

Je suis à la croisée des chemins et nous avons trouvé ce qui suit: -

  1. Je l'ai regardé PLINQO (LINQ to SQL) qui semble faire un grand travail mais avec Microsoft incertain de LINQ to SQL cela ne peut être un bon choix.
  2. LINQ to Entities - C'est encore à ses débuts et je peux me tromper, mais les gens se plaignent de la météorisation et comment les procédures stockées
  3. Je l'ai regardé NHibernate, ce peut-être le meilleur choix, mais il semble être une courbe d'apprentissage abrupte
  4. Même chose pour LLBLGen
  5. Subsonic - Je ne sais pas sur ce
  6. Stick avec les éprouvés NetTiers, oublier le ballonnement, oubliez que vous êtes obligé d'utiliser la bibliothèque d'entreprise, oublier la sql dynamique, il crée, oublier que leur est presque pas d'activité sur les forums, oublier et de l'utiliser!

Je possède déjà CodeSmith et ne souhaite pas acheter quoi que ce soit d'autre, le code généré doit fonctionner en mode Medium confiance ...

Il peut y avoir d'autres que j'ai manqué. Je cherche des réponses qui expliquent pourquoi l'outil ORM est intéressant de regarder.

Merci Richard

Était-ce utile?

La solution

je .netTiers moi-même sur le dernier projet. mais celui que je travaille en ce moment, nous essayons Linq 2 entités. Vous avez raison sur Linq2EF ne pas être mature. Nous ne râler tout le temps qui est la raison pour laquelle nous utilisons des modèles T4 qui génèrent du code à partir du fichier EDMX. Nous avons également changé ces modèles nous avons donc Business Objects, Interfaces pour injection et DAL + DAO. Nous sommes heureux de la façon dont il fonctionne maintenant. La bonne chose est que nous pouvons utiliser LINQ contre des entités.

Sinon, je vous suggère aussi Courant NHibernate ( lien ) pour vous. Ce fut l'une des choses que nous avons également pris en compte. Mais vous devez écrire beaucoup de choses sur votre propre. Ce n'est pas comme vous êtes habitué à .netTiers où tout le code est généré pour vous.

Depuis Subsonic 3 ( lien ) est juste une semaine Je vous suggère Vérifiez-le. Sur la base de ce que je l'ai vu, il semble très prometteur. Et il utilise T4, de sorte que vous pouvez couper et couper en dés pour répondre à vos besoins.

Autres conseils

J'ai essayé quelques-uns pour quelques semaines et finalement réglé avec NHibernate. Il est très facile à personnaliser. Il y a une courbe d'apprentissage et il faut un peu plus de temps pour mettre en place que quelque chose comme LINQ to SQL, mais la hausse est que cela ne semble pas comme par magie. Vous comprendrez comment cela fonctionne et sera en mesure de le personnaliser exactement pour répondre à vos besoins. La communauté est également très bon et il y a beaucoup de documentation disponible. Il me semble être un bon équilibre entre un ORM moderne (Aucune génération de code, peut utiliser POCO de) et la maturité.

Vous pouvez essayer DataObjects.NET. Cette approche utilise ORM « Code d'abord », soutient la mise à niveau du schéma de DB et LINQ. Cochez cette brève description http://www.x-tensive.com/Products/DO/ .

Je pense que les deux outils ORM forts et les plus réputés en ce moment sont NHibernate et LLBLGen Pro .

NHibernate = Domaine très Driven orienté.

LLBLGen Pro = Data Driven orienté.

Ils sont tous deux excellents, et pour chaque projet en fonction de sa nature, on peut être plus approprié sur l'autre. Il est également souvent un choix personnel et préférences ou même la culture de l'équipe de développement.

Comme je l'ai dit bien qu'en fin de compte, ils sont globalement à la fois excellent et ils ont tous deux leurs légers avantages / inconvénients.

Pour des raisons d'utiliser un ORM est ici un lien vers un blog par Glenn bloc qui dit tout vraiment. Quant à mon expérience, il y a tout juste un an, je cherchais à utiliser un ORM et j'ai choisi NHibernate.

pour moi est Persistance un problème résolu, au-delà une certaine forme de cartographie de mon modèle de domaine à mes données relationnelles est quelque chose que je n'ai pas à vous soucier plus. Je regardais LINQ to SQL, mais juste ne m'a pas donné assez de contrôle sur la façon dont les données ont été mises en correspondance à mes objets et Entity Framework était loin assez mature pour mon goût. Un autre projet majeur partie de mon équipe ont travaillé sur NetTiers utilisés et CodeSmith et comme vous le dites, le ballonnement, la génération de code (et la quantité pure de celui-ci) m'a fait sentir un peu quesy. En fin de compte, j'ai choisi NHibernate parce que pour moi, il est l'un des ORM plus matures là-bas et il a fourni des fonctionnalités qui non seulement soutiendraient un modèle d'objet à grain fin, mais il a construit dans l'interrogation des installations et adresses intrinsèquement d'autres problèmes de performances tels que la mise en cache.

Oui, je dois admettre que la courbe d'apprentissage est assez raide, mais si vous investissez le temps, les avantages que vous allez sortir sont énormes. Les blogs de Ayende Rahien et Fabio Maulo sont une mine d'informations sur NHibernate. Il y a un certain soutien LINQ pour NHibernate via ce fournisseur LINQ mais

scroll top