Welcome to MSDN Blogs Sign in | Join | Help

Minty Fresh

BizTalk, coding, observations, and whatever else crosses my path.

Syndication

Verbatims

We spend a bit of our time interacting with customers, partners and other concerned citizens who take the time to write out some feedback. Microsoft is very customer focused and spends time working through these "verbatims" at different levels. The Connected Systems Division User Assistance team is very interested in verbatims. We love them.

But how do we love them? Let me count two of the ways in this post.

First, we love the ones with the volume cranked up to 11. These types of verbatims usually include the word "suck" or one of its more colorful synonyms. These verbatims send a clear message because they are short, erudite sound bites -- "BizTalk Server sucks!", "This help sucks!", "It sucks!" or, my favorite, "Microsoft sucks!"  Why limit the feedback to a particular product or content set when you can score one against the Man?

Some variants of "you suck" show a level of caring and/or skill on the part of the writer, adopting the words of George Carlin with sophistication and grace. Things like "*#&$^!" and "(#&$$ (#*$&$!" and "(*#& LOLZ!" Poetry, ingenious poetry. If only Walt Whitman were alive.

Unfortunately, this type of verbatim contains little that is actionable. Sure, we get that you are frustrated with a product, feature, API, writing style, tone, font size, font color, MSNBC, the Talking Heads "Remain in Light" album cover on your Zune, and smarmy blogs, but be sure to be explicit. Go ahead and use "suck" or a selection from Carlin or Pryor, but make sure you include an explicit reference to what sucks. For example:

  • "This type sucks because it is marked for internal use but you use it in one of your samples!" A fair variant would be "*&#&#! Why does sample <SupaSample> use this type when it is marked internal use only?" A citation to Pryor for the *@&# would be an awesome extra.
  • "Microsoft sucks...and so does the fifth parameter in this method because it is redundant/misspelled/not used/etc." Microsoft sucks, check. Parameter five has a problem that we can fix to improve the customer experience, check!
  • "Suck suck suck suck suck / suck suck suck suck suck suck suck / Snippet fails compile" We love haiku. This is art and information wrapped up in 17 syllables.

That last one has not, to my knowledge, actually been submitted.

We love existential comments. One day I was flicking the scroll wheel through a pile of verbatims and ran across the following:

Why won't someone help me?

Haven't we all felt this way about our computers, our lives and the universe? Why won't someone make my document print on the printer ten feet away from my office instead of in the copy room in the Kilgore, Texas branch? Why won't someone make this compile? Why can't I ski on hundred dollar bills while a DJ plays my favorite 80's tunes? Why won't someone help me?

Existential questions are poignant but not actionable without details. We want to help, we truly want to help remove the pain and angst, but unless we get some key details it is difficult. Throw in a few details:

  • "Why won't someone help me identify the best practices for this <feature>?" 
  • "Is there anyone out there who can give me a working code snippet?"
  • "What, me worry about throttling memory thresholds when running an orchestration that does <some cool task>?"
  • "Why? Why must I press cancel to accept the option for the <feature>?"

So go ahead and examine the metaphysical life of mankind in your feedback to Microsoft, but make sure to include a clear actionable item so we can do something while we ponder. Give us something to go on.

We do read your comments and ask that you send more.  In my next post, I will count a few more ways.

Posted Friday, May 02, 2008 10:59 AM by ebattalio | 1 Comments

BizTalk Server R2 Scale-Out Configuration Poster

Are you interested in a concise summary of some of the scale-out options for BizTalk Server R2?  How about if the summary was a poster you could print out, tack to a wall, and cover with Post-It's?

If so, look no further than the BizTalk Server 2006 R2 Scale-Out Configurations poster. It shows the architecture for:

  • Single Server
  • Basic Scale-Out
  • Advance Scale-Out

Take a look and then share your thoughts. Is it useful?  Did you print it out?  Do you have ideas for other posters or content?

Posted Friday, January 18, 2008 9:11 AM by ebattalio | 2 Comments

Filed under:

Nifty Community Content, part 1

