之前根据BizTalk的订阅原理,使用BizTalk管理控制台创建了第一个应用程序 Hello World。但是由于控制台的开发功能有限,绝大多数的BizTalk程序都是在集成开发环境Visual Studio下进行的。下面我们在Visual Studio下创建Hello World2程序。其功能是将源消息的两个字段组成第三个字段并保存到目标消息。[效果图如下]


  

  此程序主要是为要熟悉BizTalk相关的开发组件包括:Schema, Mapping , Pipeline, Orchestration的开发。Receive/Send Port的配置等。以下是开发的一些步骤:

  1.创建应用程序

    打开Visual Stuido,依次点击 文件->新建->项目. 在程序名称和路径中填上相应的名称和路径。点击确定创建应用程序

2.创建架构(Schema)

右击BizTalk项目,依次点击 添加->新建项. 在弹出的对话框中的左侧导航栏中选择Schema文件,在右侧的模板中选择Schema.在名称中选择输入Schema的名称。

   

在打开的Schema编辑器中右击Root.依次点击 Insert Schema Node->Child Field Element.

  依次创建两个子元素,并命名为:para1和para2(元素默认为字符串值)。Schema命名空间按默认值。

  

  按以上方法创建目标Schema.文件名为:TargetSchema.架构视图如下:

2. 创建映射(Map)

右击BizTalk项目,依次点击 添加->新建项. 在弹出的对话框中的左侧导航栏中选择Map 文件,在右侧的模板中选择Map.在名称中选择输入Map的名称。

在打开的编辑器的左侧窗口中点击 Open Source Schema 在打开的对话框中选择BTSHelloWorld2.SourceSchema.在右侧窗口点击Open Destination Schema. 在打开的对话框中选择BTSHelloWorld2.TargetSchema.

打开源与目标架构之后,依下图连接源与目标节点。目标架构的string节点是由para1和para2连接而。在map编辑的工具窗口选择String Concatenate Functoid.

3.创建业务流程(Orchestration)

3.1  如前所述。右击BizTalk项目,依次点击 添加->新建项. 在弹出的对话框中的左侧导航栏中选择Orchestration 文件,在右侧的模板中选择Orchestration.在名称中选择输入Orchestration的名称。

3.2 创建消息。打开Orchestration文件,在Orchestration
View窗口中新建两个消息分别为:SourchMsg和TrgetMsg。其类型分别为:BTSHelloWorld2.SourceShema和
BTSHelloWorld2.TargetSchema。如果当前编辑环境中没有Orchestration View可以在View->Other Windows->Orchestration View中打开视图

3.3 创建和配置业务流程

 如图中所示为已经配置完成的流程图形状,实现此流程需要做以下几步。

  • 从工具栏中选择Receive , Transform , Send 三个形状以图中所示位置排列好。
  • 在Receive形状的属性窗口的消息属性中选择刚才创建的SourceMsg。双击Transform在弹出的窗口中选择已存在映射并  在下拉框中选择BTSHelloWorld.StringMap.在SourceDestination中分别选择SourceMsgTargetMsg。在Send 形状的属性窗口的消息属性中选择刚才创建的TargetMsg
  • 在Receive形状的属性窗口的Active属性选择True.表示活动端口以激活业务流程实例
  • 创建接收端口:从工具栏中选择Port形状,拖放到左侧Port Surface中.在端口配置向导中按照提示分别输入:端口名称端口类型,“从此端口接收消息”“稍后配置”。
  • 创建发送端口:从工具栏中选择Port形状,拖放到右侧Port Surface中.在端口配置向导中按照提示分别输入:端口名称端口类型,“从此端口发送消息”“稍后配置”。

4 创建接收的发送管道(Pipeline)

  4.1 接收管道(Receive Pipeline)

