Развертывание веб-части, которая зависит от хранилища базы данных
Каков наилучший способ развертывания веб-части в WSS3 или MOSS2007, которая зависит от базы данных? Должен ли.wsp включать код для создания базы данных, должен ли я инкапсулировать.wsp в другой установщик, который обрабатывает создание базы данных, или я должен предоставить два разных пакета, чтобы администратор мог обрабатывать создание бэкэнда?
2 ответа
Что ж, я предпочитаю способ SharePoint, где вы создаете базы данных на странице администратора SharePoint в центре администрирования. Достаточно взглянуть на то, как SharePoint обрабатывает создание новых веб-приложений, где вас просят назвать сервер базы данных и имя базы данных контента SharePoint.
Другими словами, я бы выбрал только развертывание WSP. WSP должен включать страницу конфигурации базы данных (страница ASPX), а также функцию уровня фермы для установки ссылки настраиваемого действия на страницу внутри центра администрирования. Прелесть этого в Central Admin состоит в том, что он работает в контексте с привилегиями для создания новых баз данных на сервере SQL. Следовательно, вам не нужно запрашивать у пользователя логин и пароль к серверу базы данных. Страница конфигурации должна при успешном создании базы данных сохранять информацию о соединении на странице конфигурации SharePoint, используя пользовательский производный от класса SPPersistedObject. Веб-части могут, в свою очередь, читать эти параметры для подключения к базе данных.
По моему мнению, при разработке приложений SharePoint следует избегать установки MSI.
На какого клиента нацелена ваша веб-часть?
Я полагаю, что, возможно, стоило бы быть немного гибким в вашем подходе и рассмотреть несколько способов установки вашей веб-части.
Так что для кого-то без выделенного администратора базы данных может быть лучше иметь один.wsp. (Хотя это должно быть достаточно надежно, чтобы справиться с установкой суперпользователя.)
В качестве альтернативы можно использовать файлы.wsp и msi (или даже скрипты), которые дадут установщику больший контроль над тем, как именно он установлен. (Я бы предпочел этот подход, а не только.wsp.)