Вам необходимо: -
Для блока приложения базы данных основное преимущество состоит в том, что он облегчает производить агностический базой данных код. Разработчик взаимодействует главным образом с универсальными объектами Базы данных и DbCommand, а не например, SqlConnection, SqlCommand, и т.д. Таким образом, переключаясь на различную базу данных (т.е. Oracle) становится более выполнимым. В зависимости от Ваших бизнес-потребностей это могло быть определенным преимуществом. EntLib также мягко подталкивает разработчика в направлении использования DbParameter для параметров запроса, который снижает риск атак с использованием кода на SQL.
Как другой упомянутый плакат, блок приложений данных является несколько высокоуровневым, чем прямые классы ADO.NET, таким образом, это имеет тенденцию требовать, чтобы меньше строк кода сделало то же самое.
С моей точки зрения, данные, исключение и регистрирующиеся блоки являются самыми полезными. Исключение и Регистрирующийся вместе делает очень легким зарегистрировать исключения (понятное дело) ко многим местам и во многих форматах. Например, они могут поместить всю запись в журнале исключения, включая отслеживание стека, в журнале событий Windows, делающем его относительно легкий диагностировать проблему.
Один недостаток EntLib - то, что некоторые блоки приложений помещают довольно мало логики в конфигурационные файлы. Таким образом, Ваша логика более распространена; часть его находится в коде, некоторых в файлах конфигурации. Позитивный аспект - то, что конфигурация может быть изменена постсборка и даже постразвертывание.
Моя команда сделала оценку Библиотека Microsoft Patterns and Practices Enterprise приблизительно 2 года назад как часть реинжиниринга нашей линейки продуктов. Единственная часть, которую мы закончили тем, что использовали, была блоком базы данных. Мы даже обернули это в некоторые классы, которых мы могли инстанцировать так, мы могли дразнить DAL за поблочное тестирование; блок кода Microsoft использовал статические призывы к работе базы данных. Я не уверен, интегрировала ли Microsoft какой-либо материал Платформы LINQtoSQL или Объекта в блок дб. Я не решился бы использовать блок дб теперь, если бы он не усиливал одного из тех.
, Насколько вход идет, мы нашли Log4Net быть намного большим надежным и гибким решением что вход Microsoft. Мы пошли с этим для наших потребностей входа.
Для обработки исключений, мы прокрутили наше собственное. Код Microsoft не обработал случаи дистанционной работы, которые мы хотели обработать, и так как мы использовали стороннюю платформу журналирования, которую имело больше смысла писать нашей собственной библиотеке исключения и интегрировать с этим. Я нашел, что некоторый уровень интеграции платформы журналирования в платформу исключения может быть очень полезным. Мы записали некоторые легкие классы обертки вокруг Log4Net и назвали тех от нашего исключения, регистрирующегося, таким образом, мы не представляли зависимости от Log4Net.
В дополнение к объектам, упомянутым Paul о блоке применения данных, я также хотел бы указать, что, по моему опыту, блок применения данных aslo обеспечивает НАМНОГО БОЛЕЕ БЫСТРЫЙ способ записать необходимый код базы данных с помощниками, которые существуют. Я использую его для его последовательного взгляда/чувства и скорости разработки.