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.
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?
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".
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.
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.>
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.
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.
And they want their music back. You do too? Check out Club 977 The 80's Channel and plug in.
Come on Eileen!
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!
Still here, just not full of compelling content for the ol' blog.
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.
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!
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!
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.
-
-
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.
-
-
-
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.
-
-
-
Samples
-
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.