保护 BizTalk 项目免受意外系统故障的影响应是首要任务。 保护项目文件的一种方法是使用源代码管理系统(如 Team Foundation Server 源代码控制和Microsoft Visual SourceSafe)。 本主题讨论组织项目以最好地使用任何源代码管理系统的基本策略,然后提供有关使用 Visual SourceSafe 的具体建议。
基本组织策略
无论最终使用的源代码管理系统如何,都可以遵循一些基本组织策略。 这些策略可确保 BizTalk 项目的文件结构为开发和源代码控制而组织得当。
为解决方案和项目使用一致的文件夹结构
如果整个团队使用用于存储 Visual Studio 解决方案和项目的通用结构,则团队中的开发更易于管理。 当每个 BizTalk 项目生成和使用文件(如生成、测试和部署团队所需的绑定文件)时,这尤其如此。
通常很容易开始开发,而无需花时间对文件夹结构进行标准化。 随着项目链接和测试工具在解决方案开发过程中需要“修补”,这不可避免地会花费更多时间。
保持源代码管理和文件系统结构相同
为了简化多个开发人员环境的管理,请在源代码管理系统中设置与本地文件系统结构匹配的文件夹结构。 这有助于确保开发人员只需获取最新版本并知道磁盘上的结构符合团队的标准。
定义和使用通用根文件夹
建议将所有项目代码和可交付结果保留在单个文件夹根下,这些根目录可在所有开发人员的计算机上依次创建。 当所有开发人员使用相同的根时,可以简化管理开发项目和维护一致的配置。 例如,在 Visual SourceSafe 中创建 $/SysInteg2009 的根文件夹,所有开发人员都可以在其本地文件系统上创建 C:\SysInteg2009。
创建一个包含所有项目的主解决方案
主解决方案通常用作主要构建解决方案。 对于中等到高复杂性的 BizTalk 项目,建议这样做。
将所有 BizTalk 项目存储在主解决方案下
在主解决方案下组织所有相关 BizTalk 项目非常有用。 源代码管理系统中的结构应镜像此层次结构。
将文件夹结构划分为共享和 Process-Specific 部分
创建文件结构时,通常会将文件夹结构划分为将共享实体与特定于业务流程的实体分开。 共享实体是多个项目所共有的,可能包括辅助类。
例如,以下列表中的前三个文件夹按共享实体进行组织,最后两个文件夹按业务流程进行组织:
C:\SysInteg2009\_Master_Solution\Shared\
C:\SysInteg2009\_Master_Solution\Shared\EmailHelper
C:\SysInteg2009\_Master_Solution\Shared\SharedSchema
C:\SysInteg2009\_Master_Solution\AccountRequest\
C:\SysInteg2009\_Master_Solution\AccountValidate\
将管道项目分成不同的项目
在开发管道组件期间,修改和重新测试独立于解决方案其余部分的管道是一个常见要求。 因此,将管道解决方案保留为单独的 BizTalk 项目通常很有帮助,这会导致可以删除和重新部署单独的管道程序集,而无需重新绑定解决方案的其余部分。
此外,在单独的项目中保留实现实际管道接口和管道处理逻辑的代码,以及从 BizTalk 项目(包含 .btp 文件)到 C# 或 Microsoft Visual Basic .NET 项目的引用是常见的做法。
将部署和测试脚本与项目一起保存
为了支持统一构建和部署过程的开发,各个开发人员应负责构建和安装脚本,但这些脚本应被视为完整解决方案中的可重用部分。 如果编写脚本是可重用的,则部署完整的解决方案包等任务可以重复使用脚本。 例如,如果部署和取消部署脚本接受参数来指定 DLL 和绑定文件文件夹位置的路径,则当编译的 BizTalk Server 程序集位于其他位置时,可以重复使用这些脚本。
使用此方法,开发人员将特定进程的安装脚本添加到文件夹中,然后可以轻松编写单个进程来执行所有进程的完整部署。
适当时使用唯一的强名称键
通常,单个 Visual Studio 解决方案使用单个密钥文件。 这是真的,因为解决方案被视为单个实体,并按此类方式进行管理。 如果正在开发的业务解决方案实际上由两个或多个不同部分组成,请考虑是否应使用两个关键文件。 在此方案中,多个键允许将来将部件视为独立的实体,例如,具有不同的升级路径。
在考虑帮助程序项目时,需要注意相同的注意事项。 如果帮助程序项目是(或将是)单独的实体,则应使用单独的强名称键生成它。
将依赖 DLL 放入单独的文件夹中
创建文件夹结构时,创建公共文件夹以保存作为文件依赖项引用的 DLLS 会很有帮助。 通过确保所有开发人员都遵循相同的文件夹结构,在开发人员或工作站之间移动解决方案时,文件引用不会中断。
在“Msgs”文件夹中保留测试邮件
开发架构并使用消息时,通常会花费大量精力针对 XML 架构和业务流程进程测试许多不同的示例消息。
在实际解决方案中,示例消息是一个有价值的资产,因为它们包含对业务解决方案有意义的数据。 同一消息中的随机值或虚拟值通常会导致进程失败。 因此,示例消息应处理得与解决方案代码一样谨慎。
为了帮助管理邮件文件,请将测试邮件保留在名为“msgs”的特定文件夹下。 如果同时存在“生成的实例”和“示例消息”(例如来自现有系统的消息),则保持这些消息是分开的,以允许在开发架构与实际数据之间进行比较非常有用。
集成项目中通常具有多个版本的架构,因此有多个版本的消息文件。 若要区分示例消息,请对文件进行命名时使用版本号。
管理其他文件
某些类型的文件可以分组并存储在不同的文件夹中;其他文件可以与其他文件一起存储在公共文件夹下。 制定有关如何处理每种文件类型的策略,然后一致地遵循该策略。
使用 BizTalk Server 和 Visual SourceSafe
本部分讨论使用 Visual SourceSafe 的具体注意事项,包括处理 Unicode、使用 Visual Studio 进行源代码管理、何时签入、版本控制和其他问题。
解决方案字符集
与处理 Unicode 文件相关的 Visual SourceSafe 存在已知限制。 使用 BizTalk 解决方案时,必须防止 Visual SourceSafe 损坏 BizTalk Server Unicode 文件。
使 Visual SourceSafe 能够使用 BizTalk Server Unicode 文件
启动 Visual SourceSafe 8.0 管理工具。
选择要使用的 SourceSafe 数据库。
在 “工具” 菜单上,单击 “选项” 。
单击“ 文件类型 ”选项卡。
将以下内容添加到二进制文件列表的末尾。 验证每种文件类型之间是否存在分号:
*.btm;*.btp;*.xsd;*.odx
单击 “确定” 。
现在,Visual SourceSafe 不会检查 BizTalk Server 文件并尝试更改其格式。
使用 Visual Studio 进行源代码管理操作
应在 Visual Studio 中使用集成的 Visual SourceSafe 支持菜单来执行 Visual SourceSafe 中所有项目的创建和操作。 请勿使用 Visual SourceSafe Explorer 来执行这些作。
何时在 BizTalk Server 项目中签入
建议使用 Visual SourceSafe 的方法是仅在代码成功通过功能测试,并且开发人员确信代码能够生成且不会影响相关代码时才签入。 将此模型应用于 BizTalk Server 会导致以下准则:
在针对各种示例消息成功测试架构之前,不应签入仅包含消息架构的 BizTalk 项目。
在解决方案使用适当的输入和输出消息以及正确的发送和接收端口成功测试解决方案之前,不应签入包含业务流程的 BizTalk 项目。
ASP.NET Web 服务项目不应签入,除非 Web 服务代码已针对启动系统或使用测试工具进行测试。
如果遵循此模型,Visual SourceSafe 存储库将始终保存可以成功生成和测试的版本。 如果要坚持“夜间建设”的方法,这一原则非常重要。
检查中间版本签入
签入文件的替代方法是签入“中间”版本。 在此方法中,中间版本尚未成功通过功能测试,可视为“在生成之间”。这通常不是推荐的方法,因为它打破了始终在源代码管理系统中具有可生成版本的一般原则。 但是,某些团队更喜欢这种方法,因为它允许开发人员使用源代码管理系统签入和回滚版本,而无需满足在正式构建中签入的条件。
如果需要检查中间版本的方法,则无法假定源代码管理系统包含“可生成”版本。 相反,必须区分中间版本和生成版本。 通过使用 Visual SourceSafe,您可以以多种方式执行此操作,无论是自动化还是基于流程。 例如:
开发人员遵循将“可生成”版本添加到 Visual SourceSafe 时通知生成管理器的过程。
开发人员将已测试的版本签入 Visual SourceSafe 中的“提升区域”,以便准备进行构建。 然后,此升级区域用作主生成所基于的源。
可以使用 Visual SourceSafe COM 接口编写代码或脚本。 例如,特定标签可用于表示已准备好生成的代码,脚本将搜索此标签,然后将此源“固定”到单独的 Visual SourceSafe 分支中。 然后,此分支用作主版本的基础。
比较文件
可以使用 Visual SourceSafe 查找 BizTalk Server 源文件的两个不同版本之间的差异。 这可以通过工件来完成,包括地图、模式和相关文件,例如测试消息,甚至导出的配置文件。
注释
在比较地图时,您必须在将地图签入版本控制系统之前进行编辑,否则 Visual SourceSafe 将在查找它与下一个版本之间差异时进行二进制比较。 这是因为编码信息只有在您编辑地图 XML 后才会被添加。
非 BizTalk Server 项目文件的版本控制
BizTalk Server 使用可在 Visual SourceSafe 中有效进行版本控制并存储的其他文件。 以下文件是示例:
绑定文件(开发和测试)
自定义管道程序集
测试数据(例如测试消息)
测试工具(可能会在项目生命周期内发生更改)
需要在开发和构建团队之间共享的生成、部署以及启动和停止脚本
如果这些文件与特定的 Visual Studio BizTalk 项目相关,则可以将其包含在 BizTalk 项目中,并使用 Visual Studio 集成源代码管理函数进行管理。
将文件或文件夹包含在现有 Visual Studio 项目中
在解决方案资源管理器中,单击“ 显示所有文件”。
选择要包含在解决方案中的文件夹或文件。
右键单击文件夹或文件,然后单击“ 包含在项目中”。
注释
不应使用 Visual SourceSafe 资源管理器来管理属于源代码管理下 Visual Studio 项目的任何项。
检查 Visual SourceSafe 数据库
当 Visual SourceSafe 数据库很大、大量使用或被许多并发用户访问时,建议从 Visual SourceSafe 菜单定期运行“分析 VSS DB”命令。 如果分析检测到错误,则可以使用“分析和修复 VSS DB”命令修复这些错误。 这两个命令都需要锁定 Visual SourceSafe 数据库,因此需要每个人都与 Visual SourceSafe 断开连接。