<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.conchango.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>blogs.conchango.com</title><link>http://blogs.conchango.com/default.aspx</link><description>welcome to the &lt;A href="http://www.conchango.com" target=_blank&gt;conchango&lt;/A&gt; blogging site</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Linq to SQL: testing, the long way around</title><link>http://blogs.conchango.com/anthonysteele/archive/2008/07/24/linq-to-sql-testing-the-long-way-around.aspx</link><pubDate>Thu, 24 Jul 2008 11:54:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11981</guid><dc:creator>Anthony.Steele</dc:creator><slash:comments>0</slash:comments><description>&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;&lt;A class="" href="http://msdn.microsoft.com/en-us/library/bb425822.aspx"&gt;Linq to SQL&lt;/A&gt; is great. You can open up your Db schema, drag some tables in, and in no time you have a data context class with loads of functionality, and data classes for all of the entities. No more recordsets to unpack into objects, no more fields&amp;nbsp;to pack into SQL params, just lists of strongly typed ojects. Even better, the classes are partial so that you can extend them.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;It seems natural to extend the data context by adding methods like &lt;BR&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY:Courier;"&gt;var orders= MyDataContext.GetOrdersForCustomer(myCustomer.Id);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Methods like these are trivial to implement with Linq: &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="FONT-FAMILY:Courier;"&gt;&lt;FONT size=3&gt;from o in orders where o.CustomerId = customerId select o;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;And&amp;nbsp;Linq makes persistence simple too.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Now the problem comes in when you think about layering and mocking. You'd like to have a interface e.g. "IDataStore", with an implementation of it that is backed by the database, and another mock implementation for testing. You'd like to have the data classes to be defined where they depend on neither of these implementations, but both implementations can reference them. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;But Linq to SQL's code&amp;nbsp;isn't laid out like this if you drag and drop. The DataContext doesn't implement any interfaces. The data classes are defined in the same namespace as the DataContext. You can test the data classes by just creating and populating them, but you can't test anything that depends on data retrieval without using the datacontext and behind it, the database.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;It's taken me a while to get there, but this seems to be the problem that Ian Cooper is solving in&amp;nbsp;&lt;A class="" href="http://codebetter.com/blogs/ian_cooper/archive/2008/02/17/architecting-linq-to-sql-applications-part-5.aspx"&gt;Architecting LINQ To SQL Applications, part 5&lt;/A&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Hence the"long way around" to seeing why Ian was on about that. Linq to SQL can be used in other ways besides drag and drop, and some of these ways will give you what you want.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=11981" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/anthonysteele/archive/tags/c_2300_/default.aspx">c#</category><category domain="http://blogs.conchango.com/anthonysteele/archive/tags/code/default.aspx">code</category><category domain="http://blogs.conchango.com/anthonysteele/archive/tags/linq/default.aspx">linq</category><category domain="http://blogs.conchango.com/anthonysteele/archive/tags/mock/default.aspx">mock</category><category domain="http://blogs.conchango.com/anthonysteele/archive/tags/testing/default.aspx">testing</category><category domain="http://blogs.conchango.com/anthonysteele/archive/tags/design/default.aspx">design</category></item><item><title>On Standards...</title><link>http://blogs.conchango.com/marcusalexander/archive/2008/07/24/on-standards.aspx</link><pubDate>Thu, 24 Jul 2008 11:34:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11980</guid><dc:creator>marcus.alexander</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;So I was having a conversation the other day about whether or not IE8 will pass the &lt;a href="http://acid3.acidtests.org/" target="_blank"&gt;"Acid 3 test"&lt;/a&gt; and meet the HTML/CSS/scripting standards properly.&amp;nbsp; It’s all well and good meeting the standards, except... &lt;br&gt;&lt;br&gt;There are a whole bunch of new standards coming out, XHTML 2, HTML 5, CSS-whatever, etc, etc.&amp;nbsp; These are/will be as clearly defined (i.e. Not) as the current standards, so it’s always a game of catch-up whichever way you look at it.&amp;nbsp; Many people like to believe the standards are created, and perfect, and anyone who misses the target is plain wrong.&amp;nbsp; Except it's not really like that.&amp;nbsp; The way it &lt;i&gt;really&lt;/i&gt; works is something like this:&lt;br&gt;&lt;br&gt;Browser X implements feature A and it becomes popular.&lt;br&gt;Browsers Y and Z rush to implement feature A too, so they don’t lose out;&lt;br&gt;&lt;br&gt;Meanwhile W3C look at take-up of feature A and try to incorporate it into up-and-coming standards set P.&lt;br&gt;Browsers X, Y and Z realise that their next-generation models will have to incorporate (still not finalised) standards set P, so attemp to implement an incomplete and non-finalised set of standards, while at the same time... Inventing features B and C to keep ahead of the market. &lt;br&gt;&lt;br&gt;Meanwhile all the geeks in the world bewail the fact that browser Y doesn’t support feature A even though it is in standards P, forgetting the entire history of it and also forgetting that the W3C is nothing more than a loose consortium of geeks from competing browser vendors and other bodies, who agree with things about as often as the UN members do (ie never) and are themselves creating standards which compete with their own standards (eg XHTML vs HTML, etc, etc). &lt;br&gt;&lt;br&gt;It’s a mess.&amp;nbsp; Yep.&amp;nbsp; For sure.&amp;nbsp; But that’s how we end up with cool things like, well, pretty much everything we have now. &amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=11980" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/marcusalexander/archive/tags/HTML/default.aspx">HTML</category><category domain="http://blogs.conchango.com/marcusalexander/archive/tags/Acid+Test/default.aspx">Acid Test</category><category domain="http://blogs.conchango.com/marcusalexander/archive/tags/XHTML/default.aspx">XHTML</category><category domain="http://blogs.conchango.com/marcusalexander/archive/tags/W3C+standards/default.aspx">W3C standards</category><category domain="http://blogs.conchango.com/marcusalexander/archive/tags/CSS/default.aspx">CSS</category></item><item><title>Jack and Jill went up the hill to get an en-suite bathroom</title><link>http://blogs.conchango.com/peterhanlon/archive/2008/07/24/jack-and-jill-went-up-the-hill-to-get-an-en-suite-bathroom.aspx</link><pubDate>Thu, 24 Jul 2008 08:46:39 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11977</guid><dc:creator>peter.hanlon</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;If you've read one of my &lt;a href="http://blogs.conchango.com/peterhanlon/archive/2008/03/29/selling-houses-with-fuzzy-logic.aspx" target="_blank"&gt;previous posts&lt;/a&gt; about Fuzzy Logic, then you'll know that I was thinking about moving house earlier this year.&amp;#160; Without boring you too much about my personal life, we're not going down that route anymore, instead we've been talking to architects and looking at doing a home extension.&amp;#160; We live in a Victorian house full of original features (I sound like an estate agent !) and as a result we have a downstairs bathroom.&amp;#160; One of our requirements is to achieve an upstairs bathroom.&amp;#160;&amp;#160; According to &lt;a href="http://en.wikipedia.org/wiki/Sarah_Beeney" target="_blank"&gt;the beenster&lt;/a&gt;, an en-suite bathroom is one of the top 5 requirements requested by home buyers.&amp;#160; Our architect, in trying to maximise re-sale value, is suggesting that we create a bathroom with two doors, one opening onto the landing and one opening into the master bedroom.&amp;#160; This is called a Jack and Jill arrangement.&amp;#160; Technically this means we'll have an en-suite, a tick in the box when selling a house.&lt;/p&gt;  &lt;p&gt;Now I know the architect is trying to do us a favour, but I can't help but feel that whilst this technically meets the description of an en-suite, it doesn't meet the 'spirit' of an en-suite.&amp;#160; (ie it's not an en-suite)&lt;/p&gt;  &lt;p&gt;I can draw parallels with my job in IT.&amp;#160; We often have critical success factors on projects that are hard to articulate.&amp;#160; In my experience sometimes these can go unspoken, but everyone understands what they are.&amp;#160; 'Look like this', 'behave like this', 'be better than that', 'delight me'.&amp;#160; These are just a couple of examples in my head at the time of writing this.&amp;#160; We often try to capture these and call them non functional requirements.&amp;#160; Sometimes we capture them well, other times less so and sometimes we don't capture them at all (I like to call this flexibility).&amp;#160; Even when we capture them, we can fail to deliver on them, and when we don't, we can try and justify ourselves by claiming we've met the 'letter' of the requirement, when we know we haven't delivered in the 'spirit' of the requirement.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;'If people don't use the system it's there own issue,&amp;#160; it does everything they asked for....'&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;I've had a recent experience of this in a project where time was the most critical factor, ahead of cost and quality/scope.&amp;#160; We had the ability to flex the scope in order to meet the date, but this soon got to the point where we knew we'd compromised the 'spirit' of the requirements, but we were trying to kid ourselves that we'd met the 'letter' of the requirements, so it was alright.&amp;#160; &lt;/p&gt;  &lt;p&gt;When I was a younger, less experienced project manager / business analyst, I would have carried on regardless, feeling like being unable to deliver the 'spirit' of the requirements was a personal failure and something to be covered up and ignored.&amp;#160; Having been burnt several times by this approach ( I got away with it a couple of times too), I now know that raising these issues early always leads to a better outcome in the long run.&amp;#160; It can of course mean some short term pain from management and stakeholders as they realise they're expectations aren't going to be met fully, but the benefit of raising this early is two fold&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Stakeholders get a chance to be involved in a resolution plan, so you get good stakeholder involvement and buy-in to the resolution.&amp;#160; (When issues are raised late, your usually very limited on the resolution.)&lt;/li&gt;    &lt;li&gt;Stakeholders expectations get managed gradually, so each incremental change is less painful than a big realisation at the end of a project&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So with the issue over requirements raised,&amp;#160; I'm probably in for a period of short term pain.&amp;#160; I've learnt it's better this way though than to carry on regardless...&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=11977" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/peterhanlon/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.conchango.com/peterhanlon/archive/tags/Business+Analysis/default.aspx">Business Analysis</category><category domain="http://blogs.conchango.com/peterhanlon/archive/tags/Requirements/default.aspx">Requirements</category><category domain="http://blogs.conchango.com/peterhanlon/archive/tags/Non+Functional+Requirements/default.aspx">Non Functional Requirements</category></item><item><title>Windows Home Server Power Pack 1 and WHS+USB 1.0 == Misery!</title><link>http://blogs.conchango.com/jamessaull/archive/2008/07/23/windows-home-server-power-pack-1-and-whs-usb-1-0-misery.aspx</link><pubDate>Wed, 23 Jul 2008 20:39:11 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11973</guid><dc:creator>James.Saull</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I pushed too much data on to the Windows Home Server (WHS) and I started to get health warnings indicating which files it could no longer duplicate. My data was stored OK, just at risk. Given that the WHS experience was going well I ordered up a Lacie 500GB external USB 2 drive. To tide me over, I plugged in a little 100GB host powered USB drive and added it to the pool. Slowly the data balanced out across the three drives with enough space for all content to be duplicated. I then continued to copy more data on to the server. Transfer rates were abysmal! 500k/s. Oh dear. All my content finally copied over and eventually my critical health warning went away as it finally migrated enough data off the smallest system drive.&lt;/p&gt; &lt;p&gt;The Lacie 500GB drive arrives and I plug it in. A couple of clicks later it is added to the storage pool. It starts to balance the content whilst I right click the little 100GB host powered drive and remove it from the storage pool. WHS can see that there is enough storage and drives to successfully duplicate content across the remaining drives and so it starts to migrate content off... how slow?! it can only have about 30GB on it. Max! Anyway, time for bed.&lt;/p&gt; &lt;p&gt;By the next morning all the content has migrated off the drive. I go to the WHS to remove the drive... Ah... I'd forgotten that this old machine still had USB 1.0 ports. In the darkness under the desk it would appear that I had rediscovered them when I had plugged in the 100GB drive! Copying files and balancing storage with the 500GB drive plugged into USB 2.0 is now going up to 8MB/s (given I have a 10/100 switch in the way it won't get much higher than that). When MS say they don't recommend USB 1.0 they weren't kidding. Copying large AVCHD files onto the WHS is nice and fast and I can happily watch the HiDef videos directly off the WHS.&lt;/p&gt; &lt;p&gt;Applied WHS Power Pack 1 last night. All straight forward. Go get it here: &lt;u&gt;&lt;a href="http://download.microsoft.com/download/8/b/d/8bd7fe82-34cc-4026-b8e5-e9e10902312c/WHS-KB944289-v1-x86-ENU.exe"&gt;http://download.microsoft.com/download/8/b/d/8bd7fe82-34cc-4026-b8e5-e9e10902312c/WHS-KB944289-v1-x86-ENU.exe&lt;/a&gt;&lt;/u&gt;&lt;/p&gt; &lt;p&gt;and read about it here: &lt;u&gt;&lt;a href="http://blogs.technet.com/homeserver/archive/2008/07/21/power-pack-1-come-and-get-it.aspx"&gt;http://blogs.technet.com/homeserver/archive/2008/07/21/power-pack-1-come-and-get-it.aspx&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=11973" width="1" height="1"&gt;</description></item><item><title>Change – There’s a lot of it about!</title><link>http://blogs.conchango.com/stevebailey/archive/2008/07/23/change-there-s-a-lot-of-it-about.aspx</link><pubDate>Wed, 23 Jul 2008 14:45:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11966</guid><dc:creator>Steve.Bailey</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Being new to Conchango (&amp;amp; new to consulting for that matter), I am a little out of my comfort zone right now. I’ve never written a blog before either &amp;amp; was struggling with what I could contribute.&lt;/P&gt;
&lt;P&gt;I thought maybe I should follow the writer’s maxim that it’s easiest to write about something that you have direct &amp;amp; current experience of.&lt;/P&gt;
&lt;P&gt;Right now, my most pressing concern is how I am going to manage all of this change positively. So... change it is!&lt;/P&gt;
&lt;P&gt;I know that I can play a part in the continuing success of Conchango &amp;amp; that the feelings of anxiety I have right now will pass. I am also sure that I will soon be looking back &amp;amp; wondering what I was worried about.&lt;/P&gt;
&lt;P&gt;I know this, like you do, because it has all happened before. I have changed jobs before, (though not for a long time) &amp;amp; I have also had change happen in many other areas of my life. We all come to recognise the pattern of feelings that change causes in us, but that does not necessarily make living through them any easier. For some people, the feeling of discomfort that change brings is enough to stop them ever considering change, let alone accepting it. That may not be you, (I’m sure Conchango is full to the brim of change junkies), but it could easily be the clients you are working for.&lt;/P&gt;
&lt;P&gt;One thing that helped me to understand &amp;amp; deal with change more productively, was that someone once explained the change cycle to me. It is fair to say that this was one of the more memorable sessions in all the various training courses that I have attended. To this day I remember the metaphorical “light bulb moment” when I realised that not only was I normal (well at least in my responses to change) but also that, despite their outwardly calm &amp;amp; in control appearance, most other people have similar feelings at times. I guess we are all human, even if some people try very hard to hide this fact. At the very least, I learnt that I am not alone; which is comforting in itself.&lt;/P&gt;
&lt;P&gt;As change is at the heart of what we do at Conchango, I thought that others may benefit from understanding the change cycle. Not only will it help you to deal with your own personal change management, but it may shed some light on why clients behave the way they do. If you are evangelical about change, it might be hard to understand why some people seem less than enthusiastic. You need to separate any genuine concerns about the effectiveness of the change from the emotional reaction that is being expressed.&lt;/P&gt;
&lt;P&gt;I expect that many of you are experts in managing change &amp;amp; will put this in the egg-sucking category. If, however, you have an opinion to share, or a contribution to make, feel free.&lt;/P&gt;
&lt;H3&gt;The disclaimer&lt;/H3&gt;
&lt;P&gt;Firstly, I am not a qualified psychologist &amp;amp; I do not claim to be an expert. I have compiled the following from various sources, (there are plenty of online resources that will allow you to explore this subject further) &amp;amp; have found it useful to provide insight, but I will leave you to gain what you can from it. It is just my view, which I hope will help.&lt;/P&gt;
&lt;P&gt;Also, what follows is my own view and doesn’t necessarily represent Conchango’s positions, strategies or opinions&lt;/P&gt;
&lt;H3&gt;What’s it all about then?&lt;/H3&gt;
&lt;P&gt;None of what follows says that change itself is necessarily good, or even productive. In fact, I am certain that this is not the case. Although you may be in a position to shape or veto a particular change, or influence those that can, in most cases the driver of change will be outside of your control. Clearly, you should voice your concerns if you have them, however I am assuming that the decision to implement has been taken &amp;amp; that you need to find a way to get the most personal benefit that you can from it.&lt;/P&gt;
&lt;P&gt;Change is inevitable in some form or another. Without it, nothing much would happen. You can’t really fight this basic fact - well, not for long anyway, so you may as well learn to live with it. &lt;/P&gt;
&lt;P&gt;Many of the changes that we deal with are hardly noticed. You have to look back a long way to realise how all of the small steps have accumulated to get you where you are now. Even some large changes may have no appreciable impact on us. So what is it that makes some changes hard to deal with?&lt;/P&gt;
&lt;P&gt;I think that the impact any change has on you, is proportionate to the emotional investment you have in the status quo. The key issue with this is that not everyone has the same level of emotional investment in something. Understanding the level of emotional involvement of all the parties concerned is the first step to understanding how change can be managed. &lt;/P&gt;
&lt;P&gt;I think that the level of emotional investment we have in something generally increases over time. We become comfortable with what we are most familiar with &amp;amp; start to feel defensive about any criticism of it. I think this sometimes stems from a feeling that we are being judged for having accepted the status quo &amp;amp; that is what we are reacting to, rather than the idea behind the change. &lt;/P&gt;
&lt;P&gt;Maybe that’s just me, but I have seen similar reactions in others often enough to believe that I am not alone. If you want to drive change, an appreciation of this may help you to put the change to those affected in a way that makes it more likely to be accepted.&lt;/P&gt;
&lt;P&gt;We also tend to be more emotionally invested in something which we have created ourselves, even if we know it is not perfect. Demonstrating an understanding of why things are the way they are currently, (perhaps because things were originally pulled together in a hurry &amp;amp; on a limited budget), whilst showing that there are good reasons why change is now needed, is likely to be more productive than the more challenging way, (e.g. the “what we have now is rubbish!” approach) often seen when communicating the need for change.&lt;/P&gt;
&lt;P&gt;Being emotionally invested in the status quo may also be driven by the perceived personal impact of the change, or more likely, the uncertainty of what the change will mean to you. In this case, it is not holding on to the current situation that drives the anxiety, but the avoidance of what is coming. This may even lead to people suddenly becoming keen to hold onto something that they themselves have criticised in the past.&lt;/P&gt;
&lt;P&gt;If you are the driver of change, the emotional impact that the change has on you will generally be less, however this is not necessarily so. Although you may have identified that change is desirable &amp;amp; be fully committed to the process, the jump into the unknown can still be very stressful &amp;amp; lead to many of the same issues as externally driven change. &lt;/P&gt;
&lt;P&gt;Avoidance of change, due to the uncertainty of what it will bring, is perfectly natural. It is normal to have a degree of risk aversion. I don’t think that we would be a very successful species if the natural curiosity which has driven us to explore &amp;amp; develop the planet were not tempered with a healthy (but not total) aversion to taking risks. Risk in itself is neither good nor bad, but needs to be balanced with the reward it might generate &amp;amp; the likelihood that this reward will be realised. &lt;/P&gt;
&lt;P&gt;Clearly, the amount of risk you are prepared to take is generally proportionate to what you stand to lose. Therefore, if you stand to lose something you perceive as particularly valuable (your income, house or family life for example), then you are likely to be more resistant, unless&amp;nbsp;the "buzz" that this generates is what is driving you to seek risk in the first place. Again, if you understand what others stand to lose &amp;amp; how important that is to them, then you can address their resistance better.&lt;/P&gt;
&lt;P&gt;In summary, if you are not too emotionally invested in how things were, you are clear about how you will be affected &amp;amp; you believe that it is for the better, you are unlikely to be bothered by the change. Otherwise, you will, to some degree or other, go through the stages of the change cycle. The attitude with which you enter the cycle is generally dictated by your perception of the risk involved. Just remember that this is true of all those potentially affected by any change that you are proposing as well.&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;The Kübler-Ross model&lt;/H3&gt;
&lt;P&gt;The original model, upon which most of the existing change models are based, was put forward by Elisabeth Kübler-Ross, in her 1969 book "On Death and Dying”, extracts of which have been published online by those nice people at Google: (&lt;A href="http://books.google.co.uk/books?id=9yfJQBo_9GQC&amp;amp;dq=kubler+ross+death+dying&amp;amp;pg=PP1&amp;amp;ots=r6tiJni1U_&amp;amp;sig=hIta6kxsHMuQB2-HF7U4OPtzahY&amp;amp;hl=en&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;resnum=1&amp;amp;ct=result#PPP1,M1"&gt;http://books.google.co.uk/books?id=9yfJQBo_9GQC&amp;amp;dq=kubler+ross+death+dying&amp;amp;pg=PP1&amp;amp;ots=r6tiJni1U_&amp;amp;sig=hIta6kxsHMuQB2-HF7U4OPtzahY&amp;amp;hl=en&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;resnum=1&amp;amp;ct=result#PPP1,M1&lt;/A&gt;) &lt;/P&gt;
&lt;P&gt;The book deals with the way that people handle grief &amp;amp; tragedy. Clearly this is an area where people have a large emotional investment &amp;amp; therefore it is to be expected that people in these situations will feel the impact quite strongly. If you are facing terminal illness, your perception of risk is also going to be pretty high!&lt;/P&gt;
&lt;P&gt;Kübler-Ross identified 5 key stages of grief in some detail. In summary, these are (expressed from the perspective of someone who knows that they are dying):&lt;/P&gt;
&lt;P&gt;1. &lt;A href="http://en.wikipedia.org/wiki/Denial"&gt;Denial&lt;/A&gt;: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Example - "I feel fine."; "This can't be happening." &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;2. &lt;A href="http://en.wikipedia.org/wiki/Anger"&gt;Anger&lt;/A&gt;: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Example - "Why me? It's not fair!" "NO! NO! How can you accept this!" &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;3. &lt;A href="http://en.wikipedia.org/wiki/Bargaining"&gt;Bargaining&lt;/A&gt;: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Example - "Just let me live to see my children graduate."; "I'll do anything, can't you stretch it out? A few more years." &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;4. &lt;A href="http://en.wikipedia.org/wiki/Depression_%28mood%29"&gt;Depression&lt;/A&gt;: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Example - "I'm so sad, why bother with anything?"; "I'm going to die . . . What's the point?" &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;5. &lt;A href="http://en.wikipedia.org/wiki/Acceptance"&gt;Acceptance&lt;/A&gt;: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Example - "It's going to be OK."; "I can't fight it, I may as well prepare for it." &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Kübler-Ross also noted that these stages may apply to other areas of catastrophic loss &amp;amp; cited the loss of a job, relationship or freedom in particular as eliciting similar responses.&lt;/P&gt;
&lt;P&gt;I think that there are business situations where people could feel strongly enough to grieve for what they have lost (routine, friends, established desk etc), but this is the most extreme situation.&lt;/P&gt;
&lt;P&gt;One important element in this model is that not everyone will experience all of the stages as strongly as others, if at all; however everyone will experience at least 2.&lt;/P&gt;
&lt;P&gt;The order that these stages occur in is not always that listed above either. Whilst this is the most common order, some people may, for example, be become depressed before they become angry. On the whole though, it is the most typical order in which people go through the process.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There is additional info on this model here: &lt;A href="http://changingminds.org/disciplines/change_management/kubler_ross/kubler_ross.htm"&gt;http://changingminds.org/disciplines/change_management/kubler_ross/kubler_ross.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;The Changing Minds.org site is a mine of “interesting” stuff&lt;/I&gt;&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Other Models&lt;/H3&gt;
&lt;P&gt;In order to cover less traumatic situations, a number of other models have been developed, based on this general premise.&lt;/P&gt;
&lt;P&gt;The following models have been developed &amp;amp; the links are attached to avoid any copyright issues that might exist if I copied them to this Blog:&lt;/P&gt;
&lt;H4&gt;&lt;U&gt;&lt;/U&gt;&lt;/H4&gt;
&lt;H4&gt;&lt;U&gt;The positive change cycle&lt;/U&gt;&lt;/H4&gt;
&lt;P&gt;&lt;A href="http://www.changingminds.org/disciplines/change_management/psychology_change/positive_change.htm"&gt;http://www.changingminds.org/disciplines/change_management/psychology_change/positive_change.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Also from Changing Minds.org &lt;/I&gt;&lt;/P&gt;
&lt;H4&gt;&lt;U&gt;&lt;/U&gt;&lt;/H4&gt;
&lt;H4&gt;&lt;U&gt;The Change Cycle.com&lt;/U&gt;&lt;/H4&gt;
&lt;P&gt;&lt;A href="http://www.changecycle.com/changecycle.htm"&gt;http://www.changecycle.com/changecycle.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;This is a Commercial organisation, with a particularly useful visual representation&lt;/I&gt;&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;A Final thought&lt;/H3&gt;
&lt;P&gt;The common factor in these models is that a stage is reached where you have to make a conscious decision whether to accept the change, or not. Which way to jump is a matter of personal choice, but once that choice is made, the consequences must also be accepted, even if they are negative. &lt;/P&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=11966" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/stevebailey/archive/tags/change/default.aspx">change</category></item><item><title>Silverlight Tweening Adventures with Baby Smash!</title><link>http://blogs.conchango.com/richardgriffin/archive/2008/07/23/silverlight-tweening-adventures-with-baby-smash.aspx</link><pubDate>Wed, 23 Jul 2008 14:32:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11965</guid><dc:creator>Richard.Griffin</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://blogs.conchango.com/blogs/richardgriffin/WindowsLiveWriter/SilverlightTweeningAdventureswithBabySma_298/BabySmashScreen_2.png"&gt;&lt;img src="http://blogs.conchango.com/blogs/richardgriffin/WindowsLiveWriter/SilverlightTweeningAdventureswithBabySma_298/BabySmashScreen_thumb.png" style="border-width:0px;margin:10px 10px 10px 5px;" alt="BabySmashScreen" align="left" border="0" height="484" width="594"&gt;&lt;/a&gt;Before starting out&amp;nbsp; on my tweening adventures I have to admit too being complete tweening newbie. On previous WPF and Silverlight projects animations were rolled from scratch to provide the desired responses to changes in the applications state. With regards to Designer and Developer workflow this&amp;nbsp; stage of the process is usually where the 2 worlds collide. The developer adding animations in code behind hand cranking; Storyboards and animations; and dealing with event handlers. The designer is using Blend to create Timeline animations declared in Xaml. The other point to note is that Developers can't do animations, we may be able to code the equations and provide the necessary hooks for when event that happen when an animation finishes, but essentially the designer will have the last say in the matter with regards to the aesthetics of the animation created. My own experience is that we start with good intentions by putting all the animations in Xaml but this can become a little tricky when you have to deal with different states and trigger different animations. So this is when I fall back to putting all my animations together in a Resource Dictionary; and handling the state changes in code which fire the animations that the designer has created. The other problem that i have come across is when you have dynamic data data bound to an Items Control and you need to animate the different items based on their position in the Control, this simply can't all be done in Xaml and is a combination of Storyboards declared in Xaml and code behind to trigger the animations. In general animations can cause problems and I was also frustrated that these animations having to be hand rolled from &lt;a href="http://www.robertpenner.com/easing/easing_demo.html" target="_blank"&gt;&lt;/a&gt;scratch, this was evident when Felix asked if I would write some Silverlight animation code for him recently and while I was doing this all the memories of working with WPF and animations came flooding to mind at which point I thought that there must be a better way. I vaguely remembered reading an article on Silverlight Cream from &lt;a href="http://firstfloorsoftware.com/blog/" target="_blank"&gt;Koen&lt;/a&gt; over at first floor solutions and further back a post from &lt;a href="http://adamkinney.com/" target="_blank"&gt;Adam Kinney&lt;/a&gt;. If like me you are new to Tweening this is a great place to &lt;a href="http://firstfloorsoftware.com/blog/declarative-tweening-4/" target="_blank"&gt;start&lt;/a&gt; and is where my journey really begins. After reading the blog posts and looking over the other Tweening &lt;a href="http://www.pacem.it/CMerighi/Posts/66,en-US/Silverlight_Tweener.aspx" target="_blank"&gt;libraries&lt;/a&gt; from &lt;a href="http://www.pacem.it/CMerighi/Blog/en-US/Home.aspx" target="_blank"&gt;Cristian&lt;/a&gt; all of which are based on &lt;a href="http://www.robertpenner.com/" target="_blank"&gt;Robert Penner&lt;/a&gt; &lt;a href="http://www.robertpenner.com/easing/easing_demo.html" target="_blank"&gt;equations&lt;/a&gt; I was feeling confident that I could use this code and start to tackle my first problem. Animating &lt;a href="http://www.hanselman.com/babysmash/" target="_blank"&gt;Baby Smash!&lt;/a&gt; shapes.&lt;/p&gt;  &lt;p&gt;After helping &lt;a href="http://www.hanselman.com/blog/" target="_blank"&gt;Scott&lt;/a&gt; with some other parts of Baby Smash! we started talking about how to animate the different shapes that &lt;a href="http://blogs.conchango.com/felixcorke/default.aspx" target="_blank"&gt;Felix&lt;/a&gt; had created. We discussed the above and based on the outcome I decided to use tweening rather than hand cranking the animations from scratch, but I wanted to do something that would &lt;a href="http://blogs.conchango.com/blogs/richardgriffin/WindowsLiveWriter/SilverlightTweeningAdventureswithBabySma_298/Tweening%20code%20Xaml_2.png"&gt;&lt;img src="http://blogs.conchango.com/blogs/richardgriffin/WindowsLiveWriter/SilverlightTweeningAdventureswithBabySma_298/Tweening%20code%20Xaml_thumb.png" style="border:0px none;margin:10px 5px 10px 10px;" alt="Tweening code Xaml" align="right" border="0" height="484" width="627"&gt;&lt;/a&gt;not only work in Silverlight but also in WPF, this is where Koens' Library solved my problem. I download his simple Silverlight application which shows off some of the basic features available in the Tweening Library and put in some additional tweaks to the UI allowing for more control over the different Transfroms which we can use in Xaml. We have a bunch of different transforms available in Silverlight, which include; RenderTransform; ScaleTransform; RotateTransform; and SkewTransform. Not only did I want to be able to play with tweens for each Transform type I also wanted to allow users to change the values for their selected transform, for example the Scale Transform supports Scaling on the X and Y axis so there are sliders which can be used to change the values from and to which the tween will use to animate the Scale tween selected. &lt;/p&gt;  &lt;p&gt;Scott is building Baby Smash! mainly using code behind, and I can understand the attraction of heading for the code behind as this is what we feel comfortable cranking. From personal experience when building WPF applications burying goo in the code behind is not always that best thing especially when you are building interactions for the user. These interactions will have an impact on the designer and if they are not in the Xaml then they can't help that easily, but also they are more willing to change Xaml than code behind. Keon solution fits well, it allows me to add the animations in Xaml and event handlers in the code behind, allowing the designer to tweak the animations to produce the desired effect.&lt;/p&gt;  &lt;p&gt;So now we have away to play around with the different tweens and how they effect the various Transforms, we can also hit the Xaml button and get the Xaml required to recreate the Storyboard. The next job is to get everything working in WPF. I created a new WPF assembly and stuck Keons' library in. Next up add a reference from Baby Smash! project to the tweener project. Find the User Control shape that I want to change and add this code into the Resources collection of the Grid we also need to add the RenderTransformOrigin and set the value. Finally I needed to add the Render, Rotate, Scale and Skew transform to the Transform group collection of the grid.&amp;nbsp; Hit F5 and i get to see my shape and the tween animation that I created in the Silverlight app.&amp;nbsp; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.conchango.com/blogs/richardgriffin/WindowsLiveWriter/SilverlightTweeningAdventureswithBabySma_298/FigureGenerator_2.png"&gt;&lt;img src="http://blogs.conchango.com/blogs/richardgriffin/WindowsLiveWriter/SilverlightTweeningAdventureswithBabySma_298/FigureGenerator_thumb.png" style="border:0px none;margin:10px 10px 10px 5px;" alt="FigureGenerator" align="left" border="0" height="389" width="644"&gt;&lt;/a&gt;There are a couple of problems with my approach; first is that we are duplicating the tweening code in all the User Controls; and second problem is randomness, if I want to keep the equation applied to the shape but randomly change the from and to values this is currently not possible. I style may help here as Styles support animations, however I am referencing UI Elements that are in the Grid and this could cause some issues with regards to Scoping. My other choice is to add the animations into another Xaml file and use a Resource Dictionary. Keons' Library is best used inside a Control Template, however the Baby Smash! shapes are User Controls which contain a layout grid that hosts other UI Elements unfortunately these controls do not inherit from Control and thus I am unable to use the Control Template. As I could not make a decision I thought that I would attempt both the Style route and the Resource dictionary. I created an empty style for the layout root grid and moved the tweening Xaml into here, and that is about as far as it went, I got an exception at runtime complaining that it could not find the target. This is the scoping issue that mentioned earlier as the UI Element that we want to target is&amp;nbsp; out of scope. So next up is the Resource Dictionary. I created the Resource Dictionary in Blend and moved the tweening Storyboard into the Resource Dictionary, final part in Xaml is to just add in a reference from within the User Controls Resources collection to the new Resource Dictionary. Using this mechanism means that I have to trigger the tween for each shape from code behind, but its only a couple of lines. In Baby Smash! the figure generator is where most of the action takes place so in there I added some code to kick off the animation for shape. I have now replaced the duplicate code with a single Storyboard that we have in the Resource Dictionary, cool, but what about Random changing of the tweening easing functions and input values ? To implement this part I iterate over all the Children which in this case are DoubleAnimationUsingKeyFrames and call on of the Utility methods in Baby Smash! to get two random numbers generated.&amp;nbsp; To change the other values we can simply add the other static method calls to change the inputs on the tween. So I guess the next question really is "What would it have taken to do it all in code behind ?? "&lt;a href="http://blogs.conchango.com/blogs/richardgriffin/WindowsLiveWriter/SilverlightTweeningAdventureswithBabySma_298/Tweeing%20code%20only_2.png"&gt;&lt;img src="http://blogs.conchango.com/blogs/richardgriffin/WindowsLiveWriter/SilverlightTweeningAdventureswithBabySma_298/Tweeing%20code%20only_thumb.png" style="border:0px none;margin:10px 5px 10px 10px;" alt="Tweeing code only" align="right" border="0" height="302" width="895"&gt;&lt;/a&gt; You can see that if we go with all the animation tweening in code behind then it looks like this, yeah that's all it takes to get the animation working. By creating the Storyboards in code behind we loose the Verbose qualities of Xaml but we also loose the designer. My current thoughts are that if you have a number of UI Elements that you want to animate and these animations are pre baked by the Designer, go for the Xaml route. However, if you are looking for a solution to either dynamic items in an Items Control or you are looking to do something which is similar to Baby Smash! go with the code behind.&lt;/p&gt;  &lt;p&gt;While I was building this code &lt;a href="http://blogs.msdn.com/devdave/" target="_blank"&gt;Dev Dave&lt;/a&gt; and &lt;a href="http://scorbs.com/" target="_blank"&gt;Scorbs&lt;/a&gt; put together the &lt;a href="http://scorbs.com/2008/07/17/flickrviewr-using-devdaves-animatingwrappanel/" target="_blank"&gt;FlickrViewr&lt;/a&gt; using the Animating Wrap Panel and Robbie updated his &lt;a href="http://nerdplusart.com/" target="_blank"&gt;site&lt;/a&gt; and also posted a great post on animating &lt;a href="http://labs.nerdplusart.com/#AnimatingPanelBase" target="_blank"&gt;panels&lt;/a&gt;. So the next job is to take Dev Daves' AWP and change his interpolations with Penners' Equations. I have got pretty far with this but I have a performance tweak that I would like to make before posting the source. What I am hoping to build is a versatile AWP where you can easily say in Xaml what tweening easing equation you want to use along with the inputs. You can download all the source from my &lt;a href="http://cid-118ee1873690fc1d.skydrive.live.com/browse.aspx/SL2B2%20Demos" target="_blank"&gt;SkyDrive&lt;/a&gt; or you can load up the URL and have a play with the app &lt;a href="http://demo.conchango.com/MyTweenerTestWeb/" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=11965" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/richardgriffin/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>The Design of Womenomics</title><link>http://blogs.conchango.com/pauldawson/archive/2008/07/23/the-design-of-womenomics.aspx</link><pubDate>Wed, 23 Jul 2008 09:25:54 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11960</guid><dc:creator>Paul.Dawson</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/artofthepossible/archive/2008/06/25/term-of-the-day-womenomics.aspx"&gt;Dan Sumner at Microsoft&lt;/a&gt; seemed quite intrigued by a presentation I made the other day on a couple of trends that came through our friends at &lt;a href="http://www.thefuturelaboratory.com/"&gt;the Future Laboratory&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;The Slash/Slash Generation was one. More on this another day, but the one that captured his imagination was "The Design of Womenomics".&lt;/p&gt; &lt;p&gt;What The Future Laboratory were saying is that what was a trend on the rise (womenomics) has finally settled into the mainstream of design.&lt;/p&gt; &lt;p&gt;The power of women in the economy is essentially what 'womenomics' is, and it's a trend that has obviously been growing since suffragette-ism and feminism, and demonstrates that although equality&amp;nbsp; and parity between men and women still has a long way to go, it is now a major influence on commerce.&lt;/p&gt; &lt;p&gt;Womenomics is about the fact that women are involved in about 80% of purchasing decisions in the retail universe. They're also looking for different things; but make no mistake, this is not about pink and fluffy. It's instead about simplicity, clean lines, efficiency and what the psychologists call 'whole brain thinking'.&lt;/p&gt; &lt;p&gt;"The Design of Womenomics" is about how the trend of womenomics is now concretely influencing product design, retail design and other commercial areas.&lt;/p&gt; &lt;p&gt;What is interesting about "The Design of Womenomics" is that it's a trend that is completing the loop. We use trends analysis a lot to help us plan and set strategies for customers like Virgin Atlantic and Tesco - and often the feedback on seeing a trend on the rise is initially "very nice, but how do I use that to my advantage". So what we do with those, is stretch them forward and map them on to our clients' businesses. This is a lot more practical approach and helps those companies see the potential impact of a trend, and how they go about planning to take advantage of it.&lt;/p&gt; &lt;p&gt;What you see in "The Design of Womenomics" is how companies like Electrolux, Halfords and HiQ have shifted their attitude to design in order to better cater to an ecommerce and retail marketplace that is increasingly dominated by the power of a trend that was only previously "on the rise" as they say in "trend-y" circles.&lt;/p&gt; &lt;p&gt;In other words, it was good planning. Something we at Conchango do under the "Experience Planning" umbrella, with a philosophy of "Total Experience Design", which is about consideration of all channels and touchpoints regardless of whether or not Conchango has the ability to execute in them, and with a focus on the emotional state of the customer before, during and after their interaction with the brand we are working with.&lt;/p&gt; &lt;p&gt;I posted a few of the things I used to illustrate "The Design of Womenomics" this on a &lt;a href="http://www.flickr.com/photos/24920945@N06/sets/"&gt;Flickr set here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Thanks again to our partners at &lt;a href="http://www.thefuturelaboratory.com/"&gt;The Future Laboratory&lt;/a&gt; for being out there to pick this stuff up for us so we can translate it into actionable strategies for our clients.&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=11960" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/pauldawson/archive/tags/eCommerce/default.aspx">eCommerce</category><category domain="http://blogs.conchango.com/pauldawson/archive/tags/trends/default.aspx">trends</category><category domain="http://blogs.conchango.com/pauldawson/archive/tags/Total+Experience+Design/default.aspx">Total Experience Design</category><category domain="http://blogs.conchango.com/pauldawson/archive/tags/Brand/default.aspx">Brand</category><category domain="http://blogs.conchango.com/pauldawson/archive/tags/Experience+Design/default.aspx">Experience Design</category><category domain="http://blogs.conchango.com/pauldawson/archive/tags/Public+Speaking/default.aspx">Public Speaking</category><category domain="http://blogs.conchango.com/pauldawson/archive/tags/Experience+Planning/default.aspx">Experience Planning</category></item><item><title>Why BDD works for Agile</title><link>http://blogs.conchango.com/jamesbroome/archive/2008/07/22/why-bdd-works-for-agile.aspx</link><pubDate>Tue, 22 Jul 2008 22:34:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11949</guid><dc:creator>james.broome</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
 
