Ben Runchey’s Integration Dev Blog

a.k.a Ben’s spot to put stuff he does not want to forget

What I Learned Yesterday 9

Been a while since I have apparently “learned anything” so there is much to cover

  • MSMQ is becoming more popular as Windows gets further and further into the enterprise and while I have some experience with it, I am by no means a complete expert.  This blog here does give a ton of information about MSMQ and all it entails.  While the title of this blog is “MSMQ from the Plumber’s mate”.  I think the name of the individual is John Breakwell.  I plan on reading this blog quite a bit.
  • On the topic of BizTalk Application deployment
    • The BizTalk Explorer Object model appears to provide the best intuitive access to programmatically manipulate BizTalk artifacts.  While the WMI classes are there, they are kind of archaine to work with.  This object model is pretty sweet.  Lots of good examples found in the SDK\Samples\Admin\ExplorerOM directory.
    • Automated deployment – while I was thinking about writing a script that would be a generic build – deploy – export msi type script for Biztalk, it is working out that these things become beasts onto themselves if you try to make them too generic.  Not to mention when you are giving the script to a person who really does not know that much about BizTalk, they are NOT going to be able to follow it.   So I am thinking about putting together more of a tool kit that contains a template showing how to use the BTSDeploy tool in conjunction with the Settings File Generator from Tom Abraham to ease Biztalk deployments. 
  • XSLT – Lots of stuff learned here.  I have used this sparingly in the past, but have been into it pretty good in the last few weeks.
    • Converting uppercase to lower case and vice-versa had me stumped, but found this handy article here which solved my problem. 
    • Grouping and sorting – while lots of examples show how to do this, doing it w/ multiple fields was not as easy to find.  This article here from Tech Republic shows how to get it done.  Check out the section titled “Multiple Criteria”.
    • When accessing elements in an XSL and the source document has a namespace that you have aliased with a prefix, don’t forget to use the prefix when accessing those sub elements. 
  • SaaS hosting
    • Google just released their application Google Apps the other day.  I have to day this looks pretty sweet having a whole hosted location up in the clouds to run an application from. Did I mention it is free (up to a point)!  While I think this does alot for moving forward the concept of a platform at a great price (free), and I think it will make all of those sexy social computing concepts much easier to build, it still misses some of the needs of the business apps market.  The reason I say this is the database support is based on a “Table” approach rather than a relational database approach.  While I understand why they don’t want to host a RDBMS in the sky it is still easier to write reports off these than off xml or tables. 
    • I think SalesForce is going to get crushed by this offering by Google.  How can these guys who from what I can tell are not really having much success with their platform convince people just starting out that they are worth paying for?
    • I am thinking that the tools that MS seems to be putting together are going to provide a platform based on .NET, BizTalk Services and SharePoint Services that will be a pretty good competitor to this.  Again this is going to come down to price and if MS wants to make a go of this making it free for smaller shops is definitely going to help them out.
    • Where is Yahoo in all of this?  Oh yeah they are busy telling people how great they are.  Well guys show us!

April 8, 2008 Posted by | Uncategorized | , | 1 Comment

What I Learned Yesterday 6

  • To enable edit and contiue I had to uninstall the Windows SDK debugging tools.  Apparently this had a profiler running which did not allow for me to do the edit and continue in vs 2005.   Life is much better now.  I had actually never used this in 2005 previously.
  • BizTalk CrossReferencing API – looks like this is the way to solve those pesky file counters that some people like to use to avoid duplicate files or as a reference point. Again since I feel like all I do is regurgitate things that other people have already writted good blog posts on I will just do some simple link forwarding on this one.  The first one is by a guy named Eric (not sure about his last name) and can be found here.  While the other one is by Brian Loesgen and can be found here.   
  • Using the Looping functoid and the Table looping functoid together does not always work so well.  Please see my sample post to follow shortly on why these two don’t work together.
  • BizBert has put together a great group of articles about the BizTalk Mapper.  Lots of information about functoids, performance, etc. You can find it here.

