<?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: What Makes Smart Clients Safe?</title>
	<atom:link href="http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/</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/26/what-makes-smart-clients-safe/comment-page-1/#comment-36829</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 30 Oct 2009 20:39:43 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-36829</guid>
		<description>Jiho,

I haven&#039;t had the time - has it been almost 2 years since I wrote this?!</description>
		<content:encoded><![CDATA[<p>Jiho,</p>
<p>I haven&#8217;t had the time &#8211; has it been almost 2 years since I wrote this?!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jiho Han</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-36828</link>
		<dc:creator>Jiho Han</dc:creator>
		<pubDate>Fri, 30 Oct 2009 16:26:50 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-36828</guid>
		<description>Udi,

Have you had chances to write those &quot;next installment&quot; in the Smart Client series?
What about the software factory you mentioned?
I am very much interested!</description>
		<content:encoded><![CDATA[<p>Udi,</p>
<p>Have you had chances to write those &#8220;next installment&#8221; in the Smart Client series?<br />
What about the software factory you mentioned?<br />
I am very much interested!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WCF, Smart Clients, and Deadlocks</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-20144</link>
		<dc:creator>WCF, Smart Clients, and Deadlocks</dc:creator>
		<pubDate>Fri, 11 Apr 2008 09:16:17 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-20144</guid>
		<description>[...] What Makes Smart Clients Safe? [...]</description>
		<content:encoded><![CDATA[<p>[...] What Makes Smart Clients Safe? [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-13538</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sat, 05 Jan 2008 16:34:23 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-13538</guid>
		<description>Karl,

Glad you liked it.
The software factory is beginning to take shape.</description>
		<content:encoded><![CDATA[<p>Karl,</p>
<p>Glad you liked it.<br />
The software factory is beginning to take shape.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karl</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-13499</link>
		<dc:creator>Karl</dc:creator>
		<pubDate>Sat, 05 Jan 2008 00:02:05 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-13499</guid>
		<description>Once again a high quality post from udi.
looking forward to your smartclient software factory!

br,
karl</description>
		<content:encoded><![CDATA[<p>Once again a high quality post from udi.<br />
looking forward to your smartclient software factory!</p>
<p>br,<br />
karl</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lars Wilhelmsen</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-13321</link>
		<dc:creator>Lars Wilhelmsen</dc:creator>
		<pubDate>Tue, 01 Jan 2008 17:55:30 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-13321</guid>
		<description>Hi again,

 Yes, that seems reasonable, thank you for your answer.

 --larsw</description>
		<content:encoded><![CDATA[<p>Hi again,</p>
<p> Yes, that seems reasonable, thank you for your answer.</p>
<p> &#8211;larsw</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-13223</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sun, 30 Dec 2007 22:12:20 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-13223</guid>
		<description>Lars,

SyncContext is good for dispatching a call back to to someone who called you before - ie async request/response scenarios.

If the controller receives a notification from the server requiring to pop up a &quot;toast&quot; without any original call coming from the UI, it wouldn&#039;t have access to the necessary sync context. In other words, a &quot;response&quot; without a request.

Another thing not handled is if two threads are trying to access two different objects (say customer and order), getting an infrastructure style global locking behavior between those threads.

Does that answer your question?</description>
		<content:encoded><![CDATA[<p>Lars,</p>
<p>SyncContext is good for dispatching a call back to to someone who called you before &#8211; ie async request/response scenarios.</p>
<p>If the controller receives a notification from the server requiring to pop up a &#8220;toast&#8221; without any original call coming from the UI, it wouldn&#8217;t have access to the necessary sync context. In other words, a &#8220;response&#8221; without a request.</p>
<p>Another thing not handled is if two threads are trying to access two different objects (say customer and order), getting an infrastructure style global locking behavior between those threads.</p>
<p>Does that answer your question?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lars Wilhelmsen</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-13216</link>
		<dc:creator>Lars Wilhelmsen</dc:creator>
		<pubDate>Sun, 30 Dec 2007 20:55:43 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-13216</guid>
		<description>Hi Udi,

 What does this solve that the System.Threading.SynchronizationContext (w/ friends) doesn&#039;t solve?

 --larsw</description>
		<content:encoded><![CDATA[<p>Hi Udi,</p>
<p> What does this solve that the System.Threading.SynchronizationContext (w/ friends) doesn&#8217;t solve?</p>
<p> &#8211;larsw</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrik Löwendahl</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-13199</link>
		<dc:creator>Patrik Löwendahl</dc:creator>
		<pubDate>Sun, 30 Dec 2007 12:44:46 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-13199</guid>
		<description>Offcourse, one could get blind eye-balling their own code. 

Thanks.</description>
		<content:encoded><![CDATA[<p>Offcourse, one could get blind eye-balling their own code. </p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-13127</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Fri, 28 Dec 2007 20:23:33 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-13127</guid>
		<description>Patrik,

I checked out your post and what&#039;s different here is that the ISynchronizeInvoke is being injected into the controller (as simple as injecting the main form). It doesn&#039;t matter which object is the target of the delegate.</description>
		<content:encoded><![CDATA[<p>Patrik,</p>
<p>I checked out your post and what&#8217;s different here is that the ISynchronizeInvoke is being injected into the controller (as simple as injecting the main form). It doesn&#8217;t matter which object is the target of the delegate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrik Löwendahl</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-13109</link>
		<dc:creator>Patrik Löwendahl</dc:creator>
		<pubDate>Fri, 28 Dec 2007 12:31:07 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-13109</guid>
		<description>Udi, 

I wrote something similar, wihtout the sync domains, a couple of years ago: http://www.lowendahl.net/content.aspx?cshrpContent=csa31

One of the problems I&#039;ve been struggling with is that it&#039;s only the immediate level that will know if invoke is required with the InvokeRequired property, If we are using an intermediate class that are the target of the delagate instead of a control / component, the problem will still be the same. 

This means that all components in a forms scenario needs to inherit from the baseclass and send events upward, or only one level of indirection can be allowed in theese scenarios. 

Are theese challenges the same in your approach?</description>
		<content:encoded><![CDATA[<p>Udi, </p>
<p>I wrote something similar, wihtout the sync domains, a couple of years ago: <a href="http://www.lowendahl.net/content.aspx?cshrpContent=csa31" rel="nofollow">http://www.lowendahl.net/content.aspx?cshrpContent=csa31</a></p>
<p>One of the problems I&#8217;ve been struggling with is that it&#8217;s only the immediate level that will know if invoke is required with the InvokeRequired property, If we are using an intermediate class that are the target of the delagate instead of a control / component, the problem will still be the same. </p>
<p>This means that all components in a forms scenario needs to inherit from the baseclass and send events upward, or only one level of indirection can be allowed in theese scenarios. </p>
<p>Are theese challenges the same in your approach?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evan</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-13078</link>
		<dc:creator>Evan</dc:creator>
		<pubDate>Thu, 27 Dec 2007 21:31:15 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-13078</guid>
		<description>way cool!</description>
		<content:encoded><![CDATA[<p>way cool!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Windows Update Problems &#187; Blog Archive &#187; What Makes Smart Clients Safe?</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-13011</link>
		<dc:creator>Windows Update Problems &#187; Blog Archive &#187; What Makes Smart Clients Safe?</dc:creator>
		<pubDate>Wed, 26 Dec 2007 10:28:19 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-13011</guid>
		<description>[...] udidahan wrote an interesting post today on What Makes Smart Clients Safe?Here&#8217;s a quick excerptIt is important that these controllers be thread-safe since they are state-full - managing which windows are open, which step in a given process a user is currently doing, etc. The characteristics of these controller objects which make &#8230; [...]</description>
		<content:encoded><![CDATA[<p>[...] udidahan wrote an interesting post today on What Makes Smart Clients Safe?Here&#8217;s a quick excerptIt is important that these controllers be thread-safe since they are state-full &#8211; managing which windows are open, which step in a given process a user is currently doing, etc. The characteristics of these controller objects which make &#8230; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Windows Update Software &#187; What Makes Smart Clients Safe?</title>
		<link>http://www.udidahan.com/2007/12/26/what-makes-smart-clients-safe/comment-page-1/#comment-13010</link>
		<dc:creator>Windows Update Software &#187; What Makes Smart Clients Safe?</dc:creator>
		<pubDate>Wed, 26 Dec 2007 10:19:21 +0000</pubDate>
		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/12/26/what-makes-smart-clients-safe/#comment-13010</guid>
		<description>[...] udidahan wrote an interesting post today on What Makes Smart Clients Safe?Here&#8217;s a quick excerptIt is important that these controllers be thread-safe since they are state-full - managing which windows are open, which step in a given process a user is currently doing, etc. The characteristics of these controller objects which make &#8230; [...]</description>
		<content:encoded><![CDATA[<p>[...] udidahan wrote an interesting post today on What Makes Smart Clients Safe?Here&#8217;s a quick excerptIt is important that these controllers be thread-safe since they are state-full &#8211; managing which windows are open, which step in a given process a user is currently doing, etc. The characteristics of these controller objects which make &#8230; [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
