<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/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>Hernan de Lahitte&amp;#39;s blog</title><link>http://weblogs.asp.net/hernandl/default.aspx</link><description>.NET Development from the trenches</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Acceptance Tests &amp; Specflow</title><link>http://weblogs.asp.net/hernandl/archive/2012/05/15/acceptance-tests-amp-specflow.aspx</link><pubDate>Tue, 15 May 2012 02:32:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:8478720</guid><dc:creator>HernanDL</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=8478720</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2012/05/15/acceptance-tests-amp-specflow.aspx#comments</comments><description>&lt;p&gt;An interesting post from the &lt;a href="http://weblogs.asp.net/hernandl/archive/2012/05/09/cqrs-journey-v1-is-live.aspx" mce_href="http://weblogs.asp.net/hernandl/archive/2012/05/09/cqrs-journey-v1-is-live.aspx"&gt;CQRS project&lt;/a&gt; was posted about the use of &lt;a href="http://cqrsjourney.github.com/blog/2012/05/14/Specing-Out-End-To-End-Scenarios/" mce_href="http://cqrsjourney.github.com/blog/2012/05/14/Specing-Out-End-To-End-Scenarios/"&gt;Specflow and the project Acceptance tests&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Here you will find the captured experience for creating the tests scenarios and the two approaches used for implementing the specs written with Specflow.&lt;/p&gt;&lt;p&gt;I will add further details on this experience in a future post while we get closer to the final version of the project.&lt;/p&gt;&lt;p&gt;Stay tunned!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=8478720" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>CQRS Journey V1 is live</title><link>http://weblogs.asp.net/hernandl/archive/2012/05/09/cqrs-journey-v1-is-live.aspx</link><pubDate>Wed, 09 May 2012 17:25:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:8457453</guid><dc:creator>HernanDL</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=8457453</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2012/05/09/cqrs-journey-v1-is-live.aspx#comments</comments><description>&lt;p&gt;For the last&amp;nbsp;two month I've been&amp;nbsp;working with the &lt;a href="http://cqrsjourney.github.com/" mce_href="http://cqrsjourney.github.com/"&gt;CQRS Journey&lt;/a&gt; team&amp;nbsp;helping with the spec definitions and acceptance tests using &lt;a href="http://www.specflow.org/" mce_href="http://www.specflow.org/"&gt;Specflow&lt;/a&gt; which was a very interesting experience.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;As you can see, this is basically a project from the &lt;a href="http://msdn.microsoft.com/en-us/practices/bb190332" mce_href="http://msdn.microsoft.com/en-us/practices/bb190332"&gt;Patterns &amp;amp; Practices&lt;/a&gt; group that shows an experience about an implementation&amp;nbsp;of &lt;a href="http://martinfowler.com/bliki/CQRS.html" mce_href="http://martinfowler.com/bliki/CQRS.html"&gt;CQRS&lt;/a&gt; pattern into a &lt;a href="http://cqrsjourney.github.com/blog/2012/03/30/Sample-Application-Overview/" mce_href="http://cqrsjourney.github.com/blog/2012/03/30/Sample-Application-Overview/"&gt;reference implementation&lt;/a&gt; application.&lt;/p&gt;&lt;p&gt;You can find more fresh news and further details about this project in its &lt;a href="http://cqrsjourney.github.com/blog/" mce_href="http://cqrsjourney.github.com/blog/"&gt;blog&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;In a future
post I will highlight some of the experience and details of how we implemented
the Acceptance Tests using Specflow within this project.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Stay tuned!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=8457453" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>Web Service Software Factory 2010 Open Source CTP</title><link>http://weblogs.asp.net/hernandl/archive/2011/10/26/web-service-software-factory-2010-open-source-ctp.aspx</link><pubDate>Wed, 26 Oct 2011 11:01:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:8012430</guid><dc:creator>HernanDL</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=8012430</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2011/10/26/web-service-software-factory-2010-open-source-ctp.aspx#comments</comments><description>&lt;p&gt;As a follow up of the &lt;a href="http://msdn.microsoft.com/en-us/library/bb931187.aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb931187.aspx"&gt;WSSF Modeling Edition&lt;/a&gt;&amp;nbsp;there is a new "flavor" of this tool where the main news is the versioning plan. The basic idea is to release the source code to the comunity in an "open source" model so any user may be free to update and add new features.&lt;/p&gt;&lt;p&gt;As part of this move, there are some additions and fixes that you will get in this open source release (CTP as the time of this post).&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;GAX free (no more dependency with GAX) 
&lt;li&gt;WCF Security Code Analysis added from WSSF v2 and updated to FxCop version 
from VS2010 
&lt;li&gt;Bug fixes 
&lt;li&gt;No more WSSF solution template (the WSSF menu options will show up on any 
compliant project and will let add models and WCF/ASMX templates) 
&lt;li&gt;Translator recipe removed. Writing translators is up to the user or it might 
be added using MEF extensibility. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You can download it and get some other build steps from &lt;a href="http://servicefactory.codeplex.com/releases/view/68831" mce_href="http://servicefactory.codeplex.com/releases/view/68831"&gt;here&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;Stay tuned for the "official announcement" in &lt;a href="http://blogs.msdn.com/b/donsmith/" mce_href="http://blogs.msdn.com/b/donsmith/"&gt;Don's blog&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=8012430" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/WSSF/default.aspx">WSSF</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>WCF Data Services and Custom Authorization</title><link>http://weblogs.asp.net/hernandl/archive/2011/06/16/wcf-data-services-and-custom-authorization.aspx</link><pubDate>Thu, 16 Jun 2011 10:33:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7831408</guid><dc:creator>HernanDL</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7831408</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2011/06/16/wcf-data-services-and-custom-authorization.aspx#comments</comments><description>&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;In the last post about &lt;a href="http://weblogs.asp.net/hernandl/archive/2011/06/15/decoding-messages-in-wcf-data-services.aspx" mce_href="http://weblogs.asp.net/hernandl/archive/2011/06/15/decoding-messages-in-wcf-data-services.aspx"&gt;&lt;font color="#0000ff"&gt;Decoding
Messages in WCF Data Services&lt;/font&gt;&lt;/a&gt; I showed a code sample about how to decode an
incoming WCF Message in a Data Service. In this case I will show how we can use
this decoded message inside a &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.serviceauthorizationmanager.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.servicemodel.serviceauthorizationmanager.aspx"&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;&lt;font color="#0000ff"&gt;ServiceAuthorizationManager&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt; derived class to perform
some &lt;a href="http://blogs.msdn.com/b/drnick/archive/2008/01/08/basing-authorization-on-the-message-body.aspx" mce_href="http://blogs.msdn.com/b/drnick/archive/2008/01/08/basing-authorization-on-the-message-body.aspx"&gt;&lt;font color="#0000ff"&gt;authorization
depending on the content&lt;/font&gt;&lt;/a&gt; (i.e. grant access to some entities according to
the logged on user).&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;The following configuration set an
authorization manager using Windows Authentication.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 5pt 0cm 0pt;" class="Para"&gt;&lt;span style='font-family: "Verdana","sans-serif"; mso-bidi-font-size: 10.0pt;'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;table style="border: currentColor; width: 495pt; border-collapse: collapse; mso-border-alt: solid silver .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;" class="MsoNormalTable" border="1" cellSpacing="0" cellPadding="0" width="660"&gt;&lt;font face="Times New Roman"&gt;
 &lt;/font&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;td style="background: rgb(243, 243, 243); padding: 0cm 5.4pt; border: 1pt solid silver; width: 495pt; mso-border-alt: solid silver .5pt;" vAlign="top" width="660"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;&amp;lt;configuration&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt; &lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;services&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;service&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;name&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;MyDataService&lt;/span&gt;"
  &lt;span style="color: red;"&gt;behaviorConfiguration&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;securityBehavior&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;endpoint&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;contract&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;System.Data.Services.IRequestHandler&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;binding&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;webHttpBinding&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;WebHttpWindowsAuth&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;service&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;services&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;behaviors&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;behavior&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;name&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;catalogServiceBehavior&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;serviceMetadata&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;httpGetEnabled&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;serviceDebug&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;includeExceptionDetailInFaults&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;serviceAuthorization&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;serviceAuthorizationManagerType&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;MyServiceAuthorization&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;serviceSecurityAudit&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;serviceAuthorizationAuditLevel&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;Failure&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;auditLogLocation&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;Application&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;messageAuthenticationAuditLevel&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;Failure&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;behavior&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;behaviors&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;bindings&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;webHttpBinding&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;binding&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;name&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;WebHttpWindowsAuth&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;maxBufferSize&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;65536&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;maxBufferPoolSize&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;2147483647&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;maxReceivedMessageSize&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;2147483647&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;transferMode&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;StreamedResponse&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;readerQuotas&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;maxDepth&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;2147483647&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;maxStringContentLength&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;2147483647&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;maxArrayLength&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;2147483647&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;maxBytesPerRead&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;2147483647&lt;/span&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;maxNameTableCharCount&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;2147483647&lt;/span&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;security&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;mode&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;TransportCredentialOnly&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;transport&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;clientCredentialType&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;Windows&lt;/span&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;security&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;binding&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;webHttpBinding&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;bindings&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt; &lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: rgb(163, 21, 21); font-family: Consolas; font-size: 9.5pt;"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;span style='font-family: "Courier New";'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;font size="3"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span style='color: black; line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt; mso-fareast-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-size: 12.0pt;'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;As you can see, we can also set the audit feature to let
