TeamWox SDK: Как добавить готовый модуль в TeamWox

Введение

Модульность архитектуры несомненно является одним из преимуществ системы групповой работы TeamWox. Интегрировать модуль в систему очень просто. И если для написания модуля все же необходимо владеть языками программирования (в частности, С++), то процесс интеграции не вызовет затруднений даже у обычного пользователя. В этом вы убедитесь, прочитав эту статью.

Процесс добавления модуля мы рассмотрим на примере готового учебного модуля Hello World, который входит в комплект средств разработки TeamWox SDK. Этот простой модуль с традиционным для всех программистов названием предоставлен в исходных кодах с подробными комментариями. Модуль содержит две простые страницы, на которых различными способами выводятся простые текстовые данные. Чтобы скомпилировать и добавить его в TeamWox, нам потребуются 3 компонента:

  1. Сервер TeamWox. Прежде всего нам потребуется установить локальный тестовый сервер TeamWox. Именно локальный сервер, поскольку процесс добавления модулей подразумевает частые перезапуски сервера, а для рабочего сервера TeamWox это неприемлемо. На подробностях установки мы не будем останавливаться, поскольку они детально изложены в Инструкции по установке сервера TeamWox.

  2. TeamWox SDK. Этот комплект средств разработки включает в себя полноценный TeamWox API и два учебных модуля Hello World и Board (модуль Board входит в состав TeamWox) c полными исходными кодами. Установите TeamWox SDK, загрузив дистрибутив. По умолчанию TeamWox SDK устанавливается в папку C:\Program Files\TeamWox SDK\, но вы можете выбрать любую другую папку.

  3. Компилятор Visual C++. Для компиляции исходных кодов модулей TeamWox необходим Microsoft Visual C++ начиная с версии 2005, причем вы можете воспользоваться также бесплатной версией Express Edition!

Express-версию компилятора Microsoft Visual C++ можно загрузить со страницы http://www.microsoft.com/express/Downloads. Выберите язык интерфейса (в числе прочих доступен и русский!) и нажмите кнопку "Free Download". Программа установки загрузит необходимые файлы из Интернета. Для экономии трафика и времени можно отказаться от установки дополнительных компонентов. По окончании установки перезагрузите компьютер.

 

Настройка программного окружения

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

Сервер TeamWox способен работать в двух режимах — как служба Windows и как консольное приложение. Работа в качестве службы — это штатный режим. При разработке и отладке модулей крайне важно просматривать журнал работы системы. Такой функционал доступен только в консольном режиме работы сервера. Кроме того, при внесении изменений в модуль необходимо перезапускать сервер TeamWox, а в штатном режиме делать это несколько неудобно, поскольку приходится каждый раз останавливать и запускать службу TeamWox.

Поэтому мы настроим сервер как консольное приложение:

  1. Удалите службу сервера TeamWox. Для этого в командной строке Windows перейдите в папку установки TeamWox и выполните команду:

    <папка_установки_TeamWox>\teamwox.exe /uninstal

    После этого можно убедиться, что служба 'TeamWox Server' отсутствует в списке служб Windows.

  2. Запустите сервер TeamWox как консольное приложение. Для этого в папке установки TeamWox выполните команду:

    <папка_установки_TeamWox>\teamwox.exe /console

Теперь для запуска сервера достаточно выполнить консольную команду (можете для удобства записать ее в bat-файл), а для его остановки — в консоли можно нажать Ctrl+C или просто закрыть окно консоли.

 

Компиляция и установка модуля

Итак, теперь у нас все готово, можно начинать. На примере учебного проекта с традиционным именем Hello World рассмотрим компиляцию и добавление модуля в TeamWox. Этот проект расположен в папке <папка_установки_TeamWox SDK>\Modules\HelloWorld\.

1. В Microsoft Visual C++ 2008 Express Edition откроем проект HelloWorld.vcproj, выбрав Open | Project/Solution из меню File.

