2012-01-13 5 views
0

Я создал Windows Form, и у меня есть вопрос.Уровень доступа к данным для создания данных с нуля против автоматически созданного уровня доступа к данным с помощью Visual studio

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

В чем преимущество или недостаток обоих?

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

ответ

2

Существует множество различных вариантов разработчика, которым необходимо добавить уровень доступа к данным (DAL) в их приложение. Я собираюсь предположить, что, когда вы говорите: «Visual studio может генерировать код для этого», вы имеете в виду Microsoft Entity Framework (EF), который вы можете использовать для создания бизнес-объектов и репозиториев из схемы (и наоборот) , Существуют и другие способы использования VS для создания уровня доступа к данным (например, с использованием шаблонов T4 и генерации кода). Некоторые из факторов, которые возникают при рассмотрении вопроса о том, следует ли использовать собственный уровень доступа к данным, включают:

  • Время. Вероятно, самый большой фактор (на мой взгляд). Существует множество ссылок, доступных для изучения соглашений, необходимых для запуска и работы с уровнем данных EF за очень короткое время на деле. Это чрезвычайно быстрый способ получить данные в ваше приложение. Простая загрузка и сохранение данных из хранилища персистентности, существующие среды, такие как EF, позволяют быстро поддерживать такие вещи, как транзакции и кэширование. Если вы пишете свой собственный DAL, то, вероятно, потребуется больше времени для получения данных из хранилища данных, и, конечно, потребуется больше времени, чтобы проверить его в той же степени, что и EF.
  • Особенности. Вы получаете множество функций «из коробки» с EF. Это займет некоторое время, чтобы добавить их в свой DAL.
  • Опыт. Есть много подводных камней при написании собственного уровня DA с нуля - зачем изобретать колесо? Написание хорошего DAL с нуля требует некоторого опыта кодирования, чтобы преуспеть (но это отличный учебный опыт и очень приятный проект для работы)
  • Управление. Вы можете предпочесть писать свой собственный DAL, если вы предпочитаете контролировать все аспекты кода. В то время как инфраструктура, подобная EF, может быть сконфигурирована многими способами и будет работать для многих приложений, в частности простых, более сложные требования большого приложения (будь то вычислительно сложные или с определенным профилем производительности) могут быть лучше подогнаны к более настраиваемый DAL. Например, вам может не понравиться SQL, сгенерированный EF, или вам не нравится, как загружаются дочерние модели. Существует множество DAL с открытым исходным кодом, которые обеспечивают прочную основу для создания, позволяя легко подключить любой элемент DAL.
  • Наличие устаревшего кода. В некоторых крайних случаях, если вы работаете в выходящем приложении и вам необходимо соответствовать существующим требованиям к интерфейсу или соответствовать существующим шаблонам загрузки данных, вам может быть проще создать собственный уровень DA. Предпочтительной альтернативой здесь было бы написать слой адаптера для адаптации вашего DAL к существующим требованиям приложения, тем самым отделив ваш уровень DA от устаревших требований кода.

Если вы планируете написать свой собственный DAL, я бы, конечно же, рекомендовал взглянуть на существующие варианты генерации кода. Планируйте частоту изменения вашей схемы и сможете быстро обновить свой DAL. Инструменты, такие как Code Smith, MyGeneration и инструменты шаблонов T4 в VS, могут быть полезными при написании DAL с нуля.

Смежные вопросы