WCF log any security issue on the message. Regarding the binding, we set the
required webHttpBinding to use the max settings for message size assuming that
we may need to send large messages (beware of DOS attacks). We also set the
security setting for using Windows authentication.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;Now we can implement the “&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;CheckAccess(&lt;span style="color: rgb(43, 145, 175);"&gt;OperationContext&lt;/span&gt; operationContext, &lt;span style="color: blue;"&gt;ref&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Message&lt;/span&gt;
message)&lt;/span&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;”
overload of our &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.serviceauthorizationmanager.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.servicemodel.serviceauthorizationmanager.aspx"&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;&lt;font color="#0000ff"&gt;ServiceAuthorizationManager&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt; dervived class
(MyServiceAuthorization in config above) and decode the message so we can so
something usefull with its content.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 5pt 0cm 0pt;" class="Para"&gt;&lt;span style='font-family: "Verdana","sans-serif"; mso-bidi-font-size: 10.0pt;'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;table style="border: currentColor; width: 495pt; border-collapse: collapse; mso-border-alt: solid silver .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;" class="MsoNormalTable" border="1" cellSpacing="0" cellPadding="0" width="660"&gt;&lt;font face="Times New Roman"&gt;
 &lt;/font&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;td style="background: rgb(243, 243, 243); padding: 0cm 5.4pt; border: 1pt solid silver; width: 495pt; mso-border-alt: solid silver .5pt;" vAlign="top" width="660"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;public&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt;
  &lt;span style="color: blue;"&gt;bool&lt;/span&gt; CheckAccess(&lt;span style="color: rgb(43, 145, 175);"&gt;OperationContext&lt;/span&gt;
  operationContext, &lt;span style="color: blue;"&gt;ref&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Message&lt;/span&gt; message)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; (IsGet())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  &lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (!CanDecodeMessage(&lt;span style="color: blue;"&gt;ref&lt;/span&gt; message))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  &lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (IsUserAllowed())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  &lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;/span&gt;&lt;span style='font-family: "Courier New";'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;font size="3"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;As you can see, we want to allow read access so we bail
