2010-11-01 12 views
7

Je suis un développeur débutant C#. Quand j'ai juste commencé à apprendre la programmation, les choses étaient assez simples, vous voyez le problème, vous développez une solution, vous la testez et cela fonctionne, aussi simple que cela. Ensuite, vous découvrez les motifs de conception et toute l'abstraction, et vous commencez à passer plus de temps sur le code qui ne donne aucun résultat, toujours fatiguant de protéger le code contre d'éventuels changements dans le futur. Plus de temps moins de résultat.Comment accéder aux données. Le travail pratique

Désolé pour l'introduction ennuyeuse, mais j'essaie juste de montrer à quel point je suis frustré maintenant. Il existe un tas de technologies d'accès aux données fournies par Microsoft lui-même, et même un plus grand nombre de technologies fournies par des sociétés tierces.

Je n'ai pas de chef d'équipe ou d'ami programmeur super qualifié, donc je dois vous demander conseil.

Comment réalisez-vous l'accès aux données dans vos applications réelles écrites en C#?

+0

Eh bien d'abord vous décidiez ce que votre demande est/fait, Quel client doit-il prendre en charge, quels sont les besoins en matière de trafic/de charge, quelle infrastructure, etc. S'agit-il d'une question spécifique ou générale? – RPM1984

+0

Très bonne question homme :). Je ne répondrai pas, mais j'aime juste partager avec vous que je ressens exactement la même chose. Une note cependant, as-tu déjà fait des concours de programmation? –

+0

à RPM1984. C'est la question générale. Supposons que nous avons MS SQL SERVER 2008 sur le PC distant. La base de données est semblable à Northwind. Je dois développer une application métier qui va accéder et mettre à jour des données dans des tables basées sur des jeux de règles, etc ... à Gunner, je ne sais pas ce que tu veux dire – v00d00

Répondre

2

Du point de vue très général, je me cache toujours et les détails de mise en œuvre de l'accès aux données derrière une interface, comme celle-ci:

public interface IRepository<T> { /*...*/ } 

Le framework .NET offre beaucoup de façons différentes d'accéder aux données, donc je peux comprendre que vous êtes confus. Cependant, à ce moment, il n'y a que vraiment deux ou trois options raisonnables pour accéder aux bases de données relationnelles:

1

Il est souvent difficile de voir le bénéfice de l'abstraction sans voir les avantages qu'elle procure dans une application du monde réel. Le meilleur conseil que je peux donner est de lire les principes SOLID puis, en écrivant votre application, essayez de penser à la façon dont le client peut venir vous dire «Maintenant j'en ai besoin», ce qui peut être un changement subtil. un changement majeur. Réfléchissez à la façon dont cela affecterait votre code et au nombre d'emplacements dont vous auriez besoin pour effectuer ces modifications. Une fois que vous avez fait ces changements, à quel point seriez-vous sûr que vous n'avez pas brisé autre chose?

Une autre idée serait de télécharger l'un des exemples d'applications. Un de mes favoris est le Data Access Platform sample fourni sur Codeplex. Essayez de travailler avec ce code et voyez comment les implémentations d'abstraction et de modèle minimisent l'impact sur le code quand il s'agit de changer. En résumé, il est facile d'apprendre un langage de programmation, mais comprendre comment construire des solutions robustes prend du temps. Tenez-vous-en cependant parce que lorsque vous comprenez enfin l'architecture logicielle, c'est extrêmement gratifiant.

1

Quelques points à considérer pour le DAL: (note: très opiniâtres, mais les réponses à cette question doivent être)

  • logique Encapsulate derrière un dépôt
  • Utiliser le codage
  • à base interfacé
  • Utilisation de l'injection de dépendances
  • Utilisez un ORM mature tel que NHibernate/Entity Framework 4.0 (mais sachez quand utiliser SPROC pour un travail intensif en db)
  • Utilisez l'unité de travail modèle
  • Prévenir SQL Injection attaques en utilisant des requêtes paramétrées (ou LINQ-Entités mises, comme ci-dessus)
Questions connexes