Мы продолжаем цикл статей, в которых делимся с вами своим опытом поддержки MS BizTalk Server 2010. В данной статье мы расскажем об инструменте, который сэкономит вам кучу времени! Речь пойдет о пайплайнах (Pipelines), а точнее о пайплайн-компонентах (Pipeline components). Ссылка на первую статью находится тут. В ней вы найдете немного общей информации о том, что такое MS BizTalk Server и для чего он может вам понадобиться.
![image](https://habrastorage.org/files/cf6/c9c/8c9/cf6c9c8c99a44678b1d487fb3d01f4ec.jpg)
Пайплайн – это элемент (чаще говорят артефакт) инфраструктуры приложения BizTalk Server, который содержит в себе .Net- или COM-компоненты для обработки входящего сообщения в определённой последовательности.
BizTalk Server предоставляет большой набор компонентов для пайплайнов, так сказать «из коробки». Для небольших приложений его бывает вполне достаточно. Но когда речь идёт о больших корпоративных решениях без компонентов собственной разработки не обойтись.
Для тех, кто знаком с данной темой, я уверен, не будет новостью, что на msdn имеются статьи на тему «Как разрабатывать собственные пайплайн компоненты». Там подробно расписаны типы компонентов, процесс создания проекта в Visual Studio, пространства имён, которые следует подключить, какие интерфейсы реализовать и т.п. Тут важно понять, что сделав один компонент, другой вы будете разрабатывать каждый раз аналогично. Знать это важно, но есть вариант, который позволит вам сэкономить время на подготовке проекта и сосредоточить своё внимание на написании кода. И это BizTalk Server Pipeline Component Wizard (страница проекта на codeplex). Дополнение для VS 2010 (имеется и для более свежих версий), которое в несколько простых шагов позволяет создать проект пайплайн-компонента, готовый к выполнению вашего кода, остаётся лишь его туда добавить.
И так есть задача:
Наша компания получает от клиентов заказы в виде файлов разных форматов. BizTalk Server имеет стандартный набор компонентов для работы с файлами в формате XML и текстовыми файлами, но для файлов других форматов придётся разрабатывать пайплайн-компонент, который будет конвертировать его в XML.
Но ближе к делу:
1. Со страницы проекта на codeplex скачайте архив plcwsrc2.20.
2. Для установки разархивируйте plcwsrc2.20 и вы получите проект для Visual Studio. Откройте и соберите проект и из папки the PipelineComponentWizard Setup project, запустите setup.exe.
3. Запустите Visual Studio 2010 и создайте новый проект BizTalk Server Pipeline Component Project.
![image](https://habrastorage.org/files/c3d/96d/f85/c3d96df8567943d98dc9ad76503882ac.png)
4. Далее откроется Wizard, который предложит нам заполнить некоторые поля.
![image](https://habrastorage.org/files/f24/af3/9e1/f24af39e12f1473aa2bfb1061bee8057.png)
5. В следующем окошке нам предлагается внести имя компонента, версию и описание
![image](https://habrastorage.org/files/a4d/a6b/c13/a4da6bc13f694a48b665b8ed845f8f53.png)
Так же двойным кликом на
можно сменить иконку компоненты (размер 16х16). Собственная иконка компоненты облегчит её поиск в списке компонентов. Выберем одну из стандартных иконок BizTalk
![image](https://habrastorage.org/files/c87/5d6/4d9/c875d64d90e5485c8312f9102ca2c334.png)
6. Далее предлагается добавить параметры компоненты. Параметры необязательны, но для примера добавим одно. Параметры так же доступны из Visual Studio для установки значений по умолчанию.
![image](https://habrastorage.org/files/d78/d12/725/d78d12725bbd4bd09a947c45be244e26.png)
7. Далее нажмите Next, затем Finish. Wizard создаст проект пайплайн-компоненты. В проекте будет два файла: cs ? скелет нашего компонента и .resx – содержит свойства с именем, описанием и версией. В сгенерированном классе у вас будет несколько секций:
• публичные переменные — параметры компоненты;
• IBaseComponent members – определяет свойства, которые предоставляют сведения о компоненте;
• IPersistPropertyBag members – определяет методы подготовки, загрузки и сохранения свойств компонента;
• IConponentUI – определяет значок компоненты и метод который проверяет, что все свойства заданы правильно;
• IComponent – определяет метод, запускающий обработку компонентой входящего сообщения.
Пример кода, который будет выполняться в методе Execute() этой компоненты:
![image](https://habrastorage.org/files/00a/80c/91e/00a80c91ed394291b5f7576d10366316.jpg)
В нашем случае это главный и единственный метод, в котором происходит обработка входящего сообщения. Так же важно, чтобы выходные данные, которые вы запишете в pInMsg.BodyPart.Data были стримом, являющимся XML. Для этого можно использовать обычный XmlWriter. Более того, так же должна быть .xsd схема сообщения, которое выходит из компоненты.
![image](https://habrastorage.org/files/a7a/107/f19/a7a107f1930f4d2c81a3b9440a482a45.png)
8. Соберите проект и скопируйте получившуюся DLL в C:\Program Files (x86)\Microsoft BizTalk Server 2010\Pipeline Components, но это необязательное условие, можете выбрать любую другую папку и закройте проект.
9. В Visual Studio откройте проект с пайплайном, в который хотите поместить свою компоненту, далее в контекстном меню Toolbox -> Choose items-> BizTalk Pipeline Components, в списке выберите свой компонент и перенесите его на пайплайн.
Так же нам доступно единственно нами созданное свойство. Мы можем установить его значение по умолчанию перед деплоем сборки на BizTalk Server.
![image](https://habrastorage.org/files/90a/6a9/f03/90a6a9f030904256af7d09f05b5d0d57.png)
10. Cоберите и задеплойте сборку с пайплайном на BizTalk Server.
Готово! Вот так, в несколько простых шагов в своём приложении можно использовать пайплан с компонентой собственной разработки.
![image](https://habrastorage.org/files/cf6/c9c/8c9/cf6c9c8c99a44678b1d487fb3d01f4ec.jpg)
Пайплайн – это элемент (чаще говорят артефакт) инфраструктуры приложения BizTalk Server, который содержит в себе .Net- или COM-компоненты для обработки входящего сообщения в определённой последовательности.
![image](https://habrastorage.org/files/604/9b7/639/6049b763901f4c0e927ff233a356ccff.gif)
Для тех, кто знаком с данной темой, я уверен, не будет новостью, что на msdn имеются статьи на тему «Как разрабатывать собственные пайплайн компоненты». Там подробно расписаны типы компонентов, процесс создания проекта в Visual Studio, пространства имён, которые следует подключить, какие интерфейсы реализовать и т.п. Тут важно понять, что сделав один компонент, другой вы будете разрабатывать каждый раз аналогично. Знать это важно, но есть вариант, который позволит вам сэкономить время на подготовке проекта и сосредоточить своё внимание на написании кода. И это BizTalk Server Pipeline Component Wizard (страница проекта на codeplex). Дополнение для VS 2010 (имеется и для более свежих версий), которое в несколько простых шагов позволяет создать проект пайплайн-компонента, готовый к выполнению вашего кода, остаётся лишь его туда добавить.
И так есть задача:
Наша компания получает от клиентов заказы в виде файлов разных форматов. BizTalk Server имеет стандартный набор компонентов для работы с файлами в формате XML и текстовыми файлами, но для файлов других форматов придётся разрабатывать пайплайн-компонент, который будет конвертировать его в XML.
Но ближе к делу:
1. Со страницы проекта на codeplex скачайте архив plcwsrc2.20.
2. Для установки разархивируйте plcwsrc2.20 и вы получите проект для Visual Studio. Откройте и соберите проект и из папки the PipelineComponentWizard Setup project, запустите setup.exe.
3. Запустите Visual Studio 2010 и создайте новый проект BizTalk Server Pipeline Component Project.
![image](https://habrastorage.org/files/c3d/96d/f85/c3d96df8567943d98dc9ad76503882ac.png)
4. Далее откроется Wizard, который предложит нам заполнить некоторые поля.
![image](https://habrastorage.org/files/f24/af3/9e1/f24af39e12f1473aa2bfb1061bee8057.png)
5. В следующем окошке нам предлагается внести имя компонента, версию и описание
![image](https://habrastorage.org/files/a4d/a6b/c13/a4da6bc13f694a48b665b8ed845f8f53.png)
Так же двойным кликом на
![image](https://habrastorage.org/files/c9f/4cb/051/c9f4cb05120c44e69b3724f8532b4462.png)
![image](https://habrastorage.org/files/c87/5d6/4d9/c875d64d90e5485c8312f9102ca2c334.png)
6. Далее предлагается добавить параметры компоненты. Параметры необязательны, но для примера добавим одно. Параметры так же доступны из Visual Studio для установки значений по умолчанию.
![image](https://habrastorage.org/files/d78/d12/725/d78d12725bbd4bd09a947c45be244e26.png)
7. Далее нажмите Next, затем Finish. Wizard создаст проект пайплайн-компоненты. В проекте будет два файла: cs ? скелет нашего компонента и .resx – содержит свойства с именем, описанием и версией. В сгенерированном классе у вас будет несколько секций:
• публичные переменные — параметры компоненты;
• IBaseComponent members – определяет свойства, которые предоставляют сведения о компоненте;
• IPersistPropertyBag members – определяет методы подготовки, загрузки и сохранения свойств компонента;
• IConponentUI – определяет значок компоненты и метод который проверяет, что все свойства заданы правильно;
• IComponent – определяет метод, запускающий обработку компонентой входящего сообщения.
Пример кода, который будет выполняться в методе Execute() этой компоненты:
![image](https://habrastorage.org/files/00a/80c/91e/00a80c91ed394291b5f7576d10366316.jpg)
В нашем случае это главный и единственный метод, в котором происходит обработка входящего сообщения. Так же важно, чтобы выходные данные, которые вы запишете в pInMsg.BodyPart.Data были стримом, являющимся XML. Для этого можно использовать обычный XmlWriter. Более того, так же должна быть .xsd схема сообщения, которое выходит из компоненты.
![image](https://habrastorage.org/files/a7a/107/f19/a7a107f1930f4d2c81a3b9440a482a45.png)
8. Соберите проект и скопируйте получившуюся DLL в C:\Program Files (x86)\Microsoft BizTalk Server 2010\Pipeline Components, но это необязательное условие, можете выбрать любую другую папку и закройте проект.
9. В Visual Studio откройте проект с пайплайном, в который хотите поместить свою компоненту, далее в контекстном меню Toolbox -> Choose items-> BizTalk Pipeline Components, в списке выберите свой компонент и перенесите его на пайплайн.
Так же нам доступно единственно нами созданное свойство. Мы можем установить его значение по умолчанию перед деплоем сборки на BizTalk Server.
![image](https://habrastorage.org/files/90a/6a9/f03/90a6a9f030904256af7d09f05b5d0d57.png)
10. Cоберите и задеплойте сборку с пайплайном на BizTalk Server.
Готово! Вот так, в несколько простых шагов в своём приложении можно использовать пайплан с компонентой собственной разработки.
Поделиться с друзьями
x893
Немного монструозный стал BizTalk — особенно если знать о SiteServer. Хотя задачи можно решать практически все по обработке.