out for GET verbs using the IsGet() function&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;
&lt;/span&gt;described below. After that, if we cannot decode the message we simply
deny access. Otherwise we perform our custom authorization and we are done.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 5pt 0cm 0pt;" class="Para"&gt;&lt;span style='font-family: "Verdana","sans-serif"; mso-bidi-font-size: 10.0pt;'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;table style="border: currentColor; width: 495pt; border-collapse: collapse; mso-border-alt: solid silver .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;" class="MsoNormalTable" border="1" cellSpacing="0" cellPadding="0" width="660"&gt;&lt;font face="Times New Roman"&gt;
 &lt;/font&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;td style="background: rgb(243, 243, 243); padding: 0cm 5.4pt; border: 1pt solid silver; width: 495pt; mso-border-alt: solid silver .5pt;" vAlign="top" width="660"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: blue;"&gt;bool&lt;/span&gt; IsGet()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  RequestMethod().Equals(&lt;span style="color: rgb(163, 21, 21);"&gt;"GET"&lt;/span&gt;, &lt;span style="color: rgb(43, 145, 175);"&gt;StringComparison&lt;/span&gt;.OrdinalIgnoreCase);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: blue;"&gt;bool&lt;/span&gt; IsDelete()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  RequestMethod().Equals(&lt;span style="color: rgb(163, 21, 21);"&gt;"DELETE"&lt;/span&gt;,
  &lt;span style="color: rgb(43, 145, 175);"&gt;StringComparison&lt;/span&gt;.OrdinalIgnoreCase);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: blue;"&gt;string&lt;/span&gt; RequestMethod()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;
  propertyValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (&lt;span style="color: rgb(43, 145, 175);"&gt;OperationContext&lt;/span&gt;.Current.IncomingMessageProperties.TryGetValue(&lt;span style="color: rgb(43, 145, 175);"&gt;HttpRequestMessageProperty&lt;/span&gt;.Name, &lt;span style="color: blue;"&gt;out&lt;/span&gt; propertyValue))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;HttpRequestMessageProperty&lt;/span&gt;
  rqMessageProperty = &lt;span style="color: rgb(43, 145, 175);"&gt;HttpRequestMessageProperty&lt;/span&gt;)propertyValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  rqMessageProperty.Method;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt;.Empty;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: blue;"&gt;bool&lt;/span&gt; CanDecodeMessage(&lt;span style="color: blue;"&gt;ref&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Message&lt;/span&gt; message)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;string&lt;/span&gt; decodedMsg = DecodeMessage(&lt;span style="color: blue;"&gt;ref&lt;/span&gt; message);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
  (decodedMsg == &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; IsDelete();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  IsMultipart(decodedMsg);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;/span&gt;&lt;span style='font-family: "Courier New";'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;font size="3"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;Notice that “&lt;/span&gt;&lt;span style="line-height: 115%; font-family: Consolas; font-size: 9.5pt;"&gt;DecodeMessage(&lt;span style="color: blue;"&gt;ref&lt;/span&gt;
message)&lt;/span&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;”
is described in a &lt;a href="http://weblogs.asp.net/hernandl/archive/2011/06/15/decoding-messages-in-wcf-data-services.aspx" mce_href="http://weblogs.asp.net/hernandl/archive/2011/06/15/decoding-messages-in-wcf-data-services.aspx"&gt;&lt;font color="#0000ff"&gt;previous
post&lt;/font&gt;&lt;/a&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;Now an interesting section is how we detect is the
incoming message is actually a &lt;a href="http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html" mce_href="http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html"&gt;&lt;font color="#0000ff"&gt;multipart&lt;/font&gt;&lt;/a&gt; message
which is typically used in &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.services.client.savechangesoptions.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.data.services.client.savechangesoptions.aspx"&gt;&lt;font color="#0000ff"&gt;SaveBatch&lt;/font&gt;&lt;/a&gt;
operations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;Here we have the inspection of the multipart message and
we can also extract a specific entity and check for access. Notice that we use
the &lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.atom10itemformatter.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.atom10itemformatter.aspx"&gt;&lt;font color="#0000ff"&gt;Atom10ItemFormatter&lt;/font&gt;&lt;/a&gt;
class along with some other syndication classes to make it easier the parsing
operation which is a simplification of the &lt;a href="http://msdn.microsoft.com/en-us/library/ee473428.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ee473428.aspx"&gt;&lt;font color="#0000ff"&gt;object
materialization&lt;/font&gt;&lt;/a&gt; mechanism used by Data Services.&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;table style="border: currentColor; width: 495pt; border-collapse: collapse; mso-border-alt: solid silver .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;" class="MsoNormalTable" border="1" cellSpacing="0" cellPadding="0" width="660"&gt;&lt;font face="Times New Roman"&gt;
 &lt;/font&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;td style="background: rgb(243, 243, 243); padding: 0cm 5.4pt; border: 1pt solid silver; width: 495pt; mso-border-alt: solid silver .5pt;" vAlign="top" width="660"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: blue;"&gt;bool&lt;/span&gt; IsMultipart(&lt;span style="color: blue;"&gt;string&lt;/span&gt;
  decodedMsg)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;bool&lt;/span&gt;
  isMultipart = &lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color: rgb(43, 145, 175);"&gt;Match&lt;/span&gt; m &lt;span style="color: blue;"&gt;in&lt;/span&gt;
  xmlContentFromMime.Matches(decodedMsg))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;isMultipart |= HaveEntity(m.Value);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (&lt;span style="color: blue;"&gt;false&lt;/span&gt; == isMultipart)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;isMultipart |=
  deleteContentFromMime.Matches(decodedMsg).OfType&amp;lt;&lt;span style="color: rgb(43, 145, 175);"&gt;Match&lt;/span&gt;&amp;gt;().&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Where(m =&amp;gt; m.Value !=
  DataServicesMetadataNamespace).Count() &amp;gt; 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  isMultipart;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: blue;"&gt;bool&lt;/span&gt; HaveEntity(&lt;span style="color: blue;"&gt;string&lt;/span&gt;
  rawData)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Atom10ItemFormatter&lt;/span&gt;
  atomFormatter;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;XmlUtility&lt;/span&gt;.TryParse&amp;lt;&lt;span style="color: rgb(43, 145, 175);"&gt;Atom10ItemFormatter&lt;/span&gt;&amp;gt;(rawData,
  &lt;span style="color: blue;"&gt;out&lt;/span&gt; atomFormatter))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ThrowOnSensitiveEntity(atomFormatter);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;XmlSyndicationContent&lt;/span&gt;
  content = atomFormatter.Item.Content &lt;span style="color: blue;"&gt;as&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;XmlSyndicationContent&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  (content != &lt;span style="color: blue;"&gt;null&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: blue;"&gt;void&lt;/span&gt; ThrowOnSensitiveEntity (&lt;span style="color: rgb(43, 145, 175);"&gt;Atom10ItemFormatter&lt;/span&gt; atomFormatter)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
  (atomFormatter.Item.Categories.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;FirstOrDefault(c =&amp;gt;
  c.Name.Equals(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;MySensitiveEntity&lt;/span&gt;).FullName,
  &lt;span style="color: rgb(43, 145, 175);"&gt;StringComparison&lt;/span&gt;.OrdinalIgnoreCase)) != &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;throw&lt;/span&gt; &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;SecurityException&lt;/span&gt;(Properties.&lt;span style="color: rgb(43, 145, 175);"&gt;Resources&lt;/span&gt;.AccessDenied);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;/span&gt;&lt;span style='font-family: "Courier New";'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;font size="3"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;We use a couple of regular expressions to parse the xml
sections in the multipart and also to detect when we have a DELETE section.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;table style="border: currentColor; width: 495pt; border-collapse: collapse; mso-border-alt: solid silver .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;" class="MsoNormalTable" border="1" cellSpacing="0" cellPadding="0" width="660"&gt;&lt;font face="Times New Roman"&gt;
 &lt;/font&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;td style="background: rgb(243, 243, 243); padding: 0cm 5.4pt; border: 1pt solid silver; width: 495pt; mso-border-alt: solid silver .5pt;" vAlign="top" width="660"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;const&lt;/span&gt;
  &lt;span style="color: blue;"&gt;string&lt;/span&gt; DataServicesMetadataNamespace = &lt;span style="color: rgb(163, 21, 21);"&gt;"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: rgb(43, 145, 175);"&gt;Regex&lt;/span&gt; xmlContentFromMime = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Regex&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;@"&amp;lt;\?xml[^&amp;gt;]+&amp;gt;\s*&amp;lt;\s*(\w+).*?&amp;lt;\s*/\s*\1&amp;gt;"&lt;/span&gt;,
  &lt;span style="color: rgb(43, 145, 175);"&gt;RegexOptions&lt;/span&gt;.Singleline | &lt;span style="color: rgb(43, 145, 175);"&gt;RegexOptions&lt;/span&gt;.Compiled);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: rgb(43, 145, 175);"&gt;Regex&lt;/span&gt; deleteContentFromMime = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Regex&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&amp;amp;amp;\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?"&lt;/span&gt;,
  &lt;span style="color: rgb(43, 145, 175);"&gt;RegexOptions&lt;/span&gt;.Singleline | &lt;span style="color: rgb(43, 145, 175);"&gt;RegexOptions&lt;/span&gt;.Compiled);&lt;/span&gt;&lt;span style='font-family: "Courier New";'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;font size="3"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;o:p&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Finally after decoding the message, we can perform our validation.
