Рассмотрим поэтапно на примере создание нового модуля.

Создаем новый проект-библиотеку Class Library и задаем его свойства:

Example_CreateModule1

Редактируем файл AssemblyInfo.cs, меняя соответствующие существующие значения на нижеприведенные:

AssemblyCompany(UltimaConstants.CompanyName)

AssemblyCopyright(UltimaConstants.Copyright)

AssemblyTrademark(UltimaConstants.Trademark)

AssemblyVersion(UltimaConstants.FullVersionString)

AssemblyFileVersion(UltimaConstants.FullVersionString)

Example_CreateModule2

Подключаем дополнительно библиотеки:

из раздела Assemblies -> Framework:

System.ComponentModel.Composition;

System.Drawing;

System.WindowsForms;

из раздела Assemblies -> Extensions:

DevExpress.XtraGrid;

DevExpress.XtraEditors;

DevExpress.Data;

DevExpress.Utils;

и дополнительно (по кнопке Browse), указывая файлы библиотек из дистрибутива Ultima Businessware®:

Example_CreateModule3

BaseClientLibrary.dll – библиотека содержит базовые списковые формы и формы редактирования справочников и документов, базовую форму отчета, базовую форму запроса параметров интерактивных команд и используемые в этих формах элементы управления;

ClientImplementation.dll – библиотека содержит класс базового модуля, используемого для получения списка команд;

Metadata.dll – библиотека содержит все классы объектов метаданных;

ClientInterfaces.dll – библиотека содержит интерфейсы, необходимые в том числе для создания команд и реализации списковых форм и форм редактирования;

UltimaLib.dll – библиотека содержит системные константы и дескрипторы классов объектов метаданных;

UltimaInterfaces.dll – библиотека содержит интерфейсы специальных менеджеров.

Создаем в проекте папку ThirdParty и добавляем туда библиотеки из одноименной папки дистрибутива Ultima Businessware®.

Подключаем StyleCop, предназначенный для анализа кода на предмет соответствия стилю:

копируем файл Settings.StyleCop из дистрибутива Ultima Businessware® в папку проекта;

редактируем файл проекта *.csproj, добавляя строку:

<Import Project="..\..\ThirdParty\StyleCop\StyleCop.targets" />

На этом создание модуля можно считать законченным. Компилируем его и копируем созданные библиотеки в папку клиентского приложения (в данном примере это основное клиентское приложение Ultima Businessware®) Client:

TradeTestSolution.dll и TradeTestSolution.pdb в папку Client\ClientModules\TradeTestSolution\;

TradeTestSolution.resources.dll в папку \Distrib\Client\ClientModules\TradeTestSolution\ru\.

Осталось создать соответствующий модуль в справочнике Client Module:

Example_CreateModule4

Название модуля Name должно совпадать с названием его папки в клиентском приложении Client\ClientModules\TradeTestSolution\.

Также добавляем созданный модуль в соответствующее клиентское приложение (UltimaClient), делаем его общедоступным (common module) и добавляем в него скопированные в папку клиентского приложения библиотеки модуля:

Example_CreateModule5