Checking in BizTalk file before editing can corrupt the file

We’ve all been there…
When you are working with a team of developers (whether two or ten),
who are collaborating on a project in Visual Studio.Net, there
certainly is the chance that you will need to add a new file to the
solution.  Of course, to do this you have to check out the project
file locking it for yourself.

Play Nice!
The courteous thing to do (karma, right?) is to add your file and
immediately check in the new project file with your newly added file
(as long as it doesn’t break the build 🙂 ).  Try doing this in
BizTalk sometime (if you already haven’t) and watch the quick
destruction of your file.  Once you start editing that file again
and check it back in you get a nice little warning about the encoding
type changing.  Visual Source Safe does not handle this very
gracefully; Visual Source Safe does not handle this at all.  You
will be fooled into thinking your file is safe because you are working
with the version on your local disk but the next time one of your team
members gets the latest version of your project the file will be toast.

What the …?
The issue here is that when you create new files in VS.net it likes to
create them as UTF-8 encoded files.  Seems like a good idea; a
nice standard encoding type.  BizTalk, however, has to be
different and save everything as UTF-16.  Once again, another
nice, standard format.  However, visual source safe is completely
oblivious to the change in encoding types an will gladly assume that
your are still managing a UTF-8 encoded file.

The Moral
You can still be a gracious team member and have a quick
turn-around on adding new files to the project but just give those
files a little edit first before you check everything in.

Advertisements

5 thoughts on “Checking in BizTalk file before editing can corrupt the file

  1. In visual sourcesafe administration you need to tell sourcesafe to these biztalk files as binaries.  This will fix all problems with sourcesafe and biztalk projects.
     
    Hope this helps

  2. Except you lose some functionality in VSS when you do that .. but I agree it is certainly a solution to the problem.  I think as long as you know to problem exists then it should be easy enough to work around as binary or otherwise.

  3. Hey J, Here is my situation i have a message A comming from one system and i have to validate that messasge with message B comming from other system, So till i get that message B i need put my message A in Queue and once i get the message B from the other system i need to validate and then process the message A. How can i handle this situation in BTS. Can you please help me out here…
     

  4. Hey J, Here is my situation i have a message A comming from one system and i have to validate that messasge with message B comming from other system, So till i get that message B i need put my message A in Queue and once i get the message B from the other system i need to validate and then process the message A. How can i handle this situation in BTS. Can you please help me out here…
     

  5. Vijay … you will most likely want to use a sequential convoy (link here).  You will need to correlate the two messages using a correlation set (perhaps on an ID of some sort) in order for them to match up.  If they will not necessarily arrive at the same time you can use a parallel shape or a looping timer.  There are many ways to go with this.  If you are guaranteed the order … go with the sequential convoy.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s