Je n’ai pas travaillé sur un projet .NET pendant un certain temps (plus d’un an). Avant que je n’ai jamais utilisé un ORM pour une application .NET. Quelles sont vos prend là-dessus ? En utilisant un a-t-il un sens ? Ceux qui devrais-je envisager d’essayer ?
Réponses
Trop de publicités?Pas tous les FORMULAIRES sont égaux. Vous ne pourriez pas vouloir un ORM - peut-être vous vraiment voulez juste un DAL générateur pour éviter les IMPURETÉS de méchanceté. Peut-être que Linq to SQL serait travailler pour vous si vous voulez juste faire abstraction du SQL mais n'ont pas de problème mettre de la logique d'accès aux données dans votre code.
Vivant avec un ORM n'est pas un zéro friction de l'expérience. Vous avez besoin de savoir de quel côté effets de votre choix sur votre code. Il peut se contractent que vous n'aimez pas (dire que vous avez à inhert d'une classe de base et ne peut pas utiliser POCOs). Il peut appliquer efficacement une architecture à plusieurs niveaux quand peut-être vous ne voulez pas vraiment (bien que je ne vois pas pourquoi vous ne seriez pas ).
Si vous voulez un plein sur, middleware de style, très complet ORM qui est extensible et peut être utilisé dans de nombreux types différents de réglage et d'échelle, et peut carte bien à des bases de données existantes, puis aller avec NHibernate. Zéro question. C'est IMNSHO les plus développés de l'ORM .NET aujourd'hui, avec tout le respect dû à certaines des offres commerciales (bien que LLBLGen Pro est à juste titre salué - mais c'est un DAL générateur plutôt que d'une solution d'intergiciel, et ce n'est pas ma préférence).
Et si vos besoins de cartographie sont simples et vous n'avez pas besoin d'un contrôle précis du cycle de vie des objets, certainement envisager d'ActiveRecord sur le dessus de NHibernate. Mais sachez qu'il est tout à fait différente de l'idiome de NHibernate en termes de gestion de session, en dépit d'être construit au-dessus d'elle, et de ne pas confondre les deux. Que, comme je l'ai constaté à mon prix, peuvent vraiment à vis de vous :-)
Aujourd'hui: LINQ to SQL. Il est facile à utiliser, permet d'économiser une tonne de temps au cours du développement, et se comporte en général contre nice la base de données en générant (pour la plupart) très efficace des requêtes.
La version actuelle de ADO.NET Entity Framework (EF) n'est pas prêt pour la production, à mon avis, trop de questions à la fois dans le concepteur et dans le temps (par exemple, des temps d'initialisation, pauvres SQL généré par le L2E, etc). La prochaine version de EF sera je l'espère changer cela.
Mise à jour: Voir à ce sujet: http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=4107623&SiteID=1&pageid=0
Depuis personne n'a mentionné encore, je veux juste jeter dans le Génome.
J'ai travaillé sur un "gros" projet réussi (plusieurs millions, plusieurs années, >10 développeurs) pour laquelle nous avons choisi le Génome de la persistance de la solution.
Bien sûr, cela a été il y a quelques années, lors de l'ORM dans le .NET-espace a été l'un relatif à la nouvelle chose.
J'ai été responsable de l'accès aux données du projet, et Génome quitté une impression de propreté. Aujourd'hui, je travaille beaucoup avec Hibernate en Java-espace, et à partir d'un point de vue développeur Génome semblait manière plus intuitive (même si il a une autre philosophie architecturale et, par conséquent, ne peut pas être comparé directement).
Le génome est un produit commercial. Génome a beaucoup évolué. Aujourd'hui, il prétend être LINQ-conforme. Si je serais en mesure de l'évaluation d'un ORM-solution pour .NET je serait certainement regarder Génome de nouveau.
Un autre produit commercial, pas encore mentionné est Telerik libre Accès (anciennement Vanatec libre Accès).