For that, we can use the result of the message decoding and parsing with the
auxiliary classes shown above and also do some mapping with the incoming user
identity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Here is a sample of how we can get the incoming identity and
perform some authorization with a pre-configured group or groups (&lt;/font&gt;&lt;span style="line-height: 115%; font-family: Consolas; font-size: 9.5pt;"&gt;AuthorizedGroup&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;)
that we can read from configuration or some external repository.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;table style="border: currentColor; width: 495pt; border-collapse: collapse; mso-border-alt: solid silver .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;" class="MsoNormalTable" border="1" cellSpacing="0" cellPadding="0" width="660"&gt;&lt;font face="Times New Roman"&gt;
 &lt;/font&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;td style="background: rgb(243, 243, 243); padding: 0cm 5.4pt; border: 1pt solid silver; width: 495pt; mso-border-alt: solid silver .5pt;" vAlign="top" width="660"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt;
  IsUserAllowed ()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt;
  groups = GetWindowsGroups();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; groups.Contains(AuthorizedGroup,
  &lt;span style="color: rgb(43, 145, 175);"&gt;StringComparer&lt;/span&gt;.OrdinalIgnoreCase);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: rgb(43, 145, 175);"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color: blue;"&gt;string&lt;/span&gt;&amp;gt;
  GetWindowsGroups()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;OperationContext&lt;/span&gt;
  operationContext = &lt;span style="color: rgb(43, 145, 175);"&gt;OperationContext&lt;/span&gt;.Current;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  operationContext == &lt;span style="color: blue;"&gt;null&lt;/span&gt; ? &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: blue;"&gt;string&lt;/span&gt;&amp;gt;() :
  GetWindowsGroups(operationContext.ServiceSecurityContext.WindowsIdentity);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style='font-family: "Courier New";'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: rgb(43, 145, 175);"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color: blue;"&gt;string&lt;/span&gt;&amp;gt;
  GetWindowsGroups(&lt;span style="color: rgb(43, 145, 175);"&gt;WindowsIdentity&lt;/span&gt; identity)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  identity.Groups != &lt;span style="color: blue;"&gt;null&lt;/span&gt; ?
  identity.Groups.Translate(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;NTAccount&lt;/span&gt;)).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Select&amp;lt;&lt;span style="color: rgb(43, 145, 175);"&gt;IdentityReference&lt;/span&gt;, &lt;span style="color: blue;"&gt;string&lt;/span&gt;&amp;gt;(i
  =&amp;gt; i.Value) : &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt;[0];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;/span&gt;&lt;span style='font-family: "Courier New";'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;font size="3"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;o:p&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin: 0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;An interesting part of this implementation is that it can be
completely decoupled from the actual service implementation so we can very easily
switch between different authorization strategies with a simple config change.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7831408" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/Security/default.aspx">Security</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>Decoding messages in WCF Data Services </title><link>http://weblogs.asp.net/hernandl/archive/2011/06/15/decoding-messages-in-wcf-data-services.aspx</link><pubDate>Wed, 15 Jun 2011 16:33:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7830718</guid><dc:creator>HernanDL</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7830718</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2011/06/15/decoding-messages-in-wcf-data-services.aspx#comments</comments><description>&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;Recently I had to solve an interesting problem while
working with &lt;a href="http://msdn.microsoft.com/en-us/library/cc668792.aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc668792.aspx"&gt;&lt;font color="#0000ff"&gt;WCF
Data Services&lt;/font&gt;&lt;/a&gt; and how to decode an incoming WCF message so I can do
something useful with its content.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 5pt 0cm 0pt;" class="Para"&gt;&lt;span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt;"&gt;Let’s say that you have an already &lt;a href="http://msdn.microsoft.com/en-us/library/dd728286.aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd728286.aspx"&gt;&lt;font color="#0000ff"&gt;configured&lt;/font&gt;&lt;/a&gt; Data
Service and you intercept the message using some sort extension/interceptors in
WCF. &lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 5pt 0cm 0pt;" class="Para"&gt;&lt;span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt;"&gt;Here is an example of such function:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 5pt 0cm 0pt;" class="Para"&gt;&lt;span style="mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;table style="border: currentColor; width: 495pt; border-collapse: collapse; mso-border-alt: solid silver .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;" class="MsoNormalTable" border="1" cellSpacing="0" cellPadding="0" width="660"&gt;&lt;font face="Times New Roman"&gt;
 &lt;/font&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;td style="background: rgb(243, 243, 243); padding: 0cm 5.4pt; border: 1pt solid silver; width: 495pt; mso-border-alt: solid silver .5pt;" vAlign="top" width="660"&gt;&lt;font face="Times New Roman"&gt;
  &lt;/font&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt;
  &lt;span style="color: blue;"&gt;string&lt;/span&gt; DecodeMessage(&lt;span style="color: blue;"&gt;ref&lt;/span&gt;
  &lt;span style="color: rgb(43, 145, 175);"&gt;Message&lt;/span&gt; message)&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
  (message.IsEmpty)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt; (&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBuffer&lt;/span&gt;
  buffer = message.CreateBufferedCopy(&lt;span style="color: rgb(43, 145, 175);"&gt;Int32&lt;/span&gt;.MaxValue))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Message&lt;/span&gt; copy =
  buffer.CreateMessage();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  &lt;/span&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt; (&lt;span style="color: rgb(43, 145, 175);"&gt;MemoryStream&lt;/span&gt;
  ms = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;MemoryStream&lt;/span&gt;())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  &lt;/span&gt;copy.Properties.Encoder.WriteMessage(copy, ms);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  &lt;/span&gt;ms.Flush();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  &lt;/span&gt;message = buffer.CreateMessage();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
  &lt;span style="color: rgb(43, 145, 175);"&gt;Encoding&lt;/span&gt;.UTF8.GetString(ms.ToArray());&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style="margin: 0cm 0cm 0pt; line-height: normal; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;/span&gt;&lt;span style='font-family: "Courier New";'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;font size="3"&gt;

