Корпоративная библиотека плюсы и минусы - PullRequest
7 голосов
/ 01 марта 2011

Я разрабатываю сложное бизнес-приложение, в котором будет слой доступа к данным.На данный момент у нас есть два варианта - либо создать собственный слой доступа к данным, либо использовать встроенную библиотеку Microsoft.Я ищу несколько основных причин, чтобы пойти с любым вариантом.

Любой ответ будет высоко оценен.

Ответы [ 3 ]

5 голосов
/ 01 марта 2011

Другой вариант, который стоит рассмотреть, это Entity Framework 4 , поскольку он дает вам полный ORM. Плюс к этому, последняя версия CTP 5 кода с Entity Framework выглядит очень многообещающе.

С учетом вышесказанного Enterprise Library 5 делает доступ к данным почти тривиальным, если у вас есть соглашение, согласно которому столбцы таблицы SQL соответствуют свойствам объекта с ExecuteSprocAccessor и ExecuteSqlStringAccesor . Если вы используете эти два метода расширений, вы можете избежать работы с IDataRecord, IDataReader и обычными объектами команд, и ваш доступ к данным в итоге будет выглядеть следующим образом:

var books = DataBase.ExecuteSqlStringAccessor("SELECT [Id], [Name], [ISBN] FROM Books", rowMapper).ToList();

Некоторые плюсы

  1. Корпоративная библиотека предлагает надежная структура, которая включает в себя Unity (IoC), регистрация, проверка, обработка исключений и внедрение политик назвать несколько.
  2. Много документации и быстро начинается для различного применения блоки.
  3. Расширяемый и настраиваемый, чтобы сделать почти все.
  4. В Ent Lib5 * свободная конфигурация строитель был представлен снять стресс от гор разделы конфигурации.

Некоторые минусы

  1. Очень большие рамки, вы можете найти себя нужно ссылаться на 2+ сборки, чтобы получить одну вещь функционировать должным образом.

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

В конце я использую Enterprise Library, поскольку она помогает быстрее создавать приложения, и мне не нужно изобретать велосипед. Лучше всего попробовать каждый из них, ADO.NET, EF4, Ent Lib5 или многие другие, и просто посмотреть, какой из них подходит для ваших нужд .

2 голосов
/ 01 марта 2011

Я бы точно не рекомендовал Enterprise Library.Как следует из названия, большинство подпроектов очень "корпоративные", что подразумевает, что они в основном чрезмерно спроектированы и требуют большой конфигурации XML.Если вы не находите привлекательным, есть гораздо лучшие предложения.

Имея некоторый опыт работы с собственным ORM, а также с использованием множества различных фреймворков, я теперь в основном остановился на использовании EF4 (Entity Framework) в качествеон встроен и, следовательно, легко доступен даже в магазинах, которые настороженно относятся к открытым исходным кодам или даже к коммерческим сторонним компонентам.

Если вы работаете с существующей базой данных, EF предоставляет способ создания начальной модели сущностей.из этой базы данных, которую вы можете впоследствии изменить и синхронизировать в визуальном конструкторе.Если у вас нет базы данных, или вы не любите дизайнеров и предпочитаете работать с кодом, Microsoft предоставила загрузку CTP, которая позволяет работать с EF «первым кодом», где отображения базы данных выражаются в коде.Впоследствии вы можете сгенерировать базу данных, используя определенные классы.

Если вы открыты для использования с открытым исходным кодом, NHibernate является отличным и зрелым вариантом с хорошей поддержкой сторонних разработчиков (дизайнеров визуальных карт, профилировщиков и т. Д.).

Я почти забыл упомянуть, что ни при каких обстоятельствах вы не должны использовать свою собственную структуру доступа к базе данных.Потратьте свое время на написание «ЧТО» для вашего приложения, а не на «КАК», учитывая множество вариантов, доступных для этой конкретной функции.

1 голос
/ 01 марта 2011

Если вы после ORM (Object Relational Mapper) взгляните на Habanero. Это проект с открытым исходным кодом, который позволит вам создать полный домен или провести обратный инжиниринг домена из вашей базы данных. Он имеет немного кривой обучения, но имеет хорошую поддержку и ряд дополнительных инструментов для его поддержки. FireStarter Modeller - это один из таких инструментов, который дает вам интерфейс Windows для создания ваших доменных объектов или обратного инжиниринга их из базы данных.

Вы можете скачать последнюю версию с SourceForge . Для получения дополнительной информации вы можете зарегистрироваться на HabaneroLabs и / или проверить вики habanero .

...