10
votes

Quelle est la méthode la plus utilisée pour accéder à la base de données de C # aujourd'hui

OK, je pose cette question parce que je suis totalement confus. J'avais l'habitude d'utiliser une approche normale pour accéder aux bases de données de C # (je veux dire en utilisant SQLConnection, oracleconnection, SQLCOMMAND, ExecuteQuery, etc.). Ensuite, j'ai entendu parler de Ado.net, orm et appris Nibernate (pas un pro, mais je peux gérer).

Récemment, je ne vois pas d'activités particulières concernant NHibernate beaucoup. Les gens autour de moi qui utilisaient Nhibernate (et étaient un fan) se déplacent maintenant à d'autres méthodes.

Quelle est la méthode d'accès à la base de données la plus utilisée de nos jours? Comment puis-je garder une trace de cette tendance changeante?


5 commentaires

Qu'est-ce que les gens autour de vous disent qu'ils avaient bougé?


Et n'oubliez pas Sqldatasource, ObjectDataSource, LinqdataSource, Linq à SQL, Framework d'entité, Services de données ADO.NET ...


Beaucoup de choses ... une approche normale (ils disent qu'il facilite le TDD), Linq, Framework, etc., etc., etc., etc ......


Votre question, prise littéralement, concerne les parts de marché et donc beaucoup de sujet. Vous pouvez essayer de faire cela un sondage (cw).


Cela dépend de quelle année vous avez appris le framework .NET. Grin


7 Réponses :


19
votes

Les méthodes les plus courantes sont probablement celles-ci:

  • linq à sql
  • Cadre d'entité
  • ado.net directement
  • NHibernate
  • Autre O / RMS.

    Tous sont toujours utilisés et ils ont des avantages et des inconvénients différents. Je pense que Microsoft essaie actuellement d'encourager les gens à utiliser le entité Cadre .


0 commentaires

4
votes

À mon avis, pour le développement rapide de l'application, à l'aide d'un outil ORM comme LLBLGEN est la meilleure solution. Vous pouvez accélérer considérablement les progrès du développement.


0 commentaires

10
votes

Il n'y a qu'un seul moyen - ado.net pour SQL Server. Plus particulier, les objets de connexion et de lecteur là-bas. Maintenant, vous pouvez dire qu'il existe des choses comme le cadre d'entité - mais suffisamment intéressant, ils sont au-dessus de la couche d'accès réelle, en utilisant les deux éléments d'accès nommés auparavant. Même les ensembles de données sont une couche plus élevée (les données sont lues via un digne d'information).

Quelle est la base de données la plus utilisée Méthode d'accès de nos jours?

Je parie que cela est toujours des jeux de données. La quantité d'inutilisée après le principe de glisser-déposer est toujours la majorité, et cette approche du studio visuel conduit à des ensembles de données.

Les professionnels utilisent une orèse de tri. L'entité framework est assez poussée maintenant par des personnes qui ne savent généralement pas vraiment ce qu'est un orj peut le faire programmer correctement. À l'heure actuelle, mon meilleur pari est toujours NHibernate pour une couche de haute qualité.


3 commentaires

Pas une mauvaise réponse Enregistrer pour le dernier paragraphe. Ceux d'entité sont utilisés par ceux qui se rendent compte qu'il existe différents types d'ormes, chacun ayant des forces et des faiblesses uniques ... Nous avons donc choisi l'établissement d'entité pour notre application.


Non seulement l'utilisation de la traînée et de la goutte, mais il existe un lot de systèmes existants écrits à l'aide de jeux de données ADO.NET et dactylographiés et ceux-ci sont toujours en cours de développement - personne ne va refacturer un système entier simplement pour utiliser le nouvel orj La technologie.


@Herbie: Le code hérité est une défense claire, à droite. @Justin - ef n'a jamais été un orme décent jusqu'à présent. Il n'y a guère de force qu'elle se compare à des offres plus matures.



1
votes

Donc, il existe peu de technologies pour accéder à la base de données dans .NET. Au début, c'est ado.net. C'est une technologie d'accès «vraie», car d'autres (comme Nhibernate, Linq2SQL, Framework entité (ils sont tous ORM)) utilisent Ado.net pour se connecter en réalité à la base de données et exécuter des commandes à son encontre. Bien sûr, .NET fournit d'autres moyens d'interagir avec la base de données, par exemple, importer une partie de l'interface COM, mais elles ne sont pas naturelles.

En outre, des outils qui vous permettent de communiquer avec la base de données existant. Ce sont des extensions ADO.NET (comme l'accès aux données de la bibliothèque d'entreprise) et les outils vous permettent de travailler avec des objets (entités nommées) qui sont naturels pour l'exécution orientée objet en tant que .NET, mais chargez et enregistrez cette entité de la base de données. Ces outils nommés ORM (Mapper d'objet relationnel) et des outils modernes sont faciles à utiliser et agréables.


0 commentaires

1
votes

J'adore personnellement Linq à SQL à l'aide de CodeMith pour générer les entités, plus précisément, je pense Plinqo a la plus facilité d'extensibilité. Il vous permet de séparer tous les objets d'entité dans des fichiers distincts avec une version modifitable et générée. Cela vous permet d'étendre votre DAL avec autant de fonctions d'assistance dont vous avez besoin. Il possède un complément Visual Studio qui vous permet de régénérer toutes vos entités avec simplement un clic.

I Normalement à la base de données de base de données, donc je fais mes modifications dans la base de données, accédez à VS régénère les entités, puis je peux continuer à coder.

Peu importe ce que vous choisissez, je pense qu'un facteur important pour un orj est en mesure de la configurer pour répondre à vos besoins, il n'y a pas de taille unique pour tous.

BTW, je ne travaille pas pour CodeMith, je viens de l'utiliser :)


0 commentaires

1
votes

Eh bien, si je dois en choisir un, je dirais que l'entité cadre est la solution la plus générique, LINQ à SLQ est en cours de dépréciation à l'avenir, NHibernate sera de plus en plus à l'avenir.

Mais le meilleur conseil est probablement essayer de choisir un pour toute l'équipe! Même si cela a des inconvénients, ils ont tous à un moment donné ou un autre.


1 commentaires

@Benjamin ne fais pas ça.



1
votes

Framework Nibernate et entité sont d'excellents outils pour résumer la base de données (le code EF est incroyable), mais dans certains cas, c'est mauvais.

J'ai vu de nombreuses applications que les mauvaises performances sont sur la connexion de base de données, et NH ou EF ne permettent pas de contrôler les requêtes ni à l'utilisation de fonctionnalités les plus puissantes de la base de données, à moins que vous soyez un expert dans les ormes (malheureusement, sont rare).

Personnellement, je préfère maintenir le contrôle dans mes mains.

J'ai créé un outil, Thunderstruck , que j'utilise dans mes projets et récemment, j'ai mis la source sur github .


0 commentaires