Проекты

Network Plugin Provider

Данный плагин позволяет обновлять и загружать список плагинов по сети. Для этих целей используется данные в формате XML, которые получаются с сервера и сохраняются в локальной папке.

Плагин использует аргумент коммандной строки SAL_Path для поиска XML файла Plugins.Network.xml и массива плагинов, описанных в XML файле.

В качестве разделителя, для массива путей, используемых в аргументе коммандной строки SAL_Path, используется символ «;». В случае отсутствия аргумента коммандной строки SAL_Path, для поиска плагинов используется текущая директория запуска исполняемого файла хоста.

Для развёртывания плагинов на клиенте, достаточно добавить XML файл Plugins.Network.xml (Пример находится в архиве) со следующим содержанием:


<?xml version="1.0" encoding="utf-8" ?>
<Plugins Path="http://api.server.com/SAL_Plugins/">
</Plugins>

По пути указанному в атрибуте Path узла Plugins, должна быть указана абсолютная ссылка на папку, в которой будет осуществлён поиск аналогичного XML файла и массива плагинов, который будет скачан локально. Прежде чем качать файлы с сервера, будет осуществлено 2 проверки:

  1. Синхронизация XML файла с содержимым папки, если файлов не хватает, то будет запрошено обновление с сервера.
  2. Запрос HTTP заголовка Last-Modified XML файла на сервере. Если дата последнего изменения файла на сервере больше даты изменения файла на диске, то будет запрошено обновление с сервера.

После скачивания всего массива плагинов, плагин обновит локальный XML файл, XML файлом с сервера и после каждого следующего запуска, будет сравнивать содержимое локального XML файла с содержимым удалённого XML файла.

Пример файла на сервере


<?xml version="1.0" encoding="utf-8" ?>
<Plugins Path="http://api.server.com/SAL_Plugins/">
	<Plugin Name="Kernel.Empty" Path="Kernel.Empty.dll" Description="Empty kernel library for generic host" Version="1.0.0.0"/>
	<Plugin Name="Plugin.RDP" Description="Remote Desktop Protocol Client" Version="1.0.1.0">
		<Assembly Name="Interop.MSTSCLib" Description="Assembly imported from type library 'MSTSCLib'." Version="1.0.0.0"/>
		<Assembly Name="AxInterop.MSTSCLib" Description="Assembly imported from type library 'MSTSCLib'." Version="1.0.0.0"/>
	</Plugin>
	<Plugin Name="Plugin.Autorun" Description="Autostart application after system starts" Version="1.0.0.0"/>
</Plugins>

Теги:

Скачать

Родительские файлы