&lt;/font&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;As you can notice, after some basic message validation,
we create a &lt;a href="http://blogs.msdn.com/b/drnick/archive/2006/07/26/this-message-cannot-support-the-operation-because-it-has-been-copied.aspx" mce_href="http://blogs.msdn.com/b/drnick/archive/2006/07/26/this-message-cannot-support-the-operation-because-it-has-been-copied.aspx"&gt;&lt;font color="#0000ff"&gt;copy
of the message&lt;/font&gt;&lt;/a&gt; to avoid changing the state of the original message which is
typically passed by reference. Then we write all the content to MemoryStream which
is handy for read/write operations. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;The key here is to use the encoder
specified in the message properties which may be &lt;a href="http://msdn.microsoft.com/en-us/library/ms733742.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms733742.aspx"&gt;&lt;font color="#0000ff"&gt;MTOM&lt;/font&gt;&lt;/a&gt; for this
kind of streamed message but it might be different according to the configured
binding. After writing all the message content to memory, we may read from
memory and create a string so we can easily inspect the actual message. If we
know that we will always deal with XML content, we can use an &lt;a href="http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.aspx"&gt;&lt;font color="#0000ff"&gt;XmlReader&lt;/font&gt;&lt;/a&gt;
or the like to manipulate the content without the string conversion which may pay
a performance penalty on large messages. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;span style='line-height: 115%; font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;In the above code, we return the content as string because
we may get an XML or Text formatted message so we can process accordingly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;In the next post I will show how we
can use this code for inspecting a message to perform a custom authorization
with &lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.serviceauthorizationmanager.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.servicemodel.serviceauthorizationmanager.aspx"&gt;&lt;font color="#0000ff"&gt;ServiceAuthorizationManager&lt;/font&gt;&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt;'&gt;Stay tuned!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7830718" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>Channel 9 presentation with the Composite Services Guidance</title><link>http://weblogs.asp.net/hernandl/archive/2011/04/11/channel-9-presentation-with-the-composite-services-guidance.aspx</link><pubDate>Mon, 11 Apr 2011 23:34:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7753025</guid><dc:creator>HernanDL</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7753025</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2011/04/11/channel-9-presentation-with-the-composite-services-guidance.aspx#comments</comments><description>&lt;p&gt;Take a look at &lt;a href="http://channel9.msdn.com/Shows/Endpoint/endpointtv-Patterns--Practices-Composite-Services-Guidance-Project" mce_href="http://channel9.msdn.com/Shows/Endpoint/endpointtv-Patterns--Practices-Composite-Services-Guidance-Project"&gt;this presentation&lt;/a&gt; if you want to get a good idea of what is this project directly from &lt;a href="http://blogs.msdn.com/b/dmitrio/" mce_href="http://blogs.msdn.com/b/dmitrio/"&gt;Dmitri&lt;/a&gt;, the "father" of the creature.&lt;/p&gt;&lt;p&gt;And new &lt;a href="http://compositeservices.codeplex.com/releases/view/62235" mce_href="http://compositeservices.codeplex.com/releases/view/62235"&gt;videos&lt;/a&gt; for Service Routing and Inventory Centralizartion patterns.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7753025" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>New Videos for Composite Services Guidance - CTP2</title><link>http://weblogs.asp.net/hernandl/archive/2011/03/31/new-videos-for-composite-services-guidance-ctp2.aspx</link><pubDate>Thu, 31 Mar 2011 10:27:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7739583</guid><dc:creator>HernanDL</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7739583</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2011/03/31/new-videos-for-composite-services-guidance-ctp2.aspx#comments</comments><description>&lt;p&gt;You can get the latest videos for &lt;a href="http://weblogs.asp.net/hernandl/archive/2011/03/09/patterns-amp-practices-composite-services-ctp2-is-public.aspx" mce_href="http://weblogs.asp.net/hernandl/archive/2011/03/09/patterns-amp-practices-composite-services-ctp2-is-public.aspx"&gt;Composite Services Guidance CTP2&lt;/a&gt;&amp;nbsp;that show many features of this project.&lt;/p&gt;&lt;p&gt;&lt;a href="http://compositeservices.codeplex.com/releases/view/62235" mce_href="http://compositeservices.codeplex.com/releases/view/62235"&gt;Videos Download&lt;/a&gt;&lt;/p&gt;&lt;div id="FileListItem2" class="FileListItemDiv"&gt;&lt;font color="#3e62a6"&gt;Video 1: Repair and Resubmit&lt;/font&gt; 
&lt;div&gt;&lt;font color="#3e62a6"&gt;Video 2: Analytic Tracing&lt;/font&gt; 
&lt;/div&gt;&lt;/div&gt;&lt;div id="FileListItem3" class="FileListItemDiv"&gt;&lt;div&gt;&lt;span id="fileItemInfo3" class="SubText"&gt;&lt;font color="#666666"&gt;
&lt;/font&gt;&lt;/span&gt; &lt;font color="#3e62a6"&gt;Video 3: Custom Probe Function&lt;/font&gt; 
&lt;/div&gt;&lt;/div&gt;&lt;div id="FileListItem4" class="FileListItemDiv"&gt;&lt;div&gt;&lt;font color="#3e62a6"&gt;Video 4: Termination Notification&lt;/font&gt; 
&lt;/div&gt;&lt;/div&gt;&lt;div id="FileListItem5" class="FileListItemDiv"&gt;&lt;div&gt;&lt;font color="#3e62a6"&gt;Video 5: Service Routing&lt;/font&gt; 
&lt;/div&gt;&lt;/div&gt;&lt;div id="FileListItem6" class="FileListItemDiv"&gt;&lt;div&gt;&lt;font color="#3e62a6"&gt;Video 6: Inventory Centralizatioin&lt;/font&gt; 
&lt;/div&gt;&lt;/div&gt;&lt;div id="FileListItem7" class="FileListItemDiv"&gt;&lt;div&gt;&lt;font color="#3e62a6"&gt;Video 7: Inventory Centralization Part 2 - 
Inventory Endpoint&lt;/font&gt; &lt;/div&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7739583" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/.NET+General/default.aspx">.NET General</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>Inventory Centralization Patterns with Composite Services CTP2</title><link>http://weblogs.asp.net/hernandl/archive/2011/03/16/inventory-centralization-patterns-with-composite-services-ctp2.aspx</link><pubDate>Wed, 16 Mar 2011 11:59:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7724990</guid><dc:creator>HernanDL</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7724990</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2011/03/16/inventory-centralization-patterns-with-composite-services-ctp2.aspx#comments</comments><description>&lt;p&gt;Recently my friend and coworker Dmitri Ossipov started&amp;nbsp;&lt;a href="http://blogs.msdn.com/b/dmitrio/" mce_href="http://blogs.msdn.com/b/dmitrio/"&gt;his blog&lt;/a&gt; with&amp;nbsp;great posts about some of the details and many&amp;nbsp;useful links to well know and&amp;nbsp;documented &lt;a href="http://www.soapatterns.com/" mce_href="http://www.soapatterns.com/"&gt;SOA patterns&lt;/a&gt; that this CTP includes.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Check &lt;a href="http://blogs.msdn.com/b/dmitrio/archive/2011/03/14/applying-metadata-centralization-pattern-with-composite-services-ctp2.aspx" mce_href="http://blogs.msdn.com/b/dmitrio/archive/2011/03/14/applying-metadata-centralization-pattern-with-composite-services-ctp2.aspx"&gt;this&lt;/a&gt; out for details on how the CTP implements on of the most public patterns, the Inventory Centralization Patterns, in this case for Schema, Policy and Contracts.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7724990" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>Patterns &amp; Practices: Composite Services CTP2 is Public</title><link>http://weblogs.asp.net/hernandl/archive/2011/03/09/patterns-amp-practices-composite-services-ctp2-is-public.aspx</link><pubDate>Wed, 09 Mar 2011 12:20:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7718456</guid><dc:creator>HernanDL</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7718456</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2011/03/09/patterns-amp-practices-composite-services-ctp2-is-public.aspx#comments</comments><description>&lt;p mce_keep="true"&gt;Finally the last CTP and pre-release version for the Composite &lt;span style='font-family: "Arial","sans-serif"; font-size: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;' lang="EN-US"&gt;Services &lt;/span&gt;is out. There were quite a lot of changes since &lt;a href="http://weblogs.asp.net/hernandl/archive/2010/10/29/soa-based-composite-service-guidance-ctp1.aspx" mce_href="http://weblogs.asp.net/hernandl/archive/2010/10/29/soa-based-composite-service-guidance-ctp1.aspx"&gt;CTP1&lt;/a&gt;. We added many new samples and many enhancements to the repository (DB) which is now called Inventory in sync with &lt;a href="http://www.soapatterns.org/" mce_href="http://www.soapatterns.org/"&gt;SOA Patterns&lt;/a&gt;. Here is a brief list of the main changes according to the included documentations.&amp;nbsp;&lt;span style='mso-fareast-font-family: "Times New Roman";'&gt;&lt;font size="5"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1&gt;&lt;span style='mso-fareast-font-family: "Times New Roman";'&gt;&lt;font size="4"&gt;Changes and additions in this release&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p class="ppBodyText"&gt;This CTP release contains reusable source code and samples to illustrate implementation for the following patterns and scenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="ppBodyText"&gt;Repair and Resubmit – this pattern is implemented in &lt;a href="http://msdn.microsoft.com/en-us/biztalk/dd876606" mce_href="http://msdn.microsoft.com/en-us/biztalk/dd876606"&gt;ESB Toolkit 2.0&lt;/a&gt; as part of Exception Management Framework (EMF). This code drop provides code sample how to implement this pattern for Windows AppFabric workflow service, using Exceptions Web Service and workflow activities to create fault message, which will be created in EMF database.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="ppBodyText"&gt;Analytic Tracing – this code drop contains reusable code and samples for implementing &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163437.aspx" mce_href="http://msdn.microsoft.com/en-us/magazine/cc163437.aspx"&gt;ETW tracing&lt;/a&gt;: event collector service and database that store collected events. This capability may be used for scenarios that need flexibility on how collected events are decoded and processed via extensibility points you can configure and implement:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;plugins and event decoders with leveraging ETW tracing capabilities provided by the event collector service.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="ppBodyText"&gt;Inventory Centralization – this code drop contains service catalog database, web services and samples to show how to implement Metadata Centralization, Schema Centralization and Policy Centralization patterns.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="ppBodyText"&gt;Service Virtualization – we included sample for implementing this pattern using &lt;a href="http://msdn.microsoft.com/en-us/library/ee517421.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ee517421.aspx"&gt;WCF routing service&lt;/a&gt;( which is part of .NET framework) and service metadata centralization capabilities to define routing service metadata in service catalog.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="ppBodyText"&gt;Termination Notification – we included sample for implementing this pattern using sample WCF service and policy centralization capabilities provided by this CTP release.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p class="ppBodyText"&gt;You will also find many new videos that will be uploaded to the &lt;a href="http://compositeservices.codeplex.com/" mce_href="http://compositeservices.codeplex.com/"&gt;home page&lt;/a&gt; any time soon.&lt;/p&gt;
&lt;p class="ppBodyText"&gt;Stay tunned for new posts regarding implemetation details and advanced customizations for custom policy exporters/importers&amp;nbsp;and monitoring.&lt;/p&gt;&lt;p class="ppBodyText"&gt;&lt;strong&gt;UPDATE: &lt;/strong&gt;Check further details on &lt;a href="http://blogs.msdn.com/b/dmitrio/" mce_href="http://blogs.msdn.com/b/dmitrio/"&gt;Dmitri's&lt;/a&gt; great blog here: &lt;a href="http://blogs.msdn.com/b/dmitrio/archive/2011/03/12/composite-services-ctp2-released.aspx" mce_href="http://blogs.msdn.com/b/dmitrio/archive/2011/03/12/composite-services-ctp2-released.aspx"&gt;Composite Services CTP2 Released&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/b/dmitrio/archive/2011/03/14/applying-metadata-centralization-pattern-with-composite-services-ctp2.aspx" mce_href="http://blogs.msdn.com/b/dmitrio/archive/2011/03/14/applying-metadata-centralization-pattern-with-composite-services-ctp2.aspx"&gt;Applying Inventory Centralization Patterns with Composite Services CTP2&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7718456" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>Charla Hijos Digitales</title><link>http://weblogs.asp.net/hernandl/archive/2010/11/09/charla-hijos-digitales.aspx</link><pubDate>Tue, 09 Nov 2010 04:37:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7638353</guid><dc:creator>HernanDL</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7638353</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2010/11/09/charla-hijos-digitales.aspx#comments</comments><description>&lt;P&gt;Para bajar la presentacion, haga click &lt;A href="http://cid-122b0f8f37cba493.office.live.com/self.aspx/blog/HijosDigitales-PadresResponsables.zip" mce_href="http://cid-122b0f8f37cba493.office.live.com/self.aspx/blog/HijosDigitales-PadresResponsables.zip"&gt;aqui&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;Tambien se encuentra el video de la charla &lt;A href="http://cid-122b0f8f37cba493.office.live.com/self.aspx/blog/HijosDigitales-PadresResponsablesVideo.zip" mce_href="http://cid-122b0f8f37cba493.office.live.com/self.aspx/blog/HijosDigitales-PadresResponsablesVideo.zip"&gt;aqui&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7638353" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/Security/default.aspx">Security</category></item><item><title>SOA-based Composite Service Guidance CTP1</title><link>http://weblogs.asp.net/hernandl/archive/2010/10/29/soa-based-composite-service-guidance-ctp1.aspx</link><pubDate>Fri, 29 Oct 2010 17:18:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7634105</guid><dc:creator>HernanDL</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7634105</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2010/10/29/soa-based-composite-service-guidance-ctp1.aspx#comments</comments><description>&lt;P&gt;If you work with services and you are familiar with &lt;A href="http://www.soapatterns.org" mce_href="http://www.soapatterns.org"&gt;SOA Patterns&lt;/A&gt;&amp;nbsp;you may take a look at the new project from &lt;A href="http://msdn.microsoft.com/practices" mce_href="http://msdn.microsoft.com/practices"&gt;patterns &amp;amp; practices&lt;/A&gt; for composing services.&lt;/P&gt;&lt;P&gt;As described on the &lt;A href="http://compositeservices.codeplex.com/" mce_href="http://compositeservices.codeplex.com/"&gt;home page&lt;/A&gt; &lt;EM&gt;this P&amp;amp;P project provides guidance for building enterprise SOA-based composite service applications. It provides design and&amp;nbsp;implementation patterns for service discovery, composition and integration through written guidance, reference implementations and re-usable source code. &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;There are many features included tin this package and I will try to post some of them in series of quick notes to show how you can apply some of them in your applications. As part of the upcoming posts, you may find areas like &lt;A href="http://msdn.microsoft.com/en-us/library/ms730294.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms730294.aspx"&gt;WS-Policy&lt;/A&gt; and how to implement your own policies using native &lt;A href="http://blogs.msdn.com/b/ralph.squillace/archive/2006/07/26/679359.aspx" mce_href="http://blogs.msdn.com/b/ralph.squillace/archive/2006/07/26/679359.aspx"&gt;WCF API&lt;/A&gt;, or some advanced tracing capabilities provided by &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc163437.aspx" mce_href="http://msdn.microsoft.com/en-us/magazine/cc163437.aspx"&gt;ETW&lt;/A&gt; infrastructure.&lt;/P&gt;&lt;P&gt;You can download the bits, documentation and also some briefing &lt;A href="http://compositeservices.codeplex.com/releases/view/54690" mce_href="http://compositeservices.codeplex.com/releases/view/54690"&gt;videos&lt;/A&gt; that shows an onverview of the main features &lt;A href="http://compositeservices.codeplex.com/releases/view/54690" mce_href="http://compositeservices.codeplex.com/releases/view/54690"&gt;here&lt;/A&gt;. I would suggest to see the videos if you what to take a quick glimse and then grab the bits and give it a shot.&lt;/P&gt;&lt;P&gt;Stay tunned for more details on this.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7634105" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>Extending Web Service Software Factory 2010</title><link>http://weblogs.asp.net/hernandl/archive/2010/06/01/extending-web-service-software-factory-2010.aspx</link><pubDate>Tue, 01 Jun 2010 10:56:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7513532</guid><dc:creator>HernanDL</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7513532</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2010/06/01/extending-web-service-software-factory-2010.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;If you want to extend the &lt;A href="http://servicefactory.codeplex.com/" mce_href="http://servicefactory.codeplex.com/"&gt;service factory&lt;/A&gt; now you can use the new &lt;A href="http://mef.codeplex.com/" mce_href="http://mef.codeplex.com/"&gt;MEF&lt;/A&gt; extensibility features which basically means that you don;t need to crack open the factory designer and you can simply create your own VSIX extension and add custom features to the &lt;A href="http://servicefactory.codeplex.com/releases/view/44766" mce_href="http://servicefactory.codeplex.com/releases/view/44766"&gt;binary version&lt;/A&gt; of the factory.&lt;/P&gt;
&lt;P mce_keep="true"&gt;This &lt;A href="http://msdn.microsoft.com/en-us/library/ff519533.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ff519533.aspx"&gt;link&lt;/A&gt;&amp;nbsp;show the basic steps to create your own extension. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Now the key setting to attach your extension to the factory is this:&lt;/P&gt;
&lt;P mce_keep="true"&gt;Locate the "Adding a Shortcut Menu Command" section and replace the attribute [DslDefinitionModelCommandExtension] with these two attributes:&lt;/P&gt;
&lt;P mce_keep="true"&gt;[&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;Export&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;typeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;ICommandExtension&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;))]&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;[&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;ExportMetadata&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2 face=Consolas&gt;&lt;FONT color=#a31515 size=2 face=Consolas&gt;&lt;FONT color=#a31515 size=2 face=Consolas&gt;"ServiceContractDslExtensionFilter"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;&lt;FONT color=#0000ff size=2 face=Consolas&gt;null&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;)]&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Now if you want to extend the DataContract designer simply change "&lt;FONT color=#a31515 face=Consolas&gt;ServiceContractDslExtensionFilter&lt;/FONT&gt;"&amp;nbsp;with "&lt;FONT color=#a31515 face=Consolas&gt;DataContractDslExtensionFilter&lt;/FONT&gt;". The rest is the same as describerd in tyhe above article.&lt;/P&gt;
&lt;P mce_keep="true"&gt;As you can see, you can extend menu commands, validation rules, mouse gestures and the model as well.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7513532" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/.NET+General/default.aspx">.NET General</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/WSSF/default.aspx">WSSF</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>The new Import WSDL 2010 for WSSF 2010</title><link>http://weblogs.asp.net/hernandl/archive/2010/05/28/the-new-import-wsdl-2010-for-wssf-2010.aspx</link><pubDate>Fri, 28 May 2010 10:09:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7508737</guid><dc:creator>HernanDL</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7508737</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2010/05/28/the-new-import-wsdl-2010-for-wssf-2010.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;The new Beta version for &lt;A href="http://wssfcontrib.codeplex.com/releases/view/46069" mce_href="http://wssfcontrib.codeplex.com/releases/view/46069"&gt;Import WSDL 2010&lt;/A&gt; is out. This is a &lt;A href="http://wssfcontrib.codeplex.com/" mce_href="http://wssfcontrib.codeplex.com/"&gt;contrib project&lt;/A&gt;&amp;nbsp;for the &lt;A href="http://servicefactory.codeplex.com/" mce_href="http://servicefactory.codeplex.com/"&gt;Web Service Software Factory 2010 (WSSF 2010)&lt;/A&gt;&amp;nbsp;new version.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The best feature is that this is a VS extension (vsix) that will integrate using the &lt;A href="http://msdn.microsoft.com/en-us/magazine/ee291628.aspx" mce_href="http://msdn.microsoft.com/en-us/magazine/ee291628.aspx"&gt;Managed Extensibility Framework (MEF)&lt;/A&gt;&amp;nbsp;so you can extend WSSF binary version with no source changes.&lt;/P&gt;
&lt;P mce_keep="true"&gt;You can also get the vsix from &lt;A href="http://visualstudiogallery.msdn.microsoft.com/en-us/f9546ad2-5234-4668-8838-193c941a78ee" mce_href="http://visualstudiogallery.msdn.microsoft.com/en-us/f9546ad2-5234-4668-8838-193c941a78ee"&gt;VS Gallery&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;In my next post aI will show how can you add your own extensions to WSSF binary version.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7508737" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/WSSF/default.aspx">WSSF</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>BizTalk ESB Toolkit 2.1 Beta</title><link>http://weblogs.asp.net/hernandl/archive/2010/05/27/biztalk-esb-toolkit-2-1-beta.aspx</link><pubDate>Thu, 27 May 2010 10:53:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7507655</guid><dc:creator>HernanDL</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7507655</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2010/05/27/biztalk-esb-toolkit-2-1-beta.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;The &lt;A href="http://msdn.microsoft.com/en-us/biztalk/dd876606.aspx" mce_href="http://msdn.microsoft.com/en-us/biztalk/dd876606.aspx"&gt;BizTalk ESB Toolkit 2.1 Beta&lt;/A&gt; version is out. In case you are giving a try to &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=0F852E77-F792-4784-B2D4-95113D40DB64&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=0F852E77-F792-4784-B2D4-95113D40DB64&amp;amp;displaylang=en"&gt;BizTalk 2010 Beta&lt;/A&gt;, then you might want to take a look at this toolkit for implemanting an ESB.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Here are some of the new features:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; COLOR: #1f497d; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Supports Windows Server 2008 /2008 R2, SQL server 2008/2008 R2, BizTalk Server 2010 Beta&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Added support for Visual Studio 2010 Visualization and Modeling SDK for the Itinerary designer.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Support both .NET Framework version 4 and .NET Framework&amp;nbsp;3.5.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Supports the use of itineraries developed in ​Microsoft BizTalk ESB Toolkit 2.0.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Minor enhancements:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; COLOR: #1f497d; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;The Itinerary designer now supports copying and pasting itinerary shapes along with their configured properties.&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;A new itinerary project template, &lt;B&gt;BizTalk ESB Itinerary designer&lt;/B&gt;, provides an easy option to create itinerary projects under BizTalk Projects.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Opening a new project in the Itinerary designer sets the export mode to &lt;B&gt;Strict&lt;/B&gt; by default.&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Added a new itinerary model property, &lt;B&gt;Require encryption certificate&lt;/B&gt;, in the Itinerary designer to enable and disable encryption certificate while validating the itinerary.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;SPAN style="COLOR: #548dd4; FONT-SIZE: 12pt; mso-bidi-font-size: 14.0pt"&gt;Known Issues:&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;In-place setup upgrade from ESB Toolkit 2.0 to ESB Toolkit 2.1 is not supported. We do support solutions built on ESB toolkit 2.0 to run on ESB toolkit 2.1&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Itinerary Designer Extensions is not registered by setup.&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Workaround: Install by clicking &lt;B&gt;Start&lt;/B&gt;&amp;gt; &lt;B&gt;All Programs&lt;/B&gt;&amp;gt; &lt;B&gt;Microsoft BizTalk Server 2010 ESB toolkit&lt;/B&gt; &amp;gt; &lt;B&gt;Install Itinerary Designer Extensions&lt;/B&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 11pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;TAP customers can &lt;A href="http://connect.microsoft.com/biztalk"&gt;download&lt;/A&gt; the Beta build from the connect site.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7507655" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/.NET+General/default.aspx">.NET General</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>Web Service Software Factory 2010 RTM</title><link>http://weblogs.asp.net/hernandl/archive/2010/05/26/web-service-software-factory-2010-rtm.aspx</link><pubDate>Wed, 26 May 2010 11:05:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7506574</guid><dc:creator>HernanDL</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/hernandl/rsscomments.aspx?PostID=7506574</wfw:commentRss><comments>http://weblogs.asp.net/hernandl/archive/2010/05/26/web-service-software-factory-2010-rtm.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;The final version of the service factory 2010 is out.&lt;/P&gt;
&lt;P mce_keep="true"&gt;You can download it from here:&lt;/P&gt;
&lt;P mce_keep="true"&gt;Binaries (vsix): &lt;A href="http://visualstudiogallery.msdn.microsoft.com/en-us/8c6ea683-acf2-4881-bb05-3c3252992bfe"&gt;http://visualstudiogallery.msdn.microsoft.com/en-us/8c6ea683-acf2-4881-bb05-3c3252992bfe&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Source: &lt;A href="http://servicefactory.codeplex.com/releases/view/44037"&gt;http://servicefactory.codeplex.com/releases/view/44037&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Hands on,. docs, etc: &lt;A href="http://servicefactory.codeplex.com/"&gt;http://servicefactory.codeplex.com/&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Don't forguet to also install &lt;A href="http://visualstudiogallery.msdn.microsoft.com/en-us/25e4b5e9-65e4-4950-967d-5f1e6a9dcbeb" mce_href="http://visualstudiogallery.msdn.microsoft.com/en-us/25e4b5e9-65e4-4950-967d-5f1e6a9dcbeb"&gt;GAX 2010&lt;/A&gt; and &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=47305CF4-2BEA-43C0-91CD-1B853602DCC5&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=47305CF4-2BEA-43C0-91CD-1B853602DCC5&amp;amp;displaylang=en"&gt;VS2010 SDK&lt;/A&gt; (and &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=0DEF949D-2933-49C3-AC50-E884E0FF08A7&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=0DEF949D-2933-49C3-AC50-E884E0FF08A7&amp;amp;displaylang=en"&gt;Visualization &amp;amp; Modeling SDK&lt;/A&gt; in case of source installation).&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7506574" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/hernandl/archive/tags/WSSF/default.aspx">WSSF</category><category domain="http://weblogs.asp.net/hernandl/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item></channel></rss>
