<?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>Plexipixel Linefeed &#187; silverlight</title>
	<atom:link href="http://plexipixel.com/linefeed/category/silverlight/feed/" rel="self" type="application/rss+xml" />
	<link>http://plexipixel.com/linefeed</link>
	<description>Plexipixel development blog</description>
	<lastBuildDate>Thu, 07 May 2009 20:06:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Keeping an Eye on Silverlight Adoption</title>
		<link>http://plexipixel.com/linefeed/04/keeping-an-eye-on-silverlight-adoption/</link>
		<comments>http://plexipixel.com/linefeed/04/keeping-an-eye-on-silverlight-adoption/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 18:58:49 +0000</pubDate>
		<dc:creator>andyj</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[silverlight]]></category>

		<guid isPermaLink="false">http://plexipixel.com/linefeed/?p=193</guid>
		<description><![CDATA[We recently launched a cool adaptation of RPS-101 on Facebook.  It's built in Silverlight and it's loads of fun turning up some pretty funny results.  Of course when you get an app out into the wild it's nice to know what's going on with it.
Our custom tracking tool was integrated into the app with our [...]]]></description>
			<content:encoded><![CDATA[<p>We recently launched a <a title="Roshamboom announcement blog post" href="http://plexipixel.com/linefeed/2009/03/roshamboom-i-got-your-game.html" target="_blank">cool adaptation of RPS-101 on Facebook</a>.  It's built in Silverlight and it's loads of fun turning up some pretty funny results.  Of course when you get an app out into the wild it's nice to know what's going on with it.</p>
<div id="attachment_194" class="wp-caption alignright" style="width: 310px"><a href="http://plexipixel.com/linefeed/wp-content/uploads/2009/04/zabra_silverlight.jpg"><img class="size-medium wp-image-194" title="Silverlight stats in Zabra" src="http://plexipixel.com/linefeed/wp-content/uploads/2009/04/zabra_silverlight-300x229.jpg" border="0" alt="Overview of Silverlight tracking features" width="300" height="229" /></a><p class="wp-caption-text">Overview of Silverlight tracking features</p></div>
<p>Our custom tracking tool was integrated into the app with our new feature set.  The new features include graphs, user-agent details, and a custom gameplay stats module.  But we decided to go one-up on those features and build a custom Silverlight suite to track penetration and new installs.</p>
<p>There's some <a title="Is Silverlight adoption really &quot;one in four&quot;?" href="http://blogs.wharton.upenn.edu/staff/kendallwhitehouse/2008/10/silverlight-2-and-fuzzy-math.html">contention</a> about Scott Guthrie's "one in four" so the first number we're after is penetration before they come to our app.  The second number is "what happens next" - when presented with the prompt to install Silverlight are users likely to take action and install it?</p>
<p>Tim Sneath detailed the <a title="Tim Sneath details the Silverlight installation experience guidelines available on MSDN" href="http://blogs.msdn.com/tims/archive/2007/10/29/optimizing-the-silverlight-install-experience.aspx">Silverlight install experience guidelines</a> in his blog.  It outlines the best-practices around the install experience.  It appears from the documentation that it's possible for a seamless installation experience inside of Internet Explorer but most browsers require a restart after the plug-in is installed.</p>
<p>Unfortunately it's a little outdated (Oct 2007) and fails to detect Silverlight correctly in non-IE browsers breaking the code around their seamless experience for everyone else.  The premise is simple, though, prompt the user for a download and then set a timeout to repeatedly check for plug-in availability.  When it comes online replace the &lt;div&gt; contents with the Silverlight object tag.</p>
<p>So we did some research around the install experience and used a simplified check to see if the browser has Silverlight 2.0 available:<br />
<pre><pre lang="javascript">function isSilverlightInstalled()
{
&nbsp;&nbsp; var isSilverlightInstalled = false;

&nbsp;&nbsp; try {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var slControl = new ActiveXObject(&#039;AgControl.AgControl&#039;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isSilverlightInstalled = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (e) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( navigator.plugins[&quot;Silverlight Plug-In&quot;] ) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isSilverlightInstalled = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; }
&nbsp;&nbsp; catch (e) { }

&nbsp;&nbsp; return isSilverlightInstalled;
};</pre></pre><br />
This simple function (from the JavaScript files in the experience guidelines) worked for us.  Whenever the client hits the Silverlight page the JavaScript simply posts back the availability of the Silverlight client.  Because our <a href="http://plexipixel.com/portfolio/?id=dormouse">Dormouse platform</a> seamlessly handles stateful users we're able to keep track of install statistics and adoption across sessions.<br />
<pre><pre lang="javascript">$(document).ready(function () {
&nbsp;&nbsp; if ( !isSilverlightInstalled() ) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;postBackSilverlight(0);
&nbsp;&nbsp; } else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;postBackSilverlight(1);
&nbsp;&nbsp; }
});

function postBackSilverlight(installed_val) {
&nbsp;&nbsp; var restURL = getRootIFrame() + &quot;/postBackSilverlight&quot;;

&nbsp;&nbsp; $.get(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; restURL,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;installed: installed_val,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nt: theTime.getTime()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function(data){}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);
}</pre></pre><br />
The stateful user on the <a href="http://plexipixel.com/portfolio/?id=dormouse">Dormouse platform</a> keeps track of Silverlight installation status.  If it's the first time Silverlight status has even been posted back then we post a message to our <a href="http://plexipixel.com/portfolio/?id=zabra">Zabra REST service</a> indicating pre-install conditions and save the information on the User objects.  When these are summed up we get "Pre-App Silverlight Penetration" statistics.</p>
<p>If a user has doesn't have Silverlight they'll take one of two actions - install Silverlight and come back or bounce from the app and not return.  Whenever a user comes back to the app with the plug-in newly installed we post a new message to Zabra "SilverlightInstalledAfterApp" which tells us that someone installed Silverlight and came back.  The difference between the total Users who are "Not Installed" and "Installed After App" users will leave us with our bounce number.</p>
<p>This works great on our <a href="http://plexipixel.com/portfolio/?id=zabra">Zabra system</a> and seamlessly integrates into our <a href="http://plexipixel.com/portfolio/?id=dormouse">Dormouse platform</a>.  Want to implement it yourself?  All you need is a way to track user data across a few sessions.  You might store their Silverlight status in a cookie, SharedObject, PHP session, or CMS system.  Here's some pseudocode to keep track of Silverlight installs:<br />
<pre><pre lang="javascript">postBackSilverlight(user, silverlightinstalled) {
&nbsp;&nbsp; if(user.silverlightinstalled has been set) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(user.silverlightinstalled equals false) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(silverlightinstalled equals true) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;statistics.post(&quot;new silverlight install&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; } else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(silverlightinstalled) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; statistics.post(&quot;silverlight installed before app&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; statistics.post(&quot;silverlight not installed before app&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; }
}</pre></pre><br />
We've passed these into some nice charts that let our clients keep tabs on user adoption both before their app and after hitting the installation user experience.  Hopefully Silverlight will hit a critical mass where adoption is no longer a concern.  For now we're all keeping our eyes on the future of a really promising technology.</p>
]]></content:encoded>
			<wfw:commentRss>http://plexipixel.com/linefeed/04/keeping-an-eye-on-silverlight-adoption/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RoshamBOOM! I got your GAME!</title>
		<link>http://plexipixel.com/linefeed/03/roshamboom-i-got-your-game/</link>
		<comments>http://plexipixel.com/linefeed/03/roshamboom-i-got-your-game/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 17:50:53 +0000</pubDate>
		<dc:creator>leeecha</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[sns]]></category>

		<guid isPermaLink="false">http://plexipixel.com/linefeed/?p=133</guid>
		<description><![CDATA[In our efforts to find a more comfortable collaboration and streamlined flow from Design to Development while working on Silverlight projects, we started brainstorming ideas to keep our chops up to date. We decided we wanted to create a Silverlight 2.0 game that could be deployed on Facebook, as that would allow us to explore [...]]]></description>
			<content:encoded><![CDATA[<p>In our efforts to find a more comfortable collaboration and streamlined flow from Design to Development while working on Silverlight projects, we started brainstorming ideas to keep our chops up to date. We decided we wanted to create a Silverlight 2.0 game that could be deployed on Facebook, as that would allow us to explore new territory (being there aren’t a ton of Silverlight Facebook apps available) as well as contribute to the cause of evangelizing its adoption.</p>
<p>Of course internal projects are great vehicles for advancement, but we also wanted to get this out fast! So, we decided to leverage concept and art from existing resources in order to put it in 5<sup>th</sup> gear. Being avid readers of The Stranger | SLOG we had previously been amused and impressed with an <a href="http://slog.thestranger.com/slog/archives/2009/01/07/rochambeau_a_go_go" target="_blank">article on a 101-hand gesture game</a> based on Rock Paper Scissors. But, imagining the complexity involved in remembering all those hand gestures and what beats what or the awkward inaction of trying to play it on the computer together with someone, made it a picture perfect candidate for a Facebook game! The asynchronicity allows for breathing room in computer game play and makes receiving the results that more fun!</p>
<p>We worked together with the creator of the game to bring his concept to life using our design and development talents and released <strong>RoshamBOOM!</strong> within just a few weeks — the speed of which could not have been possible without the versatility of our <a href="http://plexipixel.com/portfolio/?id=dormouse">Social Networking Platform, Dormouse</a>. I would say this was the most fun I’ve had developing a game, and undoubtedly one darn fun game to play! Check it out: <a href="http://apps.facebook.com/roshamboom">http://apps.facebook.com/roshamboom</a></p>
<div class="MsoNormal" style="margin: 0in 0.9pt 0pt 0in; tab-stops: .5in; mso-layout-grid-align: none;"><a href="http://plexipixel.com/linefeed/wp-content/uploads/2009/03/roshamboom_sl.jpg" target="_blank"><img class="aligncenter size-full wp-image-159" title="RoshamBOOM! (Silverlight Pages)" src="http://plexipixel.com/linefeed/wp-content/uploads/2009/03/videogame_results_sm1.jpg" border="0" alt="RoshamBOOM! (Silverlight Pages)" width="575" height="318" /></a></div>
<p>Currently, only the Challenge and Outcome pages are in Silverlight, but we plan to integrate all pages in subsequent releases. Last but not least, we can’t forget props to the originator, <a href="http://www.umop.com/" target="_blank">David C. Lovelace</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://plexipixel.com/linefeed/03/roshamboom-i-got-your-game/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>2008 Silverlight year end wrap up</title>
		<link>http://plexipixel.com/linefeed/01/2008-silverlight-year-end-wrap-up/</link>
		<comments>http://plexipixel.com/linefeed/01/2008-silverlight-year-end-wrap-up/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 21:49:02 +0000</pubDate>
		<dc:creator>leeecha</dc:creator>
				<category><![CDATA[silverlight]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[audio player]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[Expression Encoder]]></category>
		<category><![CDATA[Expresssion Blend]]></category>
		<category><![CDATA[PowerPoint]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[synchronized]]></category>
		<category><![CDATA[video player]]></category>
		<category><![CDATA[xaml]]></category>

		<guid isPermaLink="false">http://plexipixel.com/linefeed/?p=12</guid>
		<description><![CDATA[ 
We had the pleasure of working on some significant Silverlight projects over the last year, one of which included building a plug-in to Microsoft Expression Encoder.
 
The project in a nutshell was creating a Silverlight 2.0 video/audio player that synced with PowerPoint slides and visual chapter points.  Imagine a live presentation in which a speaker is [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"> </p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">We had the pleasure of working on some significant Silverlight projects over the last year, one of which included building a plug-in to Microsoft Expression Encoder.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The project in a nutshell was creating a Silverlight 2.0 video/audio player that synced with PowerPoint slides and visual chapter points.<span style="mso-spacerun: yes">  </span>Imagine a live presentation in which a speaker is showing PowerPoint slides and the cue cards they hold in hand are the chapter points to be discussed.<span style="mso-spacerun: yes">  </span>Now imagine an online version of this presentation in which the speaker was pre-recorded and their cue cards exposed alongside the PowerPoint slides they are referencing – this is what we built.</span></p>
<p><a href="http://plexipixel.com/linefeed/wp-content/uploads/2009/01/preview.jpg" target="_blank"><img title="Silverlight Presentation Template" src="http://plexipixel.com/linefeed/wp-content/uploads/2009/01/preview-300x224.jpg" border="0" alt="Silverlight Presentation Template" width="300" height="224" /></a></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="font-size: 10pt; font-family: Arial;">A list of chapter points as well as thumbnails of PowerPoint slides and other supporting media are available for the viewer to navigate forward and backward in the presentation, in addition to the normal player controls on the video/audio itself.<span style="mso-spacerun: yes;">  </span>Any of the three navigation areas selected will sync the others to the correct point in the presentation.<span style="mso-spacerun: yes;">  </span>Pretty cool!</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;">Another cool part of this project was making it so the presentation could be assembled and output from Expression Encoder.<span style="mso-spacerun: yes;">  </span>We built a plug-in that enabled the user to associate chapter point text and other visual media with markers in the video/audio and then export it to the Silverlight Presentation template we created, which could either be hosted online or run locally via an EXE.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;">It was a fun and invaluable experience, but still a rough ride.<span style="mso-spacerun: yes;">  </span>The project spanned 3 iterations of Silverlight releases (Alpha 1.1, Beta 1, and Beta 2), which continually required updates to the code and the use of preview versions of both Expression Blend and Encoder.<span style="mso-spacerun: yes;">  </span>And unfortunately there was not much in the way of support in the skinning department for Expression Blend just yet.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;">Luckily with the release of Silverlight 2, came many improvements to Expression Blend, adding support for the new Visual State Manager which allows designers to create interactive mouse states (without needing to know any code!), by way of editing the default templates for existing controls.<span style="mso-spacerun: yes;">  </span>This, paired with the ability to access static resources through the VSM, paved way for our next project in creating skins for the Silverlight 2 .NET control set. <span style="mso-spacerun: yes;"> </span>For this project we were tasked with building specific UI themes for the Silverlight toolkit, which released on <a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%203&amp;referringTitle=Home" target="_blank">CodePlex</a> in December (see Whistler Blue, Bureau Blue &amp; Black).<span style="mso-spacerun: yes;">  </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;">Having a more stable version of Blend to work with - thanks to SP1, helped immensely but there was still the hurdle of getting designers used to the VSM interface and template structures.<span style="mso-spacerun: yes;">  </span>Other internal struggles consisted of:</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt 39pt; text-indent: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list 39.0pt;"><span style="font-size: 10pt; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-size: 10pt; font-family: Arial;">Maximizing the use of shared static resources without compromising the design or simplifying it to the point of banality.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt 39pt; text-indent: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list 39.0pt;"><span style="font-size: 10pt; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-size: 10pt; font-family: Arial;">Walking the line of VSM animations versus layered assets and how to structure the control templates using the least amount of XAML.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt 39pt; text-indent: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list 39.0pt;"><span style="font-size: 10pt; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-size: 10pt; font-family: Arial;">Cleanup of code added by Blend (collapsing lines where possible and removing unnecessary default properties).</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt 39pt; text-indent: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list 39.0pt;"><span style="font-size: 10pt; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-size: 10pt; font-family: Arial;">Managing workflow from design to development for cleanup and consolidation into <a href="http://blogs.msdn.com/mehdis/archive/2008/11/18/creating-new-ism-compatible-themes.aspx" target="_blank">ISM framework</a>, while maintaining continual design updates.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;">This was the biggest learning experience of all, because it involved a steady flow from design to development, and there didn’t seem to be an efficient way to handle recurring updates without continually redoing dev work.<span style="mso-spacerun: yes;">  </span>The most plausible solution would have been for everyone to work from one XAML file containing all controls, merging updates in source control, but having all controls laid out in one file caused a HUGE update lag within Expression Blend’s interface.<span style="mso-spacerun: yes;">  </span>Even editing XAML directly was experiencing lag, making it impossible to work that way.<span style="mso-spacerun: yes;">  </span>Instead we had to separate each control to a different project and continually clean and consolidate them with each update for delivery.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: 10pt; font-family: Arial;"> </span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="font-size: 10pt; font-family: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Maybe in the near future this problem will have surfaced enough to find a fix, we can only hope!<span style="mso-spacerun: yes;">  </span>There is definitely one thing we’re looking forward to in 2009 with the release of Silverlight 3 – </span><span style="font-size: 10pt; font-family: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;" lang="EN"><a href="http://weblogs.asp.net/scottgu/archive/2008/11/16/update-on-silverlight-2-and-a-glimpse-of-silverlight-3.aspx" target="_blank">3D support and GPU hardware acceleration</a>! Let the games begin!</span> </p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"> </p>
]]></content:encoded>
			<wfw:commentRss>http://plexipixel.com/linefeed/01/2008-silverlight-year-end-wrap-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight Shines on Plexipixel</title>
		<link>http://plexipixel.com/linefeed/02/silverlight-shines-on-plexipixel/</link>
		<comments>http://plexipixel.com/linefeed/02/silverlight-shines-on-plexipixel/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 01:04:11 +0000</pubDate>
		<dc:creator>leeecha</dc:creator>
				<category><![CDATA[silverlight]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[aggregator]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[gif]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[visual studio]]></category>
		<category><![CDATA[vs.net]]></category>
		<category><![CDATA[wcf]]></category>
		<category><![CDATA[wpf]]></category>
		<category><![CDATA[xaml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.plexipixel.com/linefeed/?p=5</guid>
		<description><![CDATA[Shortly after Silverlight 1.1 released we were approached to design and develop an interactive application that would pull in and display RSS content in addition to creating an animated web banner.
However, due to the request for Silverlight 1.0, it turned out we needed to create two applications in a very short time. To meet this [...]]]></description>
			<content:encoded><![CDATA[<p>Shortly after Silverlight 1.1 released we were approached to design and develop an interactive application that would pull in and display RSS content in addition to creating an animated web banner.</p>
<p>However, due to the request for Silverlight 1.0, it turned out we needed to create two applications in a very short time. To meet this demand we began with a local pre-formatted XML reader in Javascript, and then shortly after, delivered the RSS functionality of the product.  Due to reduced capabilities in Silverlight 1.0 versus 1.1 (which includes .NET support), we created an external script in C# to parse and streamline data from several RSS feeds—stripping out undesirable data and excess formatting before consumption by the Javascript frontend.  The result: an interactive RSS blog aggregator that offered automatic progression through feeds, as well as a way to browse them manually, all inside a Silverlight frame.</p>
<p>Being our first Silverlight project, the rewards didn’t come without obstacle.  Adventures in setup and installation were some of the biggest hurdles.  There were updates to the Silverlight 1.1 runtime which changed the GUID (globally unique identifier) for one of the DLLs (dynamically linked libraries) without keeping the registry key, causing build errors when trying to publish.  Correcting the issue was a confounding problem, but luckily <a href="http://silverlight.net/forums/t/3491.aspx">a temporary fix</a> was had and in the end all was well.  Getting the correct ASP.NET extensions registered and folder permissions in IIS was also fun!</p>
<p>The next challenge was internal as our designers learned how to work with XAML and Expression Blend.  Their frustration in not being able to easily create mouse events without code (the Silverlight template doesn’t create the code for simple buttons automatically) collided with development’s frustration in trying to maintain structure in the XAML file.  The solution was process. Strict adherence to naming schemes, particularly in how the designers named their layers in the design (which were reflected as the xName), allowed smooth cooperation between the designers and the developers who needed to code events.</p>
<p>Finally, an observation: We found that while Silverlight supports gorgeous animations it can also demand an unexpected high amount of CPU usage.  We optimized our animations through compression to JPG where possible, but if you need to maintain transparency in images, you must use PNGs because <a href="http://silverlight.net/forums/p/2108/5299.aspx">GIFs aren’t supported</a>!</p>
<p>We'll share more solutions to Silverlight challenges in the future!</p>
]]></content:encoded>
			<wfw:commentRss>http://plexipixel.com/linefeed/02/silverlight-shines-on-plexipixel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