&lt;p&gt;As I mentioned in &lt;a href="http://blogs.conchango.com/jamesbroome/archive/2008/07/08/hello-world.aspx" target="_blank"&gt;my first post&lt;/a&gt; (and will probably continue to do so for the unforeseeable future), I recently attended &lt;a href="http://www.jpboodhoo.com/training.oo" target="_blank"&gt;JP Boodhoo's Nothin' But Dot Net training 'boot camp'&lt;/a&gt; which has motivated me to start to write about some of the stuff that I learnt and am still trying to make sense of...&lt;/p&gt;
 
&lt;p&gt;The main focus of the course was using &lt;a href="http://dannorth.net/introducing-bdd" target="_blank"&gt;Behaviour Driven Design&lt;/a&gt; to drive out an application, tests first, from the top down. I was very familiar with the concept of automated unit testing, having used NUnit in the past and using the MSTest tools on my current project. However, I don't think I could truly say that I'd been working 'test first' or that the design of our application was driven out by the test cases. Also, if I were to give a summary report of our automated tests to one of our Business Analysts, I guarantee that it would be met with a blank expression. This makes it tricky to prove that the tests are correct - do they match the requirement and, if this changes, what tests need to change to reflect this?&lt;/p&gt;
 
&lt;p&gt;The whole idea behind &lt;a href="http://en.wikipedia.org/wiki/Behavior_driven_development" target="_blank"&gt;BDD&lt;/a&gt; is to write tests in &lt;a href="http://en.wikipedia.org/wiki/Plain_English" target="_blank"&gt;plain English&lt;/a&gt;, describing the behaviours of the thing that you are testing. When the things that you are testing are written in the common language of the domain, the tests are then describing the behaviour of that domain. The main advantage of this is that the tests reflect the user stories, the business requirements of the application. Careful choice of naming conventions and syntax mean that a unit test report can read like a functional specification. Therefore, it can be read by a non-technical person e.g. the project sponsor, a domain expert, a business analyst and the tests can be validated against the requirements. If a new developer joins the team, they may not know the domain of the application however looking at the tests will immediately give them a very clear idea of the intent of the code. &lt;/p&gt;
 