BizTalk Server has a vibrant community full of smart folks offering up tricks, tips and gems. Some great sites include the following listed in no particular order and definitely incomplete: 

  •  BizTalk Server at Codeplex.
    • The BizTalkDisassembler add-in for .NET Reflector is a great addition to one of my favorite tools on the net. Use the BizTalkDisassembler to sniff around BizTalk application assemblies to learn how a solution is compiled or to better understand an existing solution.
    • BizUnit provides a solid framework for unit testing your BizTalk Server solution. Download the framework and leverage it in your next BizTalk Server project or use it to verify enhancements to an existing solution.
    • Automate BizTalk Server tasks using the BizTalk Server provider for PowerShell. You use PowerShell, right?
    • Got orchestrations?  Profile them using the BizTalk Server 2006 Orchestration Profiler. As the project page says, "this tool can be run to gain a consolidated view of orchestration tracking data for a specified period of time to help developers get an idea of how their orchestrations are being processed and how much coverage they are getting in their testing".
    • The BizTalk Server Pattern Wizard provides a way to capture and reuse orchestration patterns. This is a great tool for ensuring orchestration uniformity across projects and can be easily extended as needed.
    • Have the BizTalk Server 2006 Documenter capture your application details in a chm for posterity (and baselining). This is one of those "well duh" tools and is a natural companion to BizTalk Server...like one of those buddy-buddy flicks. Maybe Eddie Murphy in Beverly Hills Cop. Maybe.
    • Check out the TCPIP Adapter, the ADO Adapter, the Patterns and Practices Enterprise Service Bus guidance, and other projects.
  • BizTalk Server Newsgroups. Participate in the BizTalk Server newsgroups to find answers to common questions, discover tips and tricks, and contribute expertise to the community. 
  • Blogs

If I forgot your blog or your favorite site, drop me a line and I will put them on "part 2".

Posted Friday, June 01, 2007 7:37 AM by ebattalio | 0 Comments

Filed under: ,

MSD Magazine: 8 Tips and Tricks For Better BizTalk Programming

Marty and Scott have an article in this month's MSDN Magazine, "8 Tips and Tricks For Better BizTalk Programming". Each tip (I am not giving any away) is reinforced with useful details and examples. The article also includes a short list of resources for new BizTalk Server 2006 developers.

Take a look.

Posted Tuesday, April 17, 2007 11:15 AM by ebattalio | 0 Comments

Filed under:

How To Download BizTalk Server 2006 R2 Beta 2

BizTalk Server 2006 R2 Beta 2 is now available from the Microsoft Connect Site.

If you are not a member of the BizTalk Server 2006 R2 connect community, you can still get a copy of the beta through the Microsoft Connect Site, but it takes some persistence.

1.       Navigate to the Microsoft Connect Site, https://connect.microsoft.com/.

2.       Sign in using your Passport credentials.

3.       On the right side of the Connect home screen, click My Participation.

4.       On the My Participation screen, click available connections.

5.       On the Available Connections screen, scroll down to the nomination section, find the BizTalk Server 2006 R2 Beta row, and then click Apply.

6.       On the Terms of Use screen, click I Agree if you agree. If you don’t agree, click Cancel.

7.       Enter your registration information then click Register.

8.       Once you pass the registration gauntlet, you will land on the BizTalk Server 2006 R2 Beta release website.  Click the Downloads link located in the left-hand gutter of the page.

9.       Breathe deeply, you are almost there.

10.   On the BizTalk Server R2 Downloads page, click BizTalk Server R2 – Beta 2 Release. (Bonus:  If you want to take a look at the NET LOB Adapter Pack and WCF LOB Adapter SDK, it is available as well.)

11.   On the BizTalk Server R2 Download Details page, choose a distribution source and then click Download.

12.   D’oh! You will need to install “Microsoft File Transfer Manager 5.0 (Build 0027)” if you have not already installed it. Allow the control to install.

13.   In the Transfer Manager, confirm the download location.

14.   While it is downloading, go grab the installation or upgrade documentation here.

<Insert flames about the number of steps required to get the bits here.>

Posted Tuesday, April 03, 2007 1:09 PM by ebattalio | 1 Comments

Filed under:

