<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>NTECH</title>
        <link>http://geekswithblogs.net/claeyskurt/category/9915.aspx</link>
        <description>NTECH</description>
        <language>nl-BE</language>
        <copyright>Kurt Claeys</copyright>
        <managingEditor>kurt@casey.be</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Windows Azure Platform @ Community Day 09</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/07/23/133671.aspx</link>
            <description>&lt;p&gt;My presentation on the Windows Azure Platform is online on MSDN Chopsticks. See &lt;font face="Arial"&gt;&lt;a href="http://www.microsoft.com/belux/MSDN/nl/chopsticks/default.aspx?id=1366"&gt;http://www.microsoft.com/belux/MSDN/nl/chopsticks/default.aspx?id=1366&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In this presentation you get an overview of the Windows Azure Platform, the ideas behind it and the business value of using this platform. The vision of Microsoft on cloud services and the implementation towards developers will become clear. We will discuss the architecture of Azure and the paradigm shift from building traditional on-premises applications to global enterprise cloud based applications. We dive into the solution architecture and the separation of the user interface (as webrole) and the services (as workerrole). &lt;br /&gt;
&lt;br /&gt;
&lt;/font&gt;Or you can watch this here : &lt;/p&gt;
&lt;iframe marginwidth="0" marginheight="0" src="http://www.microsoft.com/belux/MSDN/nl/chopsticks/player.aspx?id=1366" frameborder="0" width="493" scrolling="no" height="385"&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133671"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133671" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/133671.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/07/23/133671.aspx</guid>
            <pubDate>Thu, 23 Jul 2009 17:49:42 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/133671.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/07/23/133671.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/133671.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/133671.aspx</trackback:ping>
        </item>
        <item>
            <title>Back2Basic sessions at Microsoft on LINQ/Data Access in .NET 3.5</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130726.aspx</link>
            <description>&lt;p&gt;The &lt;a target="_blank" href="http://www.visug.be"&gt;VISUG&lt;/a&gt; (the main .NET Usergroup in Belgium) and &lt;a target="_blank" href="http://msdn.microsoft.com/nl-be/aa570302.aspx"&gt;Microsoft Belgium&lt;/a&gt; are organizing 3 events for .NET developers. These events will cover existing technologies and are free to attend.&lt;/p&gt;
