Создание дополнений к SMath Studio: различия между версиями
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
Для сторонних разработчиков | Для сторонних разработчиков [[ООО «ЭсМат»|наша команда]] предоставляет возможность создания новых дополнений. В качестве примера можно использовать дополнения, для которых доступны [[Открытый исходный код|открытые исходные коды]]. | ||
Начиная с версии [https://www.nuget.org/packages/SMathStudio.Core.Ref/1.73.9126 ядра SMath Studio 1.73.9126], впервые представленного в [https://smath.com/ru-RU/view/SMathStudio/download/1.3.0.9126 SMath Studio 1.3.0.9126], рекомендованным способом создания дополнений является инструкция в текущем документе. Ранее, в отсутствии Nuget пакета со сборками ядра программы [[SMath Studio]], было необходимо подключать к проекту необходимые библиотеки программы из стандартного пакета поставки ПО и следить за отсутствием таких библиотек в результатах сборки дополнения. Дополнительной сложностью была необходимость обеспечить нахождение библиотек ядра программы [[SMath Studio]] как на компьютерах разработчиков, так и на машине, где происходит итоговая сборка дополнения. | Начиная с версии [https://www.nuget.org/packages/SMathStudio.Core.Ref/1.73.9126 ядра SMath Studio 1.73.9126], впервые представленного в [https://smath.com/ru-RU/view/SMathStudio/download/1.3.0.9126 SMath Studio 1.3.0.9126], рекомендованным способом создания дополнений является инструкция в текущем документе. Ранее, в отсутствии Nuget пакета со сборками ядра программы [[SMath Studio]], было необходимо подключать к проекту необходимые библиотеки программы из стандартного пакета поставки ПО и следить за отсутствием таких библиотек в результатах сборки дополнения. Дополнительной сложностью была необходимость обеспечить нахождение библиотек ядра программы [[SMath Studio]] как на компьютерах разработчиков, так и на машине, где происходит итоговая сборка дополнения. | ||
Строка 20: | Строка 20: | ||
#* [https://smath.com/documentation/api/SMathStudio.Core/1.73.9126/html/T_SMath_Controls_IPluginDataInputOutput.htm IPluginDataInputOutput] - формат задания начальных данных и результатов расчёта для автоматизации и интеграции с другими приложениями. | #* [https://smath.com/documentation/api/SMathStudio.Core/1.73.9126/html/T_SMath_Controls_IPluginDataInputOutput.htm IPluginDataInputOutput] - формат задания начальных данных и результатов расчёта для автоматизации и интеграции с другими приложениями. | ||
#* [https://smath.com/documentation/api/SMathStudio.Core/1.73.9126/html/T_SMath_Controls_IPluginMenuExtender.htm IPluginMenuExtender] - расширение главного меню программы. | #* [https://smath.com/documentation/api/SMathStudio.Core/1.73.9126/html/T_SMath_Controls_IPluginMenuExtender.htm IPluginMenuExtender] - расширение главного меню программы. | ||
# Рядом с файлом проекта создайте папку <nowiki>Examples</nowiki> и положите в неё примеры использования программы [[SMath Studio]] с вашим дополнением. Это позволит проводить автоматическое тестирование вашего дополнения на этапе его сборки. | |||
Обратите внимание, что для обеспечения максимальной совместимости вашего дополнения с различными платформами, везде, где необходимо производить отрисовку какой-либо графики, рекомендуется использовать библиотеку [[SMath Studio Drawing]]. | Обратите внимание, что для обеспечения максимальной совместимости вашего дополнения с различными платформами, везде, где необходимо производить отрисовку какой-либо графики, рекомендуется использовать библиотеку [[SMath Studio Drawing]]. |
Текущая версия от 16:15, 16 января 2025
Для сторонних разработчиков наша команда предоставляет возможность создания новых дополнений. В качестве примера можно использовать дополнения, для которых доступны открытые исходные коды.
Начиная с версии ядра SMath Studio 1.73.9126, впервые представленного в SMath Studio 1.3.0.9126, рекомендованным способом создания дополнений является инструкция в текущем документе. Ранее, в отсутствии Nuget пакета со сборками ядра программы SMath Studio, было необходимо подключать к проекту необходимые библиотеки программы из стандартного пакета поставки ПО и следить за отсутствием таких библиотек в результатах сборки дополнения. Дополнительной сложностью была необходимость обеспечить нахождение библиотек ядра программы SMath Studio как на компьютерах разработчиков, так и на машине, где происходит итоговая сборка дополнения.
Подготовка окружения
Для работы с кодом дополнений на ОС Windows вам потребуется обеспечить необходимые требования:
- Пожалуйста, убедитесь, что у вас установлена свежая версия среды разработки Visual Studio Community.
- Для первичной загрузки Nuget пакета с ядром SMath Studio на компьютере потребуется подключение к сети Интернет. Впоследствии пакет будет сохранён в локальном кеше Nuget и подключение к сети Интернет более не потребуется.
Создание проекта дополнения
- Создайте проект "Class Library (.Net Framework)", указав .Net Framework 2.0 в поле Framework в диалоге создания проекта.
- В проект добавьте ссылку на Nuget пакет с ядром SMath Studio и, при необходимости, на Nuget пакет со стандартными дополнениями к SMath Studio.
- Реализуйте один или несколько интерфейсов SMath Studio, унаследованных от IPlugin:
- IPluginLowLevelEvaluationFast - перехват вычисления операторов и функций.
- IPluginMathNumericEvaluation - перехват численных вычислений.
- IPluginCustomRegion - создание типа элемента листа.
- IPluginRegionDrawing - отрисовка элемента формулы в математической формуле.
- IPluginSaveFileTypes - сохранение расчёта в файл.
- IPluginOpenFileTypes - открытие расчёта из файла.
- IPluginDataInputOutput - формат задания начальных данных и результатов расчёта для автоматизации и интеграции с другими приложениями.
- IPluginMenuExtender - расширение главного меню программы.
- Рядом с файлом проекта создайте папку Examples и положите в неё примеры использования программы SMath Studio с вашим дополнением. Это позволит проводить автоматическое тестирование вашего дополнения на этапе его сборки.
Обратите внимание, что для обеспечения максимальной совместимости вашего дополнения с различными платформами, везде, где необходимо производить отрисовку какой-либо графики, рекомендуется использовать библиотеку SMath Studio Drawing.
Отладка дополнения
В процессе разработки возникает необходимость проверки работоспособности созданного исходного кода. Для того, чтобы выполнить код вашего дополнения в контексте процесса SMath Studio выполните следующие шаги:
- Создайте сборки вашего дополнения в Visual Studio в режиме Debug (при этом будут также сгенерированы отладочные *.pdb файлы).
- Скопируйте выходные результаты в папку plugins, находящуюся в установочной директории программы SMath Studio.
- Запустите программу SMath Studio.
- При необходимости отладки с использованием точек останова используйте следующую функцию Visual Studio: Attach to Process..., доступную в меню Debug.
- В открывшемся диалоговом окне в списке доступных процессов выберите программу SMath Studio (обычно это - Solver.exe) и нажмите кнопку Attach.
Обратите внимание, что после любого изменения кода необходимо повторить все описанные действия.
Доставка созданного дополнения
Чтобы ваше дополнение стало частью стандартного процесса доставки дополнений пользователям, необходимо выполнить следующие шаги:
- Загрузите исходный код дополнения в публичный SVN репозиторий.
- Зайдите в Менеджер релизов проекта по адресу https://smath.com/ReleaseManager/ и создайте в нём новое дополнение, указав путь к его исходным кодам в публичном SVN репозитории.
- Соберите (кнопка Build) дополнение в Менеджере релизов, проверьте, что в логе нет никаких предупреждений и ошибок. Если предупреждения или ошибки были выявлены, то исправьте их и повторите сборку.
- После успешного прохождения этапа сборки опубликуйте (кнопка Publish) дополнение в реестре дополнений.
- Первый результат публикации дополнения может потребовать проверки и подтверждение со стороны команды SMath. Для ускорения этой процедуры необходимо связаться с разработчиками по адресу e-mail: support@smath.com.
- В итоге дополнение попадёт в реестр дополнений и будет доступно всем пользователям программы SMath Studio через Менеджер расширений, встроенный в программу.