Visual Studio 2010 and .NET 4 Update

In October we shipped the public Beta 2 release of Visual Studio 2010 and .NET 4.  The feedback on the new features in VS 2010 and .NET 4 has been really great.  I’ve been working on a blog series about some of them (lots more posts to go!) and have also had a chance to present them to a broad range of audiences – and it has been great hearing the excitement people have about them.

At the same time, though, we’ve also received feedback that the performance and virtual memory usage of VS 2010 Beta 2 is not where people need it to be before we ship.

We’ve been doing an intensive performance optimization push the last two months that is delivering significant performance and virtual memory usage improvements across the product.  The early feedback from a small set of customers testing interim builds since Beta2 has been positive about these improvements. We still have several big performance fixes in the process of being checked in that will improve things even further.

Public Release Candidate

In order to make sure that these fixes truly address the performance issues reported, and to help validate them across the broadest number of scenarios and machine configurations, we’ve decided to ship another public preview release of VS 2010 and .NET 4 before we ship.  Specifically, we plan to make a Release Candidate build available in February that everyone will be able to download and test.  It will be a public build and include a broad “go live” license that supports production deployment.

The goal behind the Release Candidate is to get broad feedback on the readiness of the product.  In order to ensure that we are able to receive and react to this feedback, we will also be moving the launch of Visual Studio 2010 and .NET 4 back a few weeks.