&lt;p&gt;I’m presenting the sessions on LINQ and data access in .NET 3.5 on &lt;u&gt;April 15 from 02:00 PM till 04:00 PM&lt;/u&gt;. This presentation takes place at the Microsoft Offices in Zaventem.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A language focused overview of the foundations of LINQ in C#3.0 (50 minutes)  &lt;br /&gt;
&lt;/strong&gt;In this session the language enhancements in C#3.0 on which LINQ is based are discussed. You'll learn the syntax and the implementation of Auto Implemented Properties, Local Type Inference, Object and Collection Initializers, Anonymous Types, Extension Methods and Lambda Expressions and see how LINQ is made possible by using combinations of these new extensions in the language.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;LINQ to SQL compared to LINQ to Entities. (50 minutes) &lt;br /&gt;
&lt;/strong&gt;Both are Object-Relational Mapping frameworks in .NET 3.5 but have different goals, qualities, behaviors and their own programmatic approaches towards modeling and defining the metadata. How do they compare to each other ? Which one fits best in which scenarios ? In this session you will be guided in making the correct choice between them for your development environment.&lt;/p&gt;
&lt;p&gt;You can register on the VISUG site &lt;a title="http://www.visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx" target="_blank" href="http://www.visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx"&gt;http://www.visug.be/Eventdetails/tabid/95/EventId/6/Default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also check out the other session (ASP.NET Caching on april 29 by &lt;a target="_blank" href="http://www.snowball.be/"&gt;Gill Cleeren&lt;/a&gt;, Integrating Membership, Role Management and Profiles into Web Applications on may 27 by &lt;a target="_blank" href="http://kinnie.blogspot.com"&gt;Pieter Gheysens)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hope to see you there …&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130726"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130726" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/130726.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130726.aspx</guid>
            <pubDate>Fri, 03 Apr 2009 12:16:45 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/130726.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130726.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/130726.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/130726.aspx</trackback:ping>
        </item>
        <item>
            <title>Invitation codes no longer needed to sign up for .NET Services and SQL Services</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130725.aspx</link>
            <description>&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5cdfbee2-b7d5-4357-a9f6-e66515520a6c" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/ntech"&gt;ntech&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Great news … You don’t need an invitation code anymore to provision services on Azure. Just sign in with a Windows Live ID en you’re ready to go.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update :(thanks Steve!) this is only so fo the &lt;u&gt;.NET Services&lt;/u&gt; and &lt;u&gt;SQL Services&lt;/u&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Goto &lt;a title="http://portal.ex.azure.microsoft.com/" href="http://portal.ex.azure.microsoft.com/"&gt;http://portal.ex.azure.microsoft.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130725"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130725" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/130725.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130725.aspx</guid>
            <pubDate>Fri, 03 Apr 2009 11:07:15 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/130725.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130725.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/130725.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/130725.aspx</trackback:ping>
        </item>
        <item>
            <title>Impersonate the user running the browser in a WCF service called by an ASP.NET webapplication.</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130723.aspx</link>
            <description>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;In default configurations web applications and web services are running under the credentials of a predefined user account. For ASP.NET webapplications this is the ASPNET (or similar) account and for WCF services this is the user that started the servicehost or the user associated as logon account for the windows service hosting the services.      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;This means access to resources is restricted by this account. This is most often a dedicated account and not related to a real user. In a good secure environment the decision should have been made to give those accounts minimal rights, just enough to allow the hosting. So this account will not have the rights to access resources (files, databases) like normal users do.      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;Impersonation is the way to allow that the code in services (or in webapplications) can run under the credentials of the user accessing this webservice (or webapplication).      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;In an architecture where the services with the logic are separated from the webapplication with the UI we can have 3 accounts executing code or needing access to resources. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;img title="Figure1" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="206" alt="Figure1" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/ImpersonatetheuserrunningthebrowserinaW_11611/Figure1_2.gif" width="542" border="0" /&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;It makes sense that the user behind the browser is the one that must have the rights to allow the code in the WCF service to access the resources.      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;A WCF service can easily be configured to do impersonation:      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;1. Add the OperationBehavior attribute to the method that is called and needs to run under the impersonated user credentials and set Impersonation to allowed. The OperationBehavior attribute must be placed in implementation class, not on the interface ! &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;[&lt;span style="color: #2b91af"&gt;OperationBehavior&lt;/span&gt;(Impersonation = &lt;span style="color: #2b91af"&gt;ImpersonationOption&lt;/span&gt;.Allowed)]      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;public&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; DoSomething(&lt;span style="color: blue"&gt;string&lt;/span&gt; data)      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;… &lt;/span&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt; &lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;//Access to the resource &lt;/span&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;… &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;}&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;2. In the WCF configuration write a servicebehavior for the service which sets the impersonateCallerForAllOperations attribute of the serviceAuthorization element to “true”  &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;behaviors&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;behavior&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;Service1Behave&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 108pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;serviceAuthorization&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; &lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;impersonateCallerForAllOperations&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;true&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;behavior&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;behaviors&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;services&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;service&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;ServiceImplementation.ServiceImplementation&lt;/span&gt;" &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;behaviorConfiguration&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;Service1Behave&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;endpoint&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;address&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;http://localhost:9876/TestService&lt;/span&gt;"&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;binding&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;wsHttpBinding&lt;/span&gt;" &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;""&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;contract&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;ServiceInterface.IServiceInterface&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;service&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;services&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;On the client side (which is the ASP.NET website) set the AllowedImpersonationLevel to Impersonation on the ChannelFactory&amp;lt;T&amp;gt; or ClientBase&amp;lt;T&amp;gt; before calling the method.&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;a. when using ChannelFactory&amp;lt;T&amp;gt;: &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;System.ServiceModel.&lt;span style="color: #2b91af"&gt;ChannelFactory&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;MyChannelClass&lt;/span&gt;&amp;gt; channelFactory; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;channelFactory = &lt;span style="color: blue"&gt;new&lt;/span&gt; System.ServiceModel.&lt;span style="color: #2b91af"&gt;ChannelFactory&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;MyChannelClass&lt;/span&gt;&amp;gt;(&lt;span style="color: #a31515"&gt;"EP"&lt;/span&gt;); &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;channelFactory.Credentials.Windows.AllowedImpersonationLevel = System.Security.Principal.&lt;span style="color: #2b91af"&gt;TokenImpersonationLevel&lt;/span&gt;.Impersonation; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;ServiceInterface.&lt;span style="color: #2b91af"&gt;IServiceInterface&lt;/span&gt; channel; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;channel = channelFactory.CreateChannel(); &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;string&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; s; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;s = channel.DoSomething(&lt;span style="color: #a31515"&gt;"devitect"&lt;/span&gt;); &lt;/span&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;b. when using a ClientBase&amp;lt;T&amp;gt; proxy. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: #2b91af; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;MyClient&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; myClient; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;myClient = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;MyClient&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"EP"&lt;/span&gt;); &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;myClient.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.&lt;span style="color: #2b91af"&gt;TokenImpersonationLevel&lt;/span&gt;.Impersonation; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;string&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; s;      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;s = myClient.DoSomething(&lt;span style="color: #a31515"&gt;"devitect"&lt;/span&gt;); &lt;/span&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;This results in running the code in the serviceoperation (the DoSomething method) under the credentials of the user running the process on the client. This is the ASPNET account and still not the user behind the browser.      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;So we have to make sure that the calling code in the webapplication can now impersonate in its turn the user behind the browser. &lt;/span&gt;&lt;span style="font-size: 10pt"&gt;Again this can be done very easy by specifying the identity tag in the system.web part of the configuration file for the webbapplication. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;system.web&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;…&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;identity&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;impersonate&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;true&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt"&gt;&lt;span style="font-size: 10pt"&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;… &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;system.web&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;But now we created a potential pitfall. By setting this suddenly all the code in the webapplication is now running under the account of the user behind the browser. Which could not always be desired.      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;We need a way to impersonate the user just before calling the WCF service and stop impersonating just after we received the answer.  &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;You can use the WindowsImpersonationContext class for this. This class has to be set to the result of the static method WindowsIdentity.Impersonate() which needs the usertoken of the user you want to impersonate as parameter. This usertoken can be found on a property of the WindowsIdentity class which is set to the identity of the current user in the Httpcontext. This is the identity of the user using the browser. After the call you can undo the impersonation with the Undo method on this WindowsImpersonationContext class and the code will be running under the ASPNET account again. We are just temporarily impersonating the user.&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt"&gt;Code to do this: &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: #2b91af; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;WindowsIdentity&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; windowsIdentity = (&lt;span style="color: #2b91af"&gt;WindowsIdentity&lt;/span&gt;)&lt;span style="color: #2b91af"&gt;HttpContext&lt;/span&gt;.Current.User.Identity;&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; color: #2b91af; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;WindowsImpersonationContext&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; windowsImpersonationContext; &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;windowsImpersonationContext = &lt;/span&gt;&lt;span style="font-size: 10pt; color: #2b91af; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;WindowsIdentity&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;.Impersonate(windowsIdentity.Token); &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;//… call the service &lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;windowsImpersonationContext.Undo(); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:035a60f7-6b93-45fd-bb56-eeb5c0793192" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ntech" rel="tag"&gt;ntech&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130723"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130723" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/130723.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130723.aspx</guid>
            <pubDate>Fri, 03 Apr 2009 10:46:11 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/130723.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/04/03/130723.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/130723.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/130723.aspx</trackback:ping>
        </item>
        <item>
            <title>My talk ''Building Workflow Services in .NET 3.5'' at TechDays 09 in Antwerp today</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/03/12/130049.aspx</link>
            <description>&lt;p&gt;Slides and demos can be downloaded clicking &lt;a target="_blank" href="http://www.devitect.net\blogdata\TechDaysBE09\TechDays09_KurtClaeys_BuildingWorkflowServices35.zip"&gt;&lt;font size="4"&gt;here&lt;/font&gt;&lt;/a&gt;. (=3.5 MB Zipfile)&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a12bffe6-d133-4cc4-8da3-8dd54d176b5a" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/ntech"&gt;ntech&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130049"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130049" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/130049.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/03/12/130049.aspx</guid>
            <pubDate>Thu, 12 Mar 2009 15:19:53 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/130049.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/03/12/130049.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/130049.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/130049.aspx</trackback:ping>
        </item>
        <item>
            <title>MCT Summit Prague : great again.</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/01/11/128571.aspx</link>
            <description>&lt;a target="_blank" href="http://www.mctsummit2009.com"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="76" alt="image" width="244" align="left" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/MCTSummitPraguegreatagain_F8C4/image_5.png" /&gt;&lt;/a&gt;
