<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: WCF Everywhere? Not on my watch.</title>
	<atom:link href="http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/</link>
	<description>Enterprise Development Expert &#38; SOA Specialist</description>
	<lastBuildDate>Sun, 14 Mar 2010 06:27:00 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-37030</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 13 Feb 2010 11:49:46 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-37030</guid>
		<description>Barry,

Nice straw man - but it doesn&#039;t fly.
Neither do oranges and orangutans.

.NET fully replaced all of COM and C++ as a developer API. 
WCF does not do that with .NET.</description>
		<content:encoded><![CDATA[<p>Barry,</p>
<p>Nice straw man &#8211; but it doesn&#8217;t fly.<br />
Neither do oranges and orangutans.</p>
<p>.NET fully replaced all of COM and C++ as a developer API.<br />
WCF does not do that with .NET.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barry</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-37028</link>
		<dc:creator>Barry</dc:creator>
		<pubDate>Thu, 11 Feb 2010 12:25:57 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-37028</guid>
		<description>Hi Udi,

Don&#039;t you see parallels if you take your own argument and replace &#039;WCF&#039; with C and &#039;.NET&#039; with assembler? 
Or &#039;WCF&#039; with C++/object orientation and &#039;.NET&#039; with C?
Or &#039;WCF&#039; with COM and &#039;.NET&#039; with C++?
Or &#039;WCF&#039; with .NET and &#039;.NET&#039; with COM?
We know how those arguments turned out!</description>
		<content:encoded><![CDATA[<p>Hi Udi,</p>
<p>Don&#8217;t you see parallels if you take your own argument and replace &#8216;WCF&#8217; with C and &#8216;.NET&#8217; with assembler?<br />
Or &#8216;WCF&#8217; with C++/object orientation and &#8216;.NET&#8217; with C?<br />
Or &#8216;WCF&#8217; with COM and &#8216;.NET&#8217; with C++?<br />
Or &#8216;WCF&#8217; with .NET and &#8216;.NET&#8217; with COM?<br />
We know how those arguments turned out!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-36161</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 05 Jun 2009 08:56:43 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-36161</guid>
		<description>Outreal,

First of all, I thank you for speaking up on this matter which impacts many developers and architects. I appreciate your position and would like to continue the conversation...

  &quot;Don’t give up on WCF yet, it’s going to be around in one name or another for a while!!&quot;

COBOL&#039;s still around too :-)

  &quot;to get the real benefits of WCF you really need to change how you architect your application&quot;

If you are suggesting that the architectural practice of finding the appropriate solution to the specific problem domain is made irrelevant by any technology - well, I&#039;m afraid I strongly disagree.

  &quot;WCF was designed to provide solutions to all those typical problems&quot;

Actually, I believe that WCF was created to replace ASMX web services, remoting, and enterprise services (aka COM+) - giving a single technological stack.

Looking forward to hearing your reply,

Udi</description>
		<content:encoded><![CDATA[<p>Outreal,</p>
<p>First of all, I thank you for speaking up on this matter which impacts many developers and architects. I appreciate your position and would like to continue the conversation&#8230;</p>
<p>  &#8220;Don’t give up on WCF yet, it’s going to be around in one name or another for a while!!&#8221;</p>
<p>COBOL&#8217;s still around too <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>  &#8220;to get the real benefits of WCF you really need to change how you architect your application&#8221;</p>
<p>If you are suggesting that the architectural practice of finding the appropriate solution to the specific problem domain is made irrelevant by any technology &#8211; well, I&#8217;m afraid I strongly disagree.</p>
<p>  &#8220;WCF was designed to provide solutions to all those typical problems&#8221;</p>
<p>Actually, I believe that WCF was created to replace ASMX web services, remoting, and enterprise services (aka COM+) &#8211; giving a single technological stack.</p>
<p>Looking forward to hearing your reply,</p>
<p>Udi</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Outreal</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-36160</link>
		<dc:creator>Outreal</dc:creator>
		<pubDate>Thu, 04 Jun 2009 23:21:44 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-36160</guid>
		<description>Udidahan,

there&#039;s nothing in that article that presents a problem.  As Juval says and as WCF does, it solves the deadlock and any other concurrency issues you will get when not using WCF.

WCF was designed to provide solutions to all those typical problems developers run into when they start using multiple threads and  windows forms.  It&#039;s not just about making calls to a remote client anymore.  This is something else Juval clearly points out in his presentation.  And that&#039;s why he suggests it is &quot;a better .Net&quot;.

I&#039;ve never had any deadlock or concurrency issues since using the iDesign techniques.  Most of the problems were resolved without having to actually write any code, just the fact that .Net knows WCF is being used takes care of synchronization automatically for you.

If you find your still having trouble with forms, threads and synchronization is probably an application design issue that needs to be resolved rather than a WCF issue.  Juvals 2nd edition of his Programming WCF book goes a lot further into answering these very same issues (as I&#039;m pretty sure iDesign were flooded with emails about them!).

As I said in my previous post, to get the real benefits of WCF you really need to change how you architect your application.  It just doesn&#039;t work when you try to get WCF to do things how you &quot;used&quot; to do it. You need to embrace new technologies and use them how they were intended to be used.  

I&#039;m still amazed at how may developers are developing .Net applications that require transactions, concurrency control, synchronization and multiple threading, and yet they haven&#039;t considered using WCF!

I&#039;m also still amazed that Microsoft hasn&#039;t spent more time educating the developer community on how to use their tools effectively.  There are so many anti-Microsoft technology blogs, and only a few championing them.  And yet the few championing them don&#039;t have the same issues as the anti-Microsoft brigade :)

Without going to far off-topic, I think this is Microsofts biggest problem.  They need to reach the masses rather than focus on the few when it comes to these kind of debates.

Don&#039;t give up on WCF yet, it&#039;s going to be around in one name or another for a while!!</description>
		<content:encoded><![CDATA[<p>Udidahan,</p>
<p>there&#8217;s nothing in that article that presents a problem.  As Juval says and as WCF does, it solves the deadlock and any other concurrency issues you will get when not using WCF.</p>
<p>WCF was designed to provide solutions to all those typical problems developers run into when they start using multiple threads and  windows forms.  It&#8217;s not just about making calls to a remote client anymore.  This is something else Juval clearly points out in his presentation.  And that&#8217;s why he suggests it is &#8220;a better .Net&#8221;.</p>
<p>I&#8217;ve never had any deadlock or concurrency issues since using the iDesign techniques.  Most of the problems were resolved without having to actually write any code, just the fact that .Net knows WCF is being used takes care of synchronization automatically for you.</p>
<p>If you find your still having trouble with forms, threads and synchronization is probably an application design issue that needs to be resolved rather than a WCF issue.  Juvals 2nd edition of his Programming WCF book goes a lot further into answering these very same issues (as I&#8217;m pretty sure iDesign were flooded with emails about them!).</p>
<p>As I said in my previous post, to get the real benefits of WCF you really need to change how you architect your application.  It just doesn&#8217;t work when you try to get WCF to do things how you &#8220;used&#8221; to do it. You need to embrace new technologies and use them how they were intended to be used.  </p>
<p>I&#8217;m still amazed at how may developers are developing .Net applications that require transactions, concurrency control, synchronization and multiple threading, and yet they haven&#8217;t considered using WCF!</p>
<p>I&#8217;m also still amazed that Microsoft hasn&#8217;t spent more time educating the developer community on how to use their tools effectively.  There are so many anti-Microsoft technology blogs, and only a few championing them.  And yet the few championing them don&#8217;t have the same issues as the anti-Microsoft brigade <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Without going to far off-topic, I think this is Microsofts biggest problem.  They need to reach the masses rather than focus on the few when it comes to these kind of debates.</p>
<p>Don&#8217;t give up on WCF yet, it&#8217;s going to be around in one name or another for a while!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Living in the Tech Avalanche Generation &#187; Every Class a Class - Not JABOWS.</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-26782</link>
		<dc:creator>Living in the Tech Avalanche Generation &#187; Every Class a Class - Not JABOWS.</dc:creator>
		<pubDate>Thu, 10 Jul 2008 00:15:36 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-26782</guid>
		<description>[...] pointed out a while back that this approach gave cause for concern with regards to performance. If I make every [...]</description>
		<content:encoded><![CDATA[<p>[...] pointed out a while back that this approach gave cause for concern with regards to performance. If I make every [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-22978</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Mon, 26 May 2008 20:04:05 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-22978</guid>
		<description>Outreal,

I suggest you read Juval&#039;s article on the myriad of ways you can deadlock yourself when following that guidance. I&#039;ve linked to it here:

udidahan.weblogs.us/2008/04/11/wcf-smart-clients-and-deadlocks/

Lest we not forget, in the pursuit of our own productivity, that our users&#039; productivity comes first.</description>
		<content:encoded><![CDATA[<p>Outreal,</p>
<p>I suggest you read Juval&#8217;s article on the myriad of ways you can deadlock yourself when following that guidance. I&#8217;ve linked to it here:</p>
<p>udidahan.weblogs.us/2008/04/11/wcf-smart-clients-and-deadlocks/</p>
<p>Lest we not forget, in the pursuit of our own productivity, that our users&#8217; productivity comes first.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Outreal</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-22900</link>
		<dc:creator>Outreal</dc:creator>
		<pubDate>Sun, 25 May 2008 21:55:35 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-22900</guid>
		<description>This is a great debate, and one that I&#039;ve been searching for answers for over the last few years.  I took Juvals WCF Master Class back in 2006, where I was introduced to the concept of every class as a service.  

As everyone else that hears this for the first time does, I raised my hand and asked him to explain that again.  Juval touches upon this again in his Architects Master Class when he talks about run-time processes allocation.  This time I had two years of testing this theory behind me so I completely understand the benefits of what he is talking out.   
 
The key to understanding the benefits is to understand the context that his statements are placed.  And don’t forget that the context isn’t always a distributed system using Big SOA and Little SOA...sometime it’s a desktop application using “Mini” SOA, making use of WCF services hosted in-proc and still reaping the rewards of layers, boundaries, isolation that SOA gives you.   

GadiM, you correctly highlighted three of the most important elements to the context in points 2, 4 and 5.  Points 4 and 5 are clearly something in the (near and definite) future, whereas point 2 is something you can benefit from today.  
 
Yes, it requires a change in how you would usually design or architect your application, but then so does introducing a new design pattern (How much work is involved in implementing MVC??!!).  A little bit of extra work goes a long way, especially when you have to consider fault isolation, security isolation, time-line isolation, transactions, throughput, responsiveness (more services doing small steps), and not forgetting consistency...in WCF you get all of that in a single programming model, straight out of the box.  

As a programmer, I don&#039;t relish the thought of having to do any of that in my code, I would rather it was taken care of for me (and by people that are experts in security, transactions and threading).  Whether you use the Microsoft Enterprise Library, WCF or write your own libraries. It all still needs to be done, so why not mitigate any implementation issues by using what you get for free in WCF.  

&quot;Trading performance for productivity&quot; is always a benefit...unless you&#039;re writing 3D computer game graphic code ;o)</description>
		<content:encoded><![CDATA[<p>This is a great debate, and one that I&#8217;ve been searching for answers for over the last few years.  I took Juvals WCF Master Class back in 2006, where I was introduced to the concept of every class as a service.  </p>
<p>As everyone else that hears this for the first time does, I raised my hand and asked him to explain that again.  Juval touches upon this again in his Architects Master Class when he talks about run-time processes allocation.  This time I had two years of testing this theory behind me so I completely understand the benefits of what he is talking out.   </p>
<p>The key to understanding the benefits is to understand the context that his statements are placed.  And don’t forget that the context isn’t always a distributed system using Big SOA and Little SOA&#8230;sometime it’s a desktop application using “Mini” SOA, making use of WCF services hosted in-proc and still reaping the rewards of layers, boundaries, isolation that SOA gives you.   </p>
<p>GadiM, you correctly highlighted three of the most important elements to the context in points 2, 4 and 5.  Points 4 and 5 are clearly something in the (near and definite) future, whereas point 2 is something you can benefit from today.  </p>
<p>Yes, it requires a change in how you would usually design or architect your application, but then so does introducing a new design pattern (How much work is involved in implementing MVC??!!).  A little bit of extra work goes a long way, especially when you have to consider fault isolation, security isolation, time-line isolation, transactions, throughput, responsiveness (more services doing small steps), and not forgetting consistency&#8230;in WCF you get all of that in a single programming model, straight out of the box.  </p>
<p>As a programmer, I don&#8217;t relish the thought of having to do any of that in my code, I would rather it was taken care of for me (and by people that are experts in security, transactions and threading).  Whether you use the Microsoft Enterprise Library, WCF or write your own libraries. It all still needs to be done, so why not mitigate any implementation issues by using what you get for free in WCF.  </p>
<p>&#8220;Trading performance for productivity&#8221; is always a benefit&#8230;unless you&#8217;re writing 3D computer game graphic code ;o)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Juan Suero</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-15039</link>
		<dc:creator>Juan Suero</dc:creator>
		<pubDate>Tue, 22 Jan 2008 19:47:27 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-15039</guid>
		<description>Im still learning about SOA from you and other luminaries so i didnt mean to sound so .. whatever i sounded like.  Conceptually every object as a service doesnt work becuase as you say services are carved up by business capability.  SOA is a business methodolgy first that then helps I.T. carve up the enterprise into something more agile than the EAIs we have out there today.(?)  But a platform where every object or cog can be service enabled would be great.  Juval does make it sound like you can do this today.  Very matter-a-factly i might add.  But the visionaries that created the world as we know it today looked passed that which is possible.  Thanks for all the podcasts on SOA... i would like to recommend a book ... Understanding Enterprise SOA by Eric Pullier.  As well as SOA Security.  SOA Security for the reason that I have learned alot about SOA itself from thinking along with the author about its security.  I would also like to recommend people download the architectural document of the Neuron ESB.  Its a product from Neudesic.  In it there are discussions about the why and how of thier product but through this you can learn more about practical SOA.</description>
		<content:encoded><![CDATA[<p>Im still learning about SOA from you and other luminaries so i didnt mean to sound so .. whatever i sounded like.  Conceptually every object as a service doesnt work becuase as you say services are carved up by business capability.  SOA is a business methodolgy first that then helps I.T. carve up the enterprise into something more agile than the EAIs we have out there today.(?)  But a platform where every object or cog can be service enabled would be great.  Juval does make it sound like you can do this today.  Very matter-a-factly i might add.  But the visionaries that created the world as we know it today looked passed that which is possible.  Thanks for all the podcasts on SOA&#8230; i would like to recommend a book &#8230; Understanding Enterprise SOA by Eric Pullier.  As well as SOA Security.  SOA Security for the reason that I have learned alot about SOA itself from thinking along with the author about its security.  I would also like to recommend people download the architectural document of the Neuron ESB.  Its a product from Neudesic.  In it there are discussions about the why and how of thier product but through this you can learn more about practical SOA.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GadiM</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-14595</link>
		<dc:creator>GadiM</dc:creator>
		<pubDate>Thu, 17 Jan 2008 17:43:23 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-14595</guid>
		<description>I was in Juval’s lecture too and there are several points I would like to comment about your blog entry.

1. Juval never removed ANY attribute on any service. What he removed where implementation lines that were irrelevant to the points he was trying to make. 
2. Juval recommended that every cross-layer call is done on a service and not that every class is a service (the context is important).
3. Juval demoed 200 calls/sec using every feature WCF have, on his laptop (which is not a server), assuming your eye need 30 frames per second for normal view, it is enough for a watch (but probably not enough for device driver).
4. Juval did not say that you should actually use every class as a service today. He did say that it is where we are heading as an industry (again the time context is important).
5. Juval also said that if you have to speculate where would a platform replacing .NET look like, class as a service would be the direction, based on the historical tread of always trading performance for productivity. I am not under NDA so I can direct you to http://www.microsoft.com/soa/products/oslo.aspx to see if Juval was right.

Every one has the right to have its own opinion, and you don’t have to agree with Juval opinions, but you should at lease quote what he says and reflect what he did correctly before you disagree with him.</description>
		<content:encoded><![CDATA[<p>I was in Juval’s lecture too and there are several points I would like to comment about your blog entry.</p>
<p>1. Juval never removed ANY attribute on any service. What he removed where implementation lines that were irrelevant to the points he was trying to make.<br />
2. Juval recommended that every cross-layer call is done on a service and not that every class is a service (the context is important).<br />
3. Juval demoed 200 calls/sec using every feature WCF have, on his laptop (which is not a server), assuming your eye need 30 frames per second for normal view, it is enough for a watch (but probably not enough for device driver).<br />
4. Juval did not say that you should actually use every class as a service today. He did say that it is where we are heading as an industry (again the time context is important).<br />
5. Juval also said that if you have to speculate where would a platform replacing .NET look like, class as a service would be the direction, based on the historical tread of always trading performance for productivity. I am not under NDA so I can direct you to <a href="http://www.microsoft.com/soa/products/oslo.aspx" rel="nofollow">http://www.microsoft.com/soa/products/oslo.aspx</a> to see if Juval was right.</p>
<p>Every one has the right to have its own opinion, and you don’t have to agree with Juval opinions, but you should at lease quote what he says and reflect what he did correctly before you disagree with him.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cornerstones utvecklarblogg : WCF As The Next Object Runtime in .NET?</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13944</link>
		<dc:creator>Cornerstones utvecklarblogg : WCF As The Next Object Runtime in .NET?</dc:creator>
		<pubDate>Fri, 11 Jan 2008 18:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13944</guid>
		<description>[...] applications I&#039;ve come across (thus far). Apparently Juval Löwy is of the same opinion. Via UDI ( http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/ ) I found an ARCast with Juval and Ron Jacobs where Juval has the radical suggestion that WCF [...]</description>
		<content:encoded><![CDATA[<p>[...] applications I&#8217;ve come across (thus far). Apparently Juval Löwy is of the same opinion. Via UDI ( <a href="http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/" rel="nofollow">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/</a> ) I found an ARCast with Juval and Ron Jacobs where Juval has the radical suggestion that WCF [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrik Löwendahl</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13928</link>
		<dc:creator>Patrik Löwendahl</dc:creator>
		<pubDate>Fri, 11 Jan 2008 14:34:50 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13928</guid>
		<description>Pingback: http://www.lowendahl.net/showShout.aspx?id=180</description>
		<content:encoded><![CDATA[<p>Pingback: <a href="http://www.lowendahl.net/showShout.aspx?id=180" rel="nofollow">http://www.lowendahl.net/showShout.aspx?id=180</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adron</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13874</link>
		<dc:creator>Adron</dc:creator>
		<pubDate>Thu, 10 Jan 2008 23:38:55 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13874</guid>
		<description>I was on a project that started WCF development with this mentality early in the beta release.  We kept along with that mentality for some time until things finally started getting cleaned up.

I have to say following the SOA tenant that SOA Services should be business use inclusive, doesn&#039;t mean every single object needs to be WCF&#039;ed.  So I&#039;m agreeing with you Udi, WCF should be used more in a business case SOA type perspective instead of a WCF everywhere approach.

...been there, done that, not doing it again.</description>
		<content:encoded><![CDATA[<p>I was on a project that started WCF development with this mentality early in the beta release.  We kept along with that mentality for some time until things finally started getting cleaned up.</p>
<p>I have to say following the SOA tenant that SOA Services should be business use inclusive, doesn&#8217;t mean every single object needs to be WCF&#8217;ed.  So I&#8217;m agreeing with you Udi, WCF should be used more in a business case SOA type perspective instead of a WCF everywhere approach.</p>
<p>&#8230;been there, done that, not doing it again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13756</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Tue, 08 Jan 2008 22:00:59 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13756</guid>
		<description>Juan,

The way Juval speaks, he makes it sound like this is what you should be doing today.

Even if it is a vision, it seems to remind many of the distributed object fiascos around a decade ago. The main thing that Juval didn&#039;t get into was the architectural implications of working the way he describes. Flexibility is one desirable architectural property, but it&#039;s not the only one, and needs to be balanced against others.</description>
		<content:encoded><![CDATA[<p>Juan,</p>
<p>The way Juval speaks, he makes it sound like this is what you should be doing today.</p>
<p>Even if it is a vision, it seems to remind many of the distributed object fiascos around a decade ago. The main thing that Juval didn&#8217;t get into was the architectural implications of working the way he describes. Flexibility is one desirable architectural property, but it&#8217;s not the only one, and needs to be balanced against others.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Juan Suero</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13632</link>
		<dc:creator>Juan Suero</dc:creator>
		<pubDate>Mon, 07 Jan 2008 02:01:51 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13632</guid>
		<description>I think Juval is being sensational just to get people to think.
Think about the future perhaps?  There was a time some people argued that you would never need more than something K of memory.  There was a time when people thought webservices would never perform well enough for anything more than a demo.  If every class was automatically a WCF Service you&#039;d have enormous flexibility in carving that thing up into boundary explicit SOA by just flipping some switches or firing up Visual Studio 2030, drawing a circle around some subset of classes and dragging those things across your model of the cloud to some other server where they would run the minute you deployed your new application model.  What Juval is proposing is not a reality, its a vision.</description>
		<content:encoded><![CDATA[<p>I think Juval is being sensational just to get people to think.<br />
Think about the future perhaps?  There was a time some people argued that you would never need more than something K of memory.  There was a time when people thought webservices would never perform well enough for anything more than a demo.  If every class was automatically a WCF Service you&#8217;d have enormous flexibility in carving that thing up into boundary explicit SOA by just flipping some switches or firing up Visual Studio 2030, drawing a circle around some subset of classes and dragging those things across your model of the cloud to some other server where they would run the minute you deployed your new application model.  What Juval is proposing is not a reality, its a vision.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13460</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 04 Jan 2008 06:20:17 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13460</guid>
		<description>Colin - agreed.

Ollie - that one of the main concepets behind nServiceBus.

Oran:

&quot;most of the supposed benefits of in-process WCF can be better accomplished using dependency injection with decorators, or AOP&quot;

Totally agreed.</description>
		<content:encoded><![CDATA[<p>Colin &#8211; agreed.</p>
<p>Ollie &#8211; that one of the main concepets behind nServiceBus.</p>
<p>Oran:</p>
<p>&#8220;most of the supposed benefits of in-process WCF can be better accomplished using dependency injection with decorators, or AOP&#8221;</p>
<p>Totally agreed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Oran</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13443</link>
		<dc:creator>Oran</dc:creator>
		<pubDate>Thu, 03 Jan 2008 23:06:13 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13443</guid>
		<description>Conceptually, this is where Volta is heading.  Not everything is a service, but most things can declaratively opt in to being a service.

I thought I remembered hearing Don Box suggest taking WCF in a similar direction (in-process services in the small), but the best I can find is his comment here http://pluralsight.com/blogs/dbox/archive/2004/10/13/2762.aspx#2765

As far as in-process performance, the NullTransport for WCF is interesting while we wait for Microsoft to find the time to implement it properly:
http://www.codeproject.com/KB/WCF/NullTransportForWCF.aspx
Roman says it&#039;s about 2.5ms to 3ms faster than named pipes, I assume per call.  His in-process WCF-workflow integration scenario is also quite interesting.

My personal opinion is that most of the supposed benefits of in-process WCF can be better accomplished using dependency injection with decorators, or AOP.  You can do both of these with custom WCF programming, but it&#039;s a lot more work.  And since you can use existing DI and AOP tools to shim things into the service instances themselves, why bother getting WCF intimately involved?</description>
		<content:encoded><![CDATA[<p>Conceptually, this is where Volta is heading.  Not everything is a service, but most things can declaratively opt in to being a service.</p>
<p>I thought I remembered hearing Don Box suggest taking WCF in a similar direction (in-process services in the small), but the best I can find is his comment here <a href="http://pluralsight.com/blogs/dbox/archive/2004/10/13/2762.aspx#2765" rel="nofollow">http://pluralsight.com/blogs/dbox/archive/2004/10/13/2762.aspx#2765</a></p>
<p>As far as in-process performance, the NullTransport for WCF is interesting while we wait for Microsoft to find the time to implement it properly:<br />
<a href="http://www.codeproject.com/KB/WCF/NullTransportForWCF.aspx" rel="nofollow">http://www.codeproject.com/KB/WCF/NullTransportForWCF.aspx</a><br />
Roman says it&#8217;s about 2.5ms to 3ms faster than named pipes, I assume per call.  His in-process WCF-workflow integration scenario is also quite interesting.</p>
<p>My personal opinion is that most of the supposed benefits of in-process WCF can be better accomplished using dependency injection with decorators, or AOP.  You can do both of these with custom WCF programming, but it&#8217;s a lot more work.  And since you can use existing DI and AOP tools to shim things into the service instances themselves, why bother getting WCF intimately involved?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ollie Riches</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13381</link>
		<dc:creator>Ollie Riches</dc:creator>
		<pubDate>Wed, 02 Jan 2008 19:11:00 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13381</guid>
		<description>I definitely smell a silver bullet here...

People are aware of PI (Persistence Ignorance) why not go for CI - Communication Ignorance) as well. I don&#039;t like the idea of attributing my domain model with a specific framework attributes.

Ollie</description>
		<content:encoded><![CDATA[<p>I definitely smell a silver bullet here&#8230;</p>
<p>People are aware of PI (Persistence Ignorance) why not go for CI &#8211; Communication Ignorance) as well. I don&#8217;t like the idea of attributing my domain model with a specific framework attributes.</p>
<p>Ollie</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Colin Jack</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13248</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Mon, 31 Dec 2007 08:53:13 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13248</guid>
		<description>You are also not going to need all the cpabilities that WCF gives you on every class, for example I don&#039;t really see me needing to use it in the domain.</description>
		<content:encoded><![CDATA[<p>You are also not going to need all the cpabilities that WCF gives you on every class, for example I don&#8217;t really see me needing to use it in the domain.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arnon Rotem-Gal-Oz</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13218</link>
		<dc:creator>Arnon Rotem-Gal-Oz</dc:creator>
		<pubDate>Sun, 30 Dec 2007 21:32:09 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13218</guid>
		<description>I wasn&#039;t at the presentation either - but you can hear Juval promote the same idea in one of the Arcasts http://channel9.msdn.com/ShowPost.aspx?PostID=347010

I think (hope) he just wants to make a provocative statement and doesn&#039;t  mean it in the literal sense 

Arnon</description>
		<content:encoded><![CDATA[<p>I wasn&#8217;t at the presentation either &#8211; but you can hear Juval promote the same idea in one of the Arcasts <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=347010" rel="nofollow">http://channel9.msdn.com/ShowPost.aspx?PostID=347010</a></p>
<p>I think (hope) he just wants to make a provocative statement and doesn&#8217;t  mean it in the literal sense </p>
<p>Arnon</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13215</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sun, 30 Dec 2007 19:43:37 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13215</guid>
		<description>Johan,

I haven&#039;t been able to get a copy of Juval&#039;s presentation, but if I do I&#039;ll post a link.

Like I said in the post, I have a hard time believing that this is what he advises his clients, so I too wonder about the intent of his message.</description>
		<content:encoded><![CDATA[<p>Johan,</p>
<p>I haven&#8217;t been able to get a copy of Juval&#8217;s presentation, but if I do I&#8217;ll post a link.</p>
<p>Like I said in the post, I have a hard time believing that this is what he advises his clients, so I too wonder about the intent of his message.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13213</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sun, 30 Dec 2007 19:42:01 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13213</guid>
		<description>Mark,

The thing is that Juval was suggesting to apply it in in-process calls between objects. I would say &quot;in-thread&quot; as well, but since that&#039;s not possible in WCF, you might just find yourself in multi-threaded hell. Of course WCF synchronizes all access to service code, but what about if you have something like a customer object that needs to be used by two WCF objects? Are you going to be copying it all the time between the threads? That seems like a step-function in terms of complexity.

Thanks for backing me up.</description>
		<content:encoded><![CDATA[<p>Mark,</p>
<p>The thing is that Juval was suggesting to apply it in in-process calls between objects. I would say &#8220;in-thread&#8221; as well, but since that&#8217;s not possible in WCF, you might just find yourself in multi-threaded hell. Of course WCF synchronizes all access to service code, but what about if you have something like a customer object that needs to be used by two WCF objects? Are you going to be copying it all the time between the threads? That seems like a step-function in terms of complexity.</p>
<p>Thanks for backing me up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johan</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13196</link>
		<dc:creator>Johan</dc:creator>
		<pubDate>Sun, 30 Dec 2007 11:16:52 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13196</guid>
		<description>I&#039;m doing lots of WCF, but WCF everywhere sounds weird. I would like to see Juval&#039;s presentation before I say anything more about this though. Is it available online mayhap? I have the deepest respect for Juval&#039;s skills as a developer and software architect, so it really makes me wonder what he means.</description>
		<content:encoded><![CDATA[<p>I&#8217;m doing lots of WCF, but WCF everywhere sounds weird. I would like to see Juval&#8217;s presentation before I say anything more about this though. Is it available online mayhap? I have the deepest respect for Juval&#8217;s skills as a developer and software architect, so it really makes me wonder what he means.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Seemann</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13192</link>
		<dc:creator>Mark Seemann</dc:creator>
		<pubDate>Sun, 30 Dec 2007 09:21:22 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13192</guid>
		<description>I haven&#039;t seen the original presentation, but if I understand this correctly, Juval recommends that all objects should be talking to each other via WCF.

I completely agree with you that this is going to kill performance. According to some experiments I did a few years back, even the fastest WCF call is approximately 100 times slower than an in-proc call (which is often so fast that you can&#039;t really measure it).

But wait: WCF anywhere? Doesn&#039;t that sound a lot like implementing an object hierarchy with DCOM, let alone .NET Remoting or CORBA? Then you&#039;d be able to distribute your objects according to some arbitrary boundary you draw at deployment time...

We&#039;ve already been there in the 90s, which led to Fowlers first law of distributed objects (&quot;Don&#039;t distribute your objects&quot;) as well as the first SOA tenet (&quot;Boundaries are explicit&quot;). It may be fine in theory, but doesn&#039;t work in practice.

So, I totally agree with you, Udi - I just wanted to provide some extra arguments against the &quot;WCF everywhere&quot; notion :)</description>
		<content:encoded><![CDATA[<p>I haven&#8217;t seen the original presentation, but if I understand this correctly, Juval recommends that all objects should be talking to each other via WCF.</p>
<p>I completely agree with you that this is going to kill performance. According to some experiments I did a few years back, even the fastest WCF call is approximately 100 times slower than an in-proc call (which is often so fast that you can&#8217;t really measure it).</p>
<p>But wait: WCF anywhere? Doesn&#8217;t that sound a lot like implementing an object hierarchy with DCOM, let alone .NET Remoting or CORBA? Then you&#8217;d be able to distribute your objects according to some arbitrary boundary you draw at deployment time&#8230;</p>
<p>We&#8217;ve already been there in the 90s, which led to Fowlers first law of distributed objects (&#8221;Don&#8217;t distribute your objects&#8221;) as well as the first SOA tenet (&#8221;Boundaries are explicit&#8221;). It may be fine in theory, but doesn&#8217;t work in practice.</p>
<p>So, I totally agree with you, Udi &#8211; I just wanted to provide some extra arguments against the &#8220;WCF everywhere&#8221; notion <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13187</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sun, 30 Dec 2007 06:54:38 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13187</guid>
		<description>Scott,

All calls going through WCF go through 32 steps which can be independently configured. All client code interacts with is a proxy.

You can guess what happens when each and every call is encrypted at the caller and decrypted at the receiver. 

The thing is that I&#039;m not even sure that 5ms is the worst-case scenario.</description>
		<content:encoded><![CDATA[<p>Scott,</p>
<p>All calls going through WCF go through 32 steps which can be independently configured. All client code interacts with is a proxy.</p>
<p>You can guess what happens when each and every call is encrypted at the caller and decrypted at the receiver. </p>
<p>The thing is that I&#8217;m not even sure that 5ms is the worst-case scenario.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Bellware</title>
		<link>http://www.udidahan.com/2007/12/29/wcf-everywhere-not-on-my-watch/comment-page-1/#comment-13172</link>
		<dc:creator>Scott Bellware</dc:creator>
		<pubDate>Sat, 29 Dec 2007 23:13:24 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#comment-13172</guid>
		<description>Udi,

Are the perf considerations here due to every method call being done as a message (a la Ruby) rather than an directly-addressed block of behavior?</description>
		<content:encoded><![CDATA[<p>Udi,</p>
<p>Are the perf considerations here due to every method call being done as a message (a la Ruby) rather than an directly-addressed block of behavior?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
