Преимущества и недостатки использования Enterprise Library - PullRequest
23 голосов
/ 27 октября 2008

Я только начинаю проект, и так как этот проект является личным, мне было интересно, каковы преимущества использования Enterprise Library? Мы используем версию 2 для нескольких проектов в офисе, но я не совсем уверен (помимо хорошей практики) в ее преимуществах, особенно в компоненте базы данных. Любой совет? Спасибо

Ответы [ 4 ]

13 голосов
/ 27 октября 2008

Основным преимуществом блока приложений базы данных является то, что он облегчает создание кода, независимого от базы данных. Разработчик взаимодействует в основном с общими объектами Database и DbCommand, а не, например, с SqlConnection, SqlCommand и т. Д. Таким образом, переключение на другую базу данных (например, Oracle) становится более осуществимым. В зависимости от потребностей вашего бизнеса, это может быть определенным преимуществом. EntLib также мягко подталкивает разработчика в направлении использования DbParameter для параметров запроса, что снижает риск атак с использованием SQL-инъекций.

Как упомянул другой участник, блок приложения для данных является несколько более высоким уровнем, чем обычные классы ADO.NET, поэтому для выполнения одной и той же задачи требуется меньше строк кода.

С моей точки зрения, блоки данных, исключений и журналов являются наиболее полезными. Исключение и ведение журнала вместе позволяют очень легко регистрировать исключения (duh) в нескольких местах и ​​в разных форматах. Например, они могут поместить всю запись журнала исключений, включая трассировку стека, в журнал событий Windows, что позволяет относительно легко диагностировать проблему.

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

12 голосов
/ 27 октября 2008

Моя команда провела оценку Корпоративной библиотеки шаблонов и практик Microsoft около 2 лет назад в рамках реинжиниринга нашей линейки продуктов. Единственной частью, которую мы использовали, был блок базы данных. Мы даже обернули это в некоторые классы, которые мы могли бы создать, чтобы мы могли смоделировать DAL для модульного тестирования; блок кода Microsoft использовал статические вызовы для работы с базой данных. Я не уверен, интегрировала ли Microsoft какие-либо вещи LINQtoSQL или Entity Framework в блок db. Я бы не хотел использовать блок db сейчас, если бы он не использовал один из них.

Что касается ведения журнала, мы обнаружили, что Log4Net является гораздо более надежным и гибким решением, чем ведение журнала Microsoft. Мы пошли с этим для наших нужд регистрации.

Для обработки исключений мы свернули свои собственные. Код Microsoft не обрабатывал случаи удаленного взаимодействия, которые мы хотели обработать, и, поскольку мы использовали стороннюю среду ведения журналов, было больше смысла написать собственную библиотеку исключений и интегрироваться с ней. Я обнаружил, что некоторый уровень интеграции каркаса логирования в каркас исключений может быть очень полезным. Мы написали несколько облегченных классов-оболочек для Log4Net и вызвали их из журнала исключений, чтобы не вводить зависимости от Log4Net.

3 голосов
/ 27 октября 2008

В дополнение к пунктам, упомянутым Полом о блоке приложения данных, я также хотел бы отметить, что, по моему опыту, блок приложения данных также предоставляет гораздо более быстрый способ написания необходимого кода базы данных с помощью существующих помощников. Я использую это для его последовательного взгляда / чувства и скорости разработки.

0 голосов
/ 16 октября 2018

Выбор невозможности использования EF для меня связан ограничениями, которые существуют в моей среде, которые требуют, чтобы приложения обрабатывали миллионы транзакций в час. Это объем обработки в среде Telco.

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

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