February 28, 2008 Posted by | BizTalk, Visual Studio 2005, What I Learned Yesterday | , , | Leave a comment

What I Learned Yesterday 3

  • I have never really spent any time trying to figure out the trusted vs. untrusted host concept in BizTalk.  Then finally the other day I was moving an application from my virtual machine to one that a client of mine was using.  In the process when trying to apply the binding file, my hosts were all marked as trusted, while his hosts were not marked as trusted.  Just to make sure we were not getting into something that would create a problem I did a little research and found this great article by Richard Seroter about when the “trusted” flag comes into play.  It appears it plays an important role when you want to pass through the credentials of the calling application/user to the destination system.
  • Been spending a lot of time with SharePoint recently mostly on the integration side in pushing documents to SharePoint using the BizTalk SharePoint services adapter.  But I also had a need to delete some files, create directories and sub directories within Document Libraries.  All of the things that I cannot easily do with the SharePoint Adapter.  Or if I can, it is not easily figured out. So I am using the WSS Web Servicesto do all of the things that the Adapter does allow me to do.  Doing a search on “sharepoint services web services” brings up a whole host of articles people have written in the past, so I won’t go into it.  The really interesting thing about these are how you can tell their age from the signatures.  Rather than having a good strongly-typed object to pass into a method, all of the methods take either a string, or an int, or just an xml document which must adhere to a structure. The documentation covers all of this, but it is definitely easier coding to a strongly-typed object than an xml document.  Misspellings can become a real pain.  Also, for queries CAML is used, which while understandable is really again quite archaic
  • Continuing to work with BTS Task and found out a gotcha about the “Overwrite” flag in the AddResource option.  In order for you to overwrite the files you need to have all of the hosts that are referencing them turned off, or at least not have the file loaded into memory just yet.  That killed about 30 minutes as I tried to figure out why it would not let me overwrite a file.
  • Windows Sharepoint Services Adapter for BizTalk.  Remember there are two parts to this guy.  One the adapter runtime which must be installed on the biztalk server itself.  The other is the WebService side.  If you look at the site you install the adapter into there is an application named BTSharePointAdapterWS within it which runs inside of a different app pool than the site this application is in.  The moral of the story is that any SharePoint server you want to send a message to using the adapter must have this web service installed.  I will put up a post on this a bit later describing what to do.

January 16, 2008 Posted by | What I Learned Yesterday | , , | Leave a comment

What I Learned Yesterday 1

 – Beware the BizTalk 2006 R2 Trial edition.  Ran into a situation where the trial edition was installed and had expired.  I was unaware that it was the R2 trial edition, since in the the list of adapters none of the WCF adapters where present.  So I thought I would just reinstall the Enterprise version of 2006.  This created lots of problems with WMI and ruined my Virtual Image.  Good thing there was a backup of the image.  So uninstalled it first off the image the second time around and everything looks good so far.

– Installing a custom Biztalk application.  While I really like Scott Colestock’s Deployment Framework for BizTalk, not all of the places I do work at are quick to embrace it.  I think because sometimes it is like killing a fly with a sledgehammer for smaller applications.  So as an alternative I have been spending some time with BTSTask and just creating a batch file to execute which adds my additional resources and binding files.  This in conjunction with the Deploy command in visual studio creates a rather easy way to get a BizTalk application to export a valid .msi file.

–  I was out the other day and found out about a cool appliation from the MSDN Architecture Center for reading the Architecture Journal, which can be downloaded here.  While I could go into detail here about all of the interesting and handy features it has Richard Seroter has already done this on his blog here.

– Last piece is the about book that I am almost done reading Pro WF by Bruce Bukovics is really well put together in my opinion.  It is not really about building one application so much as it is about disecting all of the pieces that make up WF.  For a BizTalker such as myself I really enjoyed it because I can see how many of the components translate directly to things I deal with every day in BizTalk orchestrations such as compensation, dehydration, tracking, etc.  Now I just have to get my “I owe you lunch application” updated to use it. 

January 2, 2008 Posted by | BizTalk, What I Learned Yesterday | , | Leave a comment