2010-02-17 3 views
0

Good Day,Разработка и развертывание пользовательских модулей SharePoint

Мы работаем над настраиваемым модулем (Information Management System) для SharePoint. Файл проекта этого модуля представляет собой библиотеку классов, которая содержит элементы управления пользователя. Элементы управления пользователя были основаны на инструментах SmartPart и AJAX Extension Toolkit. Модуль имеет отдельную базу данных с таблицами/представлениями/хранимой процедурой.

В среде разработки, мы развернуть модуль в следующих шагах:

  • Восстановить резервную копию базы данных модуля на опытных или испытаниях среды
  • Установка AJAX Extension Toolkit
  • Измените web.config веб-приложения для строки подключения, элемент безопасности для AJAX Extension, enableessionstate, установленный на true для страниц, добавьте запись тега AJAX Extension и раскомментируйте следующую строку:

    <add name="Session" type="System.Web.SessionState.SessionStateModule"/>

  • Создать папку UserControls в корневой директории веб приложений и скопировать все элементы управления пользователя есть. Поскольку SmartPart будет (может, я полагаю), найти пользовательские элементы управления

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

Один мой вопрос мы можем создать отдельный файл web.config, который будет иметь все необходимые теги и параметры там, чтобы мы не должны изменить веб-приложений web.config? Просто гадать!

Как все пользователи WSPBuilder знают об этом, что вы не можете изменить файл manifest.xml и не иметь хорошей интеграции с папкой веб-приложения. Я не понимаю, почему SmartPart выбирает корневую папку веб-приложения для поиска элементов управления пользователя. Возможно ли, что SmartPart может начать собирать элементы управления пользователя из папки TEMPLATE \ CONTROLTEMPLATES от 12-вью?

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

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

Мы используем набор инструментов, таких как WSPBuilder, расширения Visual Studio для WSS, STSDEV, SPVisualDev, мастер развертывания SharePoint Content, администрирования SharePoint Инструменты, SharePoint Installer.

Спасибо.

Имейте хороший день!

+0

Я думаю, что смогу ответить на этот вопрос, так как я сделал это раньше, но у меня есть встреча прямо сейчас. Попробуй немного. – Zeb

+0

Я жду тебя здесь. пожалуйста, возвращайтесь. –

ответ

1

Есть способ указать SmartPart указать папку ControlTempltes, но для этого требуется перекомпиляция решения SmartPart. Чтобы заставить SmartPart заглянуть в 12 \ CustomTemplates \ YourFolder \, вам нужно будет получить код для SmartPart из codeplex, изменить код внутри точки, где вам нужно, и перекомпилировать его и переупаковать в качестве WSP. Так я обошел эту проблему. Если вы сделаете это и сохраните свою собственную версию, вы сохраните время разработки в будущем. Мы это сделали и в будущем будем использовать нашу собственную версию с другими клиентами. Надеюсь, исходный код SmartPart будет обновлен для этого.

Совет для элементов управления SmartPart: Убедитесь, что вы включили все валидаторы в своих элементах управления, когда находитесь в режиме редактирования, иначе вы закончите заполнение всех полей, чтобы опубликовать страницу. SharePoint делает забавные вещи в режиме редактирования, поэтому убедитесь, что вы проверили все свои пользовательские элементы с помощью SmartPart в режиме редактирования.

Развертывание ресурсов Я думаю, что это могут быть проблемы с разрешениями, обычно люди разворачивают сборки до 80 \ bin, и я не помню, чтобы делать что-то особенное, чтобы сделать эту работу. Поскольку службы wsp развертываются через SharePoint, если SharePoint не имеет прав доступа к папке «resources», это может привести к сбою. Возможные проблемы: a) Папка ресурсов не существует в inetpub или везде, где вы находитесь в корневой папке. (Попробуйте создать структуру) b) Папка ресурсов не имеет одинаковых разрешений, установленных как папка bin. (Проверьте, можете ли вы развернуть сборку в ящик) c) Папка ресурсов предназначена только для чтения, и это вызывает проблему. (Только для чтения) d) SharePoint никогда не позволяет отображать файлы, кроме сборок, в корневую папку через WSP (маловероятно и не уверен в этом)

Моей рекомендацией по устранению этой проблемы является извлечение содержимое wsp в папку (переименуйте расширение .wsp в .cab и извлеките .cab). Скрипт с файлами и структурой> создайте из него файл кабины (google this)> Переименуйте расширение обратно в .wsp> Развертывание> Тест> Если он не работает, повторите попытку со структурой и повторите попытку.

+0

любая идея, почему папка 80 \ resources не копирует файлы в корень веб-приложения? –

+0

обновил ответ .. надеюсь, что это поможет – Zeb

0
  • Изменить web.config веб-приложения
    для строки подключения, SafeControl
    ввод AJAX Extension,
    EnableSessionState установлен верно в
    страниц, добавить запись тегов AJAX Extension,
    и ликвидировать следующую строку:

    <add name="Session" type="System.Web.SessionState.SessionStateModule"/> 
    

Используйте класс SPWebConfigModification для добавления записей в web.config (examples on adding ajax entries in web.config with code).

  • Создать папку UserControls в веб- корень приложения и скопировать все действия пользователя управления там. Как SmartPart будет (может только, я предполагаю) местонахождение управления пользователя

Если i`m исправить, вы можете просто создать папку с именем «80» (так же, как папка «12») и в течение предопределенного папки, развертывайте свои собственные.

From WSPBuilder documentation:

Папка 80 представляет собой папку WebApplication и содержит следующие вложенные папки 80 \ Bin, 80 \ wpcatalog, 80 \ ресурсы. В 80 \ bin содержится dll's. Если у вас есть определения веб-части (webpart, dwp) , они заносятся в папку wpcatalog . Любой файл может быть добавлен в папку ресурсов .

Возможно, было бы неплохо оставить их в папке с ресурсами?

+0

Janis, он не работает с папкой 80. –

+0

Извините. Я посмотрел в doc, и предопределенные папки работают только. См. Отредактированный ответ. –

+0

попытайтесь создать папку UserControls под 80, но она не создала ее там в корне веб-приложения при развертывании с использованием опции WSPBuilder Deploy. –

Смежные вопросы