Подтвердить что ты не робот

Преимущества и недостатки использования Enterprise Library

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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