BizTalk Server 2006 Documentation in PDF

Do you have a hankerin' for a 117 meg (55 meg compressed) PDF file containing the full documentation set (almost 20k pages) for BizTalk Server 2006?  Hanker no more because it is now available here.

Is this too much to digest at one sitting?  Let me know how you would like the content split up and I'll see what we can do.

Posted Tuesday, March 27, 2007 7:54 AM by ebattalio | 1 Comments

Filed under:

:O
Still lurking...

Posted Tuesday, March 20, 2007 7:53 AM by ebattalio | 1 Comments

Filed under:

Repurposing Content

There are software tools for just about anything these days.  One class of tools lets users like you and me convert a CHM into other formats including, not surprisingly, PDF. Sure, you could grab a copy of most of the BizTalk Server 2006 documentation from the Developer Center (a zip that contains a PDF for each major bucket under the root doc node) and get down to PDF'ing quickly. It doesn't contain everything (the SDK is omitted), but does contain the major buckets including Getting Started, Developing, etc. Even though it is a few months old, it is still reasonably fresh. You could grab this file, dump one of the PDF's to your Windows CE-capable phone, and head out for some quality offline reading. Or print a few hundred pages.

Or you could grab some software and convert choice topics into your own custom CHM. If this is appealing, you could cobble together your own solution using some open source goodness, Word 2007 and some c# -- mix it all up in a pot like gumbo -- and convert CHM's with your own tech. By doing it yourself, you could take CHM topics (they are HTML inside the CHM), run your own XSL transform against them to remove header/footer and other stuff you don't want, override the CSS if the mood strikes you, then run it through Word with the PDF export and weave together some custom stuff. PDF stuff. Or XPS stuff. Whatever.

If the latter appeals to you -- a guerilla tool for converting CHM's -- what features would you expect?  What kind of UI would make it happy to use? I tend to write tools like this to be command-line driven or they can be batched up and then duct-taped to other processes in a workflow. I don't do UI's. But if this were "Project UI", what would you look for?

Look for bits sometime soon.

Posted Tuesday, February 27, 2007 8:44 AM by ebattalio | 0 Comments

Filed under: ,

The 80's Called...

And they want their music back.  You do too?  Check out Club 977 The 80's Channel and plug in.

Come on Eileen!

Posted Monday, February 26, 2007 1:14 PM by ebattalio | 0 Comments

Filed under:

BizTalk Server SDK Sample Uber Collection

The uber collection of all SDK samples published to the BizTalk Server developer center has gone live here. Make sure you have some megs available on yer hard drive -- about 50 or so -- or you will be unhappy when you unpack 'em.

I caught a couple of episodes of "new" Scooby Doo and thought they were more hip than the ones I grew up with. Charm has its place, but the new Scoob is great with plenty of bones thrown to the adults. Thanks to the Woodinville branch of the King County Library system for having Scooby Doo sitting on the shelves. (I saw "Rogurt" at the grocery store -- yep, "go gurt" with Scooby Doo. Great marketing.)

Zoiks!

Posted Wednesday, February 21, 2007 8:21 AM by ebattalio | 1 Comments

Filed under:

Pinging
Still here, just not full of compelling content for the ol' blog.

Posted Monday, February 19, 2007 2:11 PM by ebattalio | 1 Comments

Filed under:

Have Questions?

Do you have any questions about BizTalk Server that you have been itching to ask but haven't? Post them here or send them to me v/o this blog and I will try to chase down an answer. 

Here are a few disclaimers/rules/humorous asides:

  • No existential questions. I can barely figure out the traffic signal timing along Avondale Road let alone the meaning of life, the universe, and everything.
  • I am not an official support channel. I am unofficial -- casual support? Something like that. Contact customer support if you need official support.
  • Play Lumines II while waiting for me to respond. Now that I am out of the prime demographic for video games (and everything hip), I am likely late to the block-spinning, light-flashing, video-playing party. Better late than never. If you have a PSP, Lumines II is one of the few compelling games out there.
  • No questions about Lumines II. I stink. I think I got to a level with a Hoobastank video, but I don't know.
  • Questions about the documentation and other content are most welcome. Why do we have so many/so few how-to's? Where are the samples about ____? Etc.

