<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.oktell.ru/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://wiki.oktell.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83</id>
		<title>Рекомендации разработчику - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.oktell.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83"/>
		<link rel="alternate" type="text/html" href="https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;action=history"/>
		<updated>2026-04-30T11:30:03Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.23.1</generator>

	<entry>
		<id>https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8231&amp;oldid=prev</id>
		<title>Oktell Support в 10:59, 1 апреля 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8231&amp;oldid=prev"/>
				<updated>2014-04-01T10:59:00Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 10:59, 1 апреля 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 71:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 71:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;При необходимости разработчику доступен стандартный механизм отладки, для этого необходимо подключиться к процессу клиентского приложения Oktell, предварительно зарегистрировав в нем debug-сборку plugin-программы с дополнительным отладочным файлом.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;При необходимости разработчику доступен стандартный механизм отладки, для этого необходимо подключиться к процессу клиентского приложения Oktell, предварительно зарегистрировав в нем debug-сборку plugin-программы с дополнительным отладочным файлом.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| [[Встраиваемые_plugin-модули|Наверх]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| [[Сервисное взаимодействие|Сервисное взаимодействие&amp;lt;&amp;lt;&amp;lt;]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| [[Рекомендации разработчику]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| [[Объектная модель XML-парсера|&amp;gt;&amp;gt;&amp;gt;Объектная модель XML-парсера]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Oktell Support</name></author>	</entry>

	<entry>
		<id>https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8230&amp;oldid=prev</id>
		<title>Oktell Support в 10:58, 1 апреля 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8230&amp;oldid=prev"/>
				<updated>2014-04-01T10:58:51Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 10:58, 1 апреля 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Встраиваемые_plugin-модули|Наверх]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{|cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;| &lt;/ins&gt;[[Встраиваемые_plugin-модули|Наверх]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;| [[Сервисное взаимодействие|Сервисное взаимодействие&amp;lt;&amp;lt;&amp;lt;]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;| [[Рекомендации разработчику]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;| [[Объектная модель XML-парсера|&amp;gt;&amp;gt;&amp;gt;Объектная модель XML-парсера]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для разработки plugin-программы понадобится Visual Studio. Рекомендуется производить билд сборок под версию фреймворка, идентичную используемой Oktell. В настоящее время версия 2.5 использует по умолчанию Framework 1.1 (не забывайте ставить SP1). Эта версия уже установлена с клиентским приложением Oktell и всегда доступна на клиентских станциях. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для разработки plugin-программы понадобится Visual Studio. Рекомендуется производить билд сборок под версию фреймворка, идентичную используемой Oktell. В настоящее время версия 2.5 использует по умолчанию Framework 1.1 (не забывайте ставить SP1). Эта версия уже установлена с клиентским приложением Oktell и всегда доступна на клиентских станциях. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Oktell Support</name></author>	</entry>

	<entry>
		<id>https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8134&amp;oldid=prev</id>
		<title>Oktell Support в 15:02, 31 марта 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8134&amp;oldid=prev"/>
				<updated>2014-03-31T15:02:22Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:02, 31 марта 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 54:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 54:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Рекомендуется не производить множественных инициализаций в конструкторе управляющего объекта. Не всегда его создание сопровождается работой plugin-программы в полную силу. В частности, при действиях в администраторских модулях (задание свойств plugin-формы при редактировании диалоговых сценариев, просмотр списка подключенных plugin-программ) происходит невизуальное взаимодействие клиентского приложения с plugin-программой; создание управляющего объекта производится с целью проверки интерфейса, а также запроса идентификатора и перечня заявленных в нем форм. При этом plugin-программа всегда загружается в отдельный домен с последующей выгрузкой. Разумеется, не имеет большого смысла создавать сетевые подключения, инициализировать визуальные формы и другие объекты, используемые при реальной работе. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Рекомендуется не производить множественных инициализаций в конструкторе управляющего объекта. Не всегда его создание сопровождается работой plugin-программы в полную силу. В частности, при действиях в администраторских модулях (задание свойств plugin-формы при редактировании диалоговых сценариев, просмотр списка подключенных plugin-программ) происходит невизуальное взаимодействие клиентского приложения с plugin-программой; создание управляющего объекта производится с целью проверки интерфейса, а также запроса идентификатора и перечня заявленных в нем форм. При этом plugin-программа всегда загружается в отдельный домен с последующей выгрузкой. Разумеется, не имеет большого смысла создавать сетевые подключения, инициализировать визуальные формы и другие объекты, используемые при реальной работе. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Взамен, инициализацию визуальных форм рекомендуется проводить непосредственно при их вызове, невизуальные действия проводить при первом обращении на отображение диалоговой формы (или при вызове [[Сервисное взаимодействие#&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Объектная модель XML-парсера&lt;/del&gt;|DoQuery.pluginloaded]]).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Взамен, инициализацию визуальных форм рекомендуется проводить непосредственно при их вызове, невизуальные действия проводить при первом обращении на отображение диалоговой формы (или при вызове [[Сервисное взаимодействие#&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pluginloaded&lt;/ins&gt;|DoQuery.pluginloaded]]).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Oktell Support</name></author>	</entry>

	<entry>
		<id>https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8133&amp;oldid=prev</id>
		<title>Oktell Support в 15:01, 31 марта 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8133&amp;oldid=prev"/>
				<updated>2014-03-31T15:01:39Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:01, 31 марта 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 54:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 54:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Рекомендуется не производить множественных инициализаций в конструкторе управляющего объекта. Не всегда его создание сопровождается работой plugin-программы в полную силу. В частности, при действиях в администраторских модулях (задание свойств plugin-формы при редактировании диалоговых сценариев, просмотр списка подключенных plugin-программ) происходит невизуальное взаимодействие клиентского приложения с plugin-программой; создание управляющего объекта производится с целью проверки интерфейса, а также запроса идентификатора и перечня заявленных в нем форм. При этом plugin-программа всегда загружается в отдельный домен с последующей выгрузкой. Разумеется, не имеет большого смысла создавать сетевые подключения, инициализировать визуальные формы и другие объекты, используемые при реальной работе. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Рекомендуется не производить множественных инициализаций в конструкторе управляющего объекта. Не всегда его создание сопровождается работой plugin-программы в полную силу. В частности, при действиях в администраторских модулях (задание свойств plugin-формы при редактировании диалоговых сценариев, просмотр списка подключенных plugin-программ) происходит невизуальное взаимодействие клиентского приложения с plugin-программой; создание управляющего объекта производится с целью проверки интерфейса, а также запроса идентификатора и перечня заявленных в нем форм. При этом plugin-программа всегда загружается в отдельный домен с последующей выгрузкой. Разумеется, не имеет большого смысла создавать сетевые подключения, инициализировать визуальные формы и другие объекты, используемые при реальной работе. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Взамен, инициализацию визуальных форм рекомендуется проводить непосредственно при их вызове, невизуальные действия проводить при первом обращении на отображение диалоговой формы (или при вызове [[Сервисное взаимодействие#Объектная модель XML-парсера|DoQuery.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;PluginLoaded&lt;/del&gt;]]).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Взамен, инициализацию визуальных форм рекомендуется проводить непосредственно при их вызове, невизуальные действия проводить при первом обращении на отображение диалоговой формы (или при вызове [[Сервисное взаимодействие#Объектная модель XML-парсера|DoQuery.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pluginloaded&lt;/ins&gt;]]).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Oktell Support</name></author>	</entry>

	<entry>
		<id>https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8132&amp;oldid=prev</id>
		<title>Oktell Support в 15:01, 31 марта 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8132&amp;oldid=prev"/>
				<updated>2014-03-31T15:01:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:01, 31 марта 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 31:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для удобства работы с XML разработчикам предоставляется код пространства имен (namespace), в котором объявлены классы, преобразующие описанную в разделе &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;«&lt;/del&gt;[[Формат параметров и выходных значений|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;формат &lt;/del&gt;параметров]]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;» &lt;/del&gt;строку c XML-содержимым в объектную модель и наоборот. Формат работы с этими объектами будет рассмотрен отдельно в разделе «[[Объектная модель XML-парсера|Объектная модель XML-парсера]]».&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для удобства работы с XML разработчикам предоставляется код пространства имен (namespace), в котором объявлены классы, преобразующие описанную в разделе [[Формат параметров и выходных значений|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;«Формат &lt;/ins&gt;параметров &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;и выходных значений»&lt;/ins&gt;]] строку c XML-содержимым в объектную модель и наоборот. Формат работы с этими объектами будет рассмотрен отдельно в разделе «[[Объектная модель XML-парсера|Объектная модель XML-парсера]]».&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Oktell Support</name></author>	</entry>

	<entry>
		<id>https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8131&amp;oldid=prev</id>
		<title>Oktell Support: Новая страница: «Наверх  Для разработки plugin-программы понадобится Visual Studio. Реком...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83&amp;diff=8131&amp;oldid=prev"/>
				<updated>2014-03-31T15:00:13Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&lt;a href=&quot;%D0%92%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_plugin-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B8&quot; title=&quot;Встраиваемые plugin-модули&quot;&gt;Наверх&lt;/a&gt;  Для разработки plugin-программы понадобится Visual Studio. Реком...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Встраиваемые_plugin-модули|Наверх]]&lt;br /&gt;
&lt;br /&gt;
Для разработки plugin-программы понадобится Visual Studio. Рекомендуется производить билд сборок под версию фреймворка, идентичную используемой Oktell. В настоящее время версия 2.5 использует по умолчанию Framework 1.1 (не забывайте ставить SP1). Эта версия уже установлена с клиентским приложением Oktell и всегда доступна на клиентских станциях. &lt;br /&gt;
&lt;br /&gt;
При сборке в других версиях необходимо гарантировать наличие соответствующего Framework на всех клиентских компьютерах. Также стоит помнить, что исполняемая среда CLR дает возможность подгружать только те сборки, которые скомпилированы в среде текущей или более младшей версии. Таким образом, например при использовании plugin-программ, созданных и скомпилированных в 2.0,необходимо переключить комплекс на использование Framework 2.0 (в конфигурационном файле сервера и всех клиентских станций ключ supportedRuntime), в противном случае эта plugin-программа не будет загружена.&lt;br /&gt;
&lt;br /&gt;
Процесс разработки можно разделить на несколько этапов:&lt;br /&gt;
&lt;br /&gt;
#Установить Visual Studio. &lt;br /&gt;
#Установить Framework. &lt;br /&gt;
#Создать решение (solution). &lt;br /&gt;
#Создать проект (project) типа «Windows Control Library» (или «Windows Class Library»). &lt;br /&gt;
#Создать в проекте класс управления. &lt;br /&gt;
#Объявить в теле проекта в доступном для класса управления месте делегат для события OnQuery. &lt;br /&gt;
#В теле класса создать заглушки для всех интерфейсных методов и событие OnQuery. Приложением Oktell будет создан один экземпляр класса, соответственно методы должны быть нестатическими (у объекта, а не у класса). &lt;br /&gt;
#Обеспечить возврат обще-модульными методами идентификатора, названия и версии. &lt;br /&gt;
&lt;br /&gt;
Проект на этом этапе может быть собран, и результирующая подключена к Oktell. Из-за отсутствия каких-либо plugin-форм на этом этапе его дальнейшее полезное использование невозможно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В целях удобства разработки и экономии времени рекомендуется начинать разработку с реализации поставленных задач: формы, алгоритмы компоненты и вся начинка. А уже потом налаживать интерфейс и XML-форматирование параметров и производить связывание с Oktell.&lt;br /&gt;
&lt;br /&gt;
Для этого соответственно рекомендуется создать в текущем solution дополнительный тестовый проект типа «Windows Application», который будет обеспечивать вызов и отображение соответствующих форм и запуск соответствующих алгоритмов. Связать его статически с основным проектом и настроить его на работу с разрабатываемыми формами (это можно сделать как непосредственно, так и опосредованно через класс управления).&lt;br /&gt;
&lt;br /&gt;
При необходимости использования внешних компонентов и/или алгоритмов, реализованных в отдельных библиотеках или сборках, стоит их подключать уже на этапе тестового использования при разработке. Точно также стоит сразу начинать выстраивать множественность сборок (множественность проектов), если в дальнейшем планируется разрастание plugin-программы в объемное приложение.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
После того, как формы будут готовы, можно начинать осуществлять наладку интерфейса взаимодействия. Для этого вызовы, замкнутые на тестовый проект переводить в интерфейсные методы объекта управляющего класса. &lt;br /&gt;
&lt;br /&gt;
К этому времени уже известно какие стартовые формы (точки входа) имеются у программы и можно начинать кодировать и описывать в соответствующем виде возвращаемых значений. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для удобства работы с XML разработчикам предоставляется код пространства имен (namespace), в котором объявлены классы, преобразующие описанную в разделе «[[Формат параметров и выходных значений|формат параметров]]» строку c XML-содержимым в объектную модель и наоборот. Формат работы с этими объектами будет рассмотрен отдельно в разделе «[[Объектная модель XML-парсера|Объектная модель XML-парсера]]».&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Разработчику следует знать: plugin-программа (главная сборка и ее окружение) будет загружена приложением Oktell в отдельный домен. Это дает определенные преимущества, но также накладывает некоторые ограничения. Это необходимо принимать во внимание там, где это играет роль. При регистрации программы администратор Oktell может установить загрузку в домен приложения, а также выбрать момент загрузки - на старте или на первом обращении. В любом случае plugin-программа, если она еще не загружена, подгружается в отдельный домен для доступа к невизуальным методам при регистрации и настройке сценариев и/или меню.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Все вызовы plugin-программы стоят в блоках try..catch, и возникающие исключения логируются в журнал Plugin. Вызовы происходят в главном потоке приложения. Это также необходимо принимать во внимание. В частности, создаваемые контролы получают очередь обработки в основном потоке приложения. Таким образом, все необработанные исключения, получаемые в интерфейсе plugin-программы, будут влечь исключения главного потока и выбивание приложения Oktell. &lt;br /&gt;
&lt;br /&gt;
Для программ, подгружаемых в отдельный домен, может иметь смысл создание внутреннего потока обработки всех обращений из приложения Oktell и создание и запуск форм и контролов в этом отдельном потоке. Тогда исключения будут перехватываться в том домене, где осуществляет деятельность plugin-программа. Это не обязательная, и даже не рекомендованная стратегия. Однако рекомедуется оценивать перспективы возникновения исключений, и в целях снижения вероятности влияния исключительных ситуаций в plugin-программе на приложение Oktell чаще использовать перехват исключений (блок try..catch), особенно в местах обработки оконных событий. &lt;br /&gt;
&lt;br /&gt;
Для программ, подгружаемых в домен приложения, создание контролов ОБЯЗАТЕЛЬНО должно производиться в потоке приложения, так как в противном случае их размещение в окнах приложения Oktell станет невозможным. Это не касается диалоговых форм, имеющих собственное окно. Ранее это не имело значения и для контролов, так как механизм их размещения в клиентском приложении Oktell совпадал с используемым для работы отдельного домена.&lt;br /&gt;
&lt;br /&gt;
Уточнить, куда именно загружена plugin-программа, можно, например, сравнив пути '''Application.StartupPath''' и '''AppDomain.CurrentDomain.ApplicationBase'''. Для отдельных доменов базовым выставляется путь к папке, в которой лежит основная сборка.&lt;br /&gt;
&lt;br /&gt;
Plugin-программа, загружаемая в отдельный домен, может иметь свой конфигурационный файл. При создании домена путь к нему определяется как к главной сборке с дополнительным расширением «.config».&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Очень важно иметь обработку исключений (блок try..catch) в конструкторе управляющего объекта, в противном случае при попытке регистрации приложением Oktell будет выдаваться отказ по причине несоответствия интерфейса. Например, исключения может возникнуть при создании в конструкторе управляющего объекта других объектов, описанных в других сборках. При изменении классов, дополнении/изменении свойств, естественно могут возникнуть исключения. Рекомендуется их обрабатывать отдельно и уведомлять пользователя генерацией OnQuery.notify. Однако, подписка на OnQuery происходит после выяснения интерфейса. Поэтому возникающие в конструкторе исключения передавать через OnQuery нужно отложенным методом (например на первом вызове любого сервисного метода).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Рекомендуется не производить множественных инициализаций в конструкторе управляющего объекта. Не всегда его создание сопровождается работой plugin-программы в полную силу. В частности, при действиях в администраторских модулях (задание свойств plugin-формы при редактировании диалоговых сценариев, просмотр списка подключенных plugin-программ) происходит невизуальное взаимодействие клиентского приложения с plugin-программой; создание управляющего объекта производится с целью проверки интерфейса, а также запроса идентификатора и перечня заявленных в нем форм. При этом plugin-программа всегда загружается в отдельный домен с последующей выгрузкой. Разумеется, не имеет большого смысла создавать сетевые подключения, инициализировать визуальные формы и другие объекты, используемые при реальной работе. &lt;br /&gt;
&lt;br /&gt;
Взамен, инициализацию визуальных форм рекомендуется проводить непосредственно при их вызове, невизуальные действия проводить при первом обращении на отображение диалоговой формы (или при вызове [[Сервисное взаимодействие#Объектная модель XML-парсера|DoQuery.PluginLoaded]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В случае возникновения спорных моментов и проблем рекомендуется пользоваться стандартным лог-журналом (осуществлять в него запись в стандартном для Oktell виде через событие OnQuery).&lt;br /&gt;
&lt;br /&gt;
Для удобств отладки рекомендуется иметь в программе флаги, при включении которых (возможно средствами интерфейса форм самой программы) осуществляется отображение или логирование всех вызовов, xml-параметров и возвращаемых значений. &lt;br /&gt;
&lt;br /&gt;
В конфигурационном файле клиентского приложения Oktell в отладочных целях можно выставлять значение ключа &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Debug_PingErrorRestart&amp;lt;/span&amp;gt; в &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;. Это исключит перезагрузку клиентского приложения по отсутствию или таймауту PING с сервером, что происходит в случае приостановки всех потоков во время отладки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
При необходимости разработчику доступен стандартный механизм отладки, для этого необходимо подключиться к процессу клиентского приложения Oktell, предварительно зарегистрировав в нем debug-сборку plugin-программы с дополнительным отладочным файлом.&lt;/div&gt;</summary>
		<author><name>Oktell Support</name></author>	</entry>

	</feed>