<?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>kennyw.com &#187; Indigo</title>
	<atom:link href="http://kennyw.com/indigo/feed" rel="self" type="application/rss+xml" />
	<link>http://kennyw.com</link>
	<description>Kenny Wolf's Thoughts of the Moment</description>
	<lastBuildDate>Fri, 05 Mar 2010 10:31:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>On Sabbatical</title>
		<link>http://kennyw.com/work/indigo/417</link>
		<comments>http://kennyw.com/work/indigo/417#comments</comments>
		<pubDate>Tue, 06 Oct 2009 06:39:46 +0000</pubDate>
		<dc:creator>Kenny</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Indigo]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://kennyw.com/work/indigo/417</guid>
		<description><![CDATA[I haven’t posted here for awhile as I’ve been preparing for, and then starting, my sabbatical. While I will occasionally cross post here, those interested in following along over the next year should tune into http://lawolf.net/.
]]></description>
			<content:encoded><![CDATA[<p>I haven’t posted here for awhile as I’ve been preparing for, and then starting, my sabbatical. While I will occasionally cross post here, those interested in following along over the next year should tune into <a href="http://lawolf.net/">http://lawolf.net/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://kennyw.com/work/indigo/417/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ramping back up on the technical blog posts</title>
		<link>http://kennyw.com/work/indigo/348</link>
		<comments>http://kennyw.com/work/indigo/348#comments</comments>
		<pubDate>Wed, 10 Jun 2009 16:41:00 +0000</pubDate>
		<dc:creator>Kenny</dc:creator>
				<category><![CDATA[Indigo]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://kennyw.com/indigo/348</guid>
		<description><![CDATA[I’ve been pretty quiet recently on the technical blog front, mostly because my work was in the dark depths of development. A few weeks ago, we released Beta 1 of Visual Studio 2010 which includes all of the technologies I’ve been working on for the past 3 years  
One of the big components included [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been pretty quiet recently on the technical blog front, mostly because my work was in the dark depths of development. A few weeks ago, we released <a href="http://blogs.msdn.com/endpoint/archive/2009/05/20/vs-2010-and-net-framework-4-0-beta1-available-for-download.aspx">Beta 1 of Visual Studio 2010</a> which includes all of the technologies I’ve been working on for the past 3 years <img src='http://kennyw.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>One of the big components included in .Net 4.0 Beta1 is the WF4 framework that <a href="http://kennyw.com/indigo/318">I unveiled at PDC</a>. The team is blogging <a href="http://blogs.msdn.com/endpoint/default.aspx">here</a>, and I’ll be including ongoing tidbits for WF and WCF to help smooth out speed bumps encountered by our customers.</p>
]]></content:encoded>
			<wfw:commentRss>http://kennyw.com/work/indigo/348/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The &#8220;WCF Champ&#8221;</title>
		<link>http://kennyw.com/work/indigo/342</link>
		<comments>http://kennyw.com/work/indigo/342#comments</comments>
		<pubDate>Fri, 03 Apr 2009 15:52:23 +0000</pubDate>
		<dc:creator>Kenny</dc:creator>
				<category><![CDATA[Indigo]]></category>

		<guid isPermaLink="false">http://kennyw.com/indigo/342</guid>
		<description><![CDATA[For those of you who want to see what our marketing team has been up to  




More at www.microsoft.com/net/wcf/champ.
]]></description>
			<content:encoded><![CDATA[<p>For those of you who want to see what our marketing team has been up to <img src='http://kennyw.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:9c700d66-eb72-4141-a558-c60bbe78d396" class="wlWriterEditableSmartContent">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/ZXQtZsC0JZ4&amp;hl=en"></param><embed src="http://www.youtube.com/v/ZXQtZsC0JZ4&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p>More at <a href="http://www.microsoft.com/net/wcf/champ">www.microsoft.com/net/wcf/champ</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://kennyw.com/work/indigo/342/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dr. Nick on Message Framing</title>
		<link>http://kennyw.com/work/indigo/340</link>
		<comments>http://kennyw.com/work/indigo/340#comments</comments>
		<pubDate>Tue, 03 Feb 2009 02:53:34 +0000</pubDate>
		<dc:creator>Kenny</dc:creator>
				<category><![CDATA[Indigo]]></category>

		<guid isPermaLink="false">http://kennyw.com/indigo/340</guid>
		<description><![CDATA[Nicholas explains the protocol we use for messaging over TCP (net.tcp) and Windows Named Pipes (net.pipe) in a nice series of blog posts:

Introduction
Framing Protocol Overview
Preamble Records
Encoding Records
Upgrade Negotiations (security, compression, etc)
Message Data

#3-5 are the details behind the &#34;handshake&#34; I alluded to here.
]]></description>
			<content:encoded><![CDATA[<p>Nicholas explains the protocol we use for messaging over TCP (net.tcp) and Windows Named Pipes (net.pipe) in a nice series of blog posts:</p>
<ol>
<li><a href="http://blogs.msdn.com/drnick/archive/2009/01/16/next-week-a-series.aspx">Introduction</a></li>
<li><a href="http://blogs.msdn.com/drnick/archive/2009/01/19/message-framing-part-1.aspx">Framing Protocol Overview</a></li>
<li><a href="http://blogs.msdn.com/drnick/archive/2009/01/21/message-framing-part-2.aspx">Preamble Records</a></li>
<li><a href="http://blogs.msdn.com/drnick/archive/2009/01/22/message-framing-part-3.aspx">Encoding Records</a></li>
<li><a href="http://blogs.msdn.com/drnick/archive/2009/01/26/message-framing-part-4.aspx">Upgrade Negotiations (security, compression, etc)</a></li>
<li><a href="http://blogs.msdn.com/drnick/archive/2009/01/28/message-framing-part-5.aspx">Message Data</a></li>
</ol>
<p>#3-5 are the details behind the &quot;handshake&quot; I alluded to <a href="http://kennyw.com/indigo/140">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://kennyw.com/work/indigo/340/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing custom languages</title>
		<link>http://kennyw.com/work/indigo/320</link>
		<comments>http://kennyw.com/work/indigo/320#comments</comments>
		<pubDate>Thu, 30 Oct 2008 19:16:02 +0000</pubDate>
		<dc:creator>Kenny</dc:creator>
				<category><![CDATA[Indigo]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://kennyw.com/indigo/320</guid>
		<description><![CDATA[I&#8217;m sitting in one of the coolest talks at PDC. ChrisAn &#38; GioDL are showing how you can use the nascent &#34;Oslo&#34; language technologies to write your own textual language. MGrammar has been described as yacc on crack. 
You should check it out (probably starting tomorrow) at: http://channel9.msdn.com/pdc2008/TL31/
UPDATE: You can download the SDK here and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sitting in one of the coolest talks at PDC. ChrisAn &amp; GioDL are showing how you can use the nascent &quot;Oslo&quot; language technologies to write your own textual language. MGrammar has been described as <a href="http://en.wikipedia.org/wiki/Yacc">yacc</a> on crack. </p>
<p>You should check it out (probably starting tomorrow) at: <a title="http://channel9.msdn.com/pdc2008/TL31/" href="http://channel9.msdn.com/pdc2008/TL31/">http://channel9.msdn.com/pdc2008/TL31/</a></p>
<p><strong>UPDATE</strong>: You can download the SDK <a href="http://msdn.microsoft.com/oslo">here</a> and start playing with writing your own custom language. Fun stuff!</p>
]]></content:encoded>
			<wfw:commentRss>http://kennyw.com/work/indigo/320/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WF 4.0: A First Look</title>
		<link>http://kennyw.com/work/indigo/318</link>
		<comments>http://kennyw.com/work/indigo/318#comments</comments>
		<pubDate>Wed, 29 Oct 2008 17:48:22 +0000</pubDate>
		<dc:creator>Kenny</dc:creator>
				<category><![CDATA[Indigo]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://kennyw.com/indigo/318</guid>
		<description><![CDATA[On Monday afternoon I unveiled WF 4.0 at PDC 2008. With this public disclosure you will start seeing a lot more details of the WF system here.
For those of you that were able to attend my session in person, please fill out the evaluation form (we&#8217;re currently at about 5% participation).
For those that couldn&#8217;t join [...]]]></description>
			<content:encoded><![CDATA[<p>On Monday afternoon I unveiled WF 4.0 at <a href="http://www.microsoftpdc.com/">PDC 2008</a>. With this public disclosure you will start seeing a lot more details of the WF system here.</p>
<p>For those of you that were able to attend my session in person, please fill out the <a href="https://sessions.microsoftpdc.com/ws/evalredir.aspx?sessionid=64ae4c30-eb37-4fe2-93c4-639e0e5879b8">evaluation form</a> (we&#8217;re currently at about 5% participation).</p>
<p>For those that couldn&#8217;t join me in person, the session was videotaped and is available at <a title="http://channel9.msdn.com/pdc2008/TL17/" href="http://channel9.msdn.com/pdc2008/TL17/">http://channel9.msdn.com/pdc2008/TL17/</a>. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://kennyw.com/work/indigo/318/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interested in Performance?</title>
		<link>http://kennyw.com/work/indigo/306</link>
		<comments>http://kennyw.com/work/indigo/306#comments</comments>
		<pubDate>Mon, 06 Oct 2008 15:46:37 +0000</pubDate>
		<dc:creator>Kenny</dc:creator>
				<category><![CDATA[Indigo]]></category>

		<guid isPermaLink="false">http://kennyw.com/indigo/306</guid>
		<description><![CDATA[Distributed applications are tricky. The internet is a fickle beast that will lost data at will and run counter to many intuitions. Getting distributed applications to run smoothly and performant at scale is particularly difficult.&#160; There isn&#8217;t a single &#34;go fast&#34; silver bullet, rather it&#8217;s more of an art. At PDC this year you&#8217;ll have [...]]]></description>
			<content:encoded><![CDATA[<p>Distributed applications are tricky. The internet is a fickle beast that will lost data at will and run counter to many intuitions. Getting distributed applications to run smoothly and performant at scale is particularly difficult.&#160; There isn&#8217;t a single &quot;go fast&quot; silver bullet, rather it&#8217;s more of an art. At PDC this year you&#8217;ll have a great opportunity to learn about the <a href="http://blogs.msdn.com/drnick/archive/2008/10/02/zen-of-wcf-performance-and-scale.aspx">Zen of WCF Performance and Scale</a> at <a href="http://blogs.msdn.com/drnick/">Nicholas Allen</a>&#8217;s lunch session. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://kennyw.com/work/indigo/306/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WCF talks at PDC</title>
		<link>http://kennyw.com/work/indigo/305</link>
		<comments>http://kennyw.com/work/indigo/305#comments</comments>
		<pubDate>Fri, 03 Oct 2008 15:56:51 +0000</pubDate>
		<dc:creator>Kenny</dc:creator>
				<category><![CDATA[Indigo]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://kennyw.com/indigo/305</guid>
		<description><![CDATA[Matt posted a great description of the WCF (and WF) talks we&#8217;re giving at PDC. 
In particular there are two sessions that I&#8217;d like to call out.
The first is Ed Pinto&#8217;s session, where you&#8217;ll find out about the significant investments we&#8217;ve made to improve the WCF authoring experience:
WCF 4.0: Building WCF Services with WF in [...]]]></description>
			<content:encoded><![CDATA[<p>Matt posted a great <a href="http://feeds.feedburner.com/~r/wfguy/~3/409736924/which-wf-wcf-talks-should-you-attend-at-pdc.aspx">description of the WCF (and WF)</a> talks we&#8217;re giving at PDC. </p>
<p>In particular there are two sessions that I&#8217;d like to call out.</p>
<p>The first is Ed Pinto&#8217;s session, where you&#8217;ll find out about the significant investments we&#8217;ve made to improve the WCF authoring experience:</p>
<blockquote><p><strong>WCF 4.0: Building WCF Services with WF in Microsoft .NET 4.0.</strong></p>
<p>Eliminate the tradeoff between ease of service authoring and performant, scalable services. Hear about significant enhancements in Windows Communication Foundation (WCF) 4.0 and Windows Workflow Foundation (WF) 4.0 to deal with the ever increasing complexity of communication. Learn how to use WCF to correlate messages to service instances using transport, context, and application payloads. See how the new WF messaging activities enable the modeling of rich protocols. Learn how WCF provides a default host for workflows exposing features such as distributed compensation and discovery. See how service definition in XAML completes the union of WF and WCF with a unified authoring experience that simplifies configuration and is fully integrated with IIS activation and deployment.</p>
</blockquote>
<p>Once you&#8217;ve built your services, you will need to deploy, host, and manage them.&#160; Windows Server &quot;Dublin&quot; handles this complexity, and Dan Eshner will unveil the details here:</p>
<blockquote><p><strong>Hosting Workflows and Services</strong></p>
<p>Hear about extensions being made to Windows Server to provide a feature-rich middle-tier execution and deployment environment for Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF) applications. Learn about the architecture of this new extension, how it works, how to take advantage of it, and the features it provides that simplify deployment, management, and troubleshooting of workflows and services.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kennyw.com/work/indigo/305/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDC 2008</title>
		<link>http://kennyw.com/work/indigo/293</link>
		<comments>http://kennyw.com/work/indigo/293#comments</comments>
		<pubDate>Mon, 15 Sep 2008 22:41:47 +0000</pubDate>
		<dc:creator>Kenny</dc:creator>
				<category><![CDATA[Indigo]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://kennyw.com/indigo/293</guid>
		<description><![CDATA[I&#8217;ve gone dark on the technical side of this blog for two main reasons:

Most of what I&#8217;m working on hasn&#8217;t been publicly disclosed
I&#8217;m prepping for PDC 2008 where I can finally discuss the past 2 years of my life without an NDA  

If you want to see the latest and greatest Microsoft technologies that [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve gone dark on the technical side of this blog for two main reasons:</p>
<ol>
<li>Most of what I&#8217;m working on hasn&#8217;t been publicly disclosed</li>
<li>I&#8217;m prepping for <a href="http://www.microsoftpdc.com/">PDC 2008</a> where I can finally discuss the past 2 years of my life without an NDA <img src='http://kennyw.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
<p>If you want to see the latest and greatest Microsoft technologies that we&#8217;ve been cooking up, <a href="http://www.microsoftpdc.com/Registration/">register now</a>, and then mark your schedule for my talk:</p>
<blockquote><p><strong>Windows Workflow Foundation 4.0: A First Look</strong></p>
<p>Programs coordinate work. The code for coordination and state management often obscures a program&#8217;s purpose. Learn how programming with Windows Workflow Foundation (WF) 4.0 provides clarity of intent while preserving the functional richness of the .NET framework. See how easy it is to build workflows with the new Visual Studio workflow designer. Learn about text-based authoring options for WF. Hear how WF integrates well with other Microsoft technologies (WCF, WPF, ASP.NET). If you&#8217;ve looked at WF before, come and see the changes to data flow, composition, and new control flow styles. Significant improvements to usability, composability, and performance make Workflow a great fit for a broad range of solutions on both the client and the server.</p>
</blockquote>
<p>Other great (and related) talks include <a href="http://douglaspurdy.com/2008/09/06/what-is-oslo/">Doug Purdy</a>&#8217;s Lap Around Oslo, <a href="http://blogs.msdn.com/mwinkle/">Matt</a>&#8217;s Building WF Activities session, and <a href="http://blogs.msdn.com/edpinto/">Ed</a>&#8217;s chocolate &amp; peanut butter talk on WCF+WF.</p>
<p>41 days and counting&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://kennyw.com/work/indigo/293/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Asynchronicity, OneWay, and WCF</title>
		<link>http://kennyw.com/work/indigo/286</link>
		<comments>http://kennyw.com/work/indigo/286#comments</comments>
		<pubDate>Thu, 07 Aug 2008 01:06:55 +0000</pubDate>
		<dc:creator>Kenny</dc:creator>
				<category><![CDATA[Indigo]]></category>

		<guid isPermaLink="false">http://kennyw.com/indigo/286</guid>
		<description><![CDATA[I&#8217;ve recently encountered some confusion around the behavior of one-way operations in WCF that I&#8217;m going to try and clear up.&#160; In particular, developers are under the impression that a one-way operation == a non-blocking call. However, this is not necessarily the case. A one-way operation means that we will call the underlying channel in [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently encountered some confusion around the <a href="http://kennyw.com/indigo/130">behavior of one-way operations in WCF</a> that I&#8217;m going to try and clear up.&#160; In particular, developers are under the impression that a <em>one-way operation </em>== a <em>non-blocking call</em>. However, this is not necessarily the case. A one-way operation means that we will call the underlying channel in a &quot;one-way manner&quot;.&#160; For IOutputChannel/IDuplexChannel, this maps to channel.Send(). For IRequestChannel this maps to <a href="http://kennyw.com/indigo/119">channel.SendRequest() followed by a check for a null response</a>.</p>
<p>Now, sometimes the underlying channel can complete immediately (UDP will drop the packet if the network is saturated, TCP may copy bytes into a kernel buffer if there&#8217;s room, etc). However, depending on the amount of data transmitted and the number of simultaneous calls to a proxy, you will often see blocking behavior. HTTP, TCP, and Pipes all have throttling built into their network protocols.</p>
<p>If this isn&#8217;t desirable, there are a few alternatives depending on your application design. First off, if you want a truly non-blocking call, you should call channel.BeginSend/client.BeginXXXX (i.e. generate an async proxy). This is step one if you want non-blocking calls. With an asynchronous proxy, we will <strong>always</strong> be non-blocking from a thread perspective (which is always my recommendation for middle tier solutions, though there&#8217;s some quota coordination necessary to avoid flooding outgoing sockets). </p>
<p>For one-way operations, when your async callback is signaled it means that the channel stack has &quot;successfully put the message on the wire&quot;. When this happens depends on your channel stack:</p>
<ul>
<li>TCP signals when the <em>socket.[Begin]Send() </em>of the serialized message has completed (either because it&#8217;s been buffered by the kernel or put onto the NIC)</li>
<li>Pipes are a similar process (NT Named Pipes work similarly to TCP under the covers but without the packet loss)</li>
<li>MSMQ signals when the Message has been transferred successfully to the queue manager</li>
<li>HTTP signals when we&#8217;ve received an empty response. The only other alternative would be to remove all guarantees (and have to arbitrarily propagate the exception through some other call or thread). Trust me, this is better</li>
<li>UDP will complete when the UDP socket send completes (which is effectively instantaneous)</li>
</ul>
<p>For two-way operations, when your async callback is signaled it means that the channel stack has &quot;successfully put the message on the wire and then received a correlated response&quot;.</p>
<p>Asynchronous operations can be tricky, and can often get you into flooding trouble when used incorrectly. So be careful, use quotas to manage your flow control, and always remember that the internet is not a big truck; it is a series of tubes and sometimes they get clogged. And you shouldn&#8217;t try to fight the clogs by pouring more data down the tubes <img src='http://kennyw.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://kennyw.com/work/indigo/286/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
