На прошлой неделе команда Microsoft Patterns & Practices выпустила исправление 2554 для Enterprise Library 2.0. Основная цель этого патча — разрешить использовать библиотеку в режиме частичного доверия, что является обычным сценарием для веб-приложений в эти опасные дни.
Я уже довольно давно пользуюсь библиотеками, поэтому я решил поделиться некоторыми советами и рекомендациями по использованию кода, который, как я обнаружил, не был хорошо документирован и не рекламирован.
Трюк № 1: Получить Libs, Человек
Существуют две текущие версии Enterprise Library: версия 1.1 (также известная в июне 2005 года) для .NET 1.1 и версия 2.0 (известная в январе 2006 года) для .NET 2.0. Скачать по мере необходимости и желательно.
Трюк № 2: Делай Лаборатории, Человек
Когда я в первый раз посмотрел документацию, мне стало интересно, во что, черт возьми, я попал. К счастью, я наткнулся на практические занятия по корпоративной библиотеке (доступно для 1.1 и 2.0 ). Я обнаружил, что они были довольно хорошо написаны, быстро дали студенту возможность использовать основные функции библиотеки.
Трюк № 3: Не забудьте построить для выпуска
Корпоративная библиотека, что интересно, выпускается только в виде исходного кода с установщиком. Этот установщик предоставляет удобный флажок «Построить библиотеку предприятия». Но есть скрытая ошибка — она собирает библиотеку, используя параметр сборки DEBUG, а не RELEASE. Это означает, что код не полностью оптимизирован для производственного использования.
Теперь, если вы включаете проекты и компилируете их с вашим решением, все будет хорошо. Но я сам предпочитаю просто статически включать скомпилированные сборки, так как мне не нужно беспокоиться о внутренностях указанной библиотеки.
В любом случае, правильное построение библиотеки — это двухэтапный процесс. Сначала вы должны запустить скрипт сборки релиза. Затем вы должны запустить скрипт, чтобы скопировать сборки. Предполагая, что кто-то установил библиотеку в c: projectsEntLib, вам нужно запустить окно команд и запустить в этой папке следующие команды:
c:ProjectsEntLibBuildLibrary Release
c:ProjectsEntLibCopyAssemblies Release
[Обратите внимание, что источники для Версии 1.1 находятся в папке [InstallFolder] src, поэтому вам нужно будет пойти туда, чтобы найти сценарии. Также обратите внимание, что для Версии 1.1 необходимо установить Visual Studio .NET 2003, чтобы скрипт сборки работал.]
После этого все необходимые библиотеки DLL (и документация xml) будут доступны в папке bin каталога вашей корпоративной библиотеки.
Трюк № 4: InstallUtil
Этот трюк действительно относится к версии 1.1. По умолчанию он запускает несколько счетчиков производительности и записывает в журнал событий. Теперь, как правило, это не проблема в разработке. Но как только пользователь перемещает приложение на промежуточный сервер, он получает неприятную ошибку «Не удается записать в реестр».
Есть два способа обойти это. Во-первых, можно изменить параметры сборки, чтобы он не использовал счетчики производительности . По общему признанию, я никогда не заставлял это работать успешно. Но опять же я не старался особенно сильно. И мне нравится иметь счетчики производительности.
Другой вариант — использовать утилиту .NET InstallUtil.exe для регистрации сборок. Для этого вам нужно запустить надежное окно командной строки и выполнить следующую команду для каждой используемой вами сборки библиотеки:
C:WINDOWSMicrosoft.NETFrameworkv1.1.4322InstallUtil.exe c:MyAppFolderbinEnterpriseLibraryAssembly.dll
Замена пути к сборке при необходимости.