2009-08-24 7 views
2

Je suis, un débutant aux bases de données, et suis très inexpérimenté à la programmation en général. Pour une application de console C# (j'écris avec VS Express) qui, après le test, aura une interface utilisateur ajoutée, je dois utiliser une base de données pour stocker ses données.Questions de base de données de débutant

Quelqu'un peut-il me dire ou d'un point me, les explications de débutant nu, et les avantages et les inconvénients, de ces méthodes d'accès aux bases de données ainsi je peux décider que je devrais utiliser ?:

  1. SQLClient
  2. ORM
  3. OleDB
  4. ODBC
  5. ADO.NET
  6. NHibernate
  7. MS Enterprise Library

Répondre

6

Bien au mélange là ... d'abord quelques explications ...

1) Client SQL Un client SQL est une application qui se connecte à une base de données SQL dans le but de requêtes/gestion/travail avec les données dans une base de données SQL. (tout programme accédant à une base de données, phpAdmin, administrateur SQLite, etc ...).

2) ORM est un mappage objet-relationnel. C'est un moyen de convertir différents types de données lorsque les types de données sont incompatibles. Pensez à une classe de voiture qui incorpore quatre instances d'une classe de pneu.Ce type de structure ne se traduit pas directement par les types disponibles dans la conception de base de données et peut être une raison d'utiliser ORM. (Pour relier les objets (voiture, pneus, etc.) dans les types de base de données (entiers, flottants, blob, etc ..)

3) OLE (prononcé Olay) DB Est la méthode Microsoft (API) pour se connecter à la base de données en utilisant COM. OLE DB fait partie de MDAC Stack (regroupement des technologies MS travaillant ensemble dans un cadre d'accès aux données). 4) ODBC est Open Database Connectivity et est une API alternative pour les systèmes de gestion de bases de données (SGBD). Où OLE DB est un moyen d'intégrer COM (Component Object Model) avec les bases de données, ODBC vise à être indépendant de la langue.

5) ADO.NET est un ensemble de classes de base (API) à utiliser dans les langages .NET pour se connecter à des bases de données et communiquer avec elles.

Je suggère à commencer par ADO.net pour votre C# fond, OLE est généralement pour les anciennes applications (VB classique), Il y a un bon tutoriel débutant ici http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson01.aspx

Ne laissez pas toute la terminologie que vous effrayer , une fois que vous sautez dedans et commencez à bricoler vous comprendrez toutes les réponses fournies mieux ...

Le meilleur de la chance dans votre codage !! :-)

+0

Pourquoi démarrer dans ADO.Net? LINQ est le nouveau cadre convivial. Vous serez 5 fois plus productif en utilisant Linq qu'ADO.Net essayant de comprendre la concurrence manuelle optimiste dans les ensembles de données ADO.Net. Pour ne pas mentionner si vous êtes nouveau à C#, apprendre Linq est une excellente application du côté de la programmation fonctionnelle de C# – Spence

+1

Je pensais que parce que LINQ étend les langages eux-mêmes et abstraction des détails nécessaires pour travailler avec une base de données, il est plus logique un développeur d'apprentissage pour apprendre réellement sur la base de données et comment interagir avec elle. Apprendre LINQ d'abord va dérouter un nouveau développeur dès qu'ils quittent .net et jeter un oeil sur le reste du monde. (Just MHO) –

+0

Apprenez alors productif. Ou productif alors apprendre? – Spence

3

SQLClient, OleDB, ODBC sont les implémentations DBMS Drivers/ADO.NET de différents DMBS (err, espoir qui a du sens). Par exemple, SQLClient est l'implémentation ADO.NET pour la connexion à une base de données SQL Server. Le choix entre ces pilotes est juste la base de données que vous souhaitez utiliser. Pour un débutant, je suggèrerais SQL Server car vous en avez probablement déjà installé une version.

ORM est Object-Relational-Mapping. Il s'agit d'une implémentation basée sur le code d'un mappage automatique entre vos modèles basés sur le code et votre base de données qui le stocke. Si vous ne voulez pas toucher manuellement la base de données pour l'instant pendant que vous apprenez, c'est une bonne option - c'est utile pour les pros comme pour les débutants, car cela vous permet de ne pas vous soucier de l'implémentation de la base de données sous-jacente. écrire des fonctionnalités CRUD (créer, lire, mettre à jour, supprimer) vous-même. Jetez un oeil à ActiveRecord pour .net (http://www.castleproject.org/activerecord/index.html)

1

Si vous cherchez une introduction facile aux bases de données en C#, vous voulez utiliser LINQ et un contexte de données.

Ajoutez simplement un "contexte de données" à votre projet. Double-cliquez sur le fichier pour ouvrir le concepteur pour le contexte de données LINQ. Ouvrez le "Server Explorer" dans Visual Studio (sous View) et connectez-vous à votre serveur SQL. En utilisant cela, vous pouvez faire glisser et déposer vos tables sur le concepteur LINQ dans Visual Studio.

Sautez sur google et jetez un œil à linq avec un contexte pour travailler sur votre base de données. Je vais sauter ici avec LINQ pour dire qu'il vous encourage à écrire un meilleur code de base de données, qui ne tire pas tout le jeu de données en une fois et fonctionne, vous différez les requêtes et vous pouvez bénéficier grandement de l'infrastructure fonctionnelle sur laquelle ils ont bâti.

Mais cela a une grande courbe d'apprentissage, la meilleure façon de le faire est d'essayer différents types de code et de voir ceux qui ont du sens pour vous.