Инструменты пользователя

Инструменты сайта


developers:tutorial:module

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
developers:tutorial:module [2018/12/23 17:35]
vasya
developers:tutorial:module [2022/03/15 19:10] (текущий)
proxor
Строка 8: Строка 8:
   * Файл для подключения к программному комплексу.   * Файл для подключения к программному комплексу.
  
-Начнем с создания класса,​ реализующего функциональность модуля. Это должен быть ​компонент, ​наследник от Topomatic.ApplicationPlatform.Plugins.PluginInitializator. Создайте новый класс компонента и назовите его "​Module"​.+Начнем с создания класса,​ реализующего функциональность модуля. Это должен быть наследник от [[developers:​references:​topomatic.applicationplatform.plugins.plugininitializator|PluginInitializator]]. Создайте новый класс компонента и назовите его "​Module"​.
 {{ :​developers:​tutorial:​module:​add_component.png?​direct&​400 |Рисунок 10. Создание компонента}} {{ :​developers:​tutorial:​module:​add_component.png?​direct&​400 |Рисунок 10. Создание компонента}}
 Откройте окно редактирования кода компонента. Откройте окно редактирования кода компонента.
 {{ :​developers:​tutorial:​module:​goto_code.png?​direct&​400 |Рисунок 11. Перейти к коду компонента}} {{ :​developers:​tutorial:​module:​goto_code.png?​direct&​400 |Рисунок 11. Перейти к коду компонента}}
-Измените код класса,​ сделайте его наследником от Topomatic.ApplicationPlatform.Plugins.PluginInitializator. Также можно убрать его из общей области видимости.+Измените код класса,​ сделайте его наследником от [[developers:​references:​topomatic.applicationplatform.plugins.plugininitializator|PluginInitializator]]. Также можно убрать его из общей области видимости.
 <code csharp> <code csharp>
 partial class Module : Topomatic.ApplicationPlatform.Plugins.PluginInitializator partial class Module : Topomatic.ApplicationPlatform.Plugins.PluginInitializator
Строка 20: Строка 20:
 </​code>​ </​code>​
  
-Теперь создадим класс, отвечающий за инициализацию модуля. Этот класс должен быть наследником от абстрактного класса ​Topomatic.ApplicationPlatform.Plugins.PluginHostInitializator и находится в общей области видимости. У него необходимо реализовать абстрактную функцию GetTypes() возвращающую список типов модулей. В нашем случае мы вернем только один тип - тип нашего класса Module.+Теперь создадим класс, отвечающий за инициализацию модуля. Этот класс должен быть наследником от абстрактного класса ​[[developers:​references:​topomatic.applicationplatform.plugins.pluginhostinitializator|PluginHostInitializator]] и находится в общей области видимости. У него необходимо реализовать абстрактную функцию GetTypes() возвращающую список типов модулей. В нашем случае мы вернем только один тип - тип нашего класса Module.
  
-Создайте новый класс и назовите его "​ModulePluginHost"​. Наследуйте класс от Topomatic.ApplicationPlatform.Plugins.PluginHostInitializator и реализуйте функции как описано выше.+Создайте новый класс и назовите его "​ModulePluginHost"​. Наследуйте класс от [[developers:​references:​topomatic.applicationplatform.plugins.pluginhostinitializator|PluginHostInitializator]] и реализуйте функции как описано выше.
 <code csharp> <code csharp>
 public class ModulePluginHost : Topomatic.ApplicationPlatform.Plugins.PluginHostInitializator public class ModulePluginHost : Topomatic.ApplicationPlatform.Plugins.PluginHostInitializator
Строка 35: Строка 35:
 Для подключения нашей библиотеки к программному комплексу нам необходим файл "​Имя нашей библиотеки"​.plugin. ​ Для подключения нашей библиотеки к программному комплексу нам необходим файл "​Имя нашей библиотеки"​.plugin. ​
 <​note>​Здесь и далее замените **"​Имя нашей библиотеки"​**,​ на имя вашего проекта,​ в примере это **tutorial1**</​note>​ <​note>​Здесь и далее замените **"​Имя нашей библиотеки"​**,​ на имя вашего проекта,​ в примере это **tutorial1**</​note>​
-Это ​файл в формате ​[[https://ru.wikipedia.org/​wiki/​JSON|JSON]] который содержит инструкции для программного комплекса,​ позволяющие загрузить и подключить модули,​ содержащиеся в нашей сборке.+Это [[developers:references:​core.plugin|файл]]который содержит инструкции для программного комплекса,​ позволяющие загрузить и подключить модули,​ содержащиеся в нашей сборке.
 Создайте новый файл и назовите его "​Имя нашей библиотеки"​.plugin. Создайте новый файл и назовите его "​Имя нашей библиотеки"​.plugin.
 Для этого выберите в контекстном меню проекта "​Создать элемент..."​. Для этого выберите в контекстном меню проекта "​Создать элемент..."​.
Строка 48: Строка 48:
   "​assemblies":​ {   "​assemblies":​ {
     "​Имя нашей библиотеки":​ {     "​Имя нашей библиотеки":​ {
-      ​"​assembly":​ "​Имя нашей библиотеки.dll,​ Имя нашей библиотеки.ModulePluginHost"​+        ​"​assembly":​ "​Имя нашей библиотеки.dll,​ Имя нашей библиотеки.ModulePluginHost"​ 
 +        }
     }     }
 } }
 </​code>​ </​code>​
-Элемент ''​assemblies''​ определяет какие сборки будут подключены к программному комплексу и может содержать один или несколько элементов ''​assembly''​. В нашем случае этот элемент один и представляет из себя строку,​ содержащую,​ через запятую имя сборки и полное имя класса,​ наследника от PluginHostInitializator,​ включая его пространство имен.+Элемент ''​assemblies''​ определяет какие сборки будут подключены к программному комплексу и может содержать один или несколько элементов ''​assembly''​. В нашем случае этот элемент один и представляет из себя строку,​ содержащую,​ через запятую имя сборки и полное имя класса,​ наследника от [[developers:​references:​topomatic.applicationplatform.plugins.pluginhostinitializator|PluginHostInitializator]], включая его пространство имен.
  
 Выполнив указанные выше действия и скомпилировав проект мы получим полностью работоспособный плагин,​ подключающий наш модуль к программному комплексу Топоматик Робур. ​ Выполнив указанные выше действия и скомпилировав проект мы получим полностью работоспособный плагин,​ подключающий наш модуль к программному комплексу Топоматик Робур. ​
  
-Сейчас наш модуль полностью пустой. Давайте добавим к нему немного функциональности. Для этого вернемся к коду класса "​ModulePluginHost"​ и перекроем в нём метод Initializeкак показано ниже.+Сейчас наш модуль полностью пустой. Давайте добавим к нему немного функциональности. Для этого вернемся к коду класса "​ModulePluginHost"​ и перекроем в нём метод ​[[developers:​references:​topomatic.applicationplatform.plugins.plugininitializator.initialize|Initialize]] как показано ниже.
 <code csharp> <code csharp>
     //этот метод будет вызван в момент старта программного комплекса     //этот метод будет вызван в момент старта программного комплекса
 +    //при первой инициализации вашего модуля
 +    //​после этого модуль будет закэширован
     public override void Initialize(PluginFactory factory)     public override void Initialize(PluginFactory factory)
     {     {
Строка 66: Строка 69:
     }     }
 </​code>​ </​code>​
-Этот метод будет вызван при старте программного комплекса, а мы покажем там сообщение,​ в котором будет написано "​Привет Робур"​.+Этот метод будет вызван при старте программного комплекса ​и мы покажем там сообщение,​ в котором будет написано "​Привет Робур"​. 
 +Сообщение будет вызвано при старте в момент первой инициализации модуля,​ потом он будет сохранен и инициализация модуля будет вызываться по требованию. Если необходимо сбросить информацию о сохраненных модулях,​ можно воспользоваться командой "​clearcache"​ доступной в командной строке. 
 <​note>​Для того чтобы использовать методы статического класса [[developers:​references:​topomatic.controls.dialogs.messagedlg|MessageDlg]] необходимо добавить нужные пространства имен в секцию using. Visual Studio позволяет легко сделать это, нажав правой клавишей на имени класса и выбрав добавление директивы using.</​note>​ <​note>​Для того чтобы использовать методы статического класса [[developers:​references:​topomatic.controls.dialogs.messagedlg|MessageDlg]] необходимо добавить нужные пространства имен в секцию using. Visual Studio позволяет легко сделать это, нажав правой клавишей на имени класса и выбрав добавление директивы using.</​note>​
 Теперь мы можем запустить наш проект. Он автоматически соберет нашу сборку в каталог с программным комплексом,​ скопирует туда же файл plugin и запустит исполняемый файл программного комплекса,​ при старте которого мы увидим наше сообщение. Теперь мы можем запустить наш проект. Он автоматически соберет нашу сборку в каталог с программным комплексом,​ скопирует туда же файл plugin и запустит исполняемый файл программного комплекса,​ при старте которого мы увидим наше сообщение.
 {{ :​developers:​tutorial:​module:​hello.png?​direct&​400 |Рисунок 15. Сообщение - Привет Робур}} {{ :​developers:​tutorial:​module:​hello.png?​direct&​400 |Рисунок 15. Сообщение - Привет Робур}}
  
-<​note>​Исходный код примера, вы можете скачать используя эту ссылку  +<​note>​[[developers:​tutorial:​tutorialcode|Исходный код]] примера ​расположен ​в проекте **"​tutorial1"​**.</​note>​
- +
-{{ :​developers:​tutorial:​module:​tutorial1.zip |Архив с кодом ​примера}}</​note>​+
  
  
  
developers/tutorial/module.1545586537.txt.gz · Последние изменения: 2021/07/22 14:28 (внешнее изменение)