Biztalk project naming conventions

落爺英雄遲暮 提交于 2020-01-15 06:17:09

问题


When starting a BizTalk project I generally follow the naming conventions found here. Where you name your projects and assembly's something like:

MyCompany.MyProject.Orchestrations.dll
MyCompany.MyProject.Schemas.dll
MyCompany.MyProject.Pipelines.dll
MyCompany.MyProject.Transforms.dll
MyCompany.MyProject.PipelineComponents.dll

A couple of questions for other BizTalk folks:

1) I usually find myself having more than one project with schemas or a need to separate schemas. Do you stick them in separate assemblies and if yes, what convention do you then follow for naming the project/assembly. If no, do you stick them in a subfolder in one assembly.

2) I believe, could be wrong, that it's been sort of a BizTalk convention to name the project and assembly the same, like above. I've thought about getting away from naming the projects the same as the full assembly name, so I might have the project named Maps and it's assembly is named MyCompany.MyProject.Maps. Do others do this?


回答1:


Starting with BTS 2009 we named our projects and assemblies according to the application they belong to plus an optional sub-application or concern scope:

MyCompany.Biz.MyFirstApp.dll
MyCompany.Biz.MyFirstApp.Util.dll
MyCompany.Biz.MyFirstApp.ConcernOne.dll
MyCompany.Biz.MySecondApp.dll

We took the path to keep orchestrations, schemas and maps together because multi-assembly dependencies can make deployment a real hassle.

Our main goal was to separate source and target systems to avoid direkt references. We achieved this be introducing "core" components for all concerns we're dealing with:

BTS application MyFirstApp

MyCompany.Biz.MyFirstApp.OrderProcessing.dll
MyCompany.Biz.MyFirstApp.Util.dll

BTS application CORE

MyCompany.Biz.CORE.OrderProcessing.dll

BTS application MySecondApp

MyCompany.Biz.MySecondApp.OrderProcessing.dll

Both MyFirstApp and MySecondApp will reference schemas in CORE.OrderProcessing.


Update

MyCompany.Biz.MyFirstApp.OrderProcessing would contain the message schema for incoming order documents and a map for mapping those into the core order message schema (contained in MyCompany.Biz.CORE.OrderProcessing). If needed it could also contain an orchestration for receiving messages and (receive) pipeline components (when dealing with flat files for example).

MyCompany.Biz.MySecondApp.OrderProcessing would contain the message schema for outgoing documents and a map for mapping from the core order message schema (to outgoing).

In this basic layout CORE will merely be a container for your internal message schemas but it will be the best location to add information to your order documents - for example an orchestration which awards a global discount for class A customers (Business Rules!). In short basically any step you'd do twice or even more times when sending or receiving messages and you do not want to touch if incoming or outgoing message schemas changes or new application is added.




回答2:


Here is a wonderful BizTalk Naming Conventions guide from Scott Colestock



来源:https://stackoverflow.com/questions/4136315/biztalk-project-naming-conventions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!