如前所述。右击BizTalk项目,依次点击 添加->新建项. 在弹出的对话框中的左侧导航栏中选择Pipeline文件,在右侧的模板中选择Receive Pipeline.在名称中选择输入Pipeline的名称。

  打开Receive Pipeline 从工具箱中选择XML disassembler组件,拖放到Disassemble阶段。

4.2 发送管道(Send Pipeline)

 发送管道的创建方法和接收管道类似,只是在选择模板时选择发送管道。在Pipeline编辑器中选择 XML Assemble组件拖放到Assemble阶段。如下图所示:

5. 部署BizTalk项目

至此BizTalk的项目开发到这里就基本上完成了。可以生成项目文件看有没有错误信息。接下来需要将BizTalk项目部署到BizTalk
主机中。由于BizTalk的程序集需要安装到GAC(全局应用程序缓存)中。所以需要给程序集添加签名。方法是在Visual studio
的命名窗口中输入如下命令:

sn -k e:\projects\btshelloworld2\btshelloworld2.snk

 创建应用程序签名之后。在BizTalk应用程序的属性页的Assembly Key File里引用签名。

在配置属性的Build窗口里填上应用程序的名称,并验证服务器是否为本机。从别的机器上拷贝的程序需要注意这一点。

 养成良好的习惯,配置解决方案的配置将程序的部署选择上。这对于较大的BizTalk开发有帮助。通过解决方案部署Visual Studio会判断程序之间的关系先后部署。

 配置完之后右击解决方案。选择部署解决方案即可。

6. 配置和启动应用程序。

 应用程序部署完之后,就可以在BizTalk管理控制台上看到相应的程序。右击该程序,选择配置。在配置应用程序页中分别为程序配置主机接收端口发送端口

 6.1 创建接收端口

  由于接收端口稍微复杂一点。所以我们以创建接收端口为例。发送端口可参照接收端口的做法创建。首先在应用程序配置页的接收物理端口的下拉框中选择新建接收端口。在弹出的对话框中输入接收端口名称。在左边的导航栏中选择接收位置。在接收位置对话框中输入名称。接收管道选择自定义的接收管道名称(发送端口则选择自定义发送管道名称)类型选择FILE. 点击Config。在弹出的FILE传输对话框中输入接收位置

 

配置向导会显示相应完成的部分。都配置好之后,点击确定即可。

 

 6.2 启动应用程序

  右击应用程序点击启动。在弹出的对话框中再次点击启动。

7. 测试程序

 BizTalk程序部署完成了。那下一步就是需要测试程序。测试程序需要源数据,这个源数据不需要我们手动创建。我们可以借助Schema编辑器的生成实例功能生成源数据。右击SourceSchema.选择Generate Instance

 

在Visual Studio的输出窗口中可以查看到生成文件的地址,打开文件并更改相应的内容。(如果想指定输出文件的路径。可以右击SourceSchema选择属性在对话框中的输出文件里填上文件的路径即可。)

<ns0:Root xmlns:ns0="http://BTSHelloWorld2.SourceSchema">
<para1>Hello </para1>
<para2> World!</para2>
</ns0:Root>

 在配置的输出位置我们可以看到相应的输出文件。

8.总结

 至此我们完成了整个程序的开发。此Sample涵盖了Schema, Map, Pipeline, Orchestration的开发。BizTalk应用程序的部署及配置等。希望以此都够让你对BizTalk的开发有个大概的了解。

