Как следует обращаться к данным.Рабочая практика - PullRequest
7 голосов
/ 01 ноября 2010

Я новичок в C # разработчике. Когда я только начал понимать, что программирование было довольно простым, вы видите проблему, вы разрабатываете решение, тестируете его, и оно работает, все так просто.

Затем вы узнаете шаблоны проектирования и всю абстракцию, и вы начнете тратить больше времени на код, который не дает результатов, всегда уставая для защиты кода от возможных изменений в будущем. Больше времени - меньше результата.

Извините за скучное вступление, но я просто пытаюсь показать, как я разочарован сейчас. Существует множество технологий доступа к данным, предоставляемых самой Microsoft, и еще больше технологий сторонних компаний.

У меня нет руководителя группы или соседа, опытного друга-программиста, поэтому я должен попросить у вас совета.

Как реализовать доступ к данным в ваших реальных приложениях, написанных на C #?

Ответы [ 3 ]

2 голосов
/ 01 ноября 2010

С очень общей точки зрения я всегда скрываю и детали реализации доступа к данным за интерфейсом, как это:

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

.NET Framework предлагает множество различных способов доступа к данным, поэтому я понимаю, что вы запутались. Однако в настоящее время существует только два или три разумных варианта доступа к реляционным базам данных:

  • NHibernate
  • Entity Framework
  • (Низкоуровневые API, такие как IDataReader, могут по-прежнему иметь место в ограниченных сценариях)
1 голос
/ 01 ноября 2010

Некоторые моменты, которые следует учитывать для DAL: (примечание: очень самоуверенный, но ответы на этот вопрос должны быть)

  • Инкапсулировать логику в репозитории
  • Использовать интерфейсное кодирование
  • Использовать инъекцию зависимостей
  • Используйте зрелый ORM, такой как NHibernate / Entity Framework 4.0 (но знайте, когда использовать SPROC для интенсивной работы с БД)
  • Использовать шаблон Единица работы
  • Предотвращение SQL-инъекций атак с помощью параметризованных запросов (или LINQ-Entites, как указано выше)
1 голос
/ 01 ноября 2010

Часто трудно увидеть преимущества абстракции, не видя преимуществ, которые она дает в реальных приложениях.Лучший совет, который я могу дать, это прочитать принципы SOLID, а затем при написании своего приложения попытаться подумать о том, как клиент может прийти к вам и сказать: «Теперь мне нужно это сделать», что может быть незначительным изменением функциональности илисерьезное изменение.Подумайте о том, как это повлияет на ваш код, и в каком количестве мест вам потребуется внести эти изменения.После того, как вы внесете эти изменения, насколько вы будете уверены, что не сломали что-то еще?

Другой идеей будет загрузка одного из примеров приложений.Одним из моих любимых примеров является образец платформы доступа к данным , предоставленный в Codeplex.Попробуйте проработать этот код и посмотрите, как реализации абстракций и шаблонов сводят к минимуму влияние на код в целом, когда наступает время его изменения.

Суть в том, что язык программирования легко выучить, но понять, как создать надежнуюРешения с этим требуют времени.Придерживайтесь этого, потому что, когда вы, наконец, получите хорошее представление об архитектуре программного обеспечения, это будет очень полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...