&lt;p&gt;The last 3 days I was present at the MCT summit 2009. A gathering of 250 European MCT (8 of them are fellow Belgian) in a fine congreshotel with some cool speakers and great content (exclusive for MCT's, technical and soft skills). The summit took place in Prague.&lt;/p&gt;
&lt;p&gt;We got &lt;a target="_blank" href="http://bi-polar23.blogspot.com/"&gt;Matthew Roche&lt;/a&gt; presenting on SSIS (=&lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/ms141026.aspx"&gt;SQL Intergration Services&lt;/a&gt;) until late in the evening. Matthew is Quality Architect for Microsoft Learning and keeps an eye on the MCT quality newsgroup posts.&lt;/p&gt;
&lt;p&gt;Two very succesfull sessions were given by Speaker Idol winner TechEd EMEA Developers 2006 &lt;a target="_blank" href="http://www.quality-training.co.uk/blog/"&gt;Andy Malone&lt;/a&gt;. He showed us how hackers and the cybercrime maffia can get access to our private data and family background and how dangerous this can be concerning possible identity theft.&lt;/p&gt;
&lt;p&gt;The presentation I liked the most was 'Demos are King' by Rick Taylor. This session was about how usefull a demo is in a presentation or training session. It's absolutely true that showing how the stuff works to your audience is of great value.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://blogs.technet.com/virtualization/archive/2008/07/01/Top-5-things-to-know-about-Hyper_2D00_V.aspx"&gt;Ronald Bekelaar&lt;/a&gt; presented a deep dive session on &lt;a target="_blank" href="http://www.microsoft.com/windowsserver2008/en/us/hyperv-faq.aspx"&gt;HyperV&lt;/a&gt;. Ronald is the perfect trainer, even a .NET developer (like me) could understand it ;-)&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Prague"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="164" alt="image" width="244" align="left" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/MCTSummitPraguegreatagain_F8C4/image_6.png" /&gt;&lt;/a&gt; Like in Berlin a bustour through the city of Prague was organized before the MCT dinner. Nice to see this place at night (altough freezing cold on the &lt;a target="_blank" href="http://www.myczechrepublic.com/prague/sightseeing/charles_bridge.html"&gt;Charles Bridge&lt;/a&gt; !)&lt;/p&gt;
&lt;p&gt;The MCT summit is a very pleasant summit with a great opportunity to network with fellow MCT's. I think we're all the same : teaching and sharing knowledge became a second nature.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a target="_blank" href="http://blogs.msdn.com/billchapman/"&gt;Bill Chapman&lt;/a&gt;, &lt;a target="_blank" href="http://blogs.technet.com/mslcommunity/"&gt;Ken Rosen&lt;/a&gt; and Tjeerd Veninga (and the team behind them) for organizing this summit again. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;See you again next year !&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;BTW : check out this video : &lt;a title="http://www.microsoft.com/video/en/us/details/c162e520-9f8b-452e-9c12-7e07e0c1d392" href="http://www.microsoft.com/video/en/us/details/c162e520-9f8b-452e-9c12-7e07e0c1d392"&gt;http://www.microsoft.com/video/en/us/details/c162e520-9f8b-452e-9c12-7e07e0c1d392&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128571"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128571" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/128571.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/01/11/128571.aspx</guid>
            <pubDate>Sun, 11 Jan 2009 10:41:10 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/128571.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/01/11/128571.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/128571.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/128571.aspx</trackback:ping>
        </item>
        <item>
            <title>Download slides and demos for my VISUG session 'Entities in WCF'</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2009/01/03/128339.aspx</link>
            <description>&lt;p&gt;On 22 dec I presented a technical session on using &lt;strong&gt;Enitities in WCF&lt;/strong&gt; at &lt;a target="_blank" href="http://www.ordina.be/"&gt;Ordina&lt;/a&gt; for the Belgian VISUG (&lt;a target="_blank" href="http://www.visug.be"&gt;www.visug.be&lt;/a&gt;) Usergroup. &lt;br /&gt;
&lt;br /&gt;
&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="221" alt="image" width="244" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/DownloadslidesanddemosformyVISUGsessionE_1178C/image_3.png" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
You can download &lt;a target="_blank" href="http://www.devitect.net/blogdata/EntitiesInWCFPresentationVisug_CLAEYS_Kurt_CODE_EXamples.zip"&gt;the demos&lt;/a&gt; and the &lt;a target="_blank" href="http://www.devitect.net/blogdata/EntitiesInWCFPresentationVisug_CLAEYS_Kurt_Presentation.pdf"&gt;presentation&lt;/a&gt;.&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9870025d-1bfb-4104-aa7b-35909fe76a40" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/ntech"&gt;ntech&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128339"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128339" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/128339.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2009/01/03/128339.aspx</guid>
            <pubDate>Sat, 03 Jan 2009 12:53:05 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/128339.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2009/01/03/128339.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/128339.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/128339.aspx</trackback:ping>
        </item>
        <item>
            <title>Book Review : MCTS 70-503 Microsoft .NET Framework 3.5 Windows Communication Foundation (Self-Paced Training Kit). MS-Press : 9780735625655</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2008/11/30/127473.aspx</link>
            <description>&lt;p&gt;As one of the books part of the 75 centimeters of MS Press books I won as Speaker Idol at TechEd EMEA Barcelona I selected the training kit for the WCF Exam (70-503). Here's my review on this book. &lt;/p&gt;
&lt;p&gt;You can buy the book at &lt;a target="_blank" href="http://www.microsoft-press.co.uk/scripts/product.asp?ref=877207"&gt;http://www.microsoft-press.co.uk/scripts/product.asp?ref=877207&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;  &lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;strong&gt;Included in the book is :&lt;/strong&gt;&lt;/u&gt; &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="475" alt="CDScreenshot1" width="606" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/BookReviewMCTS70503.MSPress9780735625655_12F3D/CDScreenshot1_3.jpg" /&gt; &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;- a DVD with Visual Studio 2008 Professional Edition (90 day evaluation). Nice to have for people without VS2008 at their work environment and want to learn WCF and prepare for the exam. &lt;/p&gt;
&lt;p&gt;- CD containing : &lt;/p&gt;
&lt;ul&gt;
    &lt;ul&gt;
        &lt;li&gt;Training Kit Application with lesson reviews and exam question examples. Great value !!! &lt;/li&gt;
        &lt;li&gt;All exercises from the book, organized per chapter/lesson with the solutions to start form (before) and the completed solutions (after). &lt;/li&gt;
        &lt;li&gt;The book as e-book in PDF format. &lt;/li&gt;
        &lt;li&gt;Some sample chapters from other MS Press books (Training Kit for Workflow Foundation, WF Step by Step, WCF Step by Step and Application = Code + Markup) &lt;/li&gt;
        &lt;li&gt;Some links to great webcasts. &lt;/li&gt;
    &lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;- A discount voucher for the Exam&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Microsoft Press Training Kit Exam Prep&lt;/strong&gt; is an exam simulator/lesson review application with 56 questions for lesson review and another 200 questions in practice test mode. In lesson review mode you can configure your test objectives which makes it very useful to study and review the lessons on your own pace.&lt;/p&gt;
&lt;p&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="474" alt="CDScreenshot2" width="664" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/claeyskurt/WindowsLiveWriter/BookReviewMCTS70503.MSPress9780735625655_12F3D/CDScreenshot2_3.jpg" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Content of the Book :&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The book has 610 pages and includes 12 chapters :&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Contracts &lt;/li&gt;
    &lt;li&gt;Exposing the Services &lt;/li&gt;
    &lt;li&gt;Deploying Services &lt;/li&gt;
    &lt;li&gt;Consuming Services &lt;/li&gt;
    &lt;li&gt;Configuring WCF &lt;/li&gt;
    &lt;li&gt;Instrumentation &lt;/li&gt;
    &lt;li&gt;Infrastructure Security &lt;/li&gt;
    &lt;li&gt;User-Level Security &lt;/li&gt;
    &lt;li&gt;When Simple Isn’t Sufficient &lt;/li&gt;
    &lt;li&gt;Sessions and Instancing &lt;/li&gt;
    &lt;li&gt;Transaction Services &lt;/li&gt;
    &lt;li&gt;Concurrency &lt;br /&gt;
    &lt;br /&gt;
    + A chapter containing answers on the lesson review and scenario parts for each chapter. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The book starts, like most training material on WCF with the types of contracts. It quickly goes into details about FaultContracts. A good idea, as FaultContracts are very important in real world WCF applications. The Exposing, Deploying and Consuming chapters talk about Endpoints, WAS, IIS and managed application hosting, bindings and custom bindings, creating proxies and using svcutil.exe. Most Exercises are good as training material but are not in-depth enough compared to real life applications. Nice to see content on instrumentation (which is needed for the exam). The security part is well explained. The 'When Simple isn't Sufficient' chapter (weird name) talks about POX and handling exceptions on the client (important in real life !!!). The remaining chapters contain the typical content on sessions, transaction and concurrency. &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;I found this book being complete enough and having average to good examples and labs. It explains hard topics like authorization and implementation good. It's also one of the few WCF training materials I've seen which includes a lab on monitoring WCF Services. Although not an in-depth lab, it's worth doing it to become familiar with monitoring.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Personal review : &lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What I like most about this book : &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;- The content ;-) ... WCF is a great technology. &lt;br /&gt;
&lt;br /&gt;
- It's a complete package. It has everything needed for studying WCF, preparing for and doing the exam (the ebook, the solutions for the exercises, a practice test, the Visual Studio evaluation version and the discount for buying a voucher for the exam).&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote&gt;
&lt;p&gt;- It has multiple small lessons which makes it possible to consume this book at you own pace. Even if you have only one hour to spare, you can start reading a lesson. &lt;/p&gt;
&lt;p&gt;- It has a great educational structure. I mean ... every lesson starts with a brief overview of the lesson content, the well explained content, a lab, a summary and a review with questions. After the lesson you can watch the screencasts and do the review again with the training application.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What the book lacks is some content on using WCF services from AJAX enabled sites and JSON serialization and some more real life in-depth labs. &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Conclusion :&lt;/u&gt;&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;This book is not making you immediately the greatest WCF/SOA guru, but it has very good content, even useful for experienced WCF consultants. It prepares the reader for the exam quite well. I can recommend this book to everyone. &lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:43a21143-f1a1-465e-924b-2e2ac4ffa764" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/ntech"&gt;ntech&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127473"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127473" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/127473.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2008/11/30/127473.aspx</guid>
            <pubDate>Sun, 30 Nov 2008 14:51:01 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/127473.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2008/11/30/127473.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/127473.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/127473.aspx</trackback:ping>
        </item>
        <item>
            <title>The Architecture Journal #17 Released</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2008/10/13/125830.aspx</link>
            <description>&lt;p&gt;&lt;img alt="" align="left" src="http://i.msdn.microsoft.com/bb267382.Journal17(en-us,MSDN.10).jpg" /&gt;Check out &lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;a href="http://msdn.microsoft.com/en-us/arcjournal"&gt;http://msdn.microsoft.com/en-us/arcjournal&lt;/a&gt;. The new edition of the free magazine in .NET architecture is out. Topic of this issue is '&lt;font face="Arial"&gt;Distributed Computing&lt;/font&gt;'&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125830"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125830" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/125830.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2008/10/13/125830.aspx</guid>
            <pubDate>Tue, 14 Oct 2008 03:36:02 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/125830.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2008/10/13/125830.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/125830.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/125830.aspx</trackback:ping>
        </item>
        <item>
            <title>Using Microsoft.BizTalk.ExplorerOM</title>
            <link>http://geekswithblogs.net/claeyskurt/archive/2008/10/13/125815.aspx</link>
            <description>&lt;p&gt;With the aid of the Microsoft.BizTalk.ExplorerOM library found in "C:\Program Files\Microsoft BizTalk Server 2006\Developer Tools" you can write your own tool for administration of your Biztalk applications. With this API you can have a look at the installed applications, add applications and configure sendports and receivelocations and all other parts of the application. &lt;br /&gt;
&lt;br /&gt;
Start with declaring an object of type BtsCatalogExplorer and giving it the connectionstring to the Biztalk Management database. On this object there is the applications collection as an entry to all the elements of an installed BizTalk application. &lt;br /&gt;
&lt;br /&gt;
After changing the configuration you call the SaveChanges() method to make them permanent. Use RefreshChanges() to reload the latest configuration.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Example 1, just a dump of names of the applications, names of the orchestrations and sendports :&lt;/em&gt;&lt;/p&gt;
&lt;pre class="csharpcode"&gt;BtsCatalogExplorer btsCatalogExplorer;
btsCatalogExplorer = &lt;span class="kwrd"&gt;new&lt;/span&gt; BtsCatalogExplorer();
btsCatalogExplorer.ConnectionString = &lt;span class="str"&gt;"Integrated Security=SSPI;database=BizTalkMgmtDb;server=VS_BIZDEVSQL1"&lt;/span&gt;;


&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (Application o &lt;span class="kwrd"&gt;in&lt;/span&gt; btsCatalogExplorer.Applications)
{
    Console.WriteLine(o.Name);
}
&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (BtsOrchestration orch &lt;span class="kwrd"&gt;in&lt;/span&gt; btsCatalogExplorer.Applications[&lt;span class="str"&gt;"APP1"&lt;/span&gt;].Orchestrations)
{
    Console.WriteLine(orch.FullName);
}
&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SendPort sport &lt;span class="kwrd"&gt;in&lt;/span&gt; btsCatalogExplorer.Applications[&lt;span class="str"&gt;"APP1"&lt;/span&gt;].SendPorts)
{
    Console.WriteLine(sport.Name);
}
&lt;/pre&gt;
&lt;em&gt;
&lt;p&gt;Example 2, changing the transporttype of a port.&lt;/p&gt;
&lt;/em&gt;
&lt;pre class="csharpcode"&gt;BtsCatalogExplorer btsCatalogExplorer;
btsCatalogExplorer = &lt;span class="kwrd"&gt;new&lt;/span&gt; BtsCatalogExplorer();
btsCatalogExplorer.ConnectionString = &lt;span class="str"&gt;"Integrated Security=SSPI;database=BizTalkMgmtDb;server=VS_BIZDEVSQL1"&lt;/span&gt;;