BizTalk开发系列(七) Hello World2的更多相关文章

  1. BizTalk 开发系列(四十一) BizTalk 2010 BAM 安装手记

    使用64位系统可以支持更大的内存,现在服务器基本上都使用64位系统.微软从Windows Server 2008 R2开始服务器版的操作系统也只支持64位了,不过对于像BizTalk这种“繁杂的东西” ...

  2. BizTalk开发系列(三十三)BizTalk之Excel终极解决方案

    Excel作为优秀的客户端数据处理程序得到了广泛的应用. 由于其简单又强大的功能在很多公司或个人的数据处理中占用非常重要的位置. 而BizTalk作为微软的SOA主打产品虽然免费提供了很多Adapte ...

  3. BizTalk开发系列(二十八) MSMQ 适配器

    MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...

  4. BizTalk开发系列(二十二) 开发自定义Map Functoid

    尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ...

  5. BizTalk开发系列(十八) 使用信封拆分数据库消息

    之前写了一篇的<BizTalk开发系列(十七) 信封架构(Envelop)> 是关于信封架构及其拆装原理的,都是理论性的内容.信封在BizTalk开发过程中最常用的应该是在读取SQL Se ...

  6. BizTalk开发系列(二十五) SQL Adapter

    SQL Server 是.NET开发的首选数据库.当然开发BizTalk应用程序很多也离不了SQL Server.针对SQL Server的数据操作BizTalk 提供了SQL Adapter作为与数 ...

  7. 微信小程序开发系列七:微信小程序的页面跳转

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

  8. BizTalk开发系列(二) "Hello World" 程序搬运文件

    我们在<QuickLearn BizTalk系列之"Hello World">里讲到了如何快速的开发第一个BizTalk 应用程序.现在我们来讲一下如何把这个程序改成用 ...

  9. BizTalk 开发系列(四十二) 为BizTalk应用程序打包不同的环境Binding

    我们在使用微软或者其他公司提供的BizTalk应用程序MSI包的时候经常会有一个目标环境的选择选项.该选项可以在不同的环境下使用不同的绑定(BizTalk应用程序配置)感觉很高级. 其实这个非常的简单 ...

随机推荐

  1. react-redux(1)

    基础 Array.prototype.reduce //类似的核心思想 const initState = ''; const actions = ['a', 'b', 'c']; const new ...

  2. express-6 请求和响应对象(1)

    URL的组成部分 协议: 协议确定如何传输请求.我们主要是处理http和https.其他常见的协议还有file和ftp. 主机名: 主机名标识服务器.运行在本地计算机(localhost)和本地网络的 ...

  3. 黑客语(Leet)

    黑客语(Leet)   Leet是从网络发展起来的一种文字书写方式.通常将英语中的字母替换为数字和特殊符号.这种方式被很多黑客组织所使用.由于具有隐密性,所以它也广泛被用于密码中.使用Leet书写的密 ...

  4. 07 JavaWeb

    软件开发的两种架构:c/s和b/s          * C/S     client/server     客户端/服务器     例子:QQ     快播     暴风影音...          ...

  5. wpf中手风琴控件Accordion编辑模板后控件不正常。

    昨天有个网友Accordion控件从sl迁移到wpf时候显示不正常.也是就没有效果. 我也是sl做的比较多,wpf玩的少,Accordion模板里触发器,状态组调了一早上都没达到满意效果, 无奈只有百 ...

  6. 简单的实现UIpicker上面的取消确定按钮

    1 因为我用的xib实现的添加picker 和textfiled的, @interface ViewController : UIViewController<UITextFieldDelega ...

  7. 使用Gson排除特定字段

    http://blog.csdn.net/hknock/article/details/51037564

  8. 微软开放WP开发者回复用户应用评论功能

    1   4月18日,据The NextWeb网站报道,微软今天公布了一项新的开发者试点项目:回复Windows Phone应用评论.该公司表示,它们将在本周推出这项功能,不过目前仅对部分开发者开放. ...

  9. git 学习笔记7--branch

    分支是git的必杀技. 站点另一个角度,分支是的快照移动有向图,刚好是拓扑排序的一种例子. basic git branch testing #创建分支 git checkout testing #切 ...

  10. java基础-操作符

    浏览以下内容前,请点击并阅读 声明 定义:操作符是一种能够对一个,两个或三个操作对象执行特定的操作,并返回一个结果的特定符号. java中操作符的种类和优先级如下表所示,除了赋值运算,所有二元操作符运 ...