<?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>Danny-T.co.uk &#187; Silverlight</title>
	<atom:link href="http://danny-t.co.uk/index.php/category/silverlight/feed/" rel="self" type="application/rss+xml" />
	<link>http://danny-t.co.uk</link>
	<description>Web apps fanatic, ramblings on dev for web, mobile and other geeky stuff</description>
	<lastBuildDate>Sat, 04 Feb 2012 09:59:04 +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>Come work with me!</title>
		<link>http://danny-t.co.uk/index.php/2011/02/16/come-work-with-me/</link>
		<comments>http://danny-t.co.uk/index.php/2011/02/16/come-work-with-me/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 12:44:16 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=406</guid>
		<description><![CDATA[At Moov2 we have a lot of really exciting projects on the go and in the pipeline. We&#8217;re expanding our skill-sets and opening up more and more new opportunities. Coupled with one of our developers taking sabbatical we have a couple of new positions available and are looking for some hyper-enthusiastic devs to join our [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://moov2.com">Moov2</a> we have a lot of really exciting projects on the go and in the pipeline. We&#8217;re expanding our skill-sets and opening up more and more new opportunities. Coupled with one of our developers taking sabbatical we have a <a href="http://moov2.com/blog/2011/02/come-join-us/">couple of new positions available</a> and are looking for some hyper-enthusiastic devs to join our team.</p>
<p>We love playing with new technology and strive to stay on top of the latest and greatest. We also regularly attend industry events and user groups such as <a href="http://www.flashonthebeach.com/">FOTB</a>, <a href="http://www.droidcon.co.uk/">Droidcon</a>, <a href="http://www.360flex.com/">360Flex</a>, <a href="www.developerdeveloperdeveloper.com">DDD</a>, <a href="http://www.nxtgenug.net/">NxtGen</a> and <a href="http://www.lfpug.com/">LFPUG</a> and always looking for the next great event. </p>
<p>You&#8217;ll get to work with the likes of <a href="http://twitter.com/#!/dannyt">me</a>, <a href="http://twitter.com/#!/andreablack">@andreablack</a>, <a href="http://twitter.com/#!/peterkeating">@peterkeating</a> and <a href="http://twitter.com/#!/colinl">@colinl</a> along with occasional input from great talents such as <a href="http://twitter.com/#!/nwebb">@nwebb</a>, <a href="http://twitter.com/#!/getrichhull">@getrichhull</a>, <a href="http://twitter.com/#!/amw7">@amw7</a> and others to help us build world class RIAs. </p>
<p>We get all sorts of interesting projects ranging from sales tools for one of the worlds largest toy manufacturers to <a href="http://www.abrsm.org/students/speedshifter">really cool audio slow-downers</a> to help people learn to play music. We like to consider ourselves &#8216;platform agnostic&#8217; which means we don&#8217;t get caught up in the &#8220;my tech is better than your tech&#8221; arguments. We focus on learning as much as possible and using the best tool for the job. This is great fun for us, we don&#8217;t get stuck using the same old technology and means our clients get a better result from experienced and unbiased opinion.</p>
<p>If you&#8217;re a developer with good OOP experience, familiarity with Flex and/or .Net and a genuine passion for building amazing user experiences and writing great code why not <a href="http://moov2.com/blog/2011/02/come-join-us/">check out our openings and drop us your CV/portfolio</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/02/16/come-work-with-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning Silverlight #4 &#8211; Sample Project</title>
		<link>http://danny-t.co.uk/index.php/2011/02/16/learning-silverlight-4-sample-project/</link>
		<comments>http://danny-t.co.uk/index.php/2011/02/16/learning-silverlight-4-sample-project/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 01:02:13 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=364</guid>
		<description><![CDATA[This is a series of posts of my journey learning Silverlight one weekend: Learning Silverlight Learning Silverlight #1 – where to start Learning Silverlight #2 – Tooling Up Learning Silverlight #3 – Getting Started Learning Silverlight #4 – Sample Project (this post) After spending the day on Saturday consuming a lot of info on Silverlight [...]]]></description>
			<content:encoded><![CDATA[<hr />
This is a series of posts of my journey learning Silverlight one weekend:</p>
<ul>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight/">Learning Silverlight</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-1-where-to-start/">Learning Silverlight #1 – where to start</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-2-tooling-up/">Learning Silverlight #2 – Tooling Up</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-3-getting-started/">Learning Silverlight #3 – Getting Started</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/16/learning-silverlight-4-sample-project/">Learning Silverlight #4 – Sample Project</a> (this post)</li>
</ul>
<hr />
<br />
After spending the day on Saturday consuming a lot of info on Silverlight development, Sunday I intended to get my own application up and running. Tasking myself with this was tricky as ideally I&#8217;d do something that hasn&#8217;t been done a million times before like the same old, bog standard twitter client, flickr client, RSS reader blah blah blah boring boring boring&#8230; Unfortunately I couldn&#8217;t think of anything so I decided to go for all three anyway!</p>
<p>Using the excellent <a href="http://balsamiq.com">Balsamiq mockups</a>, I put together the following mockup as a rough guide for what I wanted to achieve:</p>
<p><a href="http://danny-t.co.uk/wp-content/uploads/mockup.png"><img src="http://danny-t.co.uk/wp-content/uploads/mockup.png" alt="" title="mockup" width="299" height="392" class="aligncenter size-full wp-image-365" /></a><br />
The idea being this could eventually become some sort of blog/website sidebar widget.</p>
<p>Armed with an objective I set out to accomplish the task in hand. Unfortunately, I had a very slow start to the day running into issues with VS templates and the visual studio productivity tools extension. In the end I had to delete a corrupt template from:</p>
<blockquote><p>C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplatesCache </p></blockquote>
<p>and</p>
<blockquote><p>C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates</p></blockquote>
<p>then run the following cmd to reinstate the desired templates</p>
<blockquote><p>devenv.exe /installvstemplates</p></blockquote>
<p>With that sorted I ended up just removing the Productivity Tools extension as although it&#8217;s very useful and aspires to do many cool things it seemed to be really buggy and slow. This could well be to do with it competing with <a href="http://www.jetbrains.com/resharper/">Resharper</a> that I installed recently and as that delivers everything I need and more I decided to lose the productivity tools.</p>
<p>Anyway, finally we got going and I was able to start piecing my layout together. I grabbed the Tab control which was fairly self explanatory and referencing back to the first tekpub video was able to start putting together a simple twitter feed. I used the <a href="http://msdn.microsoft.com/en-us/library/ff602274(v=vs.95).aspx">DesignContext</a> which is a really nice way to work with real data at design time and think that will be hugely valuable in Blend.</p>
<h3>Twitter feed</h3>
<p>First thing after roughly putting together an interface, I started to consume my twitter feed. As I wanted to use Json I started to explore the <a href="http://msdn.microsoft.com/en-us/library/cc197957(v=vs.95).aspx">DataContractJsonSerializer and JsonObject</a>, however I was unable to reference it properly. I found out you need to reference the System.ServiceModel.Web assembly to be able to add the needed references.</p>
<p>I initially tried to use the twitter api to retrieve my own tweets from the url:<br />
<a href="http://api.twitter.com/1/statuses/user_timeline.json?screen_name=dannyt">http://api.twitter.com/1/statuses/user_timeline.json?screen_name=dannyt</a></p>
<p>However, in order to perform cross domain web service calls Silverlight requires a policy file explicitly enabling such  (Silverlight has it&#8217;s own format but will also work with the crossdomain.xml format). The twitter api domain (api.twitter.com) doesn&#8217;t offer an open policy and I would need to setup oAuth and jump through a load of authorisation hoops to be able to use that feed. Fortunately however, the twitter search api has an open policy file granting public access from anywhere, after a little investigation I found the <a href="http://search.twitter.com/advanced">advanced search</a> facility on twitter which shows you can search without a search term and filter the results by user, perfect!</p>
<p>The <a href="http://tekpub.com/view/ag/1">Tekpub videos</a> had all the info I needed to get my search results into the app so that objective was achieved very easily which was nice.</p>
<h3>Flickr</h3>
<p>Next onto Flickr. I don&#8217;t use Flickr anywhere near as much as I&#8217;d like and wasn&#8217;t very familiar with the <a href="http://www.flickr.com/services/api/">API</a> so I set about reading up on it. It took me a while but it appears you make your webservice calls and get back the data you need to then piece together your own urls to request images with. A quick search of some other samples using Flickr confirmed this with the following format being the norm:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Format</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;http://farm{0}.static.flickr.com/{1}/{2}_{3}_s.jpg&quot;</span>, Farm, Server, Id, Secret<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>I tried to get the data in Json again but there seemed to be some validation issue that I couldn&#8217;t figure out so I switched to plain old REST. This turned out to be a good thing as I learned a little more of the XDocument class with LinQ.<br />
It did however bother me that I couldn&#8217;t get the Json approach working so dug a little deeper and in the end I figured out that the flickr api returns json wrapped in a callback function which the json serializer didn&#8217;t approve of. Simply append &#038;nojsoncallback=1 to the querystring and everything was working again. Still, two nice examples achieving the same result.</p>
<h3>RSS</h3>
<p>Finally I got the RSS feed working which was really just more of the same only this time using the built-in <a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationfeed(v=vs.95).aspx">SyndicationFeed</a> class. I found some interesting challenges with the actual post content but in the end I just stripped the html and returned the first 200 characters as a summary. Silverlight really needs some form of basic html rendering for such things.</p>
<h3>The App</h3>
<p>I did manage to get most of this completed on the Sunday but needed to tidy a few things up such as figuring out how best to embed silverlight into the blog (see <a href="http://timheuer.com/blog/">Tim Heuers</a> <a href="http://wordpress.org/extend/plugins/silverlight-for-wordpress/">awesome SL for WP plugin</a>). So apologies for the delay but here is the fruits of my labours from one weekend learning Silverlight:</p>
<p><div id="silverlightControlHost"><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="276" height="500"><param name="source" value="/wp-content/uploads/silverlight/Consumed.xap"/><param name="background" value="white" /><param name="minRuntimeVersion" value="3.0.40723.0" /><param name="autoupgrade" value="true" /><param name="enableHtmlAccess" value="true" /><a href="http://go.microsoft.com/fwlink/?LinkID=149156" style="text-decoration: none;"><img src="http://storage.timheuer.com/sl4wp-ph.png" alt="Install Microsoft Silverlight" style="border-style: none; width:400px; height:200px"/></a></object><iframe style="visibility:hidden;height:0;width:0;border:0px" id="_sl_historyFrame"></iframe></div><br /></p>
<p>Okay so it&#8217;s not the most original or ground-breaking thing in the world but not bad for a few hours work eh? I&#8217;m also very aware my Flickr feed isn&#8217;t currently the most thrilling <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3>Code</h3>
<p>Here are some of the key code snippets that might be of use to others</p>
<p><strong>Loading an RSS feed</strong></p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> LoadBlogPosts<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  var client <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> WebClient<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  client<span style="color: #008000;">.</span><span style="color: #0000FF;">DownloadStringAsync</span><span style="color: #008000;">&#40;</span>
    <span style="color: #008000;">new</span> Uri<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;http://danny-t.co.uk/?feed=atom&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  client<span style="color: #008000;">.</span><span style="color: #0000FF;">DownloadStringCompleted</span> <span style="color: #008000;">+=</span> BlogPostsLoaded<span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #6666cc; font-weight: bold;">void</span> BlogPostsLoaded<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, DownloadStringCompletedEventArgs e<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  var reader <span style="color: #008000;">=</span> XmlReader<span style="color: #008000;">.</span><span style="color: #0000FF;">Create</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> StringReader<span style="color: #008000;">&#40;</span>e<span style="color: #008000;">.</span><span style="color: #0000FF;">Result</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  var feed <span style="color: #008000;">=</span> SyndicationFeed<span style="color: #008000;">.</span><span style="color: #0000FF;">Load</span><span style="color: #008000;">&#40;</span>reader<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  viewModel<span style="color: #008000;">.</span><span style="color: #0000FF;">BlogPosts</span> <span style="color: #008000;">=</span> feed<span style="color: #008000;">.</span><span style="color: #0000FF;">Items</span><span style="color: #008000;">.</span><span style="color: #0600FF; font-weight: bold;">Select</span><span style="color: #008000;">&#40;</span>post <span style="color: #008000;">=&gt;</span> <span style="color: #008000;">new</span> BlogPost
  <span style="color: #008000;">&#123;</span>
    Description <span style="color: #008000;">=</span> StripHtmlTags<span style="color: #008000;">&#40;</span>HttpUtility<span style="color: #008000;">.</span><span style="color: #0000FF;">HtmlDecode</span><span style="color: #008000;">&#40;</span>
      <span style="color: #008000;">&#40;</span>post<span style="color: #008000;">.</span><span style="color: #0000FF;">Content</span> <span style="color: #0600FF; font-weight: bold;">as</span> TextSyndicationContent<span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Substring</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">200</span><span style="color: #008000;">&#41;</span>,
    Link <span style="color: #008000;">=</span> post<span style="color: #008000;">.</span><span style="color: #0000FF;">BaseUri</span><span style="color: #008000;">.</span><span style="color: #0000FF;">AbsoluteUri</span>,
    PubDate <span style="color: #008000;">=</span> post<span style="color: #008000;">.</span><span style="color: #0000FF;">PublishDate</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Date</span>,
    Title <span style="color: #008000;">=</span> HttpUtility<span style="color: #008000;">.</span><span style="color: #0000FF;">HtmlDecode</span><span style="color: #008000;">&#40;</span>post<span style="color: #008000;">.</span><span style="color: #0000FF;">Title</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span><span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">// courtesy of http://silverlike.net/strip-html-tags/</span>
<span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">string</span> StripHtmlTags<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> value<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  var length <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
  <span style="color: #6666cc; font-weight: bold;">int</span><span style="color: #008000;">.</span><span style="color: #0000FF;">TryParse</span><span style="color: #008000;">&#40;</span>value, <span style="color: #0600FF; font-weight: bold;">out</span> length<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
  <span style="color: #008080; font-style: italic;">// Remove HTML tags and empty newlines and spaces and leading spaces</span>
  var formattedValue <span style="color: #008000;">=</span> Regex<span style="color: #008000;">.</span><span style="color: #0000FF;">Replace</span><span style="color: #008000;">&#40;</span>value <span style="color: #0600FF; font-weight: bold;">as</span> <span style="color: #6666cc; font-weight: bold;">string</span>, <span style="color: #666666;">&quot;&lt;.*?&gt;&quot;</span>, <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  formattedValue <span style="color: #008000;">=</span> Regex<span style="color: #008000;">.</span><span style="color: #0000FF;">Replace</span><span style="color: #008000;">&#40;</span>formattedValue, <span style="color: #666666;">@&quot;\n+\s+&quot;</span>, <span style="color: #666666;">&quot;<span style="color: #008080; font-weight: bold;">\n</span><span style="color: #008080; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  formattedValue <span style="color: #008000;">=</span> formattedValue<span style="color: #008000;">.</span><span style="color: #0000FF;">TrimStart</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">' '</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  formattedValue <span style="color: #008000;">=</span> HttpUtility<span style="color: #008000;">.</span><span style="color: #0000FF;">HtmlDecode</span><span style="color: #008000;">&#40;</span>formattedValue<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>length <span style="color: #008000;">&gt;</span> <span style="color: #FF0000;">0</span> <span style="color: #008000;">&amp;&amp;</span> formattedValue<span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span> <span style="color: #008000;">&gt;=</span> length<span style="color: #008000;">&#41;</span>
    formattedValue <span style="color: #008000;">=</span> formattedValue<span style="color: #008000;">.</span><span style="color: #0000FF;">Substring</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span>, length <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #0600FF; font-weight: bold;">return</span> formattedValue<span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p><strong>Loading JSON from twitter search</strong></p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> LoadTweets<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  var webClient <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> WebClient<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  var uri <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Uri<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;http://search.twitter.com/search.json?q=&amp;from=dannyt&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  webClient<span style="color: #008000;">.</span><span style="color: #0000FF;">OpenReadCompleted</span> <span style="color: #008000;">+=</span> TweetsLoaded<span style="color: #008000;">;</span>
  webClient<span style="color: #008000;">.</span><span style="color: #0000FF;">OpenReadAsync</span><span style="color: #008000;">&#40;</span>uri<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> TweetsLoaded<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, OpenReadCompletedEventArgs e<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #008080; font-style: italic;">// grab the result stream</span>
  var stream <span style="color: #008000;">=</span> e<span style="color: #008000;">.</span><span style="color: #0000FF;">Result</span><span style="color: #008000;">;</span>
  <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>stream <span style="color: #008000;">==</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">&#41;</span> <span style="color: #0600FF; font-weight: bold;">return</span><span style="color: #008000;">;</span>
  <span style="color: #008080; font-style: italic;">// extract json array of tweets</span>
  var jsonTweets <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span>JsonArray<span style="color: #008000;">&#41;</span>JsonValue<span style="color: #008000;">.</span><span style="color: #0000FF;">Load</span><span style="color: #008000;">&#40;</span>stream<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;results&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span>
  <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>jsonTweets <span style="color: #008000;">==</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">&#41;</span> <span style="color: #0600FF; font-weight: bold;">return</span><span style="color: #008000;">;</span>
  <span style="color: #008080; font-style: italic;">// convert json tweets to strongly typed collection and set as DataContext</span>
  viewModel<span style="color: #008000;">.</span><span style="color: #0000FF;">Tweets</span> <span style="color: #008000;">=</span> jsonTweets<span style="color: #008000;">.</span><span style="color: #0600FF; font-weight: bold;">Select</span><span style="color: #008000;">&#40;</span>jsonTweet <span style="color: #008000;">=&gt;</span>
    <span style="color: #008000;">new</span> Tweet
    <span style="color: #008000;">&#123;</span>
      Message <span style="color: #008000;">=</span> HttpUtility<span style="color: #008000;">.</span><span style="color: #0000FF;">HtmlDecode</span><span style="color: #008000;">&#40;</span>jsonTweet<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;text&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>,
      Published <span style="color: #008000;">=</span> jsonTweet<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;created_at&quot;</span><span style="color: #008000;">&#93;</span>
    <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p><strong>Loading Images from Flickr (REST)</strong></p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> LoadImages<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  var webClient <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> WebClient<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  var uri <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Uri<span style="color: #008000;">&#40;</span>
<span style="color: #666666;">&quot;http://api.flickr.com/services/rest/?method=flickr.photos.search&amp;api_key=[yourapikey]&amp;user_id=[youruserid]&quot;</span>
  <span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  webClient<span style="color: #008000;">.</span><span style="color: #0000FF;">DownloadStringCompleted</span> <span style="color: #008000;">+=</span> ImagesLoadedXml<span style="color: #008000;">;</span>
  webClient<span style="color: #008000;">.</span><span style="color: #0000FF;">DownloadStringAsync</span><span style="color: #008000;">&#40;</span>uri<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> ImagesLoadedXml<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, DownloadStringCompletedEventArgs e<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  var document <span style="color: #008000;">=</span> XDocument<span style="color: #008000;">.</span><span style="color: #0000FF;">Parse</span><span style="color: #008000;">&#40;</span>e<span style="color: #008000;">.</span><span style="color: #0000FF;">Result</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  var flickrImages <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">from</span> found
    <span style="color: #0600FF; font-weight: bold;">in</span> document<span style="color: #008000;">.</span><span style="color: #0000FF;">Descendants</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;photo&quot;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">.</span><span style="color: #0000FF;">Take</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">20</span><span style="color: #008000;">&#41;</span>
    <span style="color: #0600FF; font-weight: bold;">select</span> <span style="color: #008000;">new</span> FlickrImage
    <span style="color: #008000;">&#123;</span>
       Id <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&#41;</span>found<span style="color: #008000;">.</span><span style="color: #0000FF;">Attribute</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;id&quot;</span><span style="color: #008000;">&#41;</span>,
       Farm <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span><span style="color: #008000;">&#41;</span>found<span style="color: #008000;">.</span><span style="color: #0000FF;">Attribute</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;farm&quot;</span><span style="color: #008000;">&#41;</span>,
       Server <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&#41;</span>found<span style="color: #008000;">.</span><span style="color: #0000FF;">Attribute</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;server&quot;</span><span style="color: #008000;">&#41;</span>,
       Secret <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&#41;</span>found<span style="color: #008000;">.</span><span style="color: #0000FF;">Attribute</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;secret&quot;</span><span style="color: #008000;">&#41;</span>,
     <span style="color: #008000;">&#125;</span><span style="color: #008000;">;</span>
&nbsp;
    viewModel<span style="color: #008000;">.</span><span style="color: #0000FF;">FlickrImages</span> <span style="color: #008000;">=</span> flickrImages<span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Same as above but with Json</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> LoadImages<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  var webClient <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> WebClient<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  var uri <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Uri<span style="color: #008000;">&#40;</span>
<span style="color: #666666;">&quot;http://api.flickr.com/services/rest/?method=flickr.photos.search&amp;api_key=[yourapikey]&amp;user_id=[youruserid]&amp;format=json&amp;nojsoncallback=1&quot;</span>
  <span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  webClient<span style="color: #008000;">.</span><span style="color: #0000FF;">OpenReadCompleted</span> <span style="color: #008000;">+=</span> ImagesLoadedJson<span style="color: #008000;">;</span>
  webClient<span style="color: #008000;">.</span><span style="color: #0000FF;">OpenReadAsync</span><span style="color: #008000;">&#40;</span>uri<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> ImagesLoadedJson<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, OpenReadCompletedEventArgs e<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #008080; font-style: italic;">// grab the result stream</span>
  var stream <span style="color: #008000;">=</span> e<span style="color: #008000;">.</span><span style="color: #0000FF;">Result</span><span style="color: #008000;">;</span>
  <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>stream <span style="color: #008000;">==</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">&#41;</span> <span style="color: #0600FF; font-weight: bold;">return</span><span style="color: #008000;">;</span>
  <span style="color: #008080; font-style: italic;">// extract json array of images</span>
  var jsonImages <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span>JsonArray<span style="color: #008000;">&#41;</span>JsonValue<span style="color: #008000;">.</span><span style="color: #0000FF;">Load</span><span style="color: #008000;">&#40;</span>stream<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;photos&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;photo&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span>
  <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>jsonImages <span style="color: #008000;">==</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">&#41;</span> <span style="color: #0600FF; font-weight: bold;">return</span><span style="color: #008000;">;</span>
  <span style="color: #008080; font-style: italic;">// convert json images to strongly typed collection and set as DataContext</span>
  viewModel<span style="color: #008000;">.</span><span style="color: #0000FF;">FlickrImages</span> <span style="color: #008000;">=</span> jsonImages
    <span style="color: #008000;">.</span><span style="color: #0000FF;">Take</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">20</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">.</span><span style="color: #0600FF; font-weight: bold;">Select</span><span style="color: #008000;">&#40;</span>image <span style="color: #008000;">=&gt;</span>
      <span style="color: #008000;">new</span> FlickrImage
      <span style="color: #008000;">&#123;</span>
        Id <span style="color: #008000;">=</span> image<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;id&quot;</span><span style="color: #008000;">&#93;</span>,
        Farm <span style="color: #008000;">=</span> image<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;farm&quot;</span><span style="color: #008000;">&#93;</span>,
        Server <span style="color: #008000;">=</span> image<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;server&quot;</span><span style="color: #008000;">&#93;</span>,
        Secret <span style="color: #008000;">=</span> image<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;secret&quot;</span><span style="color: #008000;">&#93;</span>
      <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p><strong>UI</strong><br />
Finally, the xaml markup for the tab control:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sdk:TabControl</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;LayoutRoot&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sdk:TabItem</span> <span style="color: #000066;">Header</span>=<span style="color: #ff0000;">&quot;Twitter&quot;</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;TwitterTab&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Grid</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;TwitterGrid&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Grid.RowDefinitions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;238*&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;28*&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Grid.RowDefinitions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ScrollViewer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ItemsControl</span> <span style="color: #000066;">ItemsSource</span>=<span style="color: #ff0000;">&quot;{Binding Tweets}&quot;</span> <span style="color: #000066;">Grid.RowSpan</span>=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ItemsControl.ItemTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;DataTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;StackPanel</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;TweetsPanel&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">Text</span>=<span style="color: #ff0000;">&quot;{Binding Message}&quot;</span> </span>
<span style="color: #009900;">         <span style="color: #000066;">TextWrapping</span>=<span style="color: #ff0000;">&quot;Wrap&quot;</span> </span>
<span style="color: #009900;">         <span style="color: #000066;">FontSize</span>=<span style="color: #ff0000;">&quot;14&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">Text</span>=<span style="color: #ff0000;">&quot;{Binding Published, StringFormat='{}{0:ddd, dd MMM HH:mm}'}&quot;</span> </span>
<span style="color: #009900;">         <span style="color: #000066;">FontStyle</span>=<span style="color: #ff0000;">&quot;Italic&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/StackPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/DataTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ItemsControl.ItemTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ItemsControl<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ScrollViewer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;HyperlinkButton</span> <span style="color: #000066;">Grid.Row</span>=<span style="color: #ff0000;">&quot;1&quot;</span> </span>
<span style="color: #009900;">    <span style="color: #000066;">NavigateUri</span>=<span style="color: #ff0000;">&quot;http://twitter.com/dannyt&quot;</span> </span>
<span style="color: #009900;">    <span style="color: #000066;">Content</span>=<span style="color: #ff0000;">&quot;@DannyT&quot;</span> </span>
<span style="color: #009900;">    <span style="color: #000066;">HorizontalAlignment</span>=<span style="color: #ff0000;">&quot;Right&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">FontSize</span>=<span style="color: #ff0000;">&quot;14&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">FontWeight</span>=<span style="color: #ff0000;">&quot;Bold&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Grid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sdk:TabItem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sdk:TabItem</span> <span style="color: #000066;">Header</span>=<span style="color: #ff0000;">&quot;Flickr&quot;</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;FlickrTab&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ItemsControl</span> <span style="color: #000066;">ItemsSource</span>=<span style="color: #ff0000;">&quot;{Binding FlickrImages}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ItemsControl.ItemsPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ItemsPanelTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Controls:WrapPanel</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ItemsPanelTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ItemsControl.ItemsPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ItemsControl.ItemTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;DataTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Image</span> <span style="color: #000066;">Source</span>=<span style="color: #ff0000;">&quot;{Binding ImageUrl}&quot;</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;88&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/DataTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ItemsControl.ItemTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ItemsControl<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>            
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sdk:TabItem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sdk:TabItem</span> <span style="color: #000066;">Header</span>=<span style="color: #ff0000;">&quot;Blog&quot;</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;BlogTab&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Grid</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;BlogGrid&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Grid.RowDefinitions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;238*&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;28*&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Grid.RowDefinitions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ScrollViewer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ItemsControl</span> <span style="color: #000066;">ItemsSource</span>=<span style="color: #ff0000;">&quot;{Binding BlogPosts}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ItemsControl.ItemTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;DataTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;StackPanel</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;PostsPanel&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;HyperlinkButton</span> <span style="color: #000066;">NavigateUri</span>=<span style="color: #ff0000;">&quot;{Binding Link}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">Text</span>=<span style="color: #ff0000;">&quot;{Binding Path=Title}&quot;</span> </span>
<span style="color: #009900;">         <span style="color: #000066;">TextWrapping</span>=<span style="color: #ff0000;">&quot;Wrap&quot;</span> </span>
<span style="color: #009900;">         <span style="color: #000066;">FontSize</span>=<span style="color: #ff0000;">&quot;14&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/HyperlinkButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">Text</span>=<span style="color: #ff0000;">&quot;{Binding PubDate, StringFormat='{}{0:ddd, dd MMM HH:mm}'}&quot;</span> </span>
<span style="color: #009900;">         <span style="color: #000066;">FontStyle</span>=<span style="color: #ff0000;">&quot;Italic&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">Text</span>=<span style="color: #ff0000;">&quot;{Binding Description}&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">TextWrapping</span>=<span style="color: #ff0000;">&quot;Wrap&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/StackPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/DataTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ItemsControl.ItemTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ItemsControl<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ScrollViewer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;HyperlinkButton</span> <span style="color: #000066;">Grid.Row</span>=<span style="color: #ff0000;">&quot;1&quot;</span> </span>
<span style="color: #009900;">    <span style="color: #000066;">NavigateUri</span>=<span style="color: #ff0000;">&quot;http://danny-t.co.uk/&quot;</span> </span>
<span style="color: #009900;">    <span style="color: #000066;">Content</span>=<span style="color: #ff0000;">&quot;danny-t.co.uk&quot;</span> </span>
<span style="color: #009900;">    <span style="color: #000066;">HorizontalAlignment</span>=<span style="color: #ff0000;">&quot;Right&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">FontSize</span>=<span style="color: #ff0000;">&quot;14&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">FontWeight</span>=<span style="color: #ff0000;">&quot;Bold&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Grid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sdk:TabItem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sdk:TabControl<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>If you have any questions post them in the comments, I can give more detail or provide the sln if it&#8217;s really wanted <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<h3>What did I think?</h3>
<p>I&#8217;ve really enjoyed familiarising myself with Silverlight the past few days, it&#8217;s evolving at such a rapid pace and has come so far in a short space of time. The main thing for me however, is that the tools really sets Silverlight apart from Flash/Flex and AJAX development. </p>
<p>In terms of capabilities there really isn&#8217;t much in it between Flash and Silverlight, each has its own unique features and for some scenarios one will stand out from the other but for day to day applications development they are fair on par in terms of plugin features. When it comes to the &#8220;reach&#8221; argument there&#8217;s no doubt Silverlight is bottom of the pile versus Flash or AJAX applications when a broad an audience as possible is of significance. </p>
<p>But from a developers standpoint, developing for Silverlight is an absolute joy. Powerful tools, language and fast compilation makes for an extremely efficient development story, far more so than Flash or AJAX dev in my experience. There&#8217;s still lots to do, and I&#8217;m not ready to ditch any one technology at the moment. It&#8217;s just nice to have so many great options available to us <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Where next?</h3>
<p>I didn&#8217;t get onto skinning/styling which is next on the agenda so will probably continue to use this application as a base for those. I also still want to have a play with WM7 so that&#8217;s on the cards too.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/02/16/learning-silverlight-4-sample-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning Silverlight #3 &#8211; Getting Started</title>
		<link>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-3-getting-started/</link>
		<comments>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-3-getting-started/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 22:01:12 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=341</guid>
		<description><![CDATA[This is a series of posts of my journey learning Silverlight one weekend: Learning Silverlight Learning Silverlight #1 – where to start Learning Silverlight #2 – Tooling Up Learning Silverlight #3 – Getting Started (this post) Learning Silverlight #4 – Sample Project Now I&#8217;m all set up I want to immerse myself with as much [...]]]></description>
			<content:encoded><![CDATA[<hr />
This is a series of posts of my journey learning Silverlight one weekend:</p>
<ul>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight/">Learning Silverlight</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-1-where-to-start/">Learning Silverlight #1 – where to start</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-2-tooling-up/">Learning Silverlight #2 – Tooling Up</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-3-getting-started/">Learning Silverlight #3 – Getting Started</a> (this post)</li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/16/learning-silverlight-4-sample-project/">Learning Silverlight #4 – Sample Project</a></li>
</ul>
<hr />
<br />
Now I&#8217;m all set up I want to immerse myself with as much up-front information as possible, video tutorials are all the rage and providing you have the time can be extremely valuable. Here are the videos I watched and my notes taken whilst watching. These notes detail what I learned and general thoughts as I watched. </p>
<p>These aren&#8217;t going to mean a great deal alone and I&#8217;m not intending to regurgitate the content of the videos but might be useful for others looking for specific content without having to watch each and every video themselves or may be interesting to reference if you watch them yourself. They are also useful for myself as reference when I remember seeing how to do something but can&#8217;t recall where. </p>
<h3>First video &#8211; Build your first SL application on Silverlight.net</h3>
<p><a href="http://www.silverlight.net/learn/videos/all/build-your-first-silverlight-web-application/">Build your first Silverlight Application</a></p>
<p>This video was, as expected, very basic. At some points it went at a frustratingly slow pace however this is understandable due to the very nature of the video. Unfortunately when starting on a new technology, even if you have a lot of relevant experience I find it&#8217;s best to start from the beginning even though you might already be aware of or assume 90% of what&#8217;s presented the other 10% is key fundamentals that you will suffer from by not knowing later on.<br />
What was learned</p>
<ul>
<li>Render Transforms (scale/skew) and Effects (dropshadow) applied as child elements of a component.</li>
<li>Buttons and textboxes can contain child components, textblock is simply a text output</li>
<li>Click handles near edges to &#8220;link&#8221; dimensions (anchor &#8211; grow with page)</li>
<li>To enable binding to a class, implement INotifyPropertyChanged, dispatch PropertyChanged event</li>
<li>Set DataContext on view to bind to a model (i.e. a class or collection of properties the view is presenting)</li>
<li>Binding has TwoWay option to read/write to bindings</li>
</ul>
<p>This felt a bit too much like &#8220;you will be building a website in Silverlight&#8221; for my taste. Which, is probably what a lot of people will do&#8230; unfortunately. Throughout I found myself needing to think about which bits are useful opposed to those showing the inflexible clunky wizard approaches (<a href="http://www.devx.com/codemag/Article/39837/1763/page/1">add service reference &#8211; Boo!</a>).</p>
<p>Overall, it was useful from a xaml perspective and laying the foundations but really what took 35 minutes of time could have been gleaned in less than 10 with a more targeted video. That&#8217;s not intended as a complaint against the video, it was an excellent tutorial for someone completely new to Silverlight, .Net and general web/application programming but it would be nice to have an option of a whistlestop tour version which highlights the Silverlight specifics rather than the details that are familiar to anyone used to working with Visual Studio.</p>
<p>After a bit of searching around, I couldn&#8217;t really find a decent next-step on Silverlight.Net, lots of specific tutorials for specific tasks but I&#8217;m still looking for more general overview type content to explore the main features and workflow of developing with Silverlight. So&#8230; onto the TekPub series.</p>
<h3>Tekpub &#8211; Mastering Silverlight series</h3>
<p><a href="http://tekpub.com/productions/ag">Mastering Silverlight</a> by <a href="http://twitter.com/#!/bennage">Christopher Bennage</a></p>
<p>The first 2 minutes of just the preview gave me a good feeling about these videos. They assumed some knowledge of VS and C# and aims to deliver the fundementals for enterprise app development and lay foundations for WP7, gaming and other more advanced subjects &#8211; perfect. In fact just watching the preview I learned a couple of things:</p>
<ul>
<li>Design time DataContext &#8211; design view realistic data <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>AttachedProperties &#8211; brief snippet but enough to give an idea of what this was about and wanting to know more.</li>
</ul>
<p>So I whipped out the company credit card and bought the series, hopefully it delivers.</p>
<h3>Mastering Silverlight 1</h3>
<ul>
<li>.net version selected in new project dialogue doesn&#8217;t matter as SL is its own subset of the framework</li>
<li>visual designer (design view) known as &#8220;cider&#8221;</li>
<li>d: is the namespace that references blend</li>
<li>Grid component, mouse over top of first row/left of first column and click to add columns/rows</li>
<li>Right click, reset layout, all &#8211; sensible default layout <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Document outline panel &#8211; hierarchy of components, useful for selecting specific component within the displaylist</li>
<li>Sizing options: &#8220;Fixed&#8221; = explicit pixel value, &#8220;*&#8221; = proptional spread (percentage), &#8220;Auto&#8221; = large enough to fit child components</li>
<li>ItemsControl &#8211; list component</li>
<li>StackPanel &#8211; vertical layout container (VBox equivilent)</li>
<li>&#8220;Binding&#8221; alone will just bind to the current DataContext of the view</li>
<li>&#8220;Binding MyProperty&#8221; will bind to the MyProperty property of the current DataContext</li>
<li>d:DataContext allows for a dummy datacontext to use at designtime</li>
<li>StringFormat can be applied to binding (e.g. providing a datetime format)</li>
<li>PropertyElement syntax: Child object properties and xaml shortcuts</li>
<li>MarkupExtensions</li>
<li>Button extends Content, which means it can contain other controls</li>
<li>Attached Properties: proeprties relevant to a parent control (Grid.Row=1)</li>
<li>x:Name vs Name interchangable because xaml parser maps the Name property, but x:Name explicitly is for code-beind access to an element, Name alone is dependant on the element having a Name property in the first place.</li>
</ul>
<h3>Mastering Silverlight 2 &#8211; Xaml Layouts</h3>
<ul>
<li>Three default layouts out of the box Grid, Canvas and StackPanel</li>
<li>Attached property ZIndex &#8211; manages z order</li>
<li>Can position items outside the bounds of the canvas they are on</li>
<li>&#8220;Auto&#8221; sizes a container to be as small as it can be respecting the properties of it&#8217;s children</li>
<li>* sizes proportionally based on available space and other * sized elements, essentially a percentage but uses an arbitary number and compares against other * sizes (not sure why it doesn&#8217;t just use percentage)</li>
<li>Elements within a grid cell sized with * will respect it&#8217;s boundaries clipping if it surpasses (e.g. putting a 200px rectangle in a 100px column), ColumnSpan/RowSpan will make the element spread between two rows/cols.</li>
<li>&#8220;Stretch&#8221; horizontal/vertical alignment will respect explicitly set width/height, without will make element fill available space</li>
<li>StackPanel has orientation property (vertical/horizontal = VBox/HBox)</li>
<li>Panels handle layout in 2 passes: Measure then Arrange</li>
<li>Silverlight toolkit (open source extended set of classes beyond packaged Silverlight release) offers DockPanel and WrapPanel</li>
<li>Attached properties from external libs (eg. silverlight toolkit) must be referenced with namespace (e.g. toolkit:DockPanel.Dock=&#8221;Top&#8221;)</li>
<li>WrapPanel same as StackPanel with wrapping</li>
</ul>
<h3>Mastering Silverlight 3 &#8211; Controls</h3>
<ul>
<li>Border can only have one child, if you need more wrap a grid or other container with the border</li>
<li>Viewbox used for scaling/resizing other elements by default will fill available space</li>
<li>Default Stretch of Viewbox is &#8220;Uniform&#8221;: constrains proportions</li>
<li>Stretch =&#8221;None&#8221; will not transform image but will clip within the bounds of the Viewbox</li>
<li>StretchDirection constrains if an element can be scaled up or down or both (like a min/max width/height)</li>
<li>GridSplitter alignment affects which side of the cell it operates on</li>
<li>Setting horizontalAlignment to center will essentially use the column as an extension of the splitter resizing the columns either side</li>
<li>FileDialogues, can specify file filter or collection of filters.</li>
<li>Multiselect returns IEnumerable collection of FileInfo objects.</li>
</ul>
<h3>Mastering Silverlight 4 &#8211; Databinding</h3>
<ul>
<li>FrameworkElement is base class for all ui controls (similar to UIComponent)</li>
<li>Can pass empty string to change notification event to update all bound properties at once (use sparingly to avoid redundant work)<br />
&#8230;Seems messy having change notification events fired throughout the model&#8230;</li>
<li>ValueConverters map different types to element properties (e.g. bool to visibility)</li>
<li>IVAlueConverter interface</li>
<li>UserControl.Resources element creates a dictionary of &#8216;Resource&#8217; objects (E.g. ValueConverters)</li>
<li>Apply converter in Binding expression by setting the Converter property to the key specified in the Resources dictionary<br />
&#8230; Feels convoluted for such a seemingly simple task but can see how this might prove useful in more complex scenarios</li>
<li>Binding Mode has &#8220;OneTime&#8221; option &#8211; as you&#8217;d expect this will only update the property once when the binding is created then ignore subsequent changes</li>
<li>Binding is reflected at design time</li>
<li>Binding can be applied to other elements using the ElementName property then using the Path to determine which property of the element to use</li>
<li>Binding can be applied to a Resource dictionary item</li>
</ul>
<h3>Mastering Silverlight 5 &#8211; Building a business app</h3>
<ul>
<li>&#8220;Quick, not pretty&#8221; &#8211; eek! This perspective on app development seems ingrained in some within the MS world <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </li>
<li>no ADO.Net libs in SL</li>
<li>Project type &#8220;Silverlight Business Application&#8221; gives a default applciation shell with views, helpers, a login form and a web project offering a wcf ria services implementation</li>
<li>GlobalSurpressions.cs turns off code analysis routines</li>
<li>.xap is the file for a compiled silverlight project used to host in a web application</li>
<li>Shared code between SL and web app, compiled for both but doesn&#8217;t need separate assembly<br />
&#8230; not sure if i like or not, good for DTOs perhaps but easy to abuse and cross concerns over boundaries</li>
<li>RIA Services offers authentication service and registration service out of the box</li>
<li>RIA services uses entity framework by default can use whichever ORM you wish</li>
<li>In SL RIA services offers a &#8220;domain context&#8221;<br />
&#8230;unsurprisingly I do not like the look of RIA Services as it just encourages too much crossed roles between front-end and backend. The frontnend has too much knowledge of the service layer&#8217;s responsibilities.</li>
<li>DataPage object allows setting of page size and handles paging automatically<br />
&#8230;Example of why bad, the client application in the example triggered an EF error by changing some client code trying to add result paging!? This is absolutely a server-side task and not something the client should be instigating. On first encounters WCF RIA Services extremely tightly couples your client to your service implementations. The whole integration of it suggests the same developer is doing the front-end and back-end development. In all but the rarest of cases this will lead to a poor experience. The whole discussion is worthy of it&#8217;s own post, fortunately someone has <a href="http://davybrion.com/blog/2010/05/why-you-shouldnt-expose-your-entities-through-your-services/">done</a> <a href="http://davybrion.com/blog/2010/01/hey-microsoft-our-databases-arent-services/">that</a> for me <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<h3>Mastering Silverlight 6 &#8211; Building a business app part 2</h3>
<ul>
<li>DataForm control &#8211; builds a form based on a model<br />
&#8230;again don&#8217;t like the sound of this as someone should be giving such interactions more considered thought and attention to detail.</li>
<li>DataForm binds to a collection allowing iterating through the collection editing one record at a time.<br />
&#8230; here, the model is determining UI elements, sometimes this makes sense (e.g. required fields) but again, this is something that should be given due consideration at the interface/ux level.</li>
<li>Navigation framework allows navigating an app based on URI, solves browser back button issues, deep linking and refreshing<br />
&#8230;Services being declared in views doesn&#8217;t feel right, probably this way for demonstration purposes, hope to read some alternative approaches so views aren&#8217;t bound directly to web services.</li>
</ul>
<p>I skipped through the last video as it was a bit too focused on building a form-based application in an overly prescribed manner. This may be useful at some point when experimenting with different approaches for creating datagrid and forms driven apps but I&#8217;m happy with what I obtained from the previous videos for now.</p>
<h3>End of day 1 Summary</h3>
<p>Well throughout the day I have watched about 4 hours worth of Silverlight content and have got a lot from it. I would definitely recommend the Tekpub series to anyone else wanting to get up to speed. The author of the videos (Christopher Bennage) knows his stuff and presents the content very clearly and at a good pace. After the first four videos I was really impressed with Silverlight and the Visual Studio integration, it&#8217;s come a long long way since the last time I investigated (pre v2). I was somewhat disappointed in the final two videos but that&#8217;s not an issue with the actual tutorials but rather the technology they presented. WCF RIA Services are not for me, they are far to reminiscent of the perils of wizards and drag and drop RAD that are great for product demos and getting new developers up and running quickly but very quickly fall flat as soon as some levels of complexity are introduced into a system. I will post more on this another time as that&#8217;s not the intended focus of this exercise <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<h3>Where Next?</h3>
<p>I&#8217;m keen to actually start coding so will have a play around producing a trivial sample application next. I also want to spend some time learning Blend so will look for some good video tutorials on that. I also want to spend some time researching some best-practices (such as MVVM and similar) and look into alternatives to RIA Services. Finally, if I have time I&#8217;d like to take a look at WP7 as I&#8217;m getting sucked into the hype around that at the moment. That&#8217;s enough for today though I feel I&#8217;ve learned a lot for one evening and one day, we&#8217;ll see what tomorrow brings&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-3-getting-started/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning Silverlight #2 &#8211; Tooling Up</title>
		<link>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-2-tooling-up/</link>
		<comments>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-2-tooling-up/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 11:53:35 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=335</guid>
		<description><![CDATA[This is a series of posts of my journey learning Silverlight one weekend: Learning Silverlight Learning Silverlight #1 – where to start Learning Silverlight #2 – Tooling Up (this post) Learning Silverlight #3 – Getting Started Learning Silverlight #4 – Sample Project I already have Visual Studio 2010 Professional installed as I do a lot [...]]]></description>
			<content:encoded><![CDATA[<hr />
This is a series of posts of my journey learning Silverlight one weekend:</p>
<ul>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight/">Learning Silverlight</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-1-where-to-start/">Learning Silverlight #1 – where to start</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-2-tooling-up/">Learning Silverlight #2 – Tooling Up</a> (this post)</li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-3-getting-started/">Learning Silverlight #3 – Getting Started</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/16/learning-silverlight-4-sample-project/">Learning Silverlight #4 – Sample Project</a></li>
</ul>
<hr />
<br />
I already have Visual Studio 2010 Professional installed as I do a lot of server-side .net day-to-day. Adding the <a href="http://www.microsoft.com/web/gallery/install.aspx?appid=silverlight4tools;silverlight4toolkit;riaservicestoolkit">Silverlight tools</a> was a piece of cake using the fantastic <a href="http://www.microsoft.com/web/downloads/platform.aspx">MS Web Platform Installer</a>.</p>
<p>Next up was to get Expression Blend, didn&#8217;t spend any time looking into the different versions, just went for the <a href="http://www.microsoft.com/expression/try-it/Default.aspx">60 trial of Expression Blend Ultimate</a>. I did have a previously intalled RC but that had expired so removed it and went for the latest version. For some strange reason the installer didn&#8217;t work when downloaded with Chrome (something about not a valid win32 application) but did it again in IE and surprise surprise it worked. I can&#8217;t think of any reason why it wouldn&#8217;t work with Chrome so will give the benefit of the doubt and put it down to a bad download. Other than that, installation was plain sailing.</p>
<p>I installed the entire Expression Ultimate Suite, whether I&#8217;ll use anything other than Blend I don&#8217;t know but as disk space is cheap and plentiful it was the easy option <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Seemingly that&#8217;s all that is needed to get up and running to develop Silverlight so next will be onto actually learning something.</p>
<p>UPDATE: If you don&#8217;t follow this series of posts beyond here, it is also worth downloading and installing the <a href="http://silverlight.codeplex.com/">Silverlight Toolkit from codeplex</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-2-tooling-up/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Learning Silverlight #1 &#8211; where to start</title>
		<link>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-1-where-to-start/</link>
		<comments>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-1-where-to-start/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 04:05:21 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=326</guid>
		<description><![CDATA[This is a series of posts of my journey learning Silverlight one weekend: Learning Silverlight Learning Silverlight #1 – where to start (this post) Learning Silverlight #2 – Tooling Up Learning Silverlight #3 – Getting Started Learning Silverlight #4 – Sample Project Okay so I set myself the fun goal of learning Silverlight. First thing [...]]]></description>
			<content:encoded><![CDATA[<hr />
This is a series of posts of my journey learning Silverlight one weekend:</p>
<ul>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight/">Learning Silverlight</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-1-where-to-start/">Learning Silverlight #1 – where to start</a>  (this post)</li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-2-tooling-up/">Learning Silverlight #2 – Tooling Up</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-3-getting-started/">Learning Silverlight #3 – Getting Started</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/16/learning-silverlight-4-sample-project/">Learning Silverlight #4 – Sample Project</a></li>
</ul>
<hr />
<br />
<a href="http://danny-t.co.uk/wp-content/uploads/Silverlight.png"><img src="http://danny-t.co.uk/wp-content/uploads/Silverlight-150x150.png" alt="" title="Silverlight" width="150" height="150" class="alignright size-thumbnail wp-image-321" /></a>Okay so I set myself the fun goal of learning Silverlight. First thing to do is to find some resources that I&#8217;m going to use for the journey. I always find starting to learn a new technology is much more difficult than enhancing your knowledge on an existing one as you constantly evolve your knowledge through day-to-day work and news. Starting with a blank canvas is much more intimidating when you have no specific project to direct you. A project may be something I set myself once I have the basics down.</p>
<h3>Tweet tweet</h3>
<p><a href="http://danny-t.co.uk/wp-content/uploads/logo_twitter_withbird_1000_white_blue.png"><img src="http://danny-t.co.uk/wp-content/uploads/logo_twitter_withbird_1000_white_blue-300x55.png" alt="" title="logo_twitter_withbird_1000_white_blue" width="300" height="55" class="alignright size-medium wp-image-328" /></a>The first thing I&#8217;ve done, which is a bit different to any previous technology learning processes I&#8217;ve been through, is to prepare a list of suitable folk on twitter that might prove useful, stuck the list into a column on <a href="http://www.tweetdeck.com/">Tweetdeck</a> and am using that to be &#8220;in the know&#8221; on the latest and greatest.</p>
<p><a href="http://twitter.com/#!/list/DannyT/silverlighters">Handy Silverlight folk</a></p>
<h3>Silverlight.net</h3>
<p>Next up was the more obvious starting point <a href="http://www.silverlight.net/">Silverlight.net</a><br />
This seems a reasonable reference point but I&#8217;m a bit hesitant about the &#8216;getting started&#8217; side of things as these tend to be really basic. Will give it a chance though and see where it takes me.</p>
<h3>Down the pub</h3>
<p><a href="http://danny-t.co.uk/wp-content/uploads/tekpub_log.png"><img src="http://danny-t.co.uk/wp-content/uploads/tekpub_log.png" alt="" title="tekpub_log" width="217" height="46" class="alignright size-full wp-image-327" /></a>Another starting point I&#8217;ve had some success with previously is <a href="http://tekpub.com/">TekPub.com</a> so I went to see if they had any Silverlight content. I was pleased to find they did and due to excellent previous experience of watching their NHibernate and asp.net MVC videos I&#8217;m more than willing to give the <a href="http://tekpub.com/productions/ag">Tekpub Silverlight vids</a> a try.</p>
<p>Due to the compacted timescale I have available, I&#8217;m going to focus on video tutorials primarily rather than books or published articles/blogs. I think books are an excellent way to make use of downtime when you&#8217;re not at your computer but are much slower paced than good video demonstrations. Well that&#8217;s the hope anyway!</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-1-where-to-start/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Learning Silverlight</title>
		<link>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight/</link>
		<comments>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 03:26:55 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=320</guid>
		<description><![CDATA[This is a series of posts of my journey learning Silverlight one weekend: Learning Silverlight (this post) Learning Silverlight #1 – where to start Learning Silverlight #2 – Tooling Up Learning Silverlight #3 – Getting Started Learning Silverlight #4 – Sample Project It&#8217;s been a while since I dived into Silverlight and rolled my sleeves [...]]]></description>
			<content:encoded><![CDATA[<hr />
This is a series of posts of my journey learning Silverlight one weekend:</p>
<ul>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight/">Learning Silverlight</a> (this post)</li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-1-where-to-start/">Learning Silverlight #1 – where to start</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-2-tooling-up/">Learning Silverlight #2 – Tooling Up</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight-3-getting-started/">Learning Silverlight #3 – Getting Started</a></li>
<li><a href="http://danny-t.co.uk/index.php/2011/02/16/learning-silverlight-4-sample-project/">Learning Silverlight #4 – Sample Project</a></li>
</ul>
<hr />
<br />
It&#8217;s been a while since I dived into Silverlight and rolled my sleeves up and got some coding done. I&#8217;ve kept track of Silverlights momentum, popularity, feature-set, growth and toolset and personally, have been quite impressed (despite the typical mud-slinging that goes on in our industry <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ).</p>
<p><a href="http://danny-t.co.uk/wp-content/uploads/Silverlight.png"><img src="http://danny-t.co.uk/wp-content/uploads/Silverlight-268x300.png" alt="" title="Silverlight" width="268" height="300" class="alignright size-medium wp-image-321" /></a>Anyway, for the first time in who knows how long I have found myself a weekend spare which I am intending to use to do a bit of a Silverlight deep-dive. For anyone reading this not familiar, I have a fairly strong background in .net and extensive experience of Flash and Flex. I&#8217;m hoping this provides me with a decent platform and offers a rapid learning curve for this exercise.</p>
<p>I&#8217;m mostly interested in seeing the potential for how productive Silverlight development can be. I am fairly hopeful that the tools (namely Visual Studio and Blend) will be a strong artillery for RIA development. I am also intrigued to see how much of the forming the basis of an app in Blend through drag n drop is actually useful for producing real, maintainable, efficient apps. Rather than the typical no-code solutions I&#8217;ve experienced in the past which have been more or less useless beyond simple proof of concepts. I&#8217;m sure there is a point where Blend stops and actual coding takes over, I&#8217;m just curious to find out what that point is. E.g. is it just skinning/styling or can there be some actual useful time-saving gained in the application development process through it&#8217;s state-management, data-binding and other wizardy type features. </p>
<p>I&#8217;m going to be blogging and tweeting the progress so feel free to follow and I&#8217;m very much open to ideas, opinions and suggestions.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Silverlight Masterclass</title>
		<link>http://danny-t.co.uk/index.php/2010/04/28/silverlight-masterclass/</link>
		<comments>http://danny-t.co.uk/index.php/2010/04/28/silverlight-masterclass/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 09:41:24 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=198</guid>
		<description><![CDATA[A while back I took a training course on the then new Microsoft RIA toolset offerings. The platform then was definitely not what it is today and now I would consider the MS offering a very solid platform for building RIAs upon and is now pushing Adobe for new and faster innovation. As a developer [...]]]></description>
			<content:encoded><![CDATA[<p>A while back I took a <a href="http://danny-t.co.uk/index.php/2007/07/12/silverlight-adventures/">training course on the then new Microsoft RIA toolset</a> offerings. The platform then was definitely not what it is today and now I would consider the MS offering a very solid platform for building RIAs upon and is now pushing Adobe for new and faster innovation. As a developer (and RIA agency) this is all good for both camps.</p>
<p>If you&#8217;ve been considering getting into Silverlight development in an effort to extend your skillset bbits is offering a <a href="http://silverlightmasterclass.net">Silverlight Masterclass</a> in the UK in June. Here follows the spiel:</p>
<blockquote><p>The Silverlight Tour comes to the UK – and it’s called the Masterclass!</p>
<p>This 3 day hands-on training with both designer and developer tracks looks awesome and (uniquely) has two expert trainers per course. </p>
<p>Currently scheduled in London, Manchester, and the Midlands for June, all courses also come with the chance to win an xbox 360, and Silverlight Spy licences!</p>
<p>Early bird discount of £100 if you book in May, and if you are a member of #SLUGUK or #nxtgenug there are additional discounts to be had.</p>
<p>Full Details are here: <a href="http://silverlightmasterclass.net">http://silverlightmasterclass.net</a></p>
<p>In addition bbits are holding a raffle for a free ticket for the masterclass. To be eligible to win the ticket (worth £1095!) you MUST paste this text, including all links, into your blog and email <a href="mailto:Ian@bbits.co.uk">Ian@bbits.co.uk</a> with the url to the blog entry.  The draw will be made on June 1st and the winner informed by email and on <a href="http://silverlightmasterclass.net">http://silverlightmasterclass.net</a> </p></blockquote>
<p>So if Silverlight has been on your to-do list for a while and you want to short-cut to being a pro check it out <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/04/28/silverlight-masterclass/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimal RIA development hardware</title>
		<link>http://danny-t.co.uk/index.php/2010/02/13/optimal-ria-development-hardware/</link>
		<comments>http://danny-t.co.uk/index.php/2010/02/13/optimal-ria-development-hardware/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 22:06:23 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Mac/OS X]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=170</guid>
		<description><![CDATA[No matter how much we spend on new hardware, progress bars, spinning timers, system freezes and occasionally crashes are a familiar site when developing RIAs. My Macbook Pro seems to be fast approaching the end of it&#8217;s life and I&#8217;ve started to think about a new machine. So I thought rather than spend forever looking [...]]]></description>
			<content:encoded><![CDATA[<p>No matter how much we spend on new hardware, progress bars, spinning timers, system freezes and occasionally crashes are a familiar site when developing RIAs. My Macbook Pro seems to be fast approaching the end of it&#8217;s life and I&#8217;ve started to think about a new machine.</p>
<p>So I thought rather than spend forever looking up hardware specs, recommended platforms and whatever, I&#8217;d just do the lazy thing and put it out there to the <a href="http://en.wikipedia.org/wiki/Lazyweb">#lazyweb</a> and see what came up.</p>
<p><a href="http://danny-t.co.uk/wp-content/uploads/riahardware.png"><img src="http://danny-t.co.uk/wp-content/uploads/riahardware.png" alt="" title="ria hardware" width="608" height="300" class="aligncenter size-full wp-image-171" /></a></p>
<p>Within moments the ever-helpful <a href="http://www.seantheflexguy.com/">seantheflexguy</a> responded with his spec and his endorsement of his setup:<br />
<a href="http://twitter.com/seantheflexguy/statuses/9070997938"><img src="http://danny-t.co.uk/wp-content/uploads/seantheflexguyRiaSpec.png" alt="" title="seantheflexguyRiaSpec" width="538" height="268" class="aligncenter size-full wp-image-172" /></a></p>
<p>Well, that was very useful and I thought how great it would be if we could collate more information about other RIA developers&#8217; setups and how they rate them. </p>
<p>So feel free to contribute and copy the following into the comments and fill it in and you can help <del datetime="2010-02-13T21:36:34+00:00">do my research for me</del> share hardware spec for the benefit of the RIA community <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .<br />
<code><br />
Computer:<br />
Processor:<br />
RAM:<br />
Hard Disk Size:<br />
Hard Disk Speed:<br />
Primary Software Used:<br />
Rating:  / 10<br />
Other Comments:<br />
</code></p>
<p>Here&#8217;s mine for starters:</p>
<p>Computer: Macbook Pro 17&#8243;<br />
Processor: 2.4Ghz Intel Core 2 Duo<br />
RAM: 4Gb<br />
Hard Disk Size: 150Gb<br />
Hard Disk Speed: 5600rpm (i think)<br />
Primary RIA development Software Used: Flex Builder, Visual Studio 2008 (under VMWare Fusion), Sql Server 2008<br />
Rating:  7 / 10<br />
Other Comments: The machine has been a real workhorse for the past 2 years and has taken quite a bit of torment from me. The hardware has been fairly robust although the problems are starting to present themselves now (now i&#8217;m out of warranty!) and things are very costly to put right. Runs very hot when running FlexBuilder in OSX and VS in windows and has really started to slow down lately. Never had much of a problem with system crashes or freezing other than the occasional browser fail.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/02/13/optimal-ria-development-hardware/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Silverlight Problem</title>
		<link>http://danny-t.co.uk/index.php/2007/09/30/the-silverlight-problem/</link>
		<comments>http://danny-t.co.uk/index.php/2007/09/30/the-silverlight-problem/#comments</comments>
		<pubDate>Sun, 30 Sep 2007 11:09:30 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/index.php/2007/09/30/the-silverlight-problem/</guid>
		<description><![CDATA[As anyone who regularly reads this blog will know, I&#8217;ve been looking into Silverlight of late. Nothing commercial as yet, just to fulfill my own geeky interests (if anyone is looking for Silverlight development get in touch). Throughout this experimentation and research I&#8217;ve also discussed Silverlight with other developers and designers from various small and [...]]]></description>
			<content:encoded><![CDATA[<p>As anyone who regularly reads this blog will know, I&#8217;ve been looking into Silverlight of late. Nothing commercial as yet, just to fulfill my own geeky interests (if anyone is looking for Silverlight development <a href="http://www.moov2.com/contactmoov2.asp">get in touch</a>). Throughout this experimentation and research I&#8217;ve also discussed Silverlight with other developers and designers from various small and large agencies particularly at a recent MS web agencies dinner in London.</p>
<p>Through all this investigation and chatter, I&#8217;ve drawn a conclusion of a problem that MS still have to solve:</p>
<blockquote><p>There are still no way near enough &#8220;creatives/designers&#8221; willing to to experiment with the tools available for creating Silverlight applications.</p></blockquote>
<p>Maybe this is obvious and I&#8217;m sure MS are well aware of this but I&#8217;m not sure enough is being done. The reason being, I myself and others are getting frustrated by not having anyone available to work with in order to create good-looking Silverlight applications and experiments. </p>
<p>.Net developers are excited by Silverlight, MS partners are excited by Silverlight, MS is excited by Silverlight&#8230; Designers couldn&#8217;t give two hoots about Silverlight. </p>
<p>This is pretty frustrating because there are a lot of very skillful .Net coders waiting to work with someone using this amazing workflow that is available between Visual Studio and Blend but there&#8217;s no-one there on the Blend end! Blend is a good tool, I&#8217;ve played around with it and realised what <em>could</em> be done if I could work with someone who, unlike myself has even the slightest bit of artistic flair. Unfortunately this person doesn&#8217;t exist yet, or at least is very hard to come by.</p>
<p>Microsoft, </p>
<p>Get the Expression tools available for Mac ASAP.<br />
Do whatever&#8217;s needed to get designers comfortable and happy with using Expression Design and Expression Blend.<br />
Throw more resources and free training at creative decision makers.<br />
Make integration with Photoshop and other design tools as seemless as possible. </p>
<p>The devs are sold on Silverlight, the appeal of being able to use CLR languages in a rich environment is huge. But it&#8217;s fruitless without designers. We need more designers picking up these tools if you want your massive .net community to do some amazing things with Silverlight. </p>
<p>Until then, Flash and Flex are here, available on both platforms and have a passionate and loyal user-base. I appreciate Silverlight and the tools are only at version 1, but if you&#8217;re out to compete (and let&#8217;s not kid ourselves, you are), you can&#8217;t measure success on version numbers.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2007/09/30/the-silverlight-problem/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Silverlight Adventures &#8211; part 2</title>
		<link>http://danny-t.co.uk/index.php/2007/08/19/silverlight-adventures-part-2/</link>
		<comments>http://danny-t.co.uk/index.php/2007/08/19/silverlight-adventures-part-2/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 23:11:16 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/index.php/2007/08/19/silverlight-adventures-part-2/</guid>
		<description><![CDATA[Continuing from my previous post on learning Silverlight (sorry for the VERY long delay i&#8217;ve been very busy lately)&#8230; 5 &#8211; The tools (cont) Okay so downloads required were as follows: Silverlight Runtime .NET Framework 3.0 Visual Studio Orcas Visual Web Developer 2008 &#8211; due to the massive download required i opted for the Express [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing from my <a href="http://danny-t.co.uk/index.php/2007/07/12/silverlight-adventures/">previous post on learning Silverlight</a> (sorry for the VERY long delay i&#8217;ve been very busy lately)&#8230;</p>
<p><strong>5 &#8211; The tools (cont)</strong><br />
Okay so downloads required were as follows:</p>
<ul>
<li>Silverlight Runtime</li>
<li>.NET Framework 3.0</li>
<li><del datetime="2007-08-18T15:44:01+00:00">Visual Studio Orcas</del></li>
<li><del datetime="2007-08-18T23:01:11+00:00">Visual Web Developer 2008 &#8211; due to the massive download required i opted for the Express edition of visual studio for now</del> &#8211; by all accounts the express edition doesnt allow the Silverlight extensions to be installed&#8230; back to downloading vs2008 standard again! NOTE TO MS &#8211; make this clearer please</li>
<li>Visual Studio 2008 (in the time its taken me to finish this post the beta2 has been released)</li>
<li><del datetime="2007-08-18T19:09:39+00:00">Silverlight Tools for Orcas</del></li>
<li>Microsoft Silverlight Tools Alpha Refresh for Visual Studio (July 2007)</li>
<li>Expression Blend</li>
</ul>
<p><strong>.NET Framework 3.0</strong><br />
I&#8217;ve already installed the runtime so next is .NET Framework 3.0. The .Net installer seems to have improved, although is now a whopping 30 meg which downloads and installs silently after you run the setup, it does however hog resources a little during the install but no system restart required! <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . A point to note is that viewing Silverlight web applications does not need the .NET 3.0 Framework to be installed, a subset of the framework is included in the Silverlight runtime. I&#8217;m installing it for the use of Expression Blend and VS Orcas.</p>
<p><strong>Expression Blend</strong><br />
Standard install process here, there were options for &#8220;custom&#8221; or &#8220;full&#8221; install but I chose &#8220;typical&#8221;  as I&#8217;m on a tight budget with regards to the spec of my laptop. I&#8217;m sure things will run painfully slow but I&#8217;ll just have to put up with it until I get a new machine. Another simple install down, so far so good.</p>
<p><del datetime="2007-08-18T23:01:11+00:00"><br />
<strong>Visual Web Developer 2008</strong><br />
So finally settling on giving this a go with Visual Web Developer 2008. There was a nice online install that basically setup everything for me. I like this sort of install, yeah maybe there are a million and one options i might want to set on install but in the real world if i don&#8217;t get these options I dont lose any sleep and am less frustrated with slow installs &#8211; start it going, leave it, come back and its done.</del> &#8211; removed due to no support for the Silverlight extensions!</p>
<p><strong>Visual Studio <del datetime="2007-08-18T16:49:37+00:00">Orcas</del> 2008 beta2</strong><br />
<del datetime="2007-08-18T23:44:21+00:00">From the downloads, the first step was to run the extractor which extracts all downloads into an installation directory, this took ages just to extract it uses winRAR self-extractor which was a bit annoying in that it has a progress indicator for each file extracted but no indication of overall progress and no indication of how many files there are left. VS 2008 is going to be a bit of a resource hog.<br />
After it had finally extracted I run vs_setup.msi&#8230; to be instantly prompted to run setup.exe (I always get that wrong). A familiar Visual Studio setup screen is presented and then a typical visual studio installation process.</del> That was with Orcas, with VS2008 beta2 I opted to download and install the standard edition which downloaded an ISO image. Using <a href="http://www.magiciso.com/">magic ISO</a> I extracted this and had a much quicker experience, although the install did still take a considerable amount of time.</p>
<p><strong>Microsoft Silverlight Tools Alpha Refresh for Visual Studio (July 2007)</strong><br />
A simple to install extension to VS2008 that offers the Silverlight specific features.</p>
<p>And finally that is all that we apparently need.</p>
<p>Overall the setup experience was pretty good, alot of downloading and waiting but no painful unknown errors or crashes so i&#8217;m happy with that. A bit of confusion with the new release of vs2008 and no support for Silverlight in the Express editions. Now, finally onto some development and time for another post that might take me months to finish <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  (hopefully not though).</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2007/08/19/silverlight-adventures-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