Ask away.

Posted Tuesday, January 30, 2007 7:36 AM by ebattalio | 0 Comments

Filed under:

BizTalk Server SDK Sample Boxed Set

We have received a few requests to create a single zip file containing all of the SDK samples on the BizTalk Server Developer Center Code Samples page. Since this is something I can do quickly outside of formal channels, I grabbed a copy of all of the samples and crammed them into a single zip:

BizTalk Server SDK Sample Boxed Set 

This collection was made from all of the samples available 1/22/2007; I also threw in the current version of the Minty Fresh DBFunktoids. Unzipped, the directory takes about 50 megs. It includes all of the following:

appmgmtusingsso, bamhatcorrelation, consoleadapter, consumewebservices, correlation, customnettypeinorchestration, dbaccessusingdtc, DBFunktoids, deliverynotification, directboundtomessagebox, directboundtoorchestration, exceptionhandling, extension, failedtrackingdatabrowser, insertxmlnode, longrunningtx, loopingfunctoid, mappingrepeat, masscopyfunctoid, orchestrationinformation, parallelconvoy, policychaining, pubconswebsvcsoap, recoverableinterchangeprocessing, scatterandgather, simplerolelink, splitfilepipeline, sqladapterusingdtc, ssoconfigurationsource, tableloopingfunctoid, valuemappingfunctoid, webserviceconsuming

Look for an official collection available on the Code Samples page in the next month or so. But in the meantime, get your BizTalk Server on with the unofficial zip.

Groovy!

Posted Monday, January 22, 2007 9:49 AM by ebattalio | 1 Comments

Filed under:

Eclipse

Short post, this one.

While flying around the west coast, I fell into a discussion of the relative merits of Eclipse versus Visual Studio. I tend to use Visual Studio and, for smaller files or quick edits, Ultra Edit. I did take a look at Eclipse a few years ago but haven't really had a need or desire to revisit.

Our conversation ultimately focused on add-ins and, specifically, how the Eclipse refactoring tool is better than the Visual Studio refactoring tool. I don't spend too much time refactoring -- not that I am the Mozart of code, writing perfect code the first time but rather that I use a hybrid refactoring approach that involves heavy use of ctrl-c/ctrl-v and search and replace. So my opinion isn't too relevant.

Your opinion is relevant. To what extent do you use Eclipse while developing BizTalk Server solutions. Are there useful add-ins for this? Where is Visual Studio missing functionality?

Speak out! 

Posted Friday, January 19, 2007 10:24 AM by ebattalio | 1 Comments

Filed under:

So You Want To Write An Orchestration?

Is there a BizTalk Server 2006 orchestration in your future? This post is a modest attempt to catalog some of the many useful tidbits of information out on the web. It will evolve over time.

  • Legend
    • blog = blog post 
    • core = BizTalk Server 2006 core documentation hosted on MSDN.
    • lib = non-core docs at Microsoft
    • other = general resource out on the vast interweb
    • wp = BizTalk Server 2006 whitepaper

