<?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>Lazycoder &#187; Silverlight</title>
	<atom:link href="http://www.lazycoder.com/weblog/category/silverlight/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lazycoder.com/weblog</link>
	<description></description>
	<lastBuildDate>Fri, 03 Feb 2012 23:26:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Silverlight is the future but the future isn&#8217;t Silverlight</title>
		<link>http://www.lazycoder.com/weblog/2009/02/09/silverlight-is-the-future-but-the-future-isnt-silverlight/</link>
		<comments>http://www.lazycoder.com/weblog/2009/02/09/silverlight-is-the-future-but-the-future-isnt-silverlight/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 15:03:19 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/?p=1084</guid>
		<description><![CDATA[Rockford Lhotka &#8211; Why Silverlight is the future I was going to argue against Silverlight being the future, but yesterday my reserved copy of &#8220;Beginning Silverlight 2:&#8221; came in at the library and my copy of &#8220;Silverlight 2 in Action&#8221; arrived in the mail. So maybe the Colossal Cosmic Anvil of Fate is dropping on [...]]]></description>
			<content:encoded><![CDATA[<p> <a href="http://www.lhotka.net/weblog/WhySilverlightIsTheFuture.aspx">Rockford Lhotka &#8211; Why Silverlight is the future</a> </p>
<p>I was going to argue against Silverlight being the future, but yesterday my reserved copy of &#8220;<a href="http://www.amazon.com/gp/product/1590599527?ie=UTF8&#038;tag=lazycoder-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1590599527">Beginning Silverlight 2:</a><img src="http://www.assoc-amazon.com/e/ir?t=lazycoder-20&#038;l=as2&#038;o=1&#038;a=1590599527" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />&#8221; came in at the library and my copy of &#8220;<a href="http://www.amazon.com/gp/product/1933988428?ie=UTF8&#038;tag=lazycoder-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1933988428">Silverlight 2 in Action</a><img src="http://www.assoc-amazon.com/e/ir?t=lazycoder-20&#038;l=as2&#038;o=1&#038;a=1933988428" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />&#8221; arrived in the mail. So maybe the Colossal Cosmic Anvil of Fate is dropping on my head and telling me something.</p>
<p>I don&#8217;t think that in 5 years, every web developer will be programming in Silverlight or Flash. What I think is going to happen is that the web browsers are going to evolve and include more Silverlight/Flash like features. We already see that happening with isolated storage in FireFox and IE8. FireFox already has a rich network of extensions that allow developers to enhance services in many different ways, Google Chrome has released their <a href="http://dev.chromium.org/developers/design-documents/extensions">draft extension specifications</a>. IE8 and Safari still have a way to go, writing extensions for either is a non-trivial exercise.</p>
<p>There&#8217;s a reason that developers haven&#8217;t written these types of RIA&#8217;s using Flash for the past 10 years even though it has been possible. It&#8217;s not the lack of tooling, it&#8217;s the plugin. Even though the Flash plugin is a small enough download and easy to install, in my experience developers have been hesitant to build an application that is dependent upon a plugin. I don&#8217;t think that will change with Silverlight, even if Microsoft ships it in Windows out of the box or includes it as a mandatory update in Windows Update, there will be IT departments that either will disable it or won&#8217;t keep it up to date.</p>
<p>What do you think will happen? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2009/02/09/silverlight-is-the-future-but-the-future-isnt-silverlight/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Episode 6: Silverlight – Fad or Fab?</title>
		<link>http://herdingcode.com/?p=18</link>
		<comments>http://herdingcode.com/?p=18#comments</comments>
		<pubDate>Thu, 26 Jun 2008 09:18:09 +0000</pubDate>
		<dc:creator>Scott Koon</dc:creator>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[herdingcode]]></category>

		<guid isPermaLink="false">http://herdingcode.com/?p=18</guid>
		<description><![CDATA[This week we argue discuss whether Silverlight is just another flavor of ActiveX, or if it&#8217;s here to stay. Listen / Download Herding Code 6: Silverlight &#8211; Fad Or Fab?]]></description>
			<content:encoded><![CDATA[<p>This week we argue discuss whether Silverlight is just another flavor of ActiveX, or if it&#8217;s here to stay. Listen / Download Herding Code 6: Silverlight &#8211; Fad Or Fab?</p>
]]></content:encoded>
			<wfw:commentRss>http://herdingcode.com/?feed=rss2&#038;p=18</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://herdingcode.com/wp-content/uploads/HerdingCode-0006-Silverlight-Fad-Or-Fab.mp3" length="17175951" type="audio/mpeg" />
		</item>
		<item>
		<title>Silverlight on Linux</title>
		<link>http://www.lazycoder.com/weblog/2007/05/10/silverlight-on-linux/</link>
		<comments>http://www.lazycoder.com/weblog/2007/05/10/silverlight-on-linux/#comments</comments>
		<pubDate>Fri, 11 May 2007 05:25:29 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/index.php/archives/2007/05/10/silverlight-on-linux/</guid>
		<description><![CDATA[Regarding the possible availability of Silverlight on the Linux platforms if you can&#8217;t make your mind up, we&#8217;ll never get started. and i don&#8217;t wanna wind up being parted, broken-hearted. so if you really love me, say yes. but if you don&#8217;t, dear, confess. and please don&#8217;t tell me perhaps, perhaps, perhaps. (I&#8217;m sure some [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.songmeanings.net/lyric.php?lid=14932">Regarding the possible availability of Silverlight on the Linux platforms</a><br />
<em><br />
if you can&#8217;t make your mind up,<br />
we&#8217;ll never get started.<br />
and i don&#8217;t wanna wind up<br />
being parted, broken-hearted.<br />
so if you really love me,<br />
say yes.<br />
but if you don&#8217;t, dear, confess.<br />
and please don&#8217;t tell me<br />
perhaps, perhaps, perhaps. </em></p>
<p>(I&#8217;m sure some British Linux fans are getting a chuckle at that one. Or maybe their caught in the <a href="http://youtube.com/watch?v=-iKjkPgVQcE">Giggle loop</a>?)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2007/05/10/silverlight-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Giving up on Silverlight</title>
		<link>http://www.lazycoder.com/weblog/2007/05/10/giving-up-on-silverlight/</link>
		<comments>http://www.lazycoder.com/weblog/2007/05/10/giving-up-on-silverlight/#comments</comments>
		<pubDate>Thu, 10 May 2007 16:21:13 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/index.php/archives/2007/05/10/giving-up-on-silverlight/</guid>
		<description><![CDATA[I&#8217;m giving up on Silverlight development, at least 1.0 development. It&#8217;s pretty obvious that NO ONE is going to ship anything based on Silverlight 1.0. Personally, since Silverlight 1.1 won&#8217;t work on Apples PowerPC machines, that means that any Silverlight 1.1 code I write won&#8217;t work on my main laptop (G4 iBook). Why write code [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m giving up on Silverlight development, at least 1.0 development.  It&#8217;s pretty obvious that NO ONE is going to ship anything based on Silverlight 1.0. Personally, since <a href="http://www.lazycoder.com/weblog/index.php/archives/2007/05/07/confirmed-silverlight-11-will-only-support-intel-os-x-machines/">Silverlight 1.1 won&#8217;t work on Apples PowerPC</a> machines, that means that any Silverlight 1.1 code I write won&#8217;t work on my main laptop (G4 iBook).</p>
<p>Why write code that I can&#8217;t run?</p>
<p>I&#8217;ve got a pretty good handle on the object model, enough that I think I may take it back up when I get an Intel based Apple computer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2007/05/10/giving-up-on-silverlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why use XAML?</title>
		<link>http://www.lazycoder.com/weblog/2007/05/10/why-use-xaml/</link>
		<comments>http://www.lazycoder.com/weblog/2007/05/10/why-use-xaml/#comments</comments>
		<pubDate>Thu, 10 May 2007 15:54:03 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/index.php/archives/2007/05/10/why-use-xaml/</guid>
		<description><![CDATA[I'm looking at the SilverlightPad example for the 1.1 alpha version of the plugin. Has anyone else noticed that pretty much all XAML code exhibits the arrow anti-pattern? PLAIN TEXT XML: &#60;!--- /////////////////////////////////////////////////////////////////////////////// // //&#160; blocks.xaml // // //&#160; 2007 Microsoft Corporation. All Rights Reserved. // // This file is licensed as part of the [...]]]></description>
			<content:encoded><![CDATA[<p>I'm looking at the <a href="http://silverlight.net/samples/1.0/Silverlight-Pad/default.html">SilverlightPad example for the 1.1 alpha</a> version of the plugin. Has anyone else noticed that pretty much all XAML code exhibits the <a href="http://www.codinghorror.com/blog/archives/000486.html">arrow anti-pattern</a>?</p>
<div class="igBar"><span id="lxml-2"><a href="#" onclick="javascript:showCodeTxt('xml-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName"><acronym title='eXtensible Markup Language'><span class='caps'>XML</span></acronym>:</span>
<div id="xml-2">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!---</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">///////////////////////////////////////////////////////////////////////////////</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//&nbsp; blocks.xaml</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//&nbsp; 2007 Microsoft Corporation. All Rights Reserved.</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// This file is licensed as part of the Silverlight 1.0 SDK, for details look</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// here: http://go.microsoft.com/fwlink/?LinkID=89144&amp;clcid=0x409</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">///////////////////////////////////////////////////////////////////////////////</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">--&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Canvas</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">"http://schemas.microsoft.com/winfx/2006/xaml/presentation"</span> xmlns:<span style="color: #000066;">x</span>=<span style="color: #ff0000;">"http://schemas.microsoft.com/winfx/2006/xaml"</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">"500"</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">"500"</span><span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Canvas</span>.Triggers<span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;EventTrigger</span> <span style="color: #000066;">RoutedEvent</span>=<span style="color: #ff0000;">"Canvas.Loaded"</span><span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;EventTrigger</span>.Actions<span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;TriggerActionCollection<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;BeginStoryboard<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Storyboard</span> <span style="color: #000066;">BeginTime</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">Duration</span>=<span style="color: #ff0000;">"Forever"</span><span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;DoubleAnimation</span> Storyboard.<span style="color: #000066;">TargetName</span>=<span style="color: #ff0000;">"path1"</span> Storyboard.<span style="color: #000066;">TargetProperty</span>=<span style="color: #ff0000;">"(Canvas.Top)"</span> <span style="color: #000066;">From</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">To</span>=<span style="color: #ff0000;">"300"</span> <span style="color: #000066;">AutoReverse</span>=<span style="color: #ff0000;">"true"</span> <span style="color: #000066;">BeginTime</span>=<span style="color: #ff0000;">"0:0:0"</span> <span style="color: #000066;">Duration</span>=<span style="color: #ff0000;">"0:0:2"</span> <span style="color: #000066;">RepeatBehavior</span>=<span style="color: #ff0000;">"Forever"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;DoubleAnimation</span> Storyboard.<span style="color: #000066;">TargetName</span>=<span style="color: #ff0000;">"path2"</span> Storyboard.<span style="color: #000066;">TargetProperty</span>=<span style="color: #ff0000;">"(Canvas.Left)"</span> <span style="color: #000066;">From</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">To</span>=<span style="color: #ff0000;">"400"</span> <span style="color: #000066;">AutoReverse</span>=<span style="color: #ff0000;">"true"</span> <span style="color: #000066;">BeginTime</span>=<span style="color: #ff0000;">"0:0:0"</span> <span style="color: #000066;">Duration</span>=<span style="color: #ff0000;">"0:0:4"</span> <span style="color: #000066;">RepeatBehavior</span>=<span style="color: #ff0000;">"Forever"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;DoubleAnimation</span> Storyboard.<span style="color: #000066;">TargetName</span>=<span style="color: #ff0000;">"path3"</span> Storyboard.<span style="color: #000066;">TargetProperty</span>=<span style="color: #ff0000;">"(Canvas.Top)"</span> <span style="color: #000066;">From</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">To</span>=<span style="color: #ff0000;">"200"</span> <span style="color: #000066;">AutoReverse</span>=<span style="color: #ff0000;">"true"</span> <span style="color: #000066;">BeginTime</span>=<span style="color: #ff0000;">"0:0:0"</span> <span style="color: #000066;">Duration</span>=<span style="color: #ff0000;">"0:0:8"</span> <span style="color: #000066;">RepeatBehavior</span>=<span style="color: #ff0000;">"Forever"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;DoubleAnimation</span> Storyboard.<span style="color: #000066;">TargetName</span>=<span style="color: #ff0000;">"path3"</span> Storyboard.<span style="color: #000066;">TargetProperty</span>=<span style="color: #ff0000;">"(Canvas.Left)"</span> <span style="color: #000066;">From</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">To</span>=<span style="color: #ff0000;">"350"</span> <span style="color: #000066;">AutoReverse</span>=<span style="color: #ff0000;">"true"</span> <span style="color: #000066;">BeginTime</span>=<span style="color: #ff0000;">"0:0:0"</span> <span style="color: #000066;">Duration</span>=<span style="color: #ff0000;">"0:0:4"</span> <span style="color: #000066;">RepeatBehavior</span>=<span style="color: #ff0000;">"Forever"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;DoubleAnimation</span> Storyboard.<span style="color: #000066;">TargetName</span>=<span style="color: #ff0000;">"path4"</span> Storyboard.<span style="color: #000066;">TargetProperty</span>=<span style="color: #ff0000;">"(Canvas.Top)"</span> <span style="color: #000066;">From</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">To</span>=<span style="color: #ff0000;">"250"</span> <span style="color: #000066;">AutoReverse</span>=<span style="color: #ff0000;">"true"</span> <span style="color: #000066;">BeginTime</span>=<span style="color: #ff0000;">"0:0:0"</span> <span style="color: #000066;">Duration</span>=<span style="color: #ff0000;">"0:0:2"</span> <span style="color: #000066;">RepeatBehavior</span>=<span style="color: #ff0000;">"Forever"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;DoubleAnimation</span> Storyboard.<span style="color: #000066;">TargetName</span>=<span style="color: #ff0000;">"path4"</span> Storyboard.<span style="color: #000066;">TargetProperty</span>=<span style="color: #ff0000;">"(Canvas.Left)"</span> <span style="color: #000066;">From</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">To</span>=<span style="color: #ff0000;">"30"</span> <span style="color: #000066;">AutoReverse</span>=<span style="color: #ff0000;">"true"</span> <span style="color: #000066;">BeginTime</span>=<span style="color: #ff0000;">"0:0:0"</span> <span style="color: #000066;">Duration</span>=<span style="color: #ff0000;">"0:0:2"</span> <span style="color: #000066;">RepeatBehavior</span>=<span style="color: #ff0000;">"Forever"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;DoubleAnimation</span> Storyboard.<span style="color: #000066;">TargetName</span>=<span style="color: #ff0000;">"path5"</span> Storyboard.<span style="color: #000066;">TargetProperty</span>=<span style="color: #ff0000;">"(Canvas.Top)"</span> <span style="color: #000066;">From</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">To</span>=<span style="color: #ff0000;">"278"</span> <span style="color: #000066;">AutoReverse</span>=<span style="color: #ff0000;">"true"</span> <span style="color: #000066;">BeginTime</span>=<span style="color: #ff0000;">"0:0:0"</span> <span style="color: #000066;">Duration</span>=<span style="color: #ff0000;">"0:0:4"</span> <span style="color: #000066;">RepeatBehavior</span>=<span style="color: #ff0000;">"Forever"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;DoubleAnimation</span> Storyboard.<span style="color: #000066;">TargetName</span>=<span style="color: #ff0000;">"path6"</span> Storyboard.<span style="color: #000066;">TargetProperty</span>=<span style="color: #ff0000;">"(Canvas.Left)"</span> <span style="color: #000066;">From</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">To</span>=<span style="color: #ff0000;">"176"</span> <span style="color: #000066;">AutoReverse</span>=<span style="color: #ff0000;">"true"</span> <span style="color: #000066;">BeginTime</span>=<span style="color: #ff0000;">"0:0:0"</span> <span style="color: #000066;">Duration</span>=<span style="color: #ff0000;">"0:0:4"</span> <span style="color: #000066;">RepeatBehavior</span>=<span style="color: #ff0000;">"Forever"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Storyboard<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/BeginStoryboard<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/TriggerActionCollection<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/EventTrigger</span>.Actions<span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/EventTrigger<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Canvas</span>.Triggers<span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Rectangle</span> x:<span style="color: #000066;">Name</span>=<span style="color: #ff0000;">"path1"</span> <span style="color: #000066;">Opacity</span>=<span style="color: #ff0000;">".65"</span> <span style="color: #000066;">Fill</span>=<span style="color: #ff0000;">"orange"</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">RadiusX</span>=<span style="color: #ff0000;">"10"</span> <span style="color: #000066;">RadiusY</span>=<span style="color: #ff0000;">"10"</span> <span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Rectangle</span> x:<span style="color: #000066;">Name</span>=<span style="color: #ff0000;">"path2"</span> <span style="color: #000066;">Opacity</span>=<span style="color: #ff0000;">".65"</span> <span style="color: #000066;">Fill</span>=<span style="color: #ff0000;">"blue"</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">RadiusX</span>=<span style="color: #ff0000;">"10"</span> <span style="color: #000066;">RadiusY</span>=<span style="color: #ff0000;">"10"</span> <span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Rectangle</span> x:<span style="color: #000066;">Name</span>=<span style="color: #ff0000;">"path3"</span> <span style="color: #000066;">Opacity</span>=<span style="color: #ff0000;">".65"</span> <span style="color: #000066;">Fill</span>=<span style="color: #ff0000;">"red"</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">RadiusX</span>=<span style="color: #ff0000;">"10"</span> <span style="color: #000066;">RadiusY</span>=<span style="color: #ff0000;">"10"</span> <span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Rectangle</span> x:<span style="color: #000066;">Name</span>=<span style="color: #ff0000;">"path4"</span> <span style="color: #000066;">Opacity</span>=<span style="color: #ff0000;">".65"</span> <span style="color: #000066;">Fill</span>=<span style="color: #ff0000;">"yellow"</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">RadiusX</span>=<span style="color: #ff0000;">"10"</span> <span style="color: #000066;">RadiusY</span>=<span style="color: #ff0000;">"10"</span> <span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Rectangle</span> x:<span style="color: #000066;">Name</span>=<span style="color: #ff0000;">"path5"</span> <span style="color: #000066;">Opacity</span>=<span style="color: #ff0000;">".65"</span> <span style="color: #000066;">Fill</span>=<span style="color: #ff0000;">"green"</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">RadiusX</span>=<span style="color: #ff0000;">"10"</span> <span style="color: #000066;">RadiusY</span>=<span style="color: #ff0000;">"10"</span> <span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Rectangle</span> x:<span style="color: #000066;">Name</span>=<span style="color: #ff0000;">"path6"</span> <span style="color: #000066;">Opacity</span>=<span style="color: #ff0000;">".65"</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">"100"</span> <span style="color: #000066;">RadiusX</span>=<span style="color: #ff0000;">"10"</span> <span style="color: #000066;">RadiusY</span>=<span style="color: #ff0000;">"10"</span><span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Rectangle</span>.Fill<span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;LinearGradientBrush</span> <span style="color: #000066;">StartPoint</span>=<span style="color: #ff0000;">"0,0.5"</span> <span style="color: #000066;">EndPoint</span>=<span style="color: #ff0000;">"1,0.5"</span><span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;LinearGradientBrush</span>.GradientStops<span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;GradientStop</span>&nbsp; <span style="color: #000066;">Offset</span>=<span style="color: #ff0000;">"0"</span>&nbsp; <span style="color: #000066;">Color</span>=<span style="color: #ff0000;">"white"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;GradientStop</span> <span style="color: #000066;">Offset</span>=<span style="color: #ff0000;">"1"</span> <span style="color: #000066;">Color</span>=<span style="color: #ff0000;">"Gray"</span><span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/LinearGradientBrush</span>.GradientStops<span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/LinearGradientBrush<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Rectangle</span>.Fill<span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Rectangle<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Canvas<span style="font-weight: bold; color: black;">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><a href="http://www.lazycoder.com/weblog/index.php/archives/2007/03/22/xul-apollo-wpf-wpfe-no-more/">I'm not a big fan of the declarative UI movement</a>. (XUL, Apollo, XAML, and now JavaFX). The reasons given for declarative programming usually center around making the UI code human readable making a cleaner break between the UI(view) and the controller(code driving the view). But UI's are complicated things, the code or markup used is complicated also. So what's the first thing most developers do? They go find a <a href="http://www.microsoft.com/expression/">tool</a> that makes sure they never, ever have to deal with the complicated markup and code. So if you're never going to read the UI code, why bother making it human readable? <a href="http://developer.apple.com/tools/interfacebuilder.html">Apples Interface Builder</a> has known this secret for years.</p>
<blockquote><p>Interface Builder stores user interface resources in "nib" files. Nib files are a statically stored representation of the set of interface objects used by the application and their relationships which can be efficiently brought into memory when needed, reducing development time and making it easier to localize an application for different markets.</p></blockquote>
<p>You could make an argument that Nib = binary XAML. The UI is <a href="http://safari.oreilly.com/0672322307/ch08lev1sec8">"freeze dried"</a> at design time and then reconstituted and instantiated at run time.</p>
<p>If you search for "<a href="http://www.google.com/search?q=Why+use+xaml&#038;ie=utf-8&#038;oe=utf-8&#038;aq=t&#038;rls=org.mozilla:en-US:official&#038;client=firefox-a">Why use XAML</a>", the pages of results never tell you what the advantage of using XAML over imperative code is. The results just say, "WPF uses it. That's why you have to use XAML". </p>
<p>That isn't to say there aren't some benefits to  working with XAML. I love the fact that I can dump ALL my markup and UI code in one file, and concentrate on manipulating the UI in another. You could do that during standard Winforms development, but it wasn't as easy. I'm all about easy. The ability to define timelines and animations within XAML put it above the Nib format.</p>
<p>What benefits do you see in using XAML?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2007/05/10/why-use-xaml/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Confirmed: Silverlight 1.1 will only support Intel OS X machines</title>
		<link>http://www.lazycoder.com/weblog/2007/05/07/confirmed-silverlight-11-will-only-support-intel-os-x-machines/</link>
		<comments>http://www.lazycoder.com/weblog/2007/05/07/confirmed-silverlight-11-will-only-support-intel-os-x-machines/#comments</comments>
		<pubDate>Mon, 07 May 2007 17:44:15 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/index.php/archives/2007/05/07/confirmed-silverlight-11-will-only-support-intel-os-x-machines/</guid>
		<description><![CDATA[John Lam has posted a "gathering of facts" about Silverlight and the DLR. His #9 on the list was the one I was most interested in. "Silverlight V1.1 will only target Intel Mac OS X machines." That's pretty disappointing to me, but not unexpected. My bet is that this will slow, to a crawl, adoption [...]]]></description>
			<content:encoded><![CDATA[<p>John Lam has posted a <a href="http://www.iunknown.com/2007/05/clearing_the_ai.html">"gathering of facts" about Silverlight</a> and the DLR. His #9 on the list was the one I was most interested in. </p>
<blockquote><p>"Silverlight V1.1 will only target Intel Mac OS X machines."</p></blockquote>
<p>That's pretty disappointing to me, but not unexpected. My bet is that this will slow, to a crawl, adoption of Silverlight by OS X users. While it's true the techno-elite, ADD generation, gotta-have-it-because-it's-new group have adopted Intel Macs en masse. There is a HUGE group of loyal Apple users still happily using their Blueberry and <a href="http://en.wikipedia.org/wiki/IMac_G4">table-lamp iMacs</a> using OS X. Apple's upcoming Leopard release will support PowerPC machines, but no word has come out on how long PowerPC support will continue. I'd love to hear the reasons for supporting Intel only. If I were to put out a <a href="http://acronyms.thefreedictionary.com/Silly+Wild+Ass(ed)+Guess">SWAG</a>, I'd say it has to do with Endian-ness and byte swapping. But I'd like to think that there is a more intractable problem with moving the CLR/DLR to PPC than just not wanting to write some code.</p>
<p>There are a couple of other facts that have been hinted at but it's nice to see them confirmed by a MS employee.</p>
<blockquote><p>Silverlight lets you run compiled .NET code in the browser, not just Python and JScript code. Any assembly that has been compiled to target the Silverlight libraries should just work. So if you want to write code in C#, VB.NET or Boo to target Silverlight, knock yourself out.</p></blockquote>
<p>Which is nifty and not unexpected. That's the whole point of having a Common Language Runtime. </p>
<blockquote><p>The DLR will also run on top of the desktop CLR V2.0, not just the Silverlight CLR. We have a generic hosting <acronym title='Application Interface'><span class='caps'>API</span></acronym> that lets us retarget the DLR to run on top of arbitrary hosts. Silverlight is only one such host.</p></blockquote>
<p>Which is a little more interesting to me. I keep wondering if assemblies written against the DLR would be able to run against either CLR. I'm still trying to wrap my head around what MS really means when they say "CLR" in the context of Silverlight. Up until now, there has just be one CLR. It's evolved to support new language features, but the .NET Framework itself has evolved parallel to the CLR. Now it appears that we have two distinct CLR's. <a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/PuttingMixSilverlighttheCoreCLRandtheDLR_13FC1/HanselmanDotNetEcosystemVisualizationV02%5B5%5D.png">CLR Desktop and CLR Silverlight</a>. Are they compatible? If you compile an assembly against one, do you have to recompile to get your assembly to work with the other (provided you use the namespaces available in Silverlight). I think it does.</p>
<p>An interesting side note: So now we have a "portable" CLR. Meaning you don't have to have the full .NET runtime installed on your client machine (at least as far as I can tell) to run Silverlight applications. Silverlight brings it's own small runtime along with it. It would be nice if this option were available to desktop developers as well. Meaning you hit "build" in the IDE, the compiler bundles up the specific namespaces and references that your application needs and puts them, along with the portable CLR, in your build directory. Almost like static linking. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2007/05/07/confirmed-silverlight-11-will-only-support-intel-os-x-machines/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Confirmed: Silverlight XAML can&#8217;t use &#8220;namespaced&#8221; JS handlers</title>
		<link>http://www.lazycoder.com/weblog/2007/05/03/confirmed-silverlight-xaml-cant-use-namespaced-js-handlers/</link>
		<comments>http://www.lazycoder.com/weblog/2007/05/03/confirmed-silverlight-xaml-cant-use-namespaced-js-handlers/#comments</comments>
		<pubDate>Thu, 03 May 2007 14:48:43 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.lazycoder.com/weblog/index.php/archives/2007/05/03/confirmed-silverlight-xaml-cant-use-namespaced-js-handlers/</guid>
		<description><![CDATA[This thread at the Silverlight forums confirms what I found while playing around with Silverlight 1.0 Beta. If you are using "Namespaces" to segregate your Javascript code in your Silverlight application, you can't use the nested methods as handlers in your XAML page. PLAIN TEXT JAVASCRIPT: player = &#123; &#160; &#160; stop : "", &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://silverlight.net/forums/t/505.aspx">This thread at the Silverlight forums confirms</a> what I found while playing around with Silverlight 1.0 Beta.</p>
<p>If you are using <a href="http://www.lazycoder.com/weblog/index.php/archives/2007/03/06/modern-javascript-development-namespaces/">"Namespaces" to segregate your Javascript </a>code in your Silverlight application, you can't use the nested methods as handlers in your XAML page.</p>
<div class="igBar"><span id="ljavascript-8"><a href="#" onclick="javascript:showCodeTxt('javascript-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-8">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">player = <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066;">stop</span> : <span style="color: #3366CC;">""</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; play :<span style="color: #3366CC;">""</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">player.<span style="color: #000066;">stop</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>sender,args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; sender.<span style="color: #006600;">findName</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"media"</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #000066;">stop</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">player.<span style="color: #006600;">play</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>sender,args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; sender.<span style="color: #006600;">findName</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"media"</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">play</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>XAML snippet</p>
<div class="igBar"><span id="lxml-9"><a href="#" onclick="javascript:showCodeTxt('xml-9'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName"><acronym title='eXtensible Markup Language'><span class='caps'>XML</span></acronym>:</span>
<div id="xml-9">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mediaElement</span> x:<span style="color: #000066;">Name</span>=<span style="color: #ff0000;">"media"</span> ... <span style="font-weight: bold; color: black;">/&gt;</span></span> </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;canvas</span> <span style="color: #000066;">MouseLeftButtonDown</span>=<span style="color: #ff0000;">"player.stop"</span> ... <span style="font-weight: bold; color: black;">/&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;canvas</span> MouseLeftButtonDown = <span style="color: #ff0000;">"player.play"</span> ... <span style="font-weight: bold; color: black;">/&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>If you assign the event handlers in your XAML markup, the code won't fire when the XAML element is clicked. You can move the event handlers up to the Javascript global object and then either handle your events from there or call your namespaced event handlers.</p>
<div class="igBar"><span id="ljavascript-10"><a href="#" onclick="javascript:showCodeTxt('javascript-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-10">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> play<span style="color: #66cc66;">&#40;</span>sender, args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> sender.<span style="color: #006600;">findName</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"media"</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">play</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">//or</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> media_play<span style="color: #66cc66;">&#40;</span>sender,args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> player.<span style="color: #006600;">play</span><span style="color: #66cc66;">&#40;</span>sender,args<span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>The third option is to write up the event handlers programatically. I haven't had any luck doing it this way yet. The best place to do this would be in the control onLoad event, which fires before the page onLoad event. The example template supplied in the 1.0 beta SDK uses this method.</p>
<div class="igBar"><span id="ljavascript-11"><a href="#" onclick="javascript:showCodeTxt('javascript-11'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-11">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">//example snippet</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">handleLoad: <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>control, userContext, rootElement<span style="color: #66cc66;">&#41;</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">control</span> = control;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Sample button event hookup: Find the button and then attach event handlers</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">button</span> = rootElement.<span style="color: #006600;">children</span>.<span style="color: #006600;">getItem</span><span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;color:#800000;">0</span><span style="color: #66cc66;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">button</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"MouseEnter"</span>, Sys.<span style="color: #006600;">Silverlight</span>.<span style="color: #006600;">createDelegate</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>, <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">handleMouseEnter</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">button</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"MouseLeftButtonDown"</span>, Sys.<span style="color: #006600;">Silverlight</span>.<span style="color: #006600;">createDelegate</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>, <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">handleMouseDown</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">button</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"MouseLeftButtonUp"</span>, Sys.<span style="color: #006600;">Silverlight</span>.<span style="color: #006600;">createDelegate</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>, <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">handleMouseUp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">button</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"MouseLeave"</span>, Sys.<span style="color: #006600;">Silverlight</span>.<span style="color: #006600;">createDelegate</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>, <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">handleMouseLeave</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span>, </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>The MS PM said in the forum that this behavior is by design and won't change for version 1.0.</p>
<p>edit: You can't add the  namespaced event handlers programatically either. I guess we'll just have to make sure we have unique names for all our Silverlight event handler methods in the global object. <img src='http://www.lazycoder.com/weblog/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </p>
<p>FWIW you don't have to use the createDelegate method used above, you can use the "addEventListener" method like so:</p>
<div class="igBar"><span id="ljavascript-12"><a href="#" onclick="javascript:showCodeTxt('javascript-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-12">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> stopButton = sender.<span style="color: #006600;">findName</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"stopButton"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; stopButton.<span style="color: #006600;">addEventlistener</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"MouseLeftButtonDown"</span>, <span style="color: #3366CC;">"media_stop"</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lazycoder.com/weblog/2007/05/03/confirmed-silverlight-xaml-cant-use-namespaced-js-handlers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

