Question

J'ai été jeter un oeil à certaines de différents produits pour .NET qui proposent d'accélérer les temps de développement en fournissant un moyen pour les objets de gestion de la carte de façon transparente à un générée automatiquement de la base de données.Je n'ai jamais eu un problème d'écriture d'une couche d'accès aux données, mais je me demandais si ce type de produit va vraiment sauver le temps qu'il prétend.J'ai peur que je vais être de donner trop de contrôle sur la base de données et de la rendre plus difficile à traquer les données au niveau des problèmes.Faire ce type de produits le rendre meilleur ou pour le pire, déjà dure de cas que la base de données d'affaires et de la structure de l'objet doit changer?

Par exemple:La Relation d'objet de Mappage de Dev Express

En essence, est-il utile?Vais-je économiser "QUE" beaucoup de temps, d'effort et de futures erreurs?

Était-ce utile?

La solution

J'ai utilisé Subsonique et EntitySpaces.Une fois que vous obtenez le coup, je crois qu'ils peuvent vous faire économiser du temps, mais aussi de la complexité de votre application et le volume de données grandir, vous avez peut dépasser ces outils.Vous commencez à perdre du temps à essayer de comprendre si quelque chose comme un problème de performance est liée à l'ORM ou de votre code.Donc, pour répondre à votre question, je pense que cela dépend.J'ai tendance à être d'accord avec Eric sur ce, à volume élevé, les applications d'entreprise ne sont pas un bon endroit pour les fins générales de l'Orm, mais dans le tarif de petites CRUD type d'applications, vous pouvez voir quelques temps enregistré.

Autres conseils

J'ai trouvé iBatis du groupe Apache être une excellente solution à ce problème.Mon équipe est actuellement à l'aide de iBatis à la carte tous nos appels à partir de Java à notre backend MySQL.C'est un énorme avantage car il est facile de gérer l'ensemble de nos requêtes SQL et des procédures parce qu'ils sont tous situés dans des fichiers XML, pas dans notre code.La séparation SQL à partir de votre code, quelle que soit la langue, est d'une grande aide.

En outre, iBatis vous permet d'écrire vos propres données mappeurs de la carte de données vers et à partir de vos objets à la DB.Nous avons voulu cette flexibilité, par opposition à une Hibernate type de solution qui fait tout pour vous, mais aussi (OMI) les limites de votre capacité à effectuer des requêtes complexes.

Il y a un .La version NET de iBatis ainsi.

J'ai récemment mis en place ActiveRecord depuis le Château de Projet pour une application.C'était assez facile à aller de l'avant.Après la création d'une nouvelle application avec elle, j'ai même utilisé MyGeneration de scripter des fichiers de classe pour une ancienne application qui pourrait utiliser ActiveRecord dans un joli court laps de temps.Il utilise NHibernate pour interagir avec la base de données, mais enlève tout le mappage xml qui vient avec NHibernate.La bonne chose est que, si nécessaire, vous avez déjà NHibernate dans votre projet, vous pouvez utiliser sa pleine puissance, si vous avez quelques cas particuliers.Je vous suggère de jeter un coup d'oeil.

Il y a beaucoup de choix de l'Orm.Linq to Sql, nHibernate.Pour un pur objet de bases de données, il est db4o.

Il dépend de l'application, mais pour un volume élevé d'applications d'entreprise, je ne voudrais pas aller dans cette voie.Vous avez besoin de plus de contrôle de vos données.

J'ai été discuter avec un ami sur le week-end et il semble que les gains que vous faites sur la facilité de stockage sont perdues si vous avez besoin d'être en mesure d'interroger la base de données en dehors de l'application.Ma compréhension est que ces bases de données de travail par le stockage de vos données d'objet dans un dé-normalisé de la mode.Cela rend plus rapide pour récupérer un ensemble d'objets, mais si vous avez besoin de sélectionner les données à partir d'un point de vue qui ne correspond pas à votre modèle d'objet, la odbms pourriez avoir un moment difficile l'obtention de données particulières que vous voulez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top