&lt;p&gt;Let's take the following hypothetical user story for a staff telephone directory application:&lt;/p&gt;
 
&lt;blockquote&gt; 
&lt;p&gt;"As a user I should be able to view an alphabetical list of the employees so that I can quickly find the person I wish to contact."&lt;/p&gt;
&lt;/blockquote&gt;
 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
 
&lt;p&gt;We may start with writing a test class something like this...&lt;/p&gt;
 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
 &lt;div&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;&lt;span&gt;using&lt;/span&gt; System; &lt;br&gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;&lt;span&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br&gt;&lt;br&gt;&lt;span&gt;using&lt;/span&gt; Observation = MbUnit.Framework.TestAttribute;&lt;br&gt;&lt;span&gt;using&lt;/span&gt; Context = MbUnit.Framework.TestFixtureAttribute;&lt;br&gt;&lt;br&gt;[Concerning(&lt;span&gt;typeof&lt;/span&gt;(DirectoryTasks))]&lt;br&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; when_the_directory_tasks_is_told_to_get_all_the_employees_beginning_with_the_letter_A : SpecificationContext&lt;br&gt;{&lt;br&gt;    &lt;span&gt;private&lt;/span&gt; IEnumerable&amp;lt;Employee&amp;gt; results;&lt;br&gt;    &lt;span&gt;private&lt;/span&gt; IDirectoryTasks sut; &lt;span&gt;//sut = System Under Test    &lt;/span&gt;&lt;br&gt;&lt;br&gt;    &lt;span&gt;protected&lt;/span&gt; &lt;span&gt;override&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; establish_context()&lt;br&gt;    {&lt;br&gt;        &lt;span&gt;//Test set up here e.g. mock objects etc...        &lt;/span&gt;&lt;br&gt;        &lt;span&gt;this&lt;/span&gt;.sut = &lt;span&gt;new&lt;/span&gt; DirectoryTasks();&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    &lt;span&gt;protected&lt;/span&gt; &lt;span&gt;override&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; because()&lt;br&gt;    {&lt;br&gt;        &lt;span&gt;this&lt;/span&gt;.results = &lt;span&gt;this&lt;/span&gt;.sut.GetEmployeesBeginningWith(&lt;span&gt;"A"&lt;/span&gt;);&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    [Observation]&lt;br&gt;    &lt;span&gt;public&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; should_ask_the_telephone_directory_for_all_the_employees_that_begin_with_A()&lt;br&gt;    {&lt;br&gt;        &lt;span&gt;//Interaction based test checking that we are talking to the TelephoneDirectory domain object    &lt;/span&gt;&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    [Observation]&lt;br&gt;    &lt;span&gt;public&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; should_return_the_list_of_employees_in_alphabetical_order()&lt;br&gt;    {&lt;br&gt;        &lt;span&gt;//State based test  &lt;/span&gt;&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Note the name of the test class describes the context of the tests. The test methods (observations) are describing the expected behaviour of the thing that we are testing. Note too the Arrange, Act, Assert style of the test. We establish the context for the test, perform the action that we want to test and then assert the correct behaviours of the system under test. &lt;/p&gt;

&lt;p&gt;Writing the specification first drives out the need for the following supporting domain classes: &lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; DirectoryTasks : IDirectoryTasks&lt;br&gt;{&lt;br&gt;    &lt;span&gt;public&lt;/span&gt; IEnumerable&amp;lt;Employee&amp;gt; GetEmployeesBeginningWith(&lt;span&gt;string&lt;/span&gt; first_letter)&lt;br&gt;    {&lt;br&gt;        &lt;span&gt;throw&lt;/span&gt; &lt;span&gt;new&lt;/span&gt; NotImplementedException();&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;interface&lt;/span&gt; IDirectoryTasks&lt;br&gt;{&lt;br&gt;    IEnumerable&amp;lt;Employee&amp;gt; GetEmployeesBeginningWith(&lt;span&gt;string&lt;/span&gt; first_letter);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; Employee {}&lt;/pre&gt;&lt;/div&gt;
&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;And the test class uses the following utility classes:&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;&lt;span&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;/// Base class for all test contexts - enforces the Arrange, Act, Assert style testing&lt;/span&gt;&lt;br&gt;&lt;span&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br&gt;[Context]&lt;br&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;abstract&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; SpecificationContext&lt;br&gt;{&lt;br&gt;    [SetUp]&lt;br&gt;    &lt;span&gt;public&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; Setup()&lt;br&gt;    {&lt;br&gt;        &lt;span&gt;this&lt;/span&gt;.establish_context();&lt;br&gt;        &lt;span&gt;this&lt;/span&gt;.because();&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    &lt;span&gt;protected&lt;/span&gt; &lt;span&gt;abstract&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; because();&lt;br&gt;    &lt;span&gt;protected&lt;/span&gt; &lt;span&gt;abstract&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; establish_context();&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;span&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;/// Attribute used in grouping observations&lt;/span&gt;&lt;br&gt;&lt;span&gt;/// when generating test report&lt;/span&gt;&lt;br&gt;&lt;span&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br&gt;[AttributeUsage(AttributeTargets.Class)]&lt;br&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; ConcerningAttribute : Attribute&lt;br&gt;{&lt;br&gt;    &lt;span&gt;private&lt;/span&gt; &lt;span&gt;readonly&lt;/span&gt; Type concern;&lt;br&gt;&lt;br&gt;    &lt;span&gt;public&lt;/span&gt; ConcerningAttribute(Type concern)&lt;br&gt;    {&lt;br&gt;        &lt;span&gt;this&lt;/span&gt;.concern = concern;&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    &lt;span&gt;public&lt;/span&gt; Type Concern&lt;br&gt;    {&lt;br&gt;        get { &lt;span&gt;return&lt;/span&gt; &lt;span&gt;this&lt;/span&gt;.concern; }&lt;br&gt;    }&lt;br&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;Each test class relates to a specific context for a set of tests, which translate as the specification for the system under test. So, you may have more than one test class for each thing that you are testing if there are different test contexts e.g. &lt;/p&gt;
&lt;div&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;when_the_directory_tasks_is_told_to_get_all_the_employees_in_a_department&lt;br&gt;&lt;br&gt;when_the_directory_tasks_is_told_to_get_all_the_employees_with_a_specific_last_name&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And each test context may have multiple tests, or observations, each with different assertions. The assertions themselves can also follow the same BDD coding styles so instead of the typical&lt;/p&gt;
&lt;div&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;Assert.IsTrue();&lt;br&gt;&lt;br&gt;Assert.AreEqual();&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;We can use&lt;/p&gt;
&lt;div&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;results.should_only_contain();&lt;br&gt;&lt;br&gt;result.is_equal_to();&lt;br&gt;&lt;br&gt;dependency.was_told_to();&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Of course, the fluent syntax of the code in the above examples is made possible by the goodness of C# extension methods and some creative thinking about the design and naming of classes. But taking the mantra Red, Green, Refactor, the only thing preventing you from writing truly expressive code is your own creativity. Write the code how you want to use it from the tests, get the code compiling, get the test passing, then refactor the code. &lt;/p&gt;

&lt;p&gt;Writing the tests first drives out the code from the top down, whilst writing them in a BDD style syntax gives a meaning to why the tests are there and &lt;a href="http://en.wikipedia.org/wiki/YAGNI" target="_blank"&gt;why that piece of 'real' code should then be written&lt;/a&gt;. As &lt;a href="http://www.conchango.com/we-do-this/how/" target="_blank"&gt;I'm already working in an agile environment&lt;/a&gt;, collaborating with business analysts and working from user stories, developing features in this way just seems to totally fit. Its only a small step to produce a report of all the tests, parsing the class and method names to give you something like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Directory Tasks &lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;When the directory tasks is told to get all the employees beginning with the letter A&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;should ask the telephone directory for all the employees that begin with A 
&lt;/li&gt;

&lt;li&gt;should return the list of employees in alphabetical order 
&lt;/li&gt;

&lt;li&gt;should return the list of employees in groups of 10 &lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;p&gt;When the directory tasks is told to get all the employees in a department&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;should etc... &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Look familiar? The tests start to become a direct specification for the system that can be read, understood and validated by any member of the team. They are written in the language of the domain and describe the behaviour of the domain. If the specification changes, or new requirements are added (or missing) it is easy to see which tests and therefore what code needs to change. The code itself becomes the living breathing documentation of the application and this really supports an agile iterative cycle of development, adding new features one at a time. &lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Please note: The example above will compile, but the tests won't yet pass due to the GetEmployeesBeginningWith() method throwing a NotImplementedException. In future posts I will build on this example to flesh out the tests and the associated code.&lt;/p&gt;

&lt;p&gt;The test framework used here is MBUnit, so a reference is needed to MBUnit.Framework. Alternatively, the test framework can be replaced by changing the aliases in the using statements at the top of the file.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;For more info, see &lt;a href="http://behaviour-driven.org/" title="http://behaviour-driven.org/"&gt;http://behaviour-driven.org/&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=11949" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/jamesbroome/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.conchango.com/jamesbroome/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.conchango.com/jamesbroome/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.conchango.com/jamesbroome/archive/tags/BDD/default.aspx">BDD</category></item><item><title>BTS 06 R2 and .Net 3.0</title><link>http://blogs.conchango.com/iunkown/archive/2008/07/22/bts-06-r2-and-net-3-0.aspx</link><pubDate>Tue, 22 Jul 2008 15:03:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11941</guid><dc:creator>Prasanna.Krishnan</dc:creator><slash:comments>0</slash:comments><description>&lt;DIV style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:4pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:#4f81bd 1pt solid;mso-element:para-border-div;mso-border-bottom-themecolor:accent1;"&gt;
&lt;P class=MsoTitle style="MARGIN:0cm 0cm 15pt;"&gt;&lt;SPAN style="mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;FONT size=7&gt;&lt;FONT color=#17365d&gt;&lt;FONT face=Cambria&gt;BizTalk 2006 R2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;This article is intended to provide an overview of BTS 06 R2 new set of adapter and integration with WCF and WF. (Some of the contents are referred from the Microsoft web site)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Firstly BTS 06 R2 is released more or less at the same time of VS 2008 has no supporting templates for BTS. So if you planning to migrate to new visual studio environment you may have to wait for another major release (I guess that’s BTS 06 R3). &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Since BTS 06 R2 is built on top of .Net 2.0 framework you cannot take advantage of the all the new features of .Net 3.0 and above. The major integration point is of with WCF. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:4pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:#4f81bd 1pt solid;mso-element:para-border-div;mso-border-bottom-themecolor:accent1;"&gt;
&lt;P class=MsoTitle style="MARGIN:0cm 0cm 15pt;"&gt;&lt;SPAN style="mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;FONT size=7&gt;&lt;FONT color=#17365d&gt;&lt;FONT face=Cambria&gt;.Net 3.5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;None of the feature other than REST based communications for BTS 06 R2. Linq2XML will be better suited for BTS but unfortunately it is not supported with the current release&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:4pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:#4f81bd 1pt solid;mso-element:para-border-div;mso-border-bottom-themecolor:accent1;"&gt;
&lt;P class=MsoTitle style="MARGIN:0cm 0cm 15pt;"&gt;&lt;SPAN style="mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;FONT size=7&gt;&lt;FONT color=#17365d&gt;&lt;FONT face=Cambria&gt;WF Adapter&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;This is purely my assumption; there is no straight forward way to integrate WF. I thought R2 might have new orchestration shape to invoke WF &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:Wingdings;mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-ascii-font-family:Arial;mso-hansi-font-family:Arial;mso-bidi-font-family:Arial;mso-themecolor:text1;mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;SPAN style="mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;The only way I heard or seen others doing it is by exposing WF as service and consume the same in BTS like any other service and vice-versa&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;There is an undocumented BizTalk Server 2006 R2 Extensions For Windows Workflow Foundation SDK V1 is available, and honestly don’t know how many of them have used or using it - &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="http://www.microsoft.com/Downloads/details.aspx?FamilyID=b701c00f-cdc1-4edb-a975-b9412263ec6e&amp;amp;displaylang=en"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;FONT color=#800080&gt;http://www.microsoft.com/Downloads/details.aspx?FamilyID=b701c00f-cdc1-4edb-a975-b9412263ec6e&amp;amp;displaylang=en&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:4pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:#4f81bd 1pt solid;mso-element:para-border-div;mso-border-bottom-themecolor:accent1;"&gt;
&lt;P class=MsoTitle style="MARGIN:0cm 0cm 15pt;"&gt;&lt;FONT size=7&gt;&lt;FONT color=#17365d&gt;&lt;FONT face=Cambria&gt;&lt;SPAN style="mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;WCF Adapters&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Overview&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;The BizTalk WCF (Windows Communication Foundation) Adapters&amp;nbsp;align&amp;nbsp;BizTalk with Microsoft’s Web Services strategy by exposing WCF&amp;nbsp;channels to BizTalk processes.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Features&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;The BizTalk R2 contains the following WCF Adapters&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;WsHttp Adapter – provides the WS-* standards support over HTTP transport. WCF-WsHttp adapter provides a transport/protocol stack implementation compatible with other next generation Web Services (platforms that also implement the same Web Services Architecture standards). It provides full access to SOAP security, reliability, and transaction features. This adapter uses the HTTP or HTTPS transport, and messages have a text or Message Transmission Optimization Mechanism (MTOM) encoding &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;NetTcp Adapter – provides the WS-* standards support over TCP transport.&amp;nbsp; WCF-NetTcp adapter provides efficient communication in a .NET to-.NET environment. It provides full access to SOAP security, reliability and transactions features. This adapter uses the TCP transport and messages have binary encoding. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;WCF-NetMsmq Adapter – provides queued messaging using MSMQ transport.&amp;nbsp; WCF-NetMsmq adapter provides queued communication in a .NET-to-.NET environment. It uses MSMQ transport, and messages have a binary encoding &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;WCF-BasicHttp&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;–&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;compatible with first generation web services.&amp;nbsp; WCF-BasicHttp adapter provides a transport/protocol stack implementation compatible with first-generation Web Services. This adapter uses the HTTP or HTTPS transport, and messages have a text encoding. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;WCF-NetNamedPipe&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;– provides cross process messaging using NamedPipes transport.&amp;nbsp; WCF-NetNamedPipe adapter provides efficient cross-process communication in a .NET-to-.NET environment. This adapter provides full access to SOAP reliability and transaction features. The adapter uses the named pipe transport and messages have a binary encoding. This adapter cannot be used in cross-machine communication. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;WCF-Custom – provides customization for using WCF components (bindings, behaviors and binding elements).&amp;nbsp; WCF-Custom adapter is used to enable usage of WCF extensibility components in BizTalk Server. The adapter enables complete flexibility of the WCF framework. It allows users to select and configure a WCF binding for the receive location/send port. It allows users to set the endpoint behaviors and security settings. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;WCF-CustomIsolated – provides customizations for using WCF components (bindings, behaviors and binding elements) and using the HTTP transport.&amp;nbsp; WCF-CustomIsolated adapter is used to enable usage of WCF extensibility components in BizTalk Server, but out of proc in IIS. The adapter enables complete flexibility of the WCF framework. It allows users to select and configure a WCF binding for the receive location/send port. It allows users to set the endpoint behaviors and security settings.&amp;nbsp; This adapter should only be used by transports than can be hosted in IIS.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Supported Use Cases&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;The BizTalk R2 WCF Adapters supports the following Use Cases:&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Exposing BizTalk orchestration as a WCF web service&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Exposing BizTalk Content Based Routing application as a WCF web service &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Consuming a WCF service from BizTalk orchestration &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Consuming a WCF service from Content Based Routing application &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Transactional message&amp;nbsp;receive &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Transactional message send &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Using WS-* headers for routing and message processing &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Using custom headers for routing and message processing &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Using custom binding elements &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Using custom bindings &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Using BizTalk dynamic send ports &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Using BizTalk as SOAP intermediary &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Consuming a WCF Service originating from WCF-LOB Adapter (SAP, Siebel, Oracle DB, and Tibco RV) &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Consuming a WCF Service originating from the WCF-Adapter Framework (Custom Adapters)&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Supported Transports&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;HTTP / HTTPS &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;SOAP&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;MTOM&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;TCP&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;MSMQ&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Named Pipe&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt 62.65pt;TEXT-INDENT:-18pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Symbol;mso-ansi-language:EN-US;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="FONT-SIZE:14pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;WinFX Adapter Framework&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Overview&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;The framework provides a common basis for building integration adapters that can be consumed by a&amp;nbsp;variety of client applications (BizTalk, Office, .Net, etc) and usage scenarios via WinFX (Microsoft’s next generation messaging framework). The .Net 3.0 Adapter Framework&amp;nbsp;aligns&amp;nbsp;the adapters strategy with Microsoft’s Web Services strategy by exposing integration adapters as WCF (Windows Communication&amp;nbsp;Foundation)&amp;nbsp;channels.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Features&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;The Adapter Framework consists of the following components:&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Adapter Framework Runtime&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;The run-time consists of services that expose the adapter logic as WCF channels. This layer hides most of the complexity of the channel architecture and lets the adapter developer focus on Line of Business (Siebel, SAP, etc)&amp;nbsp;specifics. These services auto generate much of the channel-level code based on declarative attributes used by the adapter developer. The framework also extends the channel architecture with Metadata components. The framework provides&amp;nbsp;for metadata cache mgmt, connection mgmt etc that adapter developers can leverage to simplify the development process.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;&amp;nbsp;Adapter Development Tools &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;The development tools include Visual Studio extensions and project wizards that automate much of the tedious and busy work required to wire up adapters including the adapter deployment projects.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Adapter Development SDK &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;The SDK includes project samples, walkthroughs and an Adapter Development Cook Book that goes thru in detail the various aspects of adapter development &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;WinFX Line of Business (LOB) Adapters&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;An adapter is fundamentally a module that bridges a client program and an external system, exposing well-defined and standardized interfaces over various programming models to the client program while internally mapping them to proprietary interfaces and protocols supported by the external system. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;Application adapters provide an interface to Line-of-Business (LOB) systems like SAP, Siebel, Oracle Financials, PeopleSoft and JD Edwards. Database adapters provide an interface to database systems like Oracle, SQL Server, Sybase and DB2. Transport adapters provide an interface to transport protocols like HTTP and FTP and message-oriented middleware (MOM) like Tibco, Websphere MQ and MSMQ.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;The&amp;nbsp;WinFX Adapters&amp;nbsp;deliver application, database and transport adapters by implementing a common Adapter Framework, which in turn is built on top of the Windows Communication Framework (WCF). Technically the WinFX adapters are exposed as&amp;nbsp;WCF transport channels to clients, enabling connectivity, metadata exchange and business data exchange with external systems.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;COLOR:black;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-themecolor:text1;"&gt;The WinFX adapters make line-of-business applications, databases and messaging platforms visible and interoperable with standard business processes, workflows and .NET applications They promote reusability and “plug ‘n play” across disparate applications. Different programming models can be built on top of the&amp;nbsp;WCF adapter framework giving client programs the choice of programming models based on business needs. ADO.NET,&amp;nbsp;WCF proxy programming and&amp;nbsp;WCF channel (message-level) programming are a few programming models. The adapter framework eases adapter development in terms of providing simplified abstractions that handle common infrastructure and plumbing aspects of adapter building besides providing common runtime services. This enables adapter writers to focus on business logic required to interface with and surface external system functionality. It also empowers partners to develop custom adapters. The choice of WCF is essentially inline with Microsoft’s next generation communication framework optimized for the web services enabled world. It automatically web service enables external systems that are being adapted using WinFX adapters&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:4pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:#4f81bd 1pt solid;mso-element:para-border-div;mso-border-bottom-themecolor:accent1;"&gt;
&lt;P class=MsoTitle style="MARGIN:0cm 0cm 15pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT size=7&gt;&lt;FONT color=#17365d&gt;&lt;FONT face=Cambria&gt;Migrating BizTalk 2004 (VS 2003) Solution to BizTalk 2006 R2 (VS 2005) &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;While the BizTalk Server product team has done a great job of being able to migrate an already deployed BizTalk 2004 solution to BizTalk 2006 in-situ, there is definitely some effort required in upgrading the Visual Studio solution itself such that subsequent deploys actually work. &lt;BR&gt;&lt;BR&gt;The situation is complicated by two things: the change in project definitions between VS 2003 and VS 2005, and of course the migration from .NET 1.1 to .NET 2.0 (there should be no complication by .NET 3.0 / 3.5 with BizTalk 2006 R2 as .NET 3.0 / 3.5 is an extension to 2.0).&lt;BR&gt;&lt;BR&gt;Depending on the solution, some of the items may not apply, and there may be some other issues to be taken care during the migration process (for example handling deprecated classes, method overloads etc). &lt;BR style="mso-special-character:line-break;"&gt;&lt;BR style="mso-special-character:line-break;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Export the port bindings and configurations to XML before making any changes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL style="MARGIN-TOP:0cm;"&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;When you open the VS 2003 SLN file in VS 2005, VS will prompt you to migrate the solution, just follow the migration wizard. Once the wizard completes porting from VS 2003 to VS 2005&amp;nbsp;it will generate a report of the items you may need to fix (e.g. deprecated classes) .&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Migrate all the WebService Projects which are referenced by BizTalk&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Migrating the BTS Projects&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;OL style="MARGIN-TOP:0cm;"&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level2 lfo1;tab-stops:list 72.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Re-build all the web reference in the project. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;OL style="MARGIN-TOP:0cm;"&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level3 lfo1;tab-stops:list 108.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Remove all the web reference and re-add them with the same name &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level3 lfo1;tab-stops:list 108.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;If you use Dynamic web references, ensure that property is selected &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level3 lfo1;tab-stops:list 108.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Add a reference to System.Configuration if it is not there already (to avoid compilation error)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level2 lfo1;tab-stops:list 72.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Open the project's properties &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;OL style="MARGIN-TOP:0cm;"&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level3 lfo1;tab-stops:list 108.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Assign a default BizTalk Configuration Database &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level3 lfo1;tab-stops:list 108.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Assign an Application Name &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/OL&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;For each schema in your solution that uses promoted properties &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;OL style="MARGIN-TOP:0cm;"&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level2 lfo1;tab-stops:list 72.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Open the 'Show Promotions' dialog.&amp;nbsp; to rebuild the xsd's code-behind (.cs) &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;For each orchestration with a web-port &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;OL style="MARGIN-TOP:0cm;"&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level2 lfo1;tab-stops:list 72.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Delete the configured web port (since you regenerated the web reference)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level2 lfo1;tab-stops:list 72.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Re-add the web port with the same name, ensuring it is a Dynamic web port if necessary &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level2 lfo1;tab-stops:list 72.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Re-assign message types for messages defined in Orchestration Explorer&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 10pt;mso-list:l0 level2 lfo1;tab-stops:list 72.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Re-connect send/receive shapes if necessary&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/OL&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Arial;mso-ansi-language:EN-US;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;6.&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;If your using dynamic maps then verify the fully qualified name of the assemblies are correct&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Arial;mso-ansi-language:EN-US;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;7.&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;If you have custom functoid then treat them as new functiod and place them in GAC and BizTalk reference directory. And re-add them to your map&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0cm 0cm 0pt 36pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN:0cm 0cm 10pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Arial;mso-ansi-language:EN-US;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;8.&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;If time permits then migrate your existing web service to WCF – Preferred going forward&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Once you build the solution you might end up with tons of warnings.&amp;nbsp; Some of the warnings have been added to assist in improving the performance/stability of your BizTalk solution.&amp;nbsp; The one most notable to my solution was the following: &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;Performance Warning: marking service 'OrchestrationName' as a long running transaction is not necessary and incurs the performance penalty of an extra commit &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN-US;"&gt;&lt;BR&gt;For orchestrations where long-running was not necessary (ie do not contain send/receive pattern or other long-running transactions), I have since changed them to use Transaction Type of None.&amp;nbsp; Hopefully we will see a reduction of database chatter for these orchestrations when we benchmark the changes. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="FONT-SIZE:12pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=11941" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/iunkown/archive/tags/BizTalk/default.aspx">BizTalk</category></item><item><title>UCD 101</title><link>http://blogs.conchango.com/pauldawson/archive/2008/07/22/ucd-101.aspx</link><pubDate>Tue, 22 Jul 2008 08:33:04 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11933</guid><dc:creator>Paul.Dawson</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Ok, I've been meaning to post this for a while, so sorry it's late... but I talk a lot about 'experience' and user-centred design, and occasionally, I stumble across someone who doesn't come from my universe and isn't as keenly aware of what some of this means. So here begins, hopefully, a small series of blogs on the basic principles of User-Centred Design (UCD) and user experience generally. The aim is to do each in 500 words or less. Something I'm not very good at, so bear with me. Herewith, UCD 101:&lt;/p&gt; &lt;p&gt;User-centred design (UCD) is an industry-standard term for an approach to the design of a solution that takes a detailed look at the needs of the end users of a solution, and then specifically sets about creating things that satisfies those needs.&lt;/p&gt; &lt;p&gt;Done well and in an organisation that truly 'gets it', this approach will drive not simply how something works, but the overall 'product' the company has to offer. UCD is a very effective innovation framework, as it looks at un-met needs in its customer base and potential customer base. This basic approach has been the key driver of invention since forever, so UCD is a perfect framework to drive everything from product innovation to interaction design.&lt;/p&gt; &lt;p&gt;In order to be effective, UCD can't purely be 'user' design. i.e. it cannot simply be 'what users want'. Take a look at Homer's ideal car below to see how bad this approach can be. &lt;img src="http://girtby.net/images/homer-car.gif" align="left"&gt;UCD is about understanding users' wants and needs, coupling that with an understanding of what will drive the commercial business and what the technology is capable of, and then design an appropriate, beautiful and enjoyable experience or product.&lt;/p&gt; &lt;p&gt;It's something often summed up as balancing desire, feasibility and viability. Unless you get all three right, the thing will fail. &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Lose 'desire' and nobody will come to use it. Thereby collapsing any business case you had built on it.  &lt;li&gt;Lose 'feasiblity' and you may not even be able to build it in the first place.  &lt;li&gt;Lose 'viability' and it will be too expensive, or hard to maintain and the business needs won't be met. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The best products balance all three very effectively. So a UCD process is actually one that also is business-centred and technology-centred. That's a lot of centres... but the secret is mutual gain. &lt;/p&gt; &lt;p&gt;Usually, unless we create something that somebody wants to do ('Desire') it's going to fail. So usually, the reason we call this user-centred is that unless we have users, nothing else works; but as we said in reality the game is mutual gain. We can give users lots of things they want to do, but where is the business value? When we find overlap between user-benefit and business-benefit, those are the magic moments that will make a system or business successful.&lt;/p&gt; &lt;p&gt;Sometimes a business just has to do something. It might be a regulatory requirement for example. But even this requires attention to the 'desire' element. In this case, the base system comes first. "We need a system to get customers to sign our new terms and conditions". Viability is ticked as it's a 'must do', but now we have to address 'desire'. How do we make people do this? It's best if they want to do it as it will happen faster and they will be happier - but what motivates them?&lt;/p&gt; &lt;p&gt;Finally - UCD should have a success metric of user happiness. User happiness is a user benefit that overlaps with business benefits, but is often left unconsidered. In internal systems it leads to staff loyalty and lowered support costs, in customer-facing systems it generates increased trade and loyalty. But more than that, because loyalty can be generated simply by having the right product at the right price and not letting people down on delivery. That's all good, but you can go further. When you get customers emotionally invested in something, you move from simple loyalty, to advocacy, which is a far more valuable attribute for business. It's 'experience' that generates this emotional attachment...&lt;/p&gt; &lt;p&gt;Words: 576 - Doh!&lt;/p&gt; &lt;p&gt;Thanks to / people to read: Alan Cooper - The Inmates are Running the Asylum; Lou Carbone - Clued In.&lt;/p&gt;&lt;img src="http://blogs.conchango.com/aggbug.aspx?PostID=11933" width="1" height="1"&gt;</description><category domain="http://blogs.conchango.com/pauldawson/archive/tags/Customer+Experience/default.aspx">Customer Experience</category><category domain="http://blogs.conchango.com/pauldawson/archive/tags/User+Centred+Design/default.aspx">User Centred Design</category><category domain="http://blogs.conchango.com/pauldawson/archive/tags/User+Interfaces/default.aspx">User Interfaces</category><category domain="http://blogs.conchango.com/pauldawson/archive/tags/User+Experience/default.aspx">User Experience</category></item><item><title>UK Silverlight User Group - date confirmed</title><link>http://blogs.conchango.com/michelleflynn/archive/2008/07/21/uk-silverlight-user-group-date-confirmed.aspx</link><pubDate>Mon, 21 Jul 2008 09:42:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:11926</guid><dc:creator>Michelle.Flynn</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;&lt;A class="" href="http://www.conchango.com/" target=_blank&gt;Conchango&lt;/A&gt; are pleased to announce the date for the next &lt;A class="" href="http://www.slxlab.com/" target=_blank&gt;Silverlight User Group&lt;/A&gt; as Thursday 14th August.&lt;/P&gt;
&lt;P&gt;The venue is currently the Conchango offices in &lt;A class="" href="http://www.conchango.com/contact-us/" target=_blank&gt;London Bridge&lt;/A&gt;, although another venue will be arranged if we are oversubscribed.&lt;/P&gt;
&lt;P&gt;Full details to follow.&lt;/P&gt;
&lt;P&gt;If you are interested in attending please email me on &lt;A href="mailto:michelle.flynn@conchango.com"&gt;michelle.flynn@conchango.com&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Some of the Conchango team confirmed so far are: &lt;A class="" href="http://blogs.conchango.com/pauldawson/" target=_blank&gt;Paul Dawson&lt;/A&gt;, &lt;A class="" href="http://blogs.conchango.com/markmann/" target=_blank&gt;Mark Mann&lt;/A&gt;, &lt;A class="" href="http://blogs.conchango.com/richardgriffin/" target=_blank&gt;Richard Griffin&lt;/A&gt;&amp;nbsp;and &lt;A class="" href="h