btsCatalogExplorer.Applications[&lt;span class="str"&gt;"APP1"&lt;/span&gt;].SendPorts[&lt;span class="str"&gt;"ThePort"&lt;/span&gt;].Status = PortStatus.Stopped;
btsCatalogExplorer.Applications[&lt;span class="str"&gt;"APP1"&lt;/span&gt;].SendPorts[&lt;span class="str"&gt;"ThePort"&lt;/span&gt;].PrimaryTransport.TransportType = btsCatalogExplorer.ProtocolTypes[&lt;span class="str"&gt;"WCF-NetNamedPipe"&lt;/span&gt;];
btsCatalogExplorer.Applications[&lt;span class="str"&gt;"APP1"&lt;/span&gt;].SendPorts[&lt;span class="str"&gt;"ThePort"&lt;/span&gt;].Status = PortStatus.Started;

btsCatalogExplorer.SaveChanges();
&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;
&lt;em&gt;Example 3, adding a new application with a receiveport and its receivelocation.&lt;/em&gt;&lt;/p&gt;
&lt;pre class="csharpcode"&gt;BtsCatalogExplorer btsCatalogExplorer;
btsCatalogExplorer = &lt;span class="kwrd"&gt;new&lt;/span&gt; BtsCatalogExplorer();
btsCatalogExplorer.ConnectionString = &lt;span class="str"&gt;"Integrated Security=SSPI;database=BizTalkMgmtDb;server=VS_BIZDEVSQL1"&lt;/span&gt;;

