<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lars Wilhelmsen &#187; WCF</title>
	<atom:link href="http://www.larswilhelmsen.com/category/wcf/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.larswilhelmsen.com</link>
	<description>Microsoft Connected Systems MVP</description>
	<lastBuildDate>Tue, 22 Jun 2010 08:24:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>WCF Test Client doesn&#8217;t speak Norwegian&#8230;</title>
		<link>http://www.larswilhelmsen.com/2010/06/22/wcf-test-client-doesnt-speak-norwegian/</link>
		<comments>http://www.larswilhelmsen.com/2010/06/22/wcf-test-client-doesnt-speak-norwegian/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 08:24:57 +0000</pubDate>
		<dc:creator>larsw</dc:creator>
				<category><![CDATA[Bug?]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://www.larswilhelmsen.com/2010/06/22/wcf-test-client-doesnt-speak-norwegian/</guid>
		<description><![CDATA[…at least when it comes to handling of decimal numbers – and it probably goes for all other non-English locales that doesn’t use period as the decimal delimiter. If you look closely at the screenshots below, you’ll notice that I’ve entered 2500,00 – that is two thousand comma zero zero in Norwegian. 250000 – two [...]]]></description>
			<content:encoded><![CDATA[<p>…at least when it comes to handling of decimal numbers – and it probably goes for all other non-English locales that doesn’t use period as the decimal delimiter. If you look closely at the screenshots below, you’ll notice that I’ve entered 2500,00 – that is <em>two thousand comma zero zero</em> in Norwegian. <em>250000 – two hundred and fifty thousand -</em> gets generated in the SOAP request. If I try to enter 2500.00 (with a period as the delimiter) the UI validation logic tells me (correctly) that it’s an invalid number. Switching to the en-US locale in the Regional settings in Windows, and it behaves normally (e.g. input 2500.00 – output 2500.00 in the SOAP message).</p>
<p>Sigh…</p>
<p><a href="http://www.larswilhelmsen.com/wp-content/uploads/2010/06/SNAGHTML21f13e78.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SNAGHTML21f13e78" border="0" alt="SNAGHTML21f13e78" src="http://www.larswilhelmsen.com/wp-content/uploads/2010/06/SNAGHTML21f13e78_thumb.png" width="521" height="512" /></a></p>
<p><a href="http://www.larswilhelmsen.com/wp-content/uploads/2010/06/SNAGHTML21f0fd25.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SNAGHTML21f0fd25" border="0" alt="SNAGHTML21f0fd25" src="http://www.larswilhelmsen.com/wp-content/uploads/2010/06/SNAGHTML21f0fd25_thumb.png" width="521" height="512" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larswilhelmsen.com/2010/06/22/wcf-test-client-doesnt-speak-norwegian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easier Unit Testing of WCF Services with ServiceTestContext</title>
		<link>http://www.larswilhelmsen.com/2009/09/08/easier-unit-testing-of-wcf-services-with-servicetestcontext/</link>
		<comments>http://www.larswilhelmsen.com/2009/09/08/easier-unit-testing-of-wcf-services-with-servicetestcontext/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 08:42:13 +0000</pubDate>
		<dc:creator>larsw</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://www.larswilhelmsen.com/2009/09/08/easier-unit-testing-of-wcf-services-with-servicetestcontext/</guid>
		<description><![CDATA[Hi, and apologies for being so awfully quiet the last couple of months. Expect the traffic to pick up again (I’ll explain the silence in a blog post later). Now, when unit testing WCF Services, I’ve often ended up with cluttering my tests with a lot of plumbing code to wire up the SUT; that is [...]]]></description>
			<content:encoded><![CDATA[<p>Hi, and apologies for being so awfully quiet the last couple of months. Expect the traffic to pick up again (I’ll explain the silence in a blog post later).</p>
<p>Now, when unit testing WCF Services, I’ve often ended up with cluttering my tests with a lot of plumbing code to wire up the SUT; that is – the WCF service I want to exercise.</p>
<p>Now, being a lazy guy, wiring up (redundant) plumbing code again and again, I often end up trying to extract the essence and put together a tool or helper class.</p>
<p>So, this is my first shot of a fluent helper class that lets you test your WCF services.</p>
<p>The screenshot below pretty much sums up the functionality. It should be pretty self explaining; You end up writing an <em>Action&lt;TContract&gt;</em> implementation that acts as the client.</p>
<p>It will wire up an OperationContextScope automatically, but it can be disabled if you don’t need it.</p>
<p><a href="http://www.larswilhelmsen.com/wp-content/uploads/2009/09/ShouldReturnHttp2001.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ShouldReturnHttp200" src="http://www.larswilhelmsen.com/wp-content/uploads/2009/09/ShouldReturnHttp200_thumb1.png" border="0" alt="ShouldReturnHttp200" width="505" height="455" /></a></p>
<p>The state/quality of the code is “Proof of Concept” and can be found <a href="http://www.larswilhelmsen.com/wp-content/uploads/2009/09/ServiceTestContext.cs">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.larswilhelmsen.com/2009/09/08/easier-unit-testing-of-wcf-services-with-servicetestcontext/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Codename &#8220;Velocity&#8221; WF/WCF Persistence Provider</title>
		<link>http://www.larswilhelmsen.com/2008/12/11/codename-velocity-wfwcf-persistence-provider/</link>
		<comments>http://www.larswilhelmsen.com/2008/12/11/codename-velocity-wfwcf-persistence-provider/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 20:24:24 +0000</pubDate>
		<dc:creator>larsw</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Persistence Provider]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[WF]]></category>

		<guid isPermaLink="false">http://larsw.wordpress.com/2008/12/11/codename-velocity-wfwcf-persistence-provider/</guid>
		<description><![CDATA[So, it’s been a bit quiet here lately. The natural cause of it is (in no particular order): A lot of work Spending quality time with my son Hacking on different kinds of technology bits (mainly pieces released at the PDC 2008) I’ve also tried to get a clear picture of my “blind spots” when [...]]]></description>
			<content:encoded><![CDATA[<p>So, it’s been a bit quiet here lately. The natural cause of it is (in no particular order):</p>
<ul>
<li>A lot of work</li>
<li>Spending quality time with my son</li>
<li>Hacking on different kinds of technology bits (mainly pieces released at the PDC 2008)</li>
</ul>
<p>I’ve also tried to get a clear picture of my “blind spots” when it comes to WCF. Even though I feel quite competent, there are still tons of stuff that I don’t touch daily so I still have to “rehearse”.</p>
<p>Since I have “Get to know Workflow Foundation – for real” on my TODO list I spent some time playing with durable services.</p>
<p>The persistence provider mechanism that is located in <strong>System.WorkflowServices</strong> is not exclusive to to Workflows / Workflow services. It can also be used with “vanilla” WCF Services.</p>
<p>The idea is that the framework can persist the service instance after you have invoked a method and when a future method invocation comes down the wire, it can pull it from the persistence store – revive it and pass the call to the “same” instance. A perfect fit for the scenario of long running services.</p>
<p>So how do you enable durable services? It is quite easy. First, you decorate your service implementation with <strong>[DurableService]</strong> and one of the mechanisms that specifies that the type is <em>serializable</em> (I chose <strong>[Serializable]</strong> for the sake of simplicity).</p>
<p><img style="display:inline;" title="image" src="http://larsw.files.wordpress.com/2008/12/image.png" alt="image" width="352" height="543" /></p>
<p>In this code snippet we also see that there is another attribute that can be used to tell the persistence mechanism that a call to an operation creates the instance or tears it down; <a href="http://msdn.microsoft.com/en-us/system.servicemodel.description.durableoperationattribute.aspx" target="_blank">[DurableOperation]</a>.</p>
<p>The next thing you have to do is to wire up a persistence provider using either configuration or programmatically.</p>
<p>Out of the box there exists only one Persistence Provider; One suited for persisting the service instances to SQL Server – <em>System.ServiceModel.Persistence.SqlPersistenceProviderFactory.</em> You will have to set up a SQL Server Database instance with the schema located in <em>C:\Windows\Microsoft.NET\Framework\v3.5\SQL\EN</em>.</p>
<p>But that was a digression – now back to my custom “Velocity” Persistence Provider. If you don’t know what Codename “Velocity” is, I suggest that you head over <a href="http://blogs.msdn.com/velocity/" target="_blank">here</a> and read more about it. The short description:</p>
<p>It is Microsoft’s attempt to create an in-memory, high-performance, distributed caching supporting different scenarios that can suite many needs in both a web farm or other places where caching is needed. The current version that is publicly available is CTP2. We should expect a new CTP in March (around the time of MIX’09) and the RTW/RTM in the mid of 2009.</p>
<p>To implement a custom persistence provider, you will have to create two classes; the persistence provider implementation and its factory. It is the fully qualified type name of the factory that is specified when you set up the configuration.</p>
<p>The following configuration snippet shows how a custom service behavior is set up. You will have to set the <em>behaviorConfiguration</em> attribute on the service element to <strong>“defaultServiceBehavior”</strong> in this case.</p>
<p><img style="display:inline;" title="image" src="http://larsw.files.wordpress.com/2008/12/image1.png" alt="image" width="497" height="161" /></p>
<p>The code for the provider is available <a href="http://larsw-public.s3.amazonaws.com/LarsW.VelocityPersistenceProvider-1.0.0.zip" target="_blank">here</a> (Licensed under the <em>Apache License 2.0</em>).</p>
<p>Cheers <img src='http://www.larswilhelmsen.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> <br />
<a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2flarswilhelmsen.com%2f2008%2f12%2f11%2fcodename-velocity-wfwcf-persistence-provider%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2flarswilhelmsen.com%2f2008%2f12%2f11%2fcodename-velocity-wfwcf-persistence-provider%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larswilhelmsen.com/2008/12/11/codename-velocity-wfwcf-persistence-provider/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What&#8217;s new in WCF 4.0</title>
		<link>http://www.larswilhelmsen.com/2008/11/25/whats-new-in-wcf-40/</link>
		<comments>http://www.larswilhelmsen.com/2008/11/25/whats-new-in-wcf-40/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 20:54:13 +0000</pubDate>
		<dc:creator>larsw</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[NNUG]]></category>
		<category><![CDATA[Talks]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://larsw.wordpress.com/2008/11/25/whats-new-in-wcf-40/</guid>
		<description><![CDATA[Tonight I held a talk for the Norwegian .NET User Group Oslo on “What’s new in WCF 4.0”. The feedback was good and I think it went fairly well, especially considered the time I’ve had to prepare. There should probably have been more time allocated for demonstrations but to cover all the areas of improvements [...]]]></description>
			<content:encoded><![CDATA[<p>Tonight I held a talk for the Norwegian .NET User Group Oslo on “What’s new in WCF 4.0”. The feedback was good and I think it went fairly well, especially considered the time I’ve had to prepare.</p>
<p>There should probably have been more time allocated for demonstrations but to cover all the areas of improvements in WCF (and related technologies) I really need (at least) 45 minutes. If I’m asked to do this talk for other NNUG chapters (or internal for other companies/clients) I think it would be wise to either cut down on the content – and only mention the left out parts briefly – or extend it to a two hour talk.</p>
<p>If you attended the talk, I would love feedback (both positive &amp; negative), comments, questions, speaking &amp; consultancy offers. Contact me at lw at miles dot no </p>
<p>You can download the slides <a href="http://larsw-public.s3.amazonaws.com/What%20is%20new%20in%20WCF%204.0.pdf" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.larswilhelmsen.com/2008/11/25/whats-new-in-wcf-40/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where are the System.ServiceModel .Discovery bits?</title>
		<link>http://www.larswilhelmsen.com/2008/11/21/where-are-the-systemservicemodeldiscovery-bits/</link>
		<comments>http://www.larswilhelmsen.com/2008/11/21/where-are-the-systemservicemodeldiscovery-bits/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 10:51:14 +0000</pubDate>
		<dc:creator>larsw</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[NNUG]]></category>
		<category><![CDATA[System.ServiceModel.Discovery]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[WS-Discovery]]></category>

		<guid isPermaLink="false">http://larsw.wordpress.com/2008/11/21/where-are-the-systemservicemodeldiscovery-bits/</guid>
		<description><![CDATA[I’m currently preparing my talk for next Tuesday &#8211; “What’s new in WCF 4.0” and one of the features I want to talk about is the new WS-Discovery implementation. My only problem so far (until today) was that I couldn’t find the bits on the Virtual PC Image! I have been searching high and low [...]]]></description>
			<content:encoded><![CDATA[<p>I’m currently preparing my talk for next Tuesday &#8211; “<em>What’s new in WCF 4.</em>0” and one of the features I want to talk about is the new <em>WS-Discovery</em> implementation. My only problem so far (until today) was that I couldn’t find the bits on the Virtual PC Image! I have been searching high and low with .NET Reflector – to no luck.</p>
<p>So I wrote a post in the WCF forum and asked if anyone knew where I could find it. No good answers, so I sent the question to a couple of the PM’s in Connected Systems Division that I know work with WCF. No answer. Finally I turned to the Email form on <a href="http://blogs.msdn.com/drnick/" target="_blank">Nicholas Allen’s blog</a> – and he was kind enough to mail me back.</p>
<p>Turn out that the bits is in the <strong>System.WorkflowServiceModel</strong> – one of the assemblies I didn’t bother to search since I thought they only contained Workflow-specific bits…</p>
<p>The invitation to the talk on Tuesday can be found <a href="http://www.nnug.no/Avdelinger/Oslo/Moter/Brukergruppemote-november-2008/" target="_blank">here</a> (In Norwegian). I’m hoping for at least 70-80 attendees.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.larswilhelmsen.com/2008/11/21/where-are-the-systemservicemodeldiscovery-bits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preparing a WCF talk for the next NNUG meeting</title>
		<link>http://www.larswilhelmsen.com/2008/11/12/preparing-a-wcf-talk-for-the-next-nnug-meeting/</link>
		<comments>http://www.larswilhelmsen.com/2008/11/12/preparing-a-wcf-talk-for-the-next-nnug-meeting/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 20:32:29 +0000</pubDate>
		<dc:creator>larsw</dc:creator>
				<category><![CDATA[NNUG]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://larsw.wordpress.com/2008/11/12/preparing-a-wcf-talk-for-the-next-nnug-meeting/</guid>
		<description><![CDATA[On Tuesday the 25th November, I will be speaking at the NNUG Oslo meeting (hosted by NITH @ Galleriet, Oslo). My inital idea was to do an advanced extensibility talk, but after I attended the PDC in LA a couple of weeks ago I’ve changed my mind; the talk will be about the new features [...]]]></description>
			<content:encoded><![CDATA[<p>On Tuesday the 25th November, I will be speaking at the NNUG Oslo meeting (hosted by NITH @ Galleriet, Oslo).</p>
<p>My inital idea was to do an advanced extensibility talk, but after I attended the PDC in LA a couple of weeks ago I’ve changed my mind; the talk will be about the new features in WCF 4.0 (and I will probably touch WF 4.0 as well).</p>
<p>If there are anything special you want me to shed light on, please leave a comment or drop me a mail.</p>
<p>Thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.larswilhelmsen.com/2008/11/12/preparing-a-wcf-talk-for-the-next-nnug-meeting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WCF Test Client &#8211; Extended!</title>
		<link>http://www.larswilhelmsen.com/2008/10/04/wcf-test-client-extended/</link>
		<comments>http://www.larswilhelmsen.com/2008/10/04/wcf-test-client-extended/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 19:21:54 +0000</pubDate>
		<dc:creator>larsw</dc:creator>
				<category><![CDATA[Hack]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://larsw.wordpress.com/2008/10/04/wcf-test-client-extended/</guid>
		<description><![CDATA[With Visual Studio 2008 Microsoft bundled a new tool; the WCF Test Client (and its partner in crime; WcfSvcHost). The intention is good, but sadly the tool isn’t the one you pick up when you develop real-life services. (IMHO) The biggest shortcoming is the lack of functionality for saving and loading test data (templates) so [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://larsw.files.wordpress.com/2008/10/image.png"><img title="image" style="display:inline;margin:0 0 0 10px;" height="189" alt="image" src="http://larsw.files.wordpress.com/2008/10/image-thumb.png" width="290" align="right" /></a>With Visual Studio 2008 Microsoft bundled a new tool; the WCF Test Client (and its partner in crime; WcfSvcHost). The intention is good, but sadly the tool isn’t the one you pick up when you develop real-life services. (IMHO) The biggest shortcoming is the lack of functionality for saving and loading test data (templates) so you don’t have to enter the data manually each time you fire up the tool.</p>
<p>Last November, I attended the WCF Master Class held at <a href="http://www.programutvikling.no/" target="_blank">Programutvkling</a>’s premises right outside Oslo and the class instructor was <a href="http://www.dasblonde.net/" target="_blank">Michèle L. Bustamante</a> of <a href="http://www.idesign.net/" target="_blank">IDesign</a>.</p>
<p>During one of the first days when we still was going through some WCF Fundamentals, we came to discuss the shortcomings of the WCF Test Client, where raised the issue about the missing save/load functionality. I joked that I would see to that the functionality would be there in the end of the week.</p>
<p>Since I’ve played with WCF since the first Indigo bits went public, I had some “free” time during the first days when Michèle walked through the basics, so I set off on my mission equipped with .NET Reflector and VS2008.</p>
<p align="justify">I’ve done my amount of “Non-public binding” and .NET hacking before to get passed shortcomings and bugs in the Base Class Library and third part components before, so I had an idea of which strategy to go for.</p>
<p align="justify">The easiest solution would have been to use a .NET Reflector <a href="http://www.denisbauer.com/NETTools/FileDisassembler.aspx" target="_blank">addin</a> to disassemble the WcfTestClient.exe into a set of C# source files &amp; a Visual Studio project.</p>
<p align="justify">That would have been too easy – and it would have prevented me to release the source code found below.</p>
<p align="justify">So the strategy I chose was to create a wrapper, that loads the original assembly, creates the main window&#160; form, and inject the UI elements (Save/Load/About tool strip menu buttons).</p>
<p align="justify">Everything in the existing assembly is marked as <strong>internal</strong>, so all object construction and method invocation has to be done by binding to the members with <strong>BindingFlags.NonPublic | BindingFlags.Instance</strong>. Apart from that, it was really just a dirty job (but somebody had to do it, right? <img src='http://www.larswilhelmsen.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  ).</p>
<p align="justify"><strong>Disclaimer: This code is only for educational purposes and is released to the public domain “AS-IS”. </strong></p>
<p align="justify">You can find one of the ugliest hack I’ve ever done <a href="http://larsw-public.s3.amazonaws.com/LarsW.WcfTestClientEx.zip" target="_blank">here</a>.</p>
<p align="justify"><strong>Note</strong>: I asked a friend of mine, <a href="http://www.andersnoras.com/" target="_blank">Anders Norås</a>, to do a smoke test on the solution. On his Macbook he got an error when he tried to unzip the archive. So if you have any problems with the ZIP – you can try the <a href="http://larsw-public.s3.amazonaws.com/LarsW.WcfTestClientEx.rar" target="_blank">RAR</a>.</p>
<h4 align="justify">Instructions</h4>
<p align="justify">Unpack the <em>LarsW.WcfTestClientEx.zip</em> to a suitable location and open the solution in Visual Studio 2008. There is an assumption in a post build event in the LarsW.WcfTestClientEx project that the original WcfTestClient.exe is located here at C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE. If you’ve installed Visual Studio to another location, you will have to change the post build event.</p>
<p align="justify">I’ve bundled a simple test service. If you’re running as a non-administrative user, you will probably have to either use <em>netsh http add urlacl</em> or <em>httpcfg add urlacl</em> to reserve <a href="http://localhost:12345/">http://localhost:12345/</a> – or change the service so that it uses another URI for the service endpoint that you have already registered.</p>
<p align="justify">Open the solution properties window and set the radio button to <strong>Multiple startup projects</strong>. Set both projects to <strong>Start</strong>. </p>
<p align="justify">When the WCF Test Client Extended! starts – it analyzes the metadata/WSDL from the service, and populates the operation tree.</p>
<p align="justify">Select on of the operations, and enter some test data into the generated UI grid.</p>
<p align="justify">Now, use the new <em>Save…</em> item on <em>File menu</em> and store the data to a file. Overwrite the data you entered with something else in the grid, and try the Load… item. Select the file you just persisted the test data to, and it should set the elements in the grid to the values you first entered.</p>
<p align="justify">Easy – isn’t it? Well, I have to admit that there is *no* error handling whatsoever, so there is probably a dozen ways the application can puke on you. This is just a <em><strong>proof of concept</strong></em>.</p>
<p align="justify">Later, I will show you have you can turn the WcfTestClient.exe into a scriptable console application, where you can specify the input data in one file, and the expected outcome in another (or you can just pipe the output and inspect it later) – could turn very useful for TDD purposes…</p>
<p align="justify">PS: One of the reasons I wrote this blog post now, was to have an excuse to advertise for Michèle’s WCF Master Class course starting <em>13th October 2008</em>. Last time I checked, there was empty seats – so if I were you, I would head over <a href="http://www.programutvikling.no/kurskalenderoversikt.aspx?mid_1=1352&amp;mid=1535&amp;id=119951" target="_blank">here</a> – and sign up. If you live in Scandinavia – it is really no excuse to skip this opportunity <img src='http://www.larswilhelmsen.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p align="justify"><strong>Update</strong>: I just want to explicitly point out that the hack described above is <strong>not</strong> in the WCF Master Class curriculum. </p>
<p>  <a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2flarswilhelmsen.com%2f2008%2f10%2f04%2fwcf-test-client-extended%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2flarswilhelmsen.com%2f2008%2f10%2f04%2fwcf-test-client-extended%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larswilhelmsen.com/2008/10/04/wcf-test-client-extended/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>My Product / Idea Backlog</title>
		<link>http://www.larswilhelmsen.com/2008/10/01/my-product-idea-backlog/</link>
		<comments>http://www.larswilhelmsen.com/2008/10/01/my-product-idea-backlog/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 20:17:01 +0000</pubDate>
		<dc:creator>larsw</dc:creator>
				<category><![CDATA[CodePlex]]></category>
		<category><![CDATA[IoC]]></category>
		<category><![CDATA[Pet+Projects]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[CodePlex; Pet+Projects; Silverlight; WCF]]></category>

		<guid isPermaLink="false">http://larsw.wordpress.com/2008/10/01/my-product-idea-backlog/</guid>
		<description><![CDATA[This post is a work in progress. I feel that I need a place to organize all my pet projects, whether they still only exist in my head or have materialized into some code. Miles Platform Active Directory FOAF Gateway – internal beta Active Directory Photo Uploader – internal beta MOAT (Meaning Of A Tag) [...]]]></description>
			<content:encoded><![CDATA[<p>This post is a work in progress. I feel that I need a place to organize all my pet projects, whether they still only exist in my head or have materialized into some code.</p>
<ul>
<li>
<h4>Miles Platform</h4>
<ul>
<li>Active Directory FOAF Gateway – internal beta</li>
<li>Active Directory Photo Uploader – internal beta</li>
<li>MOAT (Meaning Of A Tag) service / client &#8211; idea</li>
<li>Internal Library service / client &#8211; prototype</li>
</ul>
</li>
<li>
<h4>WCF related</h4>
<ul>
<li>ChunkingChannelEx &#8211; bug fixing</li>
<li>XMPP Transport Channel – research/inception stage.</li>
<li><a target="_blank" href="http://larswilhelmsen.com/2008/10/04/wcf-test-client-extended/">WCF Test Client Extended!</a> </li>
</ul>
</li>
<li>
<h4>Miscellaneous</h4>
<ul>
<li><a target="_blank" href="http://www.codeplex.com/Aggressive">Agressive</a> &#8211; Silverlight-based, lightweight Time Management System – planning/prototyping stage.</li>
<li>Visual Studio Theme Explorer – planning phase.</li>
<li>Tinyject – A tiny IoC/DI container in about 200 lines of C#.</li>
</ul>
</li>
</ul>
<p>The idea is to release as many of these under a liberal open license &#8211; probably hosted on CodePlex or a similar service.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.larswilhelmsen.com/2008/10/01/my-product-idea-backlog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serve PDF as inline attachments &#8211; WCF REST style</title>
		<link>http://www.larswilhelmsen.com/2008/07/09/serve-pdf-as-inline-attachments-wcf-rest-style/</link>
		<comments>http://www.larswilhelmsen.com/2008/07/09/serve-pdf-as-inline-attachments-wcf-rest-style/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 20:05:42 +0000</pubDate>
		<dc:creator>larsw</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[WebHttpBinding]]></category>

		<guid isPermaLink="false">http://larsw.wordpress.com/2008/07/09/serve-pdf-as-inline-attachments-wcf-rest-style/</guid>
		<description><![CDATA[Some time ago, a user with the nickname refaeldakar asked in the WCF/MSDN forum how he could serve PDFs with the WebHttpBinding so that where shown as inline attachments in the web browser. I wrote a small test application that did what he asked for. The trick here is to add an extra HTTP header [...]]]></description>
			<content:encoded><![CDATA[</p>
<p>Some time ago, a user with the nickname <a href="http://forums.microsoft.com/MSDN/User/Profile.aspx?UserID=151152&amp;SiteID=1" target="_blank">refaeldakar</a> <a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3428819&amp;SiteID=1" target="_blank">asked</a> in the WCF/MSDN forum how he could serve PDFs with the WebHttpBinding so that where shown as inline attachments in the web browser.</p>
<p>I wrote a small test application that did what he asked for. The trick here is to add an extra HTTP header to the outgoing response to the web browser; <strong>Content-disposition: “inline; filename=filenamehere.pdf&quot;</strong>.</p>
<p>The code can be found on <a href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=WCFResources&amp;ReleaseId=1271" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.larswilhelmsen.com/2008/07/09/serve-pdf-as-inline-attachments-wcf-rest-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unity 1.1 Container Behavior for WCF</title>
		<link>http://www.larswilhelmsen.com/2008/07/02/unity-11-container-behavior-for-wcf/</link>
		<comments>http://www.larswilhelmsen.com/2008/07/02/unity-11-container-behavior-for-wcf/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 20:35:46 +0000</pubDate>
		<dc:creator>larsw</dc:creator>
				<category><![CDATA[IoC]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://larsw.wordpress.com/?p=22</guid>
		<description><![CDATA[Some time ago I needed a way to wire up an IoC container in a WCF service I was creating at that time. Since I’ve used ObjectBuilder-based containers a lot in both Composite UI Application Block and Enterprise Library, I wanted to take a closer look at the Unity container and the 2.0 version of [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago I needed a way to wire up an <a href="http://martinfowler.com/articles/injection.html" target="_blank">IoC</a> container in a WCF service I was creating at that time. Since I’ve used ObjectBuilder-based containers a lot in both Composite UI Application Block and Enterprise Library, I wanted to take a closer look at the <a href="http://www.codeplex.com/unity" target="_blank">Unity container</a> and the 2.0 version of <a href="http://www.codeplex.com/ObjectBuilder" target="_blank">ObjectBuilder</a>.</p>
<p>To manage the creation of service instances, you have to implement the <a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.iinstanceprovider.aspx" target="_blank">IInstanceProvider</a><strong></strong> interface, and wire up the concrete type in a service behavior.</p>
<p>The code should be fairly documented, and a simple xUnit.NET test project is included. If you want to check out xUnit.NET, check out its <a href="http://www.codeplex.com/xunit" target="_blank">CodePlex site</a>.</p>
<p>I’ve put the code on a new resource page on <a href="http://code.msdn.microsoft.com/" target="_blank">code.msdn.microsoft.com</a> that I have created WCF Resources. You can find the release <a href="http://code.msdn.microsoft.com/WCFResources/Release/ProjectReleases.aspx?ReleaseId=1252" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.larswilhelmsen.com/2008/07/02/unity-11-container-behavior-for-wcf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