Please continue to send us your feedback about the product, as well as details on issues you encounter with the current Beta 2 release.  Your feedback is invaluable, and really helps ensure we deliver the right product.  Feel free to send me email ( if you have a specific issue you are running into that you don’t think has already been reported.

Hope this helps,


5 minute interview

Well, here is a shameless piece of self-promotion. Five minutes with a Rules nut, thanks to Tibi Covaci from Cloudcasts.

One of the best things about working in a company is thatthe people you work withconspire tomake sure you never get too big-headed. So here is an alternative videomade by one of my esteemed colleagues…who I plan to sue for defamation!

NB, the second link expires on 15th Jan 2010

Silverlight 4 demos from my PDC Keynote now available

Silverlight 4 demos from my PDC Keynote now available

[In addition to blogging, I’m also now using Twitter for quick updates and to share links. Follow me at:]

Last month I gave a Silverlight 4 keynote at the PDC conference.  You can watch my keynote online here (my part of the keynote starts at the 53:30 mark in the video).

I showed off a number of fun demos during the keynote that highlighted some of new features coming in Silverlight 4.  Today we posted the samples online (with code) so that you can download and run them locally on your own machines. 

You can download the keynote demos here (source code + VS project file included with each sample).

Keynote Demos

Below are some details about each of the demos now available for download:

PhotoBooth Application

The PhotoBooth application demonstrates some of the fun things you can do with the new WebCam and Microphone support in Silverlight 4.  It allows you to record videos and take photos within the browser – and then optionally apply effects to them (for example: the bulge effect below).  For kicks you can publish a photo of any of the pictures to Twitter 🙂


BarCode Scanner

The BarCode Scanner application also uses the new WebCam support in Silverlight 4. It allows you to scan an ISBN barcode from the back of a book, and will then use Amazon web-services to look up details about the book online:


Rich Notepad

The rich notepad application shows off some of the new text editing features in Silverlight 4.  It allows you to edit rich text within the browser, supports Bidi text (including Arabic and Hebrew), supports both left-to-right and right-to-left control layout (RTL is show below – notice how the scroll-bar is on the left hand side of the screen), supports programmatic copy/paste to the system clipboard, custom right-click context menus, printing, and drag/drop of files from the desktop into the browser to edit:


HTML Hosting

The HTML Hosting application shows off using the new Silverlight 4 webbrowser control in an out of browser application (note: you must run the application out of the browser for it to work).  It allows you to use the control both interactively (meaning you can click the HTML within it and run it like an application).  It also allows you to use the hosted HTML as a brush that you can apply to other Silverlight controls. For fun you can click the tab below and you’ll get rick-rolled to YouTube.  You can still use the HTML as a brush and carve it up into a jigsaw – even though the video is still playing (using Flash hosted within the HTML):


Learn More

Keep an eye on Tim Heuer’s blog as well as John Papa’s blog.  They post regularly about Silverlight, and will be doing some blog posts in the near future that cover the above applications in more detail.


You can download the keynote demos here (source code + VS project file included with each sample).  They work with the public Silverlight 4 Beta + SL4 VS Tools Support.  They provide a nice way to relive the keynote on your own machine, as well as show off the demos to friends. 

Hope this helps,


P.S. The Facebook application we showed in the keynote will also be available for download in the future.  We are still adding more features to it and polishing it up – I’ll do a blog post about it as soon as it is available.

NxtGenUG Podcast from the Pluralsight PDC Party

NxtGenUG Podcast from the Pluralsight PDC Party

Our British guests from NxtGenUG (Richard Costall) put together a fun and interesting podcast live from the Pluralsight Late Nighter at PDC last month. Here’s a brief description taken from the NxtGenUG site:

It's PDC09 and Rich, at the Pluralsight party, brings us Interviews with Pluralsight's Co-Founder, Aaron Skonnard, Microsoft's Chris Smith (F#) and Ford McInstry (AppFabric). We also get the day 1 reflections from Chris Hay, and Black Marble's Rob 'Boss' Hogg and Ian Angus. Rich has a brief chat with work colleague Andy Brown and last, but not least, Sara Ford gives us one of her true 'Uncle Jimmy' stories.

You can listen to it here.

Power Pivot site from Rob Collie

One of our program managers in Redmond has a great site showcasing Powerpivot. Email from Rob: “For those of you who have not seen it, I thought it was worth mentioning here, since it seems people are finding it in semi-random ways. There are case studies, how-to’s, videos, and observational posts about trends and best practices.  It’s a pretty informal site, so you will also see a liberal dosage of movie quotes that help illustrate certain points”

Great job Rob!

Some more notes on demotion

Hi all

I had a discussion with Randal van Splunteren (
today about demotion. Randal has been so kind as to review the first chapter I am
writing for the book (
and we started chatting about demotion. Specifically we discussed whether existing
values in XML would be overwritten when demotion occurs.

As it turns out, it depends.

I did a small sample with two schemas and a map. I used a receive port to receive
a message, mapped it to the second schema (which just created empty nodes in the destination
schema) and output the result through a send port. The receive location used XMLReceive
and the send port used the XMLTransmit pipeline. What happened was, that the output
had the correct demoted values in them, since the XML assembler had empty elements
to map into. Now, if I changed the map to put a value into the fields, then the mapped
values were also output and not the demoted values. This means, that demotion does
NOT overwrite existing values.

Randal, however, had a sample, where the existing values WERE overwritten. His solution
was leveraging an orchestration, however, which seems to be the big difference. As
I have blogged about here: orchestrations
can demote into attributes, which normal demotion cannot. So apparently there is another
difference, which is, that demotion in an orchestration, actually overwrites existing


But now for the funny (weird?) part. I setup a solution where I had an XML instance
as input and used the passthrough receive pipeline. So no message type was promoted.
Even without an orchestration, the XML assembler actually does demotion, which is
cool. BUT, it overwrites existing values Go figure. If the message type is present,
existing values are not overwritten, but if it is not present, existing values are



What I would look for in a BizTalk Healthcare class/Healthcare book for BizTalk

I have been thinking of BizTalk healthcare classes or writing a book for BizTalk in relation to healthcare, and I thought that I would put the things that I would look for if I was going to pay for a class or heaven forbid; buy a morbid book.

1. The teacher/writer has to have healthcare experience.

2. I want to have a brief understanding of the ’flow’ of document in a healthcare situation:

837 (Claims) are submitted to a health plan for payment
997 (Acknowledgments) are returned to know if they pass Type 1 and Type 2 validation
824 (Application Notification) can be returned for Type 3 through Type 7 validation, depending on the capability of the backend system
835 (Claim Status) are sent back to notify of Claim status
270 (Eligibility Request) are sent to health plan to ask for status of patient eligibility for service
271 (Eligibility Response) are sent from health plan in response to patient eligibility request
276 (Claim Status Request) are sent to health plan to as for status of claim
277 (Claim Status Response) are sent from health plan to in response of claim request
820 (Payment Notification) are sent from the health plan to notify of payment of the claims

3. I want to map a 837, as that will be the transaction I will most deal with, spend a majority of the the time mapping the 837 transaction if I have to, because that is my biggest pain point.

4. Explain HL7, where it is used

Provider transactions, largely used in intra department messaging

5. Create a sample ORU^R01 message from a flat file and create a flat file from a ORU^R01 message so I can learn the following HL7 nuances:

Schema Generation (partner specific schema creation)
Multipart Messages
MSH Segment
How to map the flat XML message that the BTAHL7 pipeline (DASM) creates / (ASM) expects
Explain MLLP, integrate it into one of the ORU labs

Things I want to briefly want to learn:

(I need to know what they are, but it should not be the focus of a the class/book)

Things I don’t want to learn:

BAM: BizTalk in a Healthcare Scenario should never be the system of record, the Claim Payment application should be, the out-of-the-box EDI reporting functionality that comes with BizTalk accounts for 99% of what I need
BRE: BizTalk would not be used for message modification/routing/anything else the BRE can be used for, as there are entire workflows designed in every claim payment processing system that deals with changing business rules
AS2: It is too big of a beast to teach along with all of the things that I listed above, and second: NO HEALTHCARE COMPANY TRANSMITS DATA USING AS2
Purchase Orders, Invoices, Advanced Shipment Notifications: I can look at a whole plethora of examples that Microsoft publish. Maybe a MCO deals with ordering supplies for an office, but by in large, I want to know about HIPAA transactions; not transactions I would never see at work.

Anything that I missed? I am thinking of putting together an online class (or via CD) or a book, what would you like to see? Is there any interest in a BizTalk/Healthcare book?

Tell me your experiences!

Search Engine Optimization (SEO) Toolkit

Search Engine Optimization (SEO) Toolkit

[In addition to blogging, I’m also now using Twitter for quick updates and to share links. Follow me at:]

Over the last few weeks I’ve been polling developers to see how many are using the new Search Engine Optimization (SEO) toolkit to increase traffic to their web-sites.  I’ve been surprised by how many people either have never heard of the tool, or have not yet had a chance to run it against their websites.  This blog post provides a quick summary about why anyone doing web-development should check it out.

Why use the free SEO Toolkit?

In a nutshell – the free SEO Toolkit Analyzer helps you increase traffic and visitors to your site, and as a result can increase the revenue you directly or indirectly make through your web-site.

The SEO Toolkit Analyzer increases traffic to your site by helping you assess and improve the search relevancy ranking of your site with search engines like Google, Bing, and Yahoo.  As your search relevancy ranking improves, and your site becomes more search engine optimized, you’ll find that your site receives more and more user traffic from search engine queries. 

Takes less than 5 minutes to download and run the SEO Analyzer

It takes less than 5 minutes to download and run the SEO Toolkit Analyzer against your web-site.  You simply point the tool at the top-level URL of your web-site, and then it will automatically crawl your site like a search engine would – following each link, reviewing the HTML on each page, and generating a human friendly report of every SEO or content violation it finds on the site – along with suggestions on how to fix each of them:


It works with any web-server

The SEO Toolkit works with any web-server. It works with IIS5, IIS6, IIS7 and IIS7.5 – it will even work with Apache web-servers running on Linux.  Basically you can point the SEO Analyzer at any remote HTTP server and it will crawl the site and generate a SEO report.  You do not need to setup any software on the remote server – instead the tool crawls and analyzes the site remotely just like a search engine would.  This means you can even run the site on your friends (or potential customers) sites and generate reports for them.

The SEO Toolkit does require that you have the IIS7 Admin tool installed on your local dev/client machine in order to host the SEO Analysis admin UI tool.  The IIS7 admin tool is a built-in feature of Windows Vista, Windows 7, and Windows Server 2008.  The IIS7 admin UI only needs to be installed on your local dev machine though – you do not need to have IIS7 installed on the server.  The SEO utility running inside it will work fine against your IIS5, IIS6 and other web servers.

How to download and install the SEO Toolkit

You can easily install the SEO Toolkit using the Microsoft Web Platform Installer

Use the green “Install Now” button on the IIS SEO Toolkit download page in order to automatically install the SEO Toolkit on your development machine (clicking the button will also download and install the Web Platform Installer if you don’t already have it installed).

How to Learn More

I wrote up a tutorial on how to use the SEO Toolkit this past summer (the UI in some of the dialogs has changed a little – but the functionality is the same). 

You can also watch this IIS SEO Toolkit Video (5 minutes) or this longer IIS SEO Toolkit Video (15 minutes) to see the SEO Toolkit in action. 

You can post questions and get help in the SEO Toolkit Forum on


If you haven’t downloaded the SEO Toolkit and used it to analyzer your web-site yet, then I highly recommend spending 10 minutes now and giving it a try.  You’ll find it provides a really easy, automated way to quickly find and identify SEO issues you have on your web-site – along with suggestions on how to fix them.  Fixing them will increase the traffic and visitors to your web-site.

Hope this helps,