Application application;
application = btsCatalogExplorer.AddNewApplication();
application.Name = &lt;span class="str"&gt;"APP1"&lt;/span&gt;;

btsCatalogExplorer.SaveChanges();

btsCatalogExplorer.Refresh();

application = btsCatalogExplorer.Applications[&lt;span class="str"&gt;"TestApp"&lt;/span&gt;];
ReceivePort receivePort = application.AddNewReceivePort(&lt;span class="kwrd"&gt;false&lt;/span&gt;);
receivePort.Name = &lt;span class="str"&gt;"ThePort"&lt;/span&gt;;
receivePort.Authentication = AuthenticationType.NotRequired;
receivePort.RouteFailedMessage = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
receivePort.Description = &lt;span class="str"&gt;"test"&lt;/span&gt;;
ReceiveLocation receiveLocation;
receiveLocation = receivePort.AddNewReceiveLocation();
receiveLocation.Name = &lt;span class="str"&gt;"TheReceiveLocation"&lt;/span&gt;;
receiveLocation.ReceivePipeline = btsCatalogExplorer.Pipelines[&lt;span class="str"&gt;"Microsoft.BizTalk.DefaultPipelines.XMLReceive"&lt;/span&gt;];
receiveLocation.ReceiveHandler = btsCatalogExplorer.ReceiveHandlers[1];
receiveLocation.TransportType = btsCatalogExplorer.ProtocolTypes[&lt;span class="str"&gt;"FILE"&lt;/span&gt;];
receiveLocation.Address = &lt;span class="str"&gt;@"C:\temp\DROPS\IN"&lt;/span&gt;;

btsCatalogExplorer.SaveChanges();&lt;/pre&gt;
&lt;pre class="csharpcode"&gt; &lt;/pre&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125815"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125815" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/claeyskurt/aggbug/125815.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kurt Claeys</dc:creator>
            <guid>http://geekswithblogs.net/claeyskurt/archive/2008/10/13/125815.aspx</guid>
            <pubDate>Mon, 13 Oct 2008 13:45:04 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/claeyskurt/comments/125815.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/claeyskurt/archive/2008/10/13/125815.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/claeyskurt/comments/commentRss/125815.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/claeyskurt/services/trackbacks/125815.aspx</trackback:ping>
        </item>
    </channel>
</rss>