<?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>Aaron Lerch &#187; wcf</title>
	<atom:link href="http://www.aaronlerch.com/blog/category/wcf/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aaronlerch.com/blog</link>
	<description></description>
	<lastBuildDate>Wed, 10 Mar 2010 12:45:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Enabling WCF services within IIS on Windows Vista</title>
		<link>http://www.aaronlerch.com/blog/2007/12/11/enabling-wcf-services-within-iis-on-windows-vista/</link>
		<comments>http://www.aaronlerch.com/blog/2007/12/11/enabling-wcf-services-within-iis-on-windows-vista/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 20:17:10 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[wcf]]></category>

		<guid isPermaLink="false">http://www.aaronlerch.com/blog/2007/12/11/enabling-wcf-services-within-iis-on-windows-vista/</guid>
		<description><![CDATA[If you installed IIS on Windows Vista after you installed .NET 3.0, like I did, you&#8217;ll notice that any references to the .svc file will fail, typically with a 404 not found. It&#8217;s easy to see that the .svc mappings aren&#8217;t installed, but without consulting some documentation it&#8217;s not abundantly clear how to install them. [...]]]></description>
			<content:encoded><![CDATA[<p>If you installed IIS on Windows Vista <em>after</em> you installed .NET 3.0, like I did, you&#8217;ll notice that any references to the .svc file will fail, typically with a 404 not found. It&#8217;s easy to see that the .svc mappings aren&#8217;t installed, but without consulting some <a href="http://msdn2.microsoft.com/en-us/library/aa751792.aspx">documentation</a> it&#8217;s not abundantly clear how to install them. If you&#8217;re running Vista, you enable the activation service by turning on a windows feature: Windows Communication Foundation HTTP Activation. You can access the &#8220;Turn Windows features on or off&#8221; option from your Control Panel.</p>
<p>Hope this saves someone else the time I wasted. <img src='http://www.aaronlerch.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.aaronlerch.com/files/blog/EnablingWCFserviceswithinIISonWindowsVis_D6F1/image.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="354" alt="image" src="http://www.aaronlerch.com/files/blog/EnablingWCFserviceswithinIISonWindowsVis_D6F1/image_thumb.png" width="423" border="0"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronlerch.com/blog/2007/12/11/enabling-wcf-services-within-iis-on-windows-vista/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>URI &#8220;Purity&#8221;</title>
		<link>http://www.aaronlerch.com/blog/2007/08/21/uri-purity/</link>
		<comments>http://www.aaronlerch.com/blog/2007/08/21/uri-purity/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 23:14:00 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[rest]]></category>
		<category><![CDATA[wcf]]></category>

		<guid isPermaLink="false">http://www.aaronlerch.com/blog/2007/08/21/uri-purity/</guid>
		<description><![CDATA[In my article on REST + WCF, I mentioned something I called &#8220;URI Purity&#8221;:
&#8220;URI purity&#8221;, as I define it, refers to the degree with which implementation details &#8220;leak&#8221; into the URI of a resource. (read more&#8230;)
Interesting that I come across this post tonight by Jon Flanders [via] where he created an HttpModule to rewrite the [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.developer.com/net/article.php/3695436">my article on REST + WCF</a>, I mentioned something I called &#8220;URI Purity&#8221;:</p>
<blockquote><p>&#8220;URI purity&#8221;, as I define it, refers to the degree with which implementation details &#8220;leak&#8221; into the URI of a resource. (<a href="http://www.developer.com/net/article.php/3695436">read more&#8230;</a>)</p></blockquote>
<p>Interesting that I come across <a href="http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,9e0d8d1e-ac7c-49b5-8072-bde42609f5db.aspx">this post</a> tonight by Jon Flanders [<a href="http://weblogs.asp.net/cibrax/archive/2007/08/21/removing-the-svc-extension-for-wcf-services.aspx">via</a>] where he created an HttpModule to rewrite the .svc extension out of a web request. The one thing his module doesn&#8217;t do, unfortunately, is rewrite the outgoing response back to the client &#8211; so if a resource is created, its URI returned in the response would still include &#8220;.svc&#8221;.</p>
<p>Scott Guthrie (and many others) have already <a href="http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx">posted</a> on some good resources (and rationale) for URL rewriting, so I won&#8217;t repeat all that here. Just <a href="http://www.google.com/search?q=url+rewrite+asp.net">Google &#8220;url rewrite asp.net&#8221;</a> and you&#8217;re on your way.</p>
<p class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:eb5ff2a2-e701-477f-8fc1-fb76ce351580" contenteditable="false" style="margin: 0px; padding: 0px; display: inline">Technorati Tags: <a href="http://technorati.com/tags/wcf" rel="tag">wcf</a>, <a href="http://technorati.com/tags/rest" rel="tag">rest</a>, <a href="http://technorati.com/tags/url%20rewrite" rel="tag">url rewrite</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronlerch.com/blog/2007/08/21/uri-purity/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating RESTful Web Services with WCF 3.5</title>
		<link>http://www.aaronlerch.com/blog/2007/08/21/creating-restful-web-services-with-wcf-35/</link>
		<comments>http://www.aaronlerch.com/blog/2007/08/21/creating-restful-web-services-with-wcf-35/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 14:43:00 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[rest]]></category>
		<category><![CDATA[wcf]]></category>

		<guid isPermaLink="false">http://www.aaronlerch.com/blog/2007/08/21/creating-restful-web-services-with-wcf-35/</guid>
		<description><![CDATA[My inaugural article titled &#8220;Creating RESTful Web Services with Windows Communication Foundation&#8221; is up at developer.com.  Go give it a read, if you dare! I recently spent quite a while digging into the REST implementation in WCF 3.5 (Beta 2): WebGet/WebInvoke, WebOperationContext, WebServiceHost and their ilk. It&#8217;s some pretty interesting stuff.
Feel free to make [...]]]></description>
			<content:encoded><![CDATA[<p>My inaugural article titled &#8220;<a href="http://www.developer.com/net/article.php/3695436">Creating RESTful Web Services with Windows Communication Foundation</a>&#8221; is up at <a href="http://www.developer.com/">developer.com</a>.  Go give it a read, if you dare! I recently spent quite a while digging into the REST implementation in WCF 3.5 (Beta 2): WebGet/WebInvoke, WebOperationContext, WebServiceHost and their ilk. It&#8217;s some pretty interesting stuff.</p>
<p>Feel free to make <strike>jabs</strike> comments on my article here or on the developer.com website&#8230; I welcome all feedback! Got questions? I&#8217;m happy to answer anything I can, and help research the stuff I can&#8217;t.</p>
<p>For the article I put together a working (simple) blog engine service, which was fun. You can download the source on the last page of the article. I got to play around with a glimpse <a href="http://weblogs.asp.net/scottgu/archive/tags/LINQ/default.aspx" title="ScottGu talks about LINQ">into what LINQ can do</a>&#8211;powerfull stuff. <a href="http://haacked.com/archive/2006/10/06/Rolling_Your_Own_Blog_Engine.aspx">Phil Haack was right</a>, implementing a blog engine really is today&#8217;s &#8220;Hello World&#8221;.</p>
<p class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:0d29f756-6ed5-47c4-8558-814ca49f87a9" contenteditable="false" style="margin: 0px; padding: 0px; display: inline">Technorati tags: <a href="http://technorati.com/tags/wcf" rel="tag">wcf</a>, <a href="http://technorati.com/tags/rest" rel="tag">rest</a>, <a href="http://technorati.com/tags/articles" rel="tag">articles</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronlerch.com/blog/2007/08/21/creating-restful-web-services-with-wcf-35/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A humble WCF feature request (or four)</title>
		<link>http://www.aaronlerch.com/blog/2007/07/16/a-humble-wcf-feature-request-or-four/</link>
		<comments>http://www.aaronlerch.com/blog/2007/07/16/a-humble-wcf-feature-request-or-four/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 01:43:00 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[rest]]></category>
		<category><![CDATA[wcf]]></category>

		<guid isPermaLink="false">http://www.aaronlerch.com/blog/2007/07/16/a-humble-wcf-feature-request-or-four/</guid>
		<description><![CDATA[Since Steve Maine&#8217;s excellent and informative blog appears to be down tonight, I&#8217;m posting my request here for all to see.&#160; I&#8217;d like to see two things for WCF in .NET 3.5.
First is response message encoding specified per service operation.&#160; If we&#8217;re really creating a RESTful service, then it makes sense to be able to [...]]]></description>
			<content:encoded><![CDATA[<p>Since <a href="http://hyperthink.net/blog">Steve Maine&#8217;s excellent and informative blog</a> appears to be down tonight, I&#8217;m posting my request here for all to see.&nbsp; I&#8217;d like to see two things for WCF in .NET 3.5.</p>
<p>First is response message encoding specified per service operation.&nbsp; If we&#8217;re really creating a RESTful service, then it makes sense to be able to change encoding formats for given URI &#8220;extensions&#8221;, and not having to create different endpoints for each format.&nbsp; So what I mean is that &#8220;http://aaronlerch.com/blog/tags/WCF.rss&#8221; should return RSS, &#8220;http://aaronlerch.com/blog/tags/WCF.json&#8221; should return JSON, and &#8220;http://aaronlerch.com/blog/tags/WCF.xml&#8221; should return XML.&nbsp; Simple as that.&nbsp; <a href="http://twitter.com/">Twitter&#8217;s</a> <a href="http://twitter.com/help/api">API</a> does this, as I&#8217;m sure many others do, and I really like it.&nbsp; It fits with the URI paradigm of readability and just makes logical sense.&nbsp; I could only find <a href="http://www.alexthissen.nl/blogs/main/archive/2007/07/10/orcas-web-programming.aspx">one post</a> out there that even hints at this ability (emphasis mine):</p>
<div style="border-right: #cccccc 1pt solid; padding-right: 1pt; border-top: #cccccc 1pt solid; padding-left: 1pt; font-size: 10pt; background: #f5f5f5; padding-bottom: 1pt; border-left: #cccccc 1pt solid; width: 100%; color: black; padding-top: 1pt; border-bottom: #cccccc 1pt solid; font-family: consolas">
<p style="margin: 0px">&nbsp; [<span style="color: #2b91af">ServiceContract</span>]<br />&nbsp; <span style="color: blue">public</span> <span style="color: blue">interface</span> <span style="color: #2b91af">IGameStatistics<br /></span>&nbsp; {<br />&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">OperationContract</span>]<br />&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">WebGet</span>(UriTemplate = <span style="color: #a31515">"Rankings/{player}"</span>)]<br />&nbsp;&nbsp;&nbsp; <span style="color: #2b91af">SyndicationFeedFormatter</span>&lt;<span style="color: #2b91af">SyndicationFeed</span>&gt; GetPlayerStats(<span style="color: blue">string</span> player);</p>
<p>&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">OperationContract</span>]<br />&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">WebGet</span>(<strong>ResponseFormat = <span style="color: #2b91af">WebMessageFormat</span>.Json</strong>,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UriTemplate = <span style="color: #a31515">"PlayerSearch?GameType={gameType}&amp;SortAscending={ascending}"</span>)]<br />&nbsp;&nbsp;&nbsp; <span style="color: #2b91af">Player</span>[] Search(<span style="color: blue">int</span> gameType, <span style="color: blue">bool</span> ascending);<br />&nbsp; }</p>
</div>
<p>I&#8217;m fairly certain this functionality will be in the final shipping bits, if not the next CTP/Beta, but I wanted to voice my opinion just in case.</p>
<p>Secondly, along similar lines to #1, I want&nbsp;to be able to specify an XSLT transform that gets applied to the POX response from a service operation.&nbsp; I&#8217;d even be satisfied with extensibility points added to the plumbing code that exists to support the WebGet/WebInvoke attributes.&nbsp; But best case scenario I&#8217;d like to be able to write something like this:</p>
<div style="border-right: #cccccc 1pt solid; padding-right: 1pt; border-top: #cccccc 1pt solid; padding-left: 1pt; font-size: 10pt; background: #f5f5f5; padding-bottom: 1pt; border-left: #cccccc 1pt solid; width: 100%; color: black; padding-top: 1pt; border-bottom: #cccccc 1pt solid; font-family: consolas">
<p style="margin: 0px">&nbsp; [<span style="color: #2b91af">ServiceContract</span>]<br />&nbsp; <span style="color: blue">public</span> <span style="color: blue">interface</span> <span style="color: #2b91af">IBlogService<br /></span>&nbsp; {<br />&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">OperationContract</span>]<br />&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">WebGet</span>(ResponseFormat = <span style="color: #2b91af">WebMessageFormat</span>.Xml, XsltResource = <span style="color: #a31515">"blogtag.xslt"</span>, UriTemplate = <span style="color: #a31515">"tags/{tag}"</span>)]<br />&nbsp;&nbsp;&nbsp; <span style="color: #2b91af">BlogEntry</span>[] GetTaggedBlogEntries(<span style="color: blue">string</span> tag);</p>
<p>&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">OperationContract</span>]<br />&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">WebGet</span>(ResponseFormat = <span style="color: #2b91af">WebMessageFormat</span>.Json, UriTemplate = <span style="color: #a31515">"tags/{tag}.json"</span>)]<br />&nbsp;&nbsp;&nbsp; <span style="color: #2b91af">BlogEntry</span>[] GetTaggedBlogEntriesAsJson(<span style="color: blue">string</span> tag);</p>
<p>&nbsp;&nbsp;&nbsp; etc&#8230;<br />&nbsp; }</p>
</div>
<p>I request this because implementing the same type of friendly URI usage in ASP.NET requires all sorts of fun URL rewriting.&nbsp; That, and my web service would need to be hosted elsewhere, or on another port, or in a different web, etc. Why not combine the two? If I can specify an XSLT transform (optionally) I can combine my HTML site with my XML service and leverage the work I&#8217;ve already done to achieve URI bliss.</p>
<p>This is actually something I think I could accomplish on my own with the tools and extension points currently available, and I I&#8217;m going to explore that. I hesitate to do too much work since in the next release it could all be for naught. (Okay, honestly I just hesitate to do too much work. Period. <img src='http://www.aaronlerch.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p>And hey, while I&#8217;m at it, why can&#8217;t I request one more thing? I&#8217;d like to&nbsp;tag the same service operation with multiple WebGet/WebInvoke attributes, using the parameters from the best match for the behavior that actually gets applied. That would sure simplify things:</p>
<div style="border-right: #cccccc 1pt solid; padding-right: 1pt; border-top: #cccccc 1pt solid; padding-left: 1pt; font-size: 10pt; background: #f5f5f5; padding-bottom: 1pt; border-left: #cccccc 1pt solid; width: 100%; color: black; padding-top: 1pt; border-bottom: #cccccc 1pt solid; font-family: consolas">
<p style="margin: 0px">&nbsp; [<span style="color: #2b91af">ServiceContract</span>]<br />&nbsp; <span style="color: blue">public</span> <span style="color: blue">interface</span> <span style="color: #2b91af">IBlogService<br /></span>&nbsp; {<br />&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">OperationContract</span>]<br />&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">WebGet</span>(ResponseFormat = <span style="color: #2b91af">WebMessageFormat</span>.Xml, XsltResource = <span style="color: #a31515">"blogtag.xslt"</span>, UriTemplate = <span style="color: #a31515">"tags/{tag}"</span>)]<br />&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">WebGet</span>(ResponseFormat = <span style="color: #2b91af">WebMessageFormat</span>.Json, UriTemplate = <span style="color: #a31515">"tags/{tag}.json"</span>)]<br />&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af">WebGet</span>(ResponseFormat = <span style="color: #2b91af">WebMessageFormat</span>.Xml, UriTemplate = <span style="color: #a31515">"tags/{tag}.xml"</span>)]<br />&nbsp;&nbsp;&nbsp; <span style="color: #2b91af">BlogEntry</span>[] GetTaggedBlogEntries(<span style="color: blue">string</span> tag);<br />&nbsp; }</p>
</div>
<p>And one more! How about using type converters to allow me to tag a service operation and specify an RSS response format, but automate the conversion from BlogEntry[] (for example) to the appropriate syndication feed.&nbsp; I haven&#8217;t done much at all with this, however, so I&#8217;m risking a comment of &#8220;um, you can do that already&#8221; or &#8220;um, that makes no sense&#8221;.</p>
<p>What do you think &#8211; are these requests value-added?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronlerch.com/blog/2007/07/16/a-humble-wcf-feature-request-or-four/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