Still not sure about the legend but since I used one for the map content, I'll use it here. And now for the material:

  • For the Newby
    • About Orchestrations (core) - basic overview topic describing what an orchestration is along with its basic components. It includes many relevant child topics, some of which are called out below; others are less important but worth a look for the newby.
    • The Orchestration Design Surface (core) - a quick shake-down of the orchestration development UI. Nice to see all of the features so you know they are there if you need them.
    • Steps in Orchestration Development (core) - add shapes, define schemas, define ports, bind Send and Receive shapes to ports, assign or transform data between messages, identify custom components, use orchestration variables to manage data, build and test. Oh, pay attention to the note: "If the Copy Local property of the referenced assembly is set to True, Orchestration will not be able to pick up any changes made to the external assembly after the initial add reference takes place in BizTalk project." Learn it. Know it. Live it.
    • Creating Orchestrations (core) - is a parent containing many relevant topics, from working with the orchestration designer and designing orchestration flow to using correlation, role links, ports, maps, business rules, web services and transactions / exceptions. Newbys should at least skim all of the material to get a good sense of the mechanics of designing an orchestration.
    • How To Build an Orchestration (core) - with related information on handling Build Errors in the Task list. Building is pretty simple; understanding and resolving errors can be difficult for the newby. One of the more common errors is "Compiler asks if you are missing an assembly reference" -- it can ask, but you don't have to tell it. Advice is given in the topic. For those who want a peek, one potential solution is to add a reference to the missing assemblies your project requires.
    • Security Considerations for Developing Orchestrations (core) - contains one note, "avoid subscriptions from untrusted messages". This will ensure that low-privilege messages do not initiate an orchestration instance that could potentially create subscriptions based on the message content or context.
    • Orchestration Dehydration and Rehydration (core) - parent topic defines dehydration and rehydration; child topics go into the details. Knowing what the engine does is critical to designing performant orchestrations.
    • Debugging Orchestration Runtime Errors (core) - explores different problems and their solutions in a question/answer format. For example, "Why do I get errors when I attach a dynamic send port to a logical port?"  Answer: a dynamic port gets an address only; it does not inherit the other information associated with the logical port.
    • Debugging tactics including Writing Information to the Event Log, Debugging Orchestrations by using Custom Code, and Configuring Remote Debugging for Orchestrations (all in the core docs). You may need to employ one, two or all of these methods (and others) during your BizTalk Server career so its best to learn them early.
    • Tracking Orchestrations with HAT (core) - describes where you can set breakpoints and what information is available. Child topics discuss interactive debugging and working with the orchestration debugger. Reading about it and actually doing it are two different experiences -- try it out for yourself using one of the orchestration samples in the SDK.
    • Managing Orchestrations (core) - contains topics that describe how to manage your orchestration once it has been deployed. Typical tasks include working with bindings, enlisting/unenlisting, stop/start/suspend/resume and other operations. Review this before you begin development so you have an idea of the kind of deployment and configuration tasks your solution will need.
    • FAQ For BizTalk Orchestrations (wp) - features a collection of frequently asked questions about orchestrations. This is aimed at all audience levels but makes especially great reading for the newby. What better way to discover patterns, what works, what doesn't, pitfalls, and other helpful nuggets prior to writing your first orchestration? Take a look.
  • For Everyone
    • How To Avoid Throttling Correlated Messages (core) - this topic is chock full of throttling advice goodness. A sneak peek: "A lot of developers think about the receive locations for a solution as receiving both activation and correlated messages for the solution through the same port. This is natural as it minimizes the number of addresses that message senders need to keep track of. However, with the addition of throttling in BizTalk Server 2006, there can be advantages to thinking about the stream of activation messages and the stream of correlated messages separately when it comes to throttling." Take a look.
    • Persistence and the Orchestration Engine (core) - discusses persistence points, serialization, system shutdown, and recovery behavior. Points out interesting points about .NET class requirements for serialization (need to be marked Serializable) and COM objects (If you want to call a COM object outside of an atomic transaction, you must wrap the COM object in a .NET object that is .NET serializable and knows how to persist and restore the state of the COM object).
    • Measuring Maximum Sustainable Tracking Throughput (core) - as the topic says, once you have deployed a solution you should track and monitor the system to understand how it is performing, what exceptions can occur and why, and the current state of business processes (orchestrations, etc). Describes DTA Tracking and BAM tracking with great overviews and architectural diagrams.
    • Developers Troubleshooting Guide to BizTalk Server 2006 (wp) - a tome containing troubleshooting advice for all aspects of BizTalk Server including orchestrations. Be sure to drop me a line c/o this blog if it is missing info.
    •  
  • Samples
    • HelloWorld (core) - demonstrates how to process XML messages into related, but distinct, types of XML messages by using BizTalk orchestrations and maps.
    • MethodCall (core) - demonstrates how to call a .NET-based method from a BizTalk orchestration.
    • ConsumeWebService (core) - demonstrates how to invoke a Web service from within a BizTalk orchestration.
    • ExposeWebService (core) - demonstrates how to expose a BizTalk orchestration as a Web service.
    • CallOrchestration (core) - demonstrates how to call a BizTalk orchestration from another orchestration.
    • Compensation (core) - demonstrates how to use the Compensate shape in an orchestration.
    • PartyResolution (core) - demonstrates how to use BizTalk orchestrations with party resolution to route instance messages.
    • BPEL Import (core) - demonstrates how to create an orchestration from a Business Process Execution Language (BPEL) description of a process and related artifacts.
    • Publishing and Consuming Web Services with SOAP Headers (lib) - This sample demonstrates how to publish a BizTalk orchestration as a Web service with a SOAP header and how to consume the SOAP header from a Web service request message.
    • Delivery Notification (lib) - a concise example of how acknowledgements work and how to use delivery notification in your orchestration.
    • Using Long-Running Transactions in Orchestrations (lib) - shows how to use long-running transactions in an orchestration. There are two examples: a long-running transaction with time-outs and a long-running transaction with custom compensation.
    • Parallel Convoy (lib) - demonstrates how to design a parallel convoy in the orchestration designer. A parallel convoy is a pattern that concurrently receives correlated messages in two or more branches of a Parallel Actions shape; messages can arrive in any order. The sample accepts invoices and purchase orders and correlates based on PO number.
    • Direct Binding to an Orchestration (lib) - shows how to bind one orchestration to another orchestration. This is in contrast to binding to the message box and using a subscription (filter) on an orchestration receive port to grab messages.
    • Direct Binding to the MessageBox Database in Orchestrations (lib) - uses ports directly bound to the messagebox database along with filters to process messages. This is in contrast to direct binding to an orchestration. It is a good option when you want "status-based" routing; it also makes it easy to add extra processing steps.
    • Using a Custom .NET Type for a Message in Orchestrations (lib) - uses a custom type as a message type in an orchestration. This is useful if you have existing types in your custom code that you want to use as messages in BizTalk Server. The example is obviously contrived, but a fair example of what you need to do.
    • Writing Orchestration Information as XML Using the ExplorerOM API (lib) - not required by a long shot, but interesting stuff if you have any interest in using the API to work with BizTalk Server objects. This example pulls Orchestration information as XML and runs a quick transform to produce an html document that summarizes orchestrations. Fun romp through the ExplorerOM API.
    • Correlating Messages with Orchestration Instances (lib) - demonstrates the concept of message correlation using a purchase invoice. This one does not include documentation.
    • Atomic Transactions with COM+ Serviced Components in Orchestrations (lib) - if you are using COM+ serviced components, this is worth a look. From the doc - "While atomic transactions behave like Microsoft Distributed Transaction Coordinator (DTC) transactions, they are not explicitly DTC transactions by default. You can explicitly make them DTC transactions, provided that any objects being used in the transaction are COM+ objects derived from System.EnterpriseServices.ServicedComponents, and that isolation levels agree between transaction components.". Tempting stuff.
    • Exception Handling in Orchestrations (lib) - a fine primer on how to handle exceptions in orchestrations.
    • Implementing Scatter and Gather Pattern (lib) - the Scatter and Gather pattern enables you to send messages to multiple recipients and processes, and to receive messages back from each recipient and process. This sample shows you how to implement it.
    • Using the SQL Adapter with Atomic Transactions in Orchestrations (lib) - this sample shows how to use the SQL adapter with atomic transactions to keep databases consistent. The SQL Adapter is often clouded in mystery.
    • Using BizTalk Server For Email Alert Bus (blog) - a neat sample by Richard Seroter that uses an orchestration.
    • Recent BizTalk 2006 Bugs... (blog) - Scott Colestock discusses two bugs, one of which is about orchestrations (and deployment). Worth a read. 
  • Videos, etc
    • What's New in BizTalk Server (other) - virtual labs of some of the key features of BizTalk Server 2006. There are also labs for 2004 that include orchestration as well as other content that still applies to the 2006 version.

Do not go gentle into that BizTalk orchestration. Rage, rage against the suspension of a message.

Sorry Dylan.

Posted Thursday, January 11, 2007 11:27 AM by ebattalio | 1 Comments

Filed under:

More Posts Next page »
Page view tracker