2. Скомпилируем проект. Для этого выберите меню Build | Build Solution или нажмите F7. Проект по умолчанию компилируется в папку <папка_установки_TeamWox SDK>\Modules\HelloWorld\final\.

Компиляция модуля

3. Если в данный момент у вас запущен и работает сервер TeamWox — остановите его, нажав в консоли Ctrl+C.

4. Теперь перейдите в папку <папка_установки_TeamWox>\modules\ и создайте в ней новую папку для нашего модуля \helloworld. Скопируйте в нее содержимое папки \final (включая вложенные папки \res и \templates).

В папке final\ хранятся ресурсы модуля — шаблоны страниц, изображения, скрипты и прочие ресурсы, которые необходимы для отображения и функционирования страниц модуля.

5. Запустите сервер TeamWox, выполнив еще раз команду teamwox.exe /console.

О том, как автоматизировать эти этапы, см. в конце этой статьи.

6. Подключившись к системе, вы сразу же узнаете о добавлении нового модуля — всем пользователям из группы Администраторы автоматически назначается соответствующее задание:

Новое задание, автоматически назначенное после добавления модуля

 

Включение модуля

Наш модуль helloworld добавился в систему, однако он пока еще не загружен. Теперь администраторам TeamWox необходимо разрешить его использование. Для каждого нового модуля эта процедура делается всего один раз.

1. Перейдите в раздел Administration на вкладку Modules.

2. Нажмите Turn on, после чего остановите и заново запустите сервер.

Включение модуля

3. Снова перейдите в раздел Administration на вкладку Modules. Модуль Hello World теперь загружен. Сменилась пиктограмма, а также название модуля.

Модуль включен

 

Настройка прав доступа

Теперь нам нужно назначить права доступа пользователей к этому модулю, так как по умолчанию они не выставлены, и модуль недоступен никому. Эта процедура также делается один раз.

1. В разделе Administration перейдите на вкладку Groups, выберите группу Все, перейдите на вкладку Permissions и задайте полный доступ к модулю Hello World для всех пользователей, установив соответствующие галочки.

Выставление прав на просмотр модуля

2. Сохраните изменения кнопкой Update и снова подключитесь к системе TeamWox. Теперь модуль Hello World доступен для всех пользователей.

Переход на вкладку модуля    Главная страница модуля

 

Настройка проекта Visual C++

При разработке и тестировании модулей разумно будет автоматизировать некоторые этапы из рассмотренной выше инструкции. В частности, мы можем настроить проект HelloWorld.vcproj так, чтобы результирующие файлы после компиляции перемещались сразу в папку <папка_установки_TeamWox>\modules\helloworld\, а модуль после компиляции запускался в составе консольного приложения TeamWox.

1. В Visual Studio зайдите в свойства проекта HelloWorld.vcproj, выбрав из меню Project | Properties или нажав Alt+F7.

2. В группе Configuration Properties перейдите в раздел Linker, затем в подраздел General.

Путь компиляции DLL модуля по умолчанию

3. Измените папку назначения, в которую будет помещаться результирующий файл HelloWorld.dll. Для этого измените строчку Output File с .\final\$(ProjectName).dll на <папка_установки_TeamWox\Modules\helloworld\$(ProjectName).dll.

Путь компиляции DLL модуля

4. В группе Configuration Properties перейдите в раздел Debugging.

5. Для параметра Command укажите путь к файлу <папка_установки_TeamWox>\teamwox.exe.

6. Поскольку мы запускаем сервер TeamWox как консольное приложение, необходимо также указать параметр командной строки. Поэтому для параметра Command Arguments введите /console.

Параметры командной строки

7. Нажмите OK и сохраните проект.

8. Теперь, чтобы запустить скомпилированный модуль Hello World вместе с сервером TeamWox, достаточно выбрать Start Without Debugging из меню Debug или нажать Ctrl+F5.

Запуск сервера через Visual Studio

Внимание: Перед каждой последующей компиляцией не забывайте предварительно остановить сервер TeamWox. Для этого в консоли нажмите Ctrl+C или просто закройте окно консоли.

 

Заключение

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


2010.06.09