tags:

views:

720

answers:

3

I have a situation were I need to reference a schema in two different BizTalk applications.

I could either:

Put the schema in one application and make the other applications have a reference to it.

OR

Put the schema in a common application and all other applications have a reference to this common application.

However, in both the above cases if there are any changes to the schema I end up having to rebuild/redeploy all the applications having a reference to the schemal. Is there a better way of organizing the applications?

+1  A: 

I am not sure im understanding your question, so correct me if i am off base.

You should organize your schemas as their own assembly that can be independently deployed to all the applications that need it. They can then be referenced by other projects during development. After deployment if changes are made to the schemas; the schema assembly just has to be updated on the server; the reference to the schema from the applications will be maintained.

hope this helps.

Victor
+3  A: 

From the Microsoft Biztalk Operations Guide:

Deploy shared artifacts in a separate application - If artifacts are going to be shared by two or more applications, deploy the shared artifacts into a separate application. For example, if two applications share a schema, place the schema in a separate application. We recommend this because only one artifact in a BizTalk group can have a single locally unique identifier (LUID). A LUID consists of the artifact name and optionally other attributes. If you include an artifact in one application, and then create a reference to it from another application, the referring application may not function correctly when you stop the application containing the artifact. This best practice applies to all artifact types except for files, such as Readme files and scripts, which are added to the application as a File type of artifact. This is because more than one file artifact with the same name can be deployed in a BizTalk group. Therefore, you can use a file having the same name in two or more applications. In this case, stopping one application will not impact the other application. For more information about adding file artifacts, see "How to Add a File to an Application" in BizTalk Server 2006 R2 Help at http://go.microsoft.com/fwlink/?LinkId=106818.

The schemas going in the shared app really shouldn't change as they're shared and this is a major event. If you are adding schemas or modifying existing maps, there is no need to rebuild old apps. You may have to recycle dependent host instances to get them to refresh their in memory copies of the dll. Otherwise should be 95% hassle free.

ChrisLoris
+1  A: 

We put our common schemas and functionality into a separate application.