====== Введение и установка ====== Для разработки под платформу [[http://www.topomatic.ru|Топоматик Робур]] Вам потребуются базовые навыки программирования на языке C#, среда разработки Microsoft Visual Studio Community Edition и установленный программный комплекс Топоматик Робур. Среда разработки распространяется компанией Microsoft бесплатно, скачать её можно по ссылке [[https://visualstudio.microsoft.com/ru/thank-you-downloading-visual-studio/?sku=Community&rel=15|visualstudio.microsoft.com/ru/]]. Демонстрационную версию программного комплекса Топоматик Робур можно скачать по ссылке [[http://www.topomatic.ru/products|topomatic.ru/products]]. При создании собственных модулей удобнее всего настроить среду разработки таким образом, чтобы компиляция Вашего модуля происходила непосредственно в каталог с установленным программным комплексом. Это позволит Вам отлаживать собственный модуль, не беспокоясь о том чтобы копировать его в нужный каталог. По умолчанию установка программного комплекса выполняется в каталог недоступный для компиляции с правами обычного пользователя, поэтому необходимо будет скопировать содержимое каталога с программой в отдельную папку. Ядро программного комплекса Топоматик Робур состоит из программных модулей. Каждый модуль представляет собой одну или несколько библиотек на языке C# и файл с расширением ''.plugin'', предназначенный для подключения модуля к комплексу и настройки главного и контекстного меню. По умолчанию все модули должны быть расположены в основном каталоге программы и обязаны иметь [[https://msdn.microsoft.com/ru-ru/library/ms247066.aspx|цифровую подпись]]. Для добавления собственного функционала разработчику необходимо: * Создать библиотеку модуля, разместить в ней необходимую логику и алгоритмы. * Создать файл ''.plugin'' для подключения модуля к комплексу и описания меню для взаимодействия с пользователем. Стандартные модули программного комплекса обычно состоят из нескольких библиотек и стараются соблюдать парадигму [[https://ru.wikipedia.org/wiki/Model-View-Controller|Модель-Вид-Контроллер]]. Например, модуль отвечающий за работу с картограммой, состоит из следующих частей: - Topomatic.Cartograms.dll - библиотека, содержащая в себе модель данных отвечающую за работу с картограммой. - Topomatic.Cartograms.Layers.dll - библиотека, отвечающая за отображение модели при работе с программой. - Topomatic.Cartograms.Core.dll - библиотека, отвечающая за подключение модели к ядру и доступ к модели в режиме только для чтения. - Topomatic.Cartograms.Controller.dll - библиотека, отвечающая за команды доступные пользователю для редактирования модели. - cartograms.plugin - файл для подключения модуля к ядру. Для разработчика допустимо ссылаться и использовать любые библиотеки, кроме оканчивающихся на ''*.Controller.dll''. Библиотеки этого типа обычно закрытые и для вызова каких либо команд пользователя необходимо использовать механизмы реализованные в ядре программного комплекса.