Приветствую Вас, Гость! Регистрация RSS

QipClub

Пятница, 13-12-2024
Главная » 2008 » Февраль » 23 » QIP Infium .Net Plugin SDK
22:31:52
QIP Infium .Net Plugin SDK
Для любителей .NET написан модуль, который позволяет писать plugin'ы для QIP'а на любом .NET языке. Разрабатывалось и тестировалось на WindowsXP/MSVS2005/.NET2.0/QIP Infium beta 4 (SDK 1.3).
Базируется на 1.3.0 SDK на С++.

Список изменений, которые ожидаются в новой версии
  • Библиотеки отлажены и проверены для работы с J# (странная работа GC)
  • Исправлено конвертирование цвета из System.Design.Color в TColor
  • Возможно будет выложен архив с шаблонами проектов для VS2005



Версия 1.3.2952.26397
  • Исправлены некоторые баги
  • Начиная с этой версии у Вас есть возможность загружать только те файлы/исходные коды, которые вам нужны. Прим. Судя по всему модуль qip4net от версии к версии меняться не будет (если не будет глобальных изменений в QIP Infium SDK, касающихся IQIPPluginService и IQIPPlugin). Все новшевства будут вводится в модуль qip4net.types, который будет обновляться при появлении новых версий SDK. Таким образом, для разработчика plugin'а на платформе .net необходимо один раз скачать модуль qip4net и по возможности использовать последнюю версию модуля qip4net.types


Версия 1.3.2950.31082
  • Переработана структура модуля
  • Добавлены события для всех сообщений от ядра
  • Добавлены методы для посыла команд ядру в удобной форме (без использования OnPluginMessage)
  • Выделена постоянная часть (миниатюрный модуль, который является посредником Native<->Managed) и обновляемая часть (то, что более-ли-менее стало похоже на SDK). Обновляемая часть (qip4net.types) содержит описание всех типов, которые могут быть использваны в вушем plugin'е. Библиотека qip4net.types.dll должна находится одновременно в GAC и в любой другой папке на Вашем компьютере (см. примечания в конце поста).
  • Теперь нумерация версий ведется по версии сборки qip4net.types.dll (Правило формировния версии: QipSDKMajor.QipSDKMinor.qip4netSdkBuild.qip4netSdk Revision)
  • Программисты на ManagedC++ могут писать plugin прямо в модуле qip4net.dll. он будет загружен.


В аттаче:
  • [src]qip4net.types.zip - Исходники модуля qip4net.types
  • [src]qip4net.zip - Исходники модуля qip4net
  • [x86 dll]qip4net.types.zip - Модуль qip4net.types, собранный для архитектуры x86
  • [x86 dll]qip4net.zip - Модуль qip4net, собранный для архитектуры x86
  • [src C#]PluginTemplate.zip - Исходники шаблона для создания plugin'ов на примере C#

"Мануал" по созданию .net-plugin'ов (для версий не ниже 1.3.2950.31082)
Изначально для написания .NET-plugin'а вам потребуется модуль qip4net.dll (его желательно собрать из сырцов).
Затем вам необходимо модуль qip4net.types.dll поместить в GAC (Модуль написан на Managed C++, откомпилирован под платформу x86 и должен работать без пересборки).

Переименовываете модуль qip4net.dll так, как будет называться Ваш plugin (например MyFirstDotNetPlugin.dll).
Добавляете reference модуль qip4net.types.dll из проекта своего plugin'а и подключаете пространство имен qip4net (в нем определены все обертки).
Базовый класс вашего plugin'а должен быть public и должен наследоваться от класса qip4net.QIPPluginBase. (см. шаблон plugin'а)

Для установки plugin'а вам необходимо в папке [QipInfium]\plugins\ создать папку с названием, которое вы дали модулю qip4net.dll (в этом примере это MyFirstDotNetPlugin.dll, т.е. каталог мы называем MyFirstDotNetPlugin). Туда мы складываем файлы Вашего plugin'а, которые вы получили после компиляции и файл MyFirstDotNetPlugin.dll.

Все! Теперь запускаем (или перезапускаем кип и наслаждаемся) =)
Все замечания прошу писать - чем смогу - помогу! )

ПРИМЕЧАНИЕ
Данный принцип нарушает правило №5:
Цитата:
5. Все вспомогательные файлы для плагина хранить только в папке плагина. Путь к папке плагина хранится в FPluginInfo.DllPath.
Обоснование:
Каждый .NET-plugin должен иметь в своей основе модуль qip4net. Т.к. для всех плагинов требуются одни и те же функции и классы, они были вынесены в отдельную сборку (qip4net.types.dll). В силу специфичности технологии .NET было принято решение о том, что хранить это сборку проще всего в GAC, т.к. этот кэш поддерживает прозрачную версионность сборок. При этом при появлении новых SDK все плагины автоматически получают возможность его использовать. Таким образом мы избавляемся от необходимости хранить кучу абсолютно одинаковых файлов в разных папках.

В случае, если руководство приймет решение о том, что выбранные мною меры являются излишними, код будет переделан для соответствия требованиям.
Вложения
Тип файла: zip [src]qip4net.zip (9.0 Кбайт, 24 просмотров)
Тип файла: zip [x86 dll]qip4net.zip (16.0 Кбайт, 24 просмотров)
Тип файла: zip [src C#]PluginTemplate.zip (6.7 Кбайт, 24 просмотров)
Тип файла: zip [src]qip4net.types.zip (32.7 Кбайт, 24 просмотров)
Тип файла: zip [x86 dll]qip4net.types.zip (29.2 Кбайт, 20 просмотров)

http://forum.qip.ru/showthread.php?t=22704
Категория: Плагины | Просмотров: 879 | Добавил: Qipclub | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]