<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Tim Heuer's Blog</title>
        <link>http://timheuer.com:443/blog/Default.aspx</link>
        <description>The web site and blog of Tim Heuer, Program Manager for Microsoft XAML and author of Callisto, a WinRT XAML Toolkit. A resource to learn how to develop software with XAML technologies. This blog provides information on how to get started with XAML, S</description>
        <language>en-US</language>
        <copyright>Tim Heuer</copyright>
        <generator>Subtext Version 2.5.2.0</generator>
        <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
        <image>
            <title>Tim Heuer's Blog</title>
            <url>http://timheuer.com:443/blog/images/RSS2Image.gif</url>
            <link>http://timheuer.com:443/blog/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Build 2015 recap for XAML and native apps</title>
            <link>http://timheuer.com:443/blog/archive/2015/05/04/xaml-microsoft-build-2015-recap-summary.aspx</link>
            <description>&lt;p&gt;Wow, what a week.  I have to say even as employees of Microsoft, we get surprised when we go to our conferences and see some of the bigger announcements.  There are things that are being worked on that are new or just in different divisions that we’re not focused on.  This past week at the &lt;strong&gt;Build 2015&lt;/strong&gt; conference was an example of that for me.  Lots of good stuff for developers from client to server!&lt;/p&gt;  &lt;h2&gt;Universal Windows Platform&lt;/h2&gt;  &lt;p&gt;At Build this year we introduced the Universal Windows Platform v10 with a set of new APIs and unified features for all Windows devices.  Perhaps the best vision of this is the &lt;strong&gt;&lt;a href="http://channel9.msdn.com/Events/Build/2015/KEY02" target="_blank"&gt;Day 2 Keynote where Kevin Gallo&lt;/a&gt;&lt;/strong&gt; walked through an example of this and a single app running on tablet, phone, Surface Hub, HoloLens, etc.  &lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/Events/Build/2015/KEY02" target="_blank"&gt;&lt;img style="float: none; margin-left: auto; display: block; margin-right: auto" src="http://storage2.timheuer.com/kgallo2015.png" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Visit the keynote and watch the whole thing or if you want to jump to the start of this portion it starts at about 23 minutes in.  A really well done, compelling demonstration of the Universal Windows Platform.&lt;/p&gt;  &lt;h2&gt;XAML Session Recap&lt;/h2&gt;  &lt;p&gt;For the XAML developer on Windows, there was a lot of goodness shown from my team.  We’ve been working hard on a lot of internals and new API exposure for the &lt;strong&gt;Universal Windows Platform&lt;/strong&gt;.  Our team had some representation in some deep-dive sessions from Build and the recordings are all now available…here’s a list for you to queue up:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://channel9.msdn.com/Events/Build/2015/2-629"&gt;What's New in XAML for Universal Windows Apps&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/Events/Build/2015/3-741"&gt;Moving to the Universal Windows Platform: Porting an App from Windows 8.1 XAML or Windows Phone Silverlight to Windows 10&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/Events/Build/2015/3-635"&gt;Data Binding: Boost Your Apps' Performance Through New Enhancements to XAML Data Binding&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/Events/Build/2015/2-697"&gt;New XAML Tools in Visual Studio 2015&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/Events/Build/2015/2-776"&gt;XAML Case Study: Putting it All Together, Office and XAML&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/Events/Build/2015/2-679"&gt;From the Small Screen to the Big Screen: Building Universal Windows App Experiences with XAML&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/Events/Build/2015/2-790"&gt;Deep Dive into XAML and .NET Universal Windows App Development&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/Events/Build/2015/3-698"&gt;XAML Performance: Techniques for Maximizing Universal Windows App Experiences Built with XAML&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/Events/Build/2015/2-97"&gt;Universal Commanding and Navigation in Your XAML&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;One of the things I was really happy to have is part of the Office team come and talk about how they build Office on the same platform we ask you to build apps on.  It is good insight into a large application with lots of legacy and goals that might not be typical of smaller apps or smaller ecosystems.  A big focus for XAML this release was performance given that customers like Office and the Windows shells themselves leveraging XAML for their UI.&lt;/p&gt;  &lt;p&gt;I hope that if you are a XAML developer you take some time to look at what new features are available in the Universal Windows Platform for you in Windows 10.&lt;/p&gt;  &lt;h2&gt;Get the goods!&lt;/h2&gt;  &lt;p&gt;If you want to get started playing around, the best way is to be a part of the &lt;strong&gt;Windows Insiders&lt;/strong&gt; program.  Everything you need to get started you can find here &lt;a title="https://dev.windows.com/en-US/windows-10-for-developers" href="https://dev.windows.com/en-US/windows-10-for-developers"&gt;https://dev.windows.com/en-US/windows-10-for-developers&lt;/a&gt;.  You’ll want to &lt;a href="http://insider.windows.com" target="_blank"&gt;join the Insiders program&lt;/a&gt;, then &lt;a href="https://go.microsoft.com/fwlink/p/?LinkID=534189" target="_blank"&gt;download the &lt;strong&gt;Visual Studio&lt;/strong&gt; tools&lt;/a&gt; and get started creating/migrating apps!  To help get you started after that here are some helpful links:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="https://dev.windows.com/en-us/develop" target="_blank"&gt;Documentation&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="https://go.microsoft.com/fwlink/p/?LinkID=534765" target="_blank"&gt;Known issues in the preview&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="https://go.microsoft.com/fwlink/p/?LinkId=526492" target="_blank"&gt;SDK Samples&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Give us feedback!&lt;/h2&gt;  &lt;p&gt;As you play around with the bits, please continue to give us feedback.  The best way is to be involved in the &lt;a href="https://social.msdn.microsoft.com/Forums/windowsapps/en-US/home?forum=wpdevelop" target="_blank"&gt;conversation on the forums&lt;/a&gt;.  Ask questions there, get help from the community, share learnings, etc.  Secondarily the Windows Insider Feedback tool (an app that is installed on Windows already for you as ‘Windows Feedback’) is available for you to give direct feedback to the teams.  Please choose categories carefully so that the feedback gets directly to the right team quickly.  &lt;/p&gt;  &lt;p&gt;Thanks for helping make the Windows Platform better.  I hope these direct links help you jumpstart your learning!&lt;/p&gt;  &lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c514d1c6-98ae-49bc-94fa-e252560eeda6" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/Tags/windows/default.aspx" rel="tag"&gt;windows&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/visual+studio/default.aspx" rel="tag"&gt;visual studio&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/xaml/default.aspx" rel="tag"&gt;xaml&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/universal+apps/default.aspx" rel="tag"&gt;universal apps&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/uwp/default.aspx" rel="tag"&gt;uwp&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/blend/default.aspx" rel="tag"&gt;blend&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://timheuer.com:443/blog/aggbug/14869.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid>http://timheuer.com:443/blog/archive/2015/05/04/xaml-microsoft-build-2015-recap-summary.aspx</guid>
            <pubDate>Mon, 04 May 2015 17:33:29 GMT</pubDate>
            <comments>http://timheuer.com:443/blog/archive/2015/05/04/xaml-microsoft-build-2015-recap-summary.aspx#feedback</comments>
            <wfw:commentRss>http://timheuer.com:443/blog/comments/commentRss/14869.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Determining Portable Class Library compatibility</title>
            <link>http://timheuer.com:443/blog/archive/2014/05/27/api-portability-analyzer-tool-for-portable-class-library.aspx</link>
            <description>&lt;p&gt;Recently I &lt;a href="http://timheuer.com/blog/archive/2014/05/23/porting-taglib-sharp-to-portable-class-library.aspx"&gt;embarked on porting the TagLib# library to a Portable Class Library&lt;/a&gt; (PCL).  In my efforts I noted some frustration I had of the “convert and compile” flow to find issues.  Well, turns out I didn’t have to do that much pain as pointed out by &lt;a href="https://twitter.com/dsplaisted"&gt;Daniel&lt;/a&gt; in the comments!  The .NET team has released a tool to help out us developers called the &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=42678"&gt;API Portability Analyzer&lt;/a&gt; (currently in Alpha).  This tool basically looks at any existing .NET assembly and gives you a report to help you see where the APIs used are supported in the various .NET profiles available.&lt;/p&gt;  &lt;p&gt;The tool is a single command-line exe and is as simple as launching:&lt;/p&gt;  &lt;pre class="brush: ps;"&gt;ApiPort.exe path-to-your-assembly-file.dll&lt;/pre&gt;

&lt;p&gt;I recommend putting this in your path somewhere so you don’t have to remember the full path to launch.  The output from the console tells you very little and only really about what you it is doing:&lt;/p&gt;

&lt;pre class="brush: ps; highlight: [8];"&gt;Microsoft (R) API Portability Analyzer version 1.0 (alpha)
Copyright (C) Microsoft Corporation. All rights reserved.

To learn more about how this tool works, including the data we are collecting, go here - http://go.microsoft.com/fwlink/?LinkId=397652

Identifying assemblies to scan. Done in 0.01s.
Detecting assembly references. Processed 1/1 files.Done in 0.23s.
Sending data to service. Done in 2.88s.
Computing report. Processed 508 items.Done in 0.02s.
Writing report. Done in 0.17s.

Replaced output file "c:\ApiPortAnalysis.xlsx"&lt;/pre&gt;

&lt;p&gt;You may notice that the tool says ‘sending’ and yes, it is communicating with a public service.  The team notes this in the download:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: During the process of identifying the .NET APIs used by a binary Microsoft collects the list of .NET APIs used by the user submitted binaries. Microsoft also collects the names of various user created APIs. The tool does not collect the binary code, only names of APIs are collected. Microsoft will also collect assembly information such as assembly references for the binary &amp;amp; the Target Framework Moniker (TFM). &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The real value is in the output data conveniently formatted into a pre-filterable Excel document.  The process was fairly fast for me, but I suspect might take longer for larger libraries (duh).  An example of the output is like the one here directly showing the TagLib# data that I used above.&lt;/p&gt;

&lt;p align="center"&gt;&lt;iframe src="https://onedrive.live.com/embed?cid=A737583042956228&amp;amp;resid=A737583042956228%2144520&amp;amp;authkey=AC49KMgeRWAhh9Y&amp;amp;em=2" width="650" height="346" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;

&lt;p&gt;If you read my previous post you will see that the areas I had frustrations about are clearly identified in the &lt;em&gt;Unsupported&lt;/em&gt; columns for my target platform.  The tool attempts to recommend some alternatives when it can.  I can imagine this gets better over time as the recommendations for TagLib# were only two, whereas it should have provided recommendations for XmlDocument/XmlElement/etc. to the XLINQ equivalent areas.&lt;/p&gt;

&lt;p&gt;In the end though, this is a helpful tool for those looking to convert.  I wish I had known about it in advance, but now that I know it is in my toolbox and my PATH!&lt;/p&gt;

&lt;p&gt;Hope this helps!&lt;/p&gt;

&lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7382cf37-d942-4beb-8ba3-733d509c8327" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/Tags/pcl/default.aspx" rel="tag"&gt;pcl&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/apiport/default.aspx" rel="tag"&gt;apiport&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/portable/default.aspx" rel="tag"&gt;portable&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/taglib/default.aspx" rel="tag"&gt;taglib&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/.net/default.aspx" rel="tag"&gt;.net&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/framework/default.aspx" rel="tag"&gt;framework&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/wpdev/default.aspx" rel="tag"&gt;wpdev&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/winrt/default.aspx" rel="tag"&gt;winrt&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://timheuer.com:443/blog/aggbug/14865.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid>http://timheuer.com:443/blog/archive/2014/05/27/api-portability-analyzer-tool-for-portable-class-library.aspx</guid>
            <pubDate>Tue, 27 May 2014 08:02:31 GMT</pubDate>
            <comments>http://timheuer.com:443/blog/archive/2014/05/27/api-portability-analyzer-tool-for-portable-class-library.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://timheuer.com:443/blog/comments/commentRss/14865.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Working with Portable Class Libraries and porting TagLib#</title>
            <link>http://timheuer.com:443/blog/archive/2014/05/23/porting-taglib-sharp-to-portable-class-library.aspx</link>
            <description>&lt;p&gt;A long while back I had written a quick sample when &lt;strong&gt;Silverlight&lt;/strong&gt; introduced drag-and-drop into the framework.  Then I decided to show &lt;a href="http://timheuer.com/blog/archive/2010/01/30/reading-mp3-id3-tags-with-silverlight-taglib.aspx"&gt;dragging MP3 files into a Silverlight app and reading the metadata and album art&lt;/a&gt;.  In order to accomplish this I had to read into the &lt;a href="http://www.id3.org"&gt;&lt;strong&gt;ID3&lt;/strong&gt;&lt;/a&gt; data from a Silverlight library.  I found a few libraries but settled on &lt;strong&gt;TagLib#&lt;/strong&gt; to do the job.  I had to modify it a bit to get it working in Silverlight as the .NET profile wasn’t the same.  Recently a surge of people have been emailing me for the code.  I spent time searching and apparently I didn’t think the TagLib# modifications were that important because I never saved them anywhere!  A conversation started on Twitter and I decided to devote some “20% time” to making these modifications and take it a step further and make it into a &lt;strong&gt;Portable Class Library (PCL)&lt;/strong&gt;.  Here’s my journey…&lt;/p&gt;  &lt;h2&gt;Deciding to Fork&lt;/h2&gt;  &lt;p&gt;My first task was finding the source of truth for TagLib#.  The main link on the Novell developer site was broken and stale.  I found it on GitHub and started looking around.  It really hadn’t been updated in a long while (after all, it really didn’t need to be fore core .NET framework) and the project is very stale.  There is no open issues list on GitHub as you have to use Bugzilla, but that didn’t even look like it was getting much attention.  I emailed the maintainer listed in the authors file in the repository and he indicated he’s not really the maintainer.  This felt like a project kind of fizzling down (if not fizzled already). &lt;/p&gt;  &lt;p&gt;In looking at the tests, the project structure, and taking into account that I may want to do some things different, I made the decision to fork rather than clone.  I’m not totally married to the decision but I don’t think anyone is keeping the lights on to take a pull request either though.  I forked the code and started with new projects and using Visual Studio 2013 as my tool of choice.&lt;/p&gt;  &lt;h2&gt;Using Shared Projects&lt;/h2&gt;  &lt;p&gt;At first I thought that I would be doing perhaps a few different flavors, portable and full .NET framework.  Because I &lt;em&gt;thought&lt;/em&gt; I would I decided to use the new Shared Project system in &lt;strong&gt;Visual Studio 2013&lt;/strong&gt; and the new &lt;a href="http://visualstudiogallery.msdn.microsoft.com/315c13a7-2787-4f57-bdf7-adae6ed54450"&gt;&lt;strong&gt;Shared Project Reference Manager VS extension&lt;/strong&gt;&lt;/a&gt; that allows me to add references from any project to shared code easily.  This gives me the flexibility for the future and sets my project system up in advance.  You’ll see in the end I haven’t actually needed to take that step and perhaps won’t even need the Shared Project anymore, but for now I’m keeping it as it does me no harm.&lt;/p&gt;  &lt;h2&gt;First Compile&lt;/h2&gt;  &lt;p&gt;Once I moved the code over and set my target profile for PCL, I hit build.  Whoa.  About 140 compile errors.  Immediately I thought that I didn’t want to spend the time.  I took a look at the issues and quickly realized that the base code had, in fact, changed a bit from when I messed with it in Silverlight.  I started making a list of the things that weren’t compiling as I was targeting .NET 4.5, Silverlight 5, Windows 8+, Windows Phone 8+, and iOS/Android (Xamarin).  The biggest errors came from the fact that the library was still using XmlDocument and hadn’t moved to XLinq.  Beyond that there were things like Serializable, ICloneable, ComVisible and File IO that weren’t going to work.  I got really frustrated quickly and about gave up.&lt;/p&gt;  &lt;p&gt;Working at Microsoft I am fortunate to have access to try more things and indeed I reached out to some folks for help.  I was able to get some things working continued with XmlDocument, but it didn’t feel right and starting to think about releasing this updated library I just realized this wasn’t going to work.  I remained frustrated.&lt;/p&gt;  &lt;h2&gt;Helpful Friends&lt;/h2&gt;  &lt;p&gt;Sometimes when you are frustrated you just want to vent to the world.  We call that Twitter these days.  I was pulling some hair out and posted a comment, which was quickly replied by a member of the .NET team with a bit of a touché comment.  &lt;/p&gt;  &lt;p /&gt;&lt;blockquote class="twitter-tweet" lang="en"&gt;&lt;p&gt;&lt;a href="https://twitter.com/timheuer"&gt;@timheuer&lt;/a&gt; Funny, because I spent the day trying to write Windows XAML from the millions of WPF examples in the wild. :)&lt;/p&gt;— David Kean (@davkean) &lt;a href="https://twitter.com/davkean/statuses/469703897229979649"&gt;May 23, 2014&lt;/a&gt;&lt;/blockquote&gt; &lt;script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;  &lt;p&gt;I chuckled but I also knew that &lt;a href="https://twitter.com/davkean"&gt;David&lt;/a&gt; and others were going to be the key to helping me find the fastest path here.  I started emails with the PCL team, including David and &lt;a href="https://twitter.com/dsplaisted"&gt;Daniel&lt;/a&gt;, who are incredibly knowledgeable and responsive.  I finally got most working and then my colleague and I started chatting about my frustrations.  He worked on XLinq for a bit and basically told me to suck it up and do the conversions and that it wasn’t that bad.  We walked through a few of the scenarios and indeed it really ended up all being isolated into one area that I could quickly scan through.  I could now remove my dependency on XmlDocument and have no other dependencies for this portable library.&lt;/p&gt;  &lt;p&gt;Hooray for helpful people!  Even when you vent, the good peeps will still help out!&lt;/p&gt;  &lt;h2&gt;Changes to TagLib# for portability&lt;/h2&gt;  &lt;p&gt;After the full conversion, a few things remain.  Right now I have #ifdef’d out come of the interfaces and attributes that weren’t working.  Once I get to a point of porting all the tests over, I’ll decide if they are even needed.  Perhaps the biggest change though for users of this lib will be the removal of the default string path of file access.  In discussing with some folks, I could have tried to make a portable storage layer work, but it started to make less sense quickly to do that in the library and leave that simple task to the app developer.  This provides flexibility for the app to do what they want without the library trying to work around how different platforms do their file IO routines.  What that means is that the default way of reading a file’s tags changes from:&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;var tagFile = File.Create("ironlionzion.mp3");
var tags = tagFile.GetTag(TagTypes.Id3v2);
string album = tags.Album;&lt;/pre&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;pre class="brush: csharp; highlight: [2,3];"&gt;' file is a StorageFile
var fileStream = await file.OpenStreamForReadAsync();
var tagFile = File.Create(new StreamFileAbstraction(file.Name, fileStream, fileStream));
var tags = tagFile.GetTag(TagTypes.Id3v2);
string album = tags.Album;&lt;/pre&gt;

&lt;p&gt;in a simple case.  Yes, you as the app author have to write a bit more code, but it puts you in control of ensuring the file location you are reading.  You can see here that I &lt;em&gt;did&lt;/em&gt; add my &lt;strong&gt;StreamFileAbstraction&lt;/strong&gt; class to my fork by default, which was the key in the Silverlight port and is actually the key for &lt;strong&gt;WinRT&lt;/strong&gt; as well.  Any app developer can create their own &lt;strong&gt;IFileAbstraction&lt;/strong&gt; implementation and substitute it in the ctor of the create functions and be ready to read.  I actually did this in the test project to re-implement a &lt;strong&gt;LocalFileAbstraction&lt;/strong&gt; for test purposes and used the System.IO.File classes to achieve that, which are available when running VS unit tests.&lt;/p&gt;

&lt;h2&gt;Summary&lt;/h2&gt;

&lt;p&gt;What started out as a frustrating exercise turned out to be helpful for me to better understand PCLs and hopefully add value to those who have been asking for this.  As mentioned, this isn’t fully tested and still a ways to go, so if you use it please log bugs (and help fix them) to complete the implementation.  I won’t be working on this full time of course, but do hope to get the test suite ported over as well.  Here are some relevant links:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://github.com/timheuer/taglib-sharp-portable"&gt;TagLib.Portable&lt;/a&gt; – source code repository for my fork&lt;/li&gt;

  &lt;li&gt;&lt;a href="https://www.nuget.org/packages/TagLib.Portable/"&gt;TagLib.Portable NuGet Package&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hope this helps!&lt;/p&gt;

&lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ab3b5dae-7ca6-4366-a40c-86111cc23ac5" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/Tags/taglib/default.aspx" rel="tag"&gt;taglib&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/id3/default.aspx" rel="tag"&gt;id3&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/pcl/default.aspx" rel="tag"&gt;pcl&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/winrt/default.aspx" rel="tag"&gt;winrt&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/wpdev/default.aspx" rel="tag"&gt;wpdev&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/mp3/default.aspx" rel="tag"&gt;mp3&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://timheuer.com:443/blog/aggbug/14864.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid>http://timheuer.com:443/blog/archive/2014/05/23/porting-taglib-sharp-to-portable-class-library.aspx</guid>
            <pubDate>Sat, 24 May 2014 04:51:21 GMT</pubDate>
            <comments>http://timheuer.com:443/blog/archive/2014/05/23/porting-taglib-sharp-to-portable-class-library.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://timheuer.com:443/blog/comments/commentRss/14864.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Code signing for the independent developer</title>
            <link>http://timheuer.com:443/blog/archive/2011/12/12/code-signing-for-independent-developer.aspx</link>
            <description>&lt;p&gt;One of the features introduced with &lt;a href="http://silverlight.net"&gt;Silverlight&lt;/a&gt; 4 was the out-of-browser feature, enabling you to create an application that can be installed, run offline, automatically updated, etc.  As a part of that feature, some of the major code signing certificate vendors (for Authenticode certs) provided our team with test certificates so that we could go through the same process as a developer would to acquire the cert and apply it to an app…and, of course, validate it works.&lt;/p&gt;  &lt;p&gt;During that time some of those vendors had &lt;a href="http://timheuer.com/blog/archive/2010/05/05/thawte-silverlight-xap-signing-certificate-promotion.aspx"&gt;promotional&lt;/a&gt; &lt;a href="http://timheuer.com/blog/archive/2010/04/21/godaddy-code-sign-certificate-for-silverlight-xap-promo-code.aspx"&gt;codes&lt;/a&gt; for the first year for Silverlight developers, providing reduced-rate (but not reduced quality) code-signing certificates for their apps.  Still during this time there were a lot that questioned why some providers were still expensive and didn’t value “the little guy.”  By that I mean that there are a lot of smaller firms or independent personal developers.  The thought of dropping a few hundred dollars on a cert is sometimes tough.&lt;/p&gt;  &lt;p&gt;Last week a representative contacted me about their offerings as a premier partner of one of those providers.  &lt;a href="https://www.certs4less.com/codesigning.html"&gt;Certs4less.com is now offering Thawte&lt;/a&gt; code-signing certificates for individual developers.  They are doing this at a price of $99 per year (less for multi-year).  &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: As a part of this, like before with SL4, &lt;strong&gt;Certs4Less&lt;/strong&gt; graciously offered a promotional cert for me to validate the end-to-end process so that I could speak accurately about it.  I do not use any of these certs provided by these companies for testing purpose toward any production application and they are for testing purposes only.  Besides, I’ve not found the time to write production code for apps lately ;-).  I am not getting paid for this post, nor am I getting another promo code for personal use myself.  I am simply providing what I think is valuable information and get no compensation from Thawte or Certs4Less.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I went through the process of obtaining this cert from Certs4Less.com and it produced exactly what you’d expect, a valid Authenticode code-signing certificate I can use for my Silverlight and Windows 8 application packages!  I shared a few points of feedback with the contact there and will enumerate them here for you as well (as well as some tips)&lt;/p&gt;  &lt;h2&gt;Your ‘Common Name’&lt;/h2&gt;  &lt;p&gt;Think about this one pretty good when you buy a cert.  This has a two-fold purpose why I mention this.  First, it is what your customers will see.  Do you want them to see an app signed by a name that isn’t recognizable or doesn’t make sense…of course not.  Additionally this is the name that will be verified.  So if you claim you work for Fizbin Enterprises, but that doesn’t actually exist…you’ll have issues during verification.&lt;/p&gt;  &lt;h2&gt;One year, 2 or more&lt;/h2&gt;  &lt;p&gt;One thing you should know about code-signing certificates is that once they expire, the keys change during renewal.  In some cases this can cause issues for your app (ClickOnce).  For this reason I personally recommend getting the longest you can afford.  Most likely this will be a wise investment and you’ll have piece of mind.&lt;/p&gt;  &lt;h2&gt;Apply on the computer you will receive it&lt;/h2&gt;  &lt;p&gt;One thing we as developers don’t do well is read directions.  One of the instructions you’ll see is to be sure that you do the cert request process &lt;strong&gt;from the same machine you plan on picking up the cert from&lt;/strong&gt;!  Seriously, this is critical if you use the browser process because of the private key.  If you don’t…you’ll be screwed and out some cash.  Plan ahead and don’t do this while on vacation on your laptop that you repave weekly.&lt;/p&gt;  &lt;h2&gt;Verification Process&lt;/h2&gt;  &lt;p&gt;This is an area where I think I had the most negative feedback.  These verification steps are a bit old.  I understand they have their reasons, but in this digital age the fact that I had to find a notary was…well, just inconvenient.  This Certs4Less/Thawte process required me to do this.  The ‘form’ they emailed me really wasn’t a form…just an email with text broken out with ‘==========================’ before each section.  So when I brought in my printed out GMail ‘form’ to the Notary he looked at me like I was an idiot.  The verification form was nothing formal looking at all and I had to have 3 different people look at it before they finally just said ‘okay’ and signed it.&lt;/p&gt;  &lt;p&gt;The thing that was most troublesome in this process was it was a distractor.  I had to actually print stuff out, find a passport, go to a bank, wait in line…you know, real people stuff.  But still, it felt annoying in this modern age.&lt;/p&gt;  &lt;p&gt;Some of my other process with other vendors have been a lot more streamlined and I think this can/should improve.&lt;/p&gt;  &lt;h2&gt;Acquiring the certificate&lt;/h2&gt;  &lt;p&gt;Most of the time this is a quick process.  Remember when I mentioned that developers don’t read instructions?  Yeah, I’m no different.  The final email I got indicating my cert had instructions that I didn’t read that talked about making sure I had intermediate certificates installed first.  Without this I got ambiguous errors when trying to retrieve my certificate.  Be sure to read any verification instructions in detail to provide a good experience.&lt;/p&gt;  &lt;h2&gt;Back up/export your certificate&lt;/h2&gt;  &lt;p&gt;I don’t know about you but I’d probably use my cert in automated build processes, keep it on a share (perhaps a dropbox/Live/git location) so that I don’t have to only use my one machine to sign an app.  One thing I highly recommend is after the key is installed is to use the certmgr.msc tool and export the certificate.  When doing this be sure to export the all the key data as well as cert chain so that your resulting PFX file is portable.  Then you can use it in your build process for Silverlight as described &lt;a href="http://timheuer.com/blog/archive/2010/03/15/whats-new-in-silverlight-4-rc-mix10.aspx#xap-signing"&gt;here in my previous blog post about that feature&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Summary&lt;/h2&gt;  &lt;p&gt;I want to thank Certs4Less for reaching out to the independent developer and providing a valuable product at an ‘independent developer’ price level.  I appreciate them also reaching out to allow me to test the process to verify it is fairly painless and the result is what I expected.&lt;/p&gt;  &lt;p&gt;Code-signing certificates are very valuable in many ways and I believe every developer should have one for their personal projects as well as their large ones.&lt;/p&gt;  &lt;p&gt;Hope this helps!   &lt;/p&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1e04df7a-754b-4a12-b885-235347abf8d8" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/Tags/xaml/default.aspx" rel="tag"&gt;xaml&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/xap/default.aspx" rel="tag"&gt;xap&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/ssl/default.aspx" rel="tag"&gt;ssl&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/thawte/default.aspx" rel="tag"&gt;thawte&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/certs4less/default.aspx" rel="tag"&gt;certs4less&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://timheuer.com:443/blog/aggbug/14819.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid>http://timheuer.com:443/blog/archive/2011/12/12/code-signing-for-independent-developer.aspx</guid>
            <pubDate>Tue, 13 Dec 2011 02:01:10 GMT</pubDate>
            <comments>http://timheuer.com:443/blog/archive/2011/12/12/code-signing-for-independent-developer.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://timheuer.com:443/blog/comments/commentRss/14819.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Silverlight 5 Released with awesome samples in the Silverlight Toolkit</title>
            <link>http://timheuer.com:443/blog/archive/2011/12/12/silverlight-5-released-3d-extension-toolkit.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://silverlight.net"&gt;&lt;img style="margin: 0px 10px 5px 0px; display: inline; float: left" align="left" src="http://storage2.timheuer.com/sl5bloglogo.png" width="95" height="94" /&gt;Silverlight&lt;/a&gt; 5 is finally released!  Congratulations to the team for getting through some of the toughest parts of finishing a product and validating with customers.  It’s been a pretty crazy year for the Silverlight team and this is a really good release for the product bringing some solid features to the platform for folks to leverage in building their apps.&lt;/p&gt;  &lt;p&gt;In addition to the platform having a release, I was really pleased to see an update to the Silverlight Toolkit, which has been one of the most popular things almost every Silverlight developer/application uses.  If you didn’t know where to get things, here’s some &lt;a href="http://www.silverlight.net/downloads"&gt;links&lt;/a&gt; for you:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=229318"&gt;Silverlight 5 Tools for VS&lt;/a&gt; (requires SP1)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight 5 Toolkit&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Developer runtime for Windows (&lt;a href="http://go.microsoft.com/fwlink/?LinkId=229323"&gt;32 bit&lt;/a&gt;, &lt;a href="http://go.microsoft.com/fwlink/?LinkId=229324"&gt;64 bit&lt;/a&gt;) and &lt;a href="http://go.microsoft.com/fwlink/?LinkId=229325"&gt;Mac OSX&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Rather than enumerate all the &lt;a href="http://timheuer.com/blog/archive/2011/04/13/whats-new-in-silverlight-5-a-guide.aspx"&gt;good features&lt;/a&gt; that were finished from the RC/Beta, you should head on over to listen/watch &lt;a href="http://10rem.net"&gt;Pete Brown&lt;/a&gt;’s presentation on the &lt;a href="http://www.silverlight.net/learn/overview/what's-new-in-silverlight-5/silverlight-5-release-overview"&gt;Silverlight 5 release overview&lt;/a&gt;.  He also has a &lt;a href="http://10rem.net/blog/2011/12/09/announcing-the-release-of-silverlight-5"&gt;post about the release&lt;/a&gt; enumerating in short form (with links to tutorials for some of the key features) on his blog.&lt;/p&gt;  &lt;p&gt;What I think is really cool is also the amount of effort put into the Silverlight Toolkit for this release.  The one large thing of note is the extensions to enhance your 3D development experience in Silverlight 5.  &lt;a href="http://blogs.msdn.com/b/eternalcoding/archive/2011/10/04/silverlight-toolkit-september-2011-for-silverlight-5-what-s-new.aspx"&gt;David Catuhe has a post&lt;/a&gt; outlining in great detail some of the 3D extensions included in the toolkit.  You should really go check out his post.  Scrolling to the bottom I was really surprised/impressed to see a set of 3D samples included to help you understand how to use this feature:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Bloom – uses the Content Pipeline and post-processing effects&lt;/li&gt;    &lt;li&gt;CustomModelEffect&lt;/li&gt;    &lt;li&gt;Generated geometry – how 3D models generated by code&lt;/li&gt;    &lt;li&gt;Particles – c’mon, who doesn’t like a particle generator!&lt;/li&gt;    &lt;li&gt;Platformer - while not 3D it appears, it is a complete game with levels&lt;/li&gt;    &lt;li&gt;3D Animation&lt;/li&gt;    &lt;li&gt;Skinning – shows skinning a character using the content pipeline&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I mean, wow, great stuff David!  &lt;/p&gt;  &lt;p&gt;I hope you all enjoy the release of Silverlight 5 and kudos to the team for getting it out the door.  Go download the bits and start building awesome stuff.   &lt;/p&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9476f806-27d3-4b64-bddb-93ada0f5ee36" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/Tags/xaml/default.aspx" rel="tag"&gt;xaml&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/silverlight+5/default.aspx" rel="tag"&gt;silverlight 5&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/xna/default.aspx" rel="tag"&gt;xna&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/3d/default.aspx" rel="tag"&gt;3d&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://timheuer.com:443/blog/aggbug/14818.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid>http://timheuer.com:443/blog/archive/2011/12/12/silverlight-5-released-3d-extension-toolkit.aspx</guid>
            <pubDate>Tue, 13 Dec 2011 00:27:00 GMT</pubDate>
            <comments>http://timheuer.com:443/blog/archive/2011/12/12/silverlight-5-released-3d-extension-toolkit.aspx#feedback</comments>
            <slash:comments>10</slash:comments>
            <wfw:commentRss>http://timheuer.com:443/blog/comments/commentRss/14818.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Silverlight 5 RC available for developers</title>
            <link>http://timheuer.com:443/blog/archive/2011/09/01/silverlight-5-rc-available.aspx</link>
            <description>&lt;p&gt;&lt;img style="margin: 0px 10px 0px 0px; display: inline; float: left" align="left" src="http://storage2.timheuer.com/sl5bloglogo.png" width="96" height="95" /&gt;The &lt;a href="http://silverlight.net"&gt;Silverlight&lt;/a&gt; 5 Release Candidate (RC) is now available for developers to download.  As with previous preview releases, this is a developer-focused release, which means no production releases, no go-live license, etc.  This is made available for you to test your apps, upgrade to get latest features and to deal with the changes from beta to RC.&lt;/p&gt;  &lt;p&gt;The beta was a great release and preview of what the team had introduced as new features.  You can read back on my &lt;a href="http://timheuer.com/blog/archive/2011/04/13/whats-new-in-silverlight-5-a-guide.aspx"&gt;Silverlight 5 guide to new features post&lt;/a&gt; regarding if you haven’t understood the latest and greatest additions.  However there are now some new available features in the RC including:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;P/Invoke for calling native methods&lt;/li&gt;    &lt;li&gt;64-bit support for the plugin&lt;/li&gt;    &lt;li&gt;Vector printing&lt;/li&gt;    &lt;li&gt;Capabilities to support remote controls (for media)&lt;/li&gt;    &lt;li&gt;In-browser trusted apps&lt;/li&gt;    &lt;li&gt;PivotViewer now a part of Silverlight (with new features)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Some things have changed from beta to RC, to be sure to take a look at your code, references, namespaces, etc.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://10rem.net"&gt;Pete Brown&lt;/a&gt; has a great &lt;a href="http://10rem.net/blog/2011/09/01/silverlight-5-rc-now-available"&gt;announcement post on his blog&lt;/a&gt; with links to his (updated for RC) tutorials and videos for Silverlight 5.  Be sure to go on over there and read and get the links.    &lt;/p&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3bfe348c-a5b6-4661-9891-486c5b68971e" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/Tags/silverlight+5/default.aspx" rel="tag"&gt;silverlight 5&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/riaservices/default.aspx" rel="tag"&gt;riaservices&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://timheuer.com:443/blog/aggbug/14811.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid>http://timheuer.com:443/blog/archive/2011/09/01/silverlight-5-rc-available.aspx</guid>
            <pubDate>Thu, 01 Sep 2011 17:56:19 GMT</pubDate>
            <comments>http://timheuer.com:443/blog/archive/2011/09/01/silverlight-5-rc-available.aspx#feedback</comments>
            <slash:comments>12</slash:comments>
            <wfw:commentRss>http://timheuer.com:443/blog/comments/commentRss/14811.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Silverlight 5 Beta&amp;ndash;A guide to the new features</title>
            <link>http://timheuer.com:443/blog/archive/2011/04/13/whats-new-in-silverlight-5-a-guide.aspx</link>
            <description>&lt;p&gt;&lt;img title="Silverlight Logo" align="left" style="margin: 0px 10px 0px 0px; float: left; display: inline;" alt="Silverlight Logo" src="http://storage2.timheuer.com/sl5bloglogo.png" /&gt;At the MIX11 conference &lt;strong&gt;&lt;a href="http://weblogs.asp.net/scottgu"&gt;Scott Guthrie&lt;/a&gt;&lt;/strong&gt; announced the availability of &lt;a href="http://silverlight.net"&gt;&lt;strong&gt;&lt;font size="4"&gt;Silverlight&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; 5 Beta&lt;/strong&gt;.  I suppose this doesn’t come at a surprise to most as this is now a regular annual occurrence.  In fact it is almost exactly a year ago when Silverlight 4 was released.&lt;/p&gt;
&lt;p&gt;The team has been working very hard to deliver on the features we discussed at the &lt;a href="http://www.silverlight.net/news/events/firestarter/"&gt;Silverlight Firestarter&lt;/a&gt; event last December 2010.  That was a flurry of revealing that happened in December showing the world what the Silverlight team has been working on.  There was no rest for them of course and they continued to complete this initial version of Silverlight 5 to release at MIX11.  &lt;/p&gt;
&lt;p&gt;As always with Silverlight betas, this is a developer release.  This means that this is a preview for software developers to understand and appreciate (and give feedback) the new features provided.  There is no “end-user” runtime available for the release nor a “go-live” license for you to develop applications into production.  &lt;/p&gt;
&lt;p&gt;So enough with the pleasantries…&lt;/p&gt;
&lt;h2&gt;Download Silverlight 5 and Tools&lt;/h2&gt;
&lt;p&gt;To get started with the Silverlight 5 beta you are going to need some tools.  Here’s the link dump (be patient as some link caches get updated):&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=186892"&gt;Visual Studio 2010 SP1&lt;/a&gt; or &lt;a href="http://www.microsoft.com/express/Web/"&gt;Visual Web Developer Express 2010 SP1&lt;/a&gt; (yes, SP1 is required and if you don’t have it you’ll have to install it and can &lt;a href="http://go.microsoft.com/fwlink/?LinkId=209902"&gt;get it from here&lt;/a&gt;.) &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=214309"&gt;Silverlight 5 Tools for Visual Studio&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=215203"&gt;Expression Blend Preview for Silverlight 5&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=214345"&gt;Silverlight 5 SDK CHM&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;Developer runtimes: &lt;a href="http://silverlight.dlservice.microsoft.com/download/5/8/8/58897679-D9BC-4F58-BFC4-E999C9E32DD1/runtime/Silverlight_Developer.exe"&gt;Windows&lt;/a&gt; and &lt;a href="http://silverlight.dlservice.microsoft.com/download/5/8/8/58897679-D9BC-4F58-BFC4-E999C9E32DD1/runtime/Silverlight_Developer.dmg"&gt;Mac&lt;/a&gt; platforms – not needed if you install the tools above but some like to know where they can get these just for test/debug &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://silverlight.dlservice.microsoft.com/download/3/3/E/33EE735F-B82B-42AF-A62B-3ABF0F47D142/silverlight_sdk.exe"&gt;Silverlight 5 SDK only&lt;/a&gt; – not needed if you install the tools above &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=214346"&gt;Breaking changes doc&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are the full set of tools to help you evaluate &lt;strong&gt;Silverlight 5.&lt;/strong&gt;  At a bare minimum for a developer you’ll need/want the Visual Studio 2010 and the Silverlight 5 Tools for VS.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; In case you are like me and don’t like to read the finer details you may have missed the note that you don’t need to install the developer runtime/SDK separately if you are installing the Silverlight 5 Tools.  Again, &lt;em&gt;it is not necessary to install the SDK and developer runtimes *again* if you have already installed the Silverlight 5 Tools for Visual Studio&lt;/em&gt;.  The links to the developer runtimes are provided for convenience as some use these to put on test machines without developer tools to test things out and debug.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Go ahead and start downloading the tools now…here’s some information on the release for you as you download!&lt;/p&gt;
&lt;h2&gt;Silverlight 5 Resources&lt;/h2&gt;
&lt;p&gt;There are a few places you can go to get more information and quick learning on Silverlight 5:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;hey this blog :-) -- you can &lt;a href="http://feeds.timheuer.com/timheuer"&gt;subscribe to my feed&lt;/a&gt; as well as follow me on &lt;a href="http://twitter.com/timheuer"&gt;Twitter&lt;/a&gt; for some casual updates/sharing &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.johnpapa.net"&gt;John Papa&lt;/a&gt; and &lt;a href="http://10rem.net"&gt;Pete Brown&lt;/a&gt; blogs &lt;/li&gt;
    &lt;li&gt;View some &lt;a href="http://silverlight.net/getstarted/silverlight-5/"&gt;initial Silverlight 5 learning videos&lt;/a&gt; with sample code &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You should also subscribe/bookmark those links as they’ll likely to be continually updated with good nuggets of information!&lt;/p&gt;
&lt;h2&gt;&lt;a name="top"&gt;&lt;/a&gt;What’s new in Silverlight 5 – feature review&lt;/h2&gt;
&lt;p&gt;Here’s more of the details on what is new in this release.  This shouldn’t come of any surprise if you watched the Silverlight Firestarter event and saw all the new stuff.  This is a little long in description here, but hopefully for your benefit.&lt;/p&gt;
&lt;table width="629" border="0" cellspacing="0" cellpadding="2"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td width="316" valign="top"&gt;
            &lt;ul&gt;
                &lt;li&gt;&lt;a href="#tooling"&gt;Tooling&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="#media"&gt;Media&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="#text"&gt;Text&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="#databinding"&gt;Data binding&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="#controls"&gt;Controls&lt;/a&gt; &lt;/li&gt;
            &lt;/ul&gt;
            &lt;/td&gt;
            &lt;td width="311" valign="top"&gt;
            &lt;ul&gt;
                &lt;li&gt;&lt;a href="#3d"&gt;3D Graphics&lt;/a&gt;  &lt;/li&gt;
                &lt;li&gt;&lt;a href="#trustinbrowser"&gt;Trusted Applications in Browser&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="#trusted"&gt;Trusted Applications&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="#general"&gt;General “stuff”&lt;/a&gt; &lt;/li&gt;
            &lt;/ul&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;u&gt;&lt;em&gt;&lt;a name="tooling"&gt;&lt;/a&gt;Tooling&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;How could we have a release without improved tools?  Visual Studio 2010 has proved to me to be a great platform (have you seen the Extension Manager and how you can grab all the great things online?  &lt;a href="http://visualstudiogallery.msdn.microsoft.com/d491911d-97f3-4cf6-87b0-6a2882120acf"&gt;VSCommands&lt;/a&gt; is my favorite) for productive development on the Microsoft platforms.&lt;/p&gt;
&lt;p&gt;You would expect to have the Silverlight 5 support in the tools and it is in there, all what you want.  The cool thing is that adding the tools on your existing SP1 installation gives you ultimate Silverlight multi-targeting support:&lt;/p&gt;
&lt;p&gt;&lt;img title="" style="margin-right: auto; margin-left: auto; float: none; display: block;" alt="Silverlight Multi-targeting" src="http://storage2.timheuer.com/sl5multitarget2.png" /&gt;&lt;/p&gt;
&lt;p&gt;In addition to the basics and supporting the new features, we’ve added one of my favorite tooling features that folks have been asking for: XAML debugging.  Now right now it is for Binding expressions only, but let’s be honest, that’s what you care most about right!  So what does this feature mean?  Well you can set a breakpoint in your editor on XAML lines that have the &lt;em&gt;{Binding}&lt;/em&gt; syntax in them:&lt;/p&gt;
&lt;p&gt;&lt;img title="" style="margin-right: auto; margin-left: auto; float: none; display: block;" alt="XAML Breakpoint Editor" src="http://storage2.timheuer.com/xamlbreakpoint1.png" /&gt;&lt;/p&gt;
&lt;p&gt;When that binding is evaluated you’ll get information about the binding evaluation:&lt;/p&gt;
&lt;p&gt;&lt;img title="" style="margin-right: auto; margin-left: auto; float: none; display: block;" alt="XAML Breakpoint Watch Window" src="http://storage2.timheuer.com/xamlbreakpoint2.png" /&gt;&lt;/p&gt;
&lt;p&gt;Pretty helpful huh?  We hope so.  For now it is supported for Binding only.&lt;/p&gt;
&lt;p&gt;Video: &lt;a href="http://www.silverlight.net/learn/videos/all/silverlight-5-beta-debugging-binding"&gt;Pete Brown demonstrates XAML debugging&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;u&gt;&lt;a name="media"&gt;&lt;/a&gt;Media&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A few things improved on the media front based on some feedback from our customers.  First, when having the need for low-latency sound (for things like audio loops, etc.) the MediaElement wasn’t doing the trick.  There were a few hacks you could do, but overall not ideal.  So remember how we did some fun things on the phone that allowed you to use XNA?  Well, now we have SoundEffect for Silverlight 5 as well.  This should look familiar if you are a Windows Phone developer:&lt;/p&gt;
&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;
&lt;div class="csharpcode" id="codeSnippet"&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.Xna.Framework.Audio;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum2"&gt;   2:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span class="rem"&gt;// theStream is some audio stream you've retrieved&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span class="rem"&gt;// from a source&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum5"&gt;   5:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum6"&gt;   6:&lt;/span&gt; SoundEffect se = SoundEffect.FromStream(theStream.Stream);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum7"&gt;   7:&lt;/span&gt; se.Play();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Hopefully this will be a welcome addition for those working with audio.  You can also control the volume, pitch, etc. in the SoundEffect class.&lt;/p&gt;
&lt;p&gt;Video: &lt;a href="http://www.silverlight.net/learn/videos/all/silverlight-5-low-latency-sound-effects"&gt;Pete Brown demonstrates low-latency sound&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We also introduced a new feature that some affectionately call the “training video” feature.  Technically it’s called &lt;em&gt;TrickPlay&lt;/em&gt; or variable speed playback.  This allows you to set a playback speed/rate on your MediaElement from 0.5-2 (where 1 is the normal playback of your media).  The idea is that you’d get media playback at your chosen speed but also proper audio pitch correction.  The code couldn’t be simpler:&lt;/p&gt;
&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;
&lt;div class="csharpcode" id="codeSnippet"&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SpeedUpTrainingButtonClicked(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs args)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum3"&gt;   3:&lt;/span&gt;     trainingVideoMediaElement.PlaybackRate = 1.8;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum4"&gt;   4:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;For the beta, the audio pitch correction isn’t yet available so when setting the PlaybackRate you’ll only see the video effect right now.&lt;/p&gt;
&lt;p&gt;We have also enabled hardware decode for H.264 playback in this release!&lt;/p&gt;
&lt;p&gt;&lt;a href="#top"&gt;^ back to top&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;u&gt;&lt;a name="text"&gt;&lt;/a&gt;Text&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We’ve made a few improvements to the Text stack.  We’re introducing a &lt;em&gt;RichTextBoxOverflow&lt;/em&gt; element that will allow you to have linked text containers where the text flows to another element.  This will help with automatically laying out text in situations like mulit-column.  Here’s a snippet of what it might look like using element binding:&lt;/p&gt;
&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;
&lt;div class="csharpcode" id="codeSnippet"&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;StackPanel&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="200"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum2"&gt;   2:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;RichTextBox&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="50"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="50"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum3"&gt;   3:&lt;/span&gt;         &lt;span class="attr"&gt;OverflowContentTarget&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding ElementName=OverflowArea}"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum4"&gt;   4:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Paragraph&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum5"&gt;   5:&lt;/span&gt;             This is some really long text that won't fit right into the main RTB control and should overflow into the area that I've defined in my XAML to be the other section.&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum6"&gt;   6:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Paragraph&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum7"&gt;   7:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;RichTextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum8"&gt;   8:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;RichTextBoxOverflow&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;="OverflowArea"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum9"&gt;   9:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;StackPanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This would render:&lt;/p&gt;
&lt;p&gt;&lt;img title="" style="margin-right: auto; margin-left: auto; float: none; display: block;" alt="Linked Text Container" src="http://storage2.timheuer.com/overflowtext.png" /&gt;&lt;/p&gt;
&lt;p&gt;For the typography-philes in the Silverlight world, we’re adding tracking and leading support.  If those terms are foreign to you, you are not alone!  They basically provide more control over character spacing when text is rendered.  Example:&lt;/p&gt;
&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;
&lt;div class="csharpcode" id="codeSnippet"&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;RichTextBox&lt;/span&gt; &lt;span class="attr"&gt;FontSize&lt;/span&gt;&lt;span class="kwrd"&gt;="12"&lt;/span&gt; &lt;span class="attr"&gt;CharacterSpacing&lt;/span&gt;&lt;span class="kwrd"&gt;="300"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Would look like:&lt;/p&gt;
&lt;p&gt;&lt;img title="" style="margin-right: auto; margin-left: auto; float: none; display: block;" alt="Text Tracking and Leading" src="http://storage2.timheuer.com/trackingtext.png" /&gt;&lt;/p&gt;
&lt;p&gt;A few things that we’re working on that aren’t in in the beta right now but we’re working on are improving text clarity using pixel-snapping and enhanced OpenType support.  Some of these were demonstrated at MIX so be sure to watch the keynote and session videos!&lt;/p&gt;
&lt;p&gt;Video: &lt;a href="http://www.silverlight.net/learn/videos/all/silverlight-5-multi-column-linked-text"&gt;Pete Brown demonstrates text in Silverlight 5&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="#top"&gt;^ back to top&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;u&gt;&lt;a name="databinding"&gt;&lt;/a&gt;Data Binding&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;There are a few features that I categorize in this area of data binding.  They may all not directly be related, but I mentally put them in this category.  First we now support Implicit DataTemplates.  What this means is that you can specify a DataTemplate for a specific type in your binding.  Let’s use a simple example.  Let’s say I have an object Person which has FirstName, LastName, Title.  I now have another object called Manager, which inherits from Person and Employee which also inherits from Person.  If I was binding to a list box and wanted to list these people I could do something like this:&lt;/p&gt;
&lt;p&gt;Class Code:&lt;/p&gt;
&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;
&lt;div class="csharpcode" id="codeSnippet"&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; MainPage_Loaded(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum3"&gt;   3:&lt;/span&gt;     List&amp;lt;Person&amp;gt; people = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;Person&amp;gt;();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum4"&gt;   4:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum5"&gt;   5:&lt;/span&gt;     people.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Manager() { FirstName = &lt;span class="str"&gt;"Scott"&lt;/span&gt;, LastName = &lt;span class="str"&gt;"Guthrie"&lt;/span&gt;, Title = &lt;span class="str"&gt;"VP"&lt;/span&gt; });&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum6"&gt;   6:&lt;/span&gt;     people.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Employee() { FirstName = &lt;span class="str"&gt;"Tim"&lt;/span&gt;, LastName = &lt;span class="str"&gt;"Heuer"&lt;/span&gt;, Title = &lt;span class="str"&gt;"Minion"&lt;/span&gt; });&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum7"&gt;   7:&lt;/span&gt;     people.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Manager() { FirstName = &lt;span class="str"&gt;"Steve"&lt;/span&gt;, LastName = &lt;span class="str"&gt;"Ballmer"&lt;/span&gt;, Title = &lt;span class="str"&gt;"CEO"&lt;/span&gt; });&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum8"&gt;   8:&lt;/span&gt;     people.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Employee() { FirstName = &lt;span class="str"&gt;"Scott"&lt;/span&gt;, LastName = &lt;span class="str"&gt;"Hanselman"&lt;/span&gt;, Title = &lt;span class="str"&gt;"Open Source Fanatic"&lt;/span&gt; });&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum9"&gt;   9:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum10"&gt;  10:&lt;/span&gt;     PeopleList.ItemsSource = people;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum11"&gt;  11:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;XAML:&lt;/p&gt;
&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;
&lt;div class="csharpcode" id="codeSnippet"&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ListBox&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;="PeopleList"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum2"&gt;   2:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ListBox.Resources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum3"&gt;   3:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;DataTemplate&lt;/span&gt; &lt;span class="attr"&gt;DataType&lt;/span&gt;&lt;span class="kwrd"&gt;="local:Manager"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum4"&gt;   4:&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Border&lt;/span&gt; &lt;span class="attr"&gt;Background&lt;/span&gt;&lt;span class="kwrd"&gt;="LightBlue"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum5"&gt;   5:&lt;/span&gt;                 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;StackPanel&lt;/span&gt; &lt;span class="attr"&gt;Orientation&lt;/span&gt;&lt;span class="kwrd"&gt;="Horizontal"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum6"&gt;   6:&lt;/span&gt;                     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TextBlock&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding FirstName}"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum7"&gt;   7:&lt;/span&gt;                     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TextBlock&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding LastName}"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum8"&gt;   8:&lt;/span&gt;                 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;StackPanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum9"&gt;   9:&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Border&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum10"&gt;  10:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;DataTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum11"&gt;  11:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;DataTemplate&lt;/span&gt; &lt;span class="attr"&gt;DataType&lt;/span&gt;&lt;span class="kwrd"&gt;="local:Employee"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum12"&gt;  12:&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Border&lt;/span&gt; &lt;span class="attr"&gt;Background&lt;/span&gt;&lt;span class="kwrd"&gt;="Bisque"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum13"&gt;  13:&lt;/span&gt;                 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;StackPanel&lt;/span&gt; &lt;span class="attr"&gt;Orientation&lt;/span&gt;&lt;span class="kwrd"&gt;="Horizontal"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum14"&gt;  14:&lt;/span&gt;                     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TextBlock&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding FirstName}"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum15"&gt;  15:&lt;/span&gt;                     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TextBlock&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding LastName}"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum16"&gt;  16:&lt;/span&gt;                 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;StackPanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum17"&gt;  17:&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Border&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum18"&gt;  18:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;DataTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum19"&gt;  19:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ListBox.Resources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum20"&gt;  20:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ListBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;which would render:&lt;/p&gt;
&lt;p&gt;&lt;img title="" style="margin-right: auto; margin-left: auto; float: none; display: block;" alt="Implicit DataType Binding" src="http://storage2.timheuer.com/implicitbinding.png" /&gt;&lt;/p&gt;
&lt;p&gt;This flexibility allows me to use binding on same shaped objects, but provide unique characteristics in my template where appropriate.&lt;/p&gt;
&lt;p&gt;Video: &lt;a href="http://www.silverlight.net/learn/videos/all/implicit-data-templates-in-silverlight-5-beta"&gt;Pete Brown demonstrates Implicit DataTemplates&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ancestor RelativeSource binding is also now supported which allows a DataTemplate to bind to a property of the element that contains it, like:&lt;/p&gt;
&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;
&lt;div class="csharpcode" id="codeSnippet"&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;UserControl&lt;/span&gt; &lt;span class="attr"&gt;x:Class&lt;/span&gt;=”&lt;span class="attr"&gt;MyApplication1&lt;/span&gt;.&lt;span class="attr"&gt;UserControl1&lt;/span&gt;”&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum2"&gt;   2:&lt;/span&gt;             &lt;span class="attr"&gt;xmlns&lt;/span&gt;=”&lt;span class="attr"&gt;http:&lt;/span&gt;//&lt;span class="attr"&gt;schemas&lt;/span&gt;.&lt;span class="attr"&gt;microsoft&lt;/span&gt;.&lt;span class="attr"&gt;com&lt;/span&gt;/&lt;span class="attr"&gt;winfx&lt;/span&gt;/&lt;span class="attr"&gt;2006&lt;/span&gt;/&lt;span class="attr"&gt;xaml&lt;/span&gt;/&lt;span class="attr"&gt;presentation&lt;/span&gt;”&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum3"&gt;   3:&lt;/span&gt;             &lt;span class="attr"&gt;xmlns:x&lt;/span&gt;=”&lt;span class="attr"&gt;http:&lt;/span&gt;//&lt;span class="attr"&gt;schemas&lt;/span&gt;.&lt;span class="attr"&gt;microsoft&lt;/span&gt;.&lt;span class="attr"&gt;com&lt;/span&gt;/&lt;span class="attr"&gt;winfx&lt;/span&gt;/&lt;span class="attr"&gt;2006&lt;/span&gt;/&lt;span class="attr"&gt;xaml&lt;/span&gt;”&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ContentControl&lt;/span&gt; &lt;span class="attr"&gt;Tag&lt;/span&gt;=”&lt;span class="attr"&gt;SomeValue&lt;/span&gt;”&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum5"&gt;   5:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HeaderdContentControl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum6"&gt;   6:&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HeaderedContentControl.Header&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum7"&gt;   7:&lt;/span&gt;                 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TextBlock&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;=”{&lt;span class="attr"&gt;Binding&lt;/span&gt; &lt;span class="attr"&gt;Tag&lt;/span&gt;, &lt;span class="attr"&gt;RelativeSource&lt;/span&gt;=&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum8"&gt;   8:&lt;/span&gt; {&lt;span class="attr"&gt;RelativeSource&lt;/span&gt;,&lt;span class="attr"&gt;AncestorType&lt;/span&gt;=&lt;span class="attr"&gt;ContentControl&lt;/span&gt;, &lt;span class="attr"&gt;AncestorLevel&lt;/span&gt;=&lt;span class="attr"&gt;2&lt;/span&gt;}}” &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum9"&gt;   9:&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HeaderedContentControl.Header&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum10"&gt;  10:&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Button&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Click Me!&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Button&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum11"&gt;  11:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HeaderdContentControl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum12"&gt;  12:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ContentControl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum13"&gt;  13:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;UserControl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This has been a highly requested feature as well!&lt;/p&gt;
&lt;p&gt;How about some custom MarkupExtensions?  Yes, that’s available now as well!  This will help with those who follow the MVVM pattern of development as well as those who have been yearning to be able to have their own expressions run on markup.  I’ve also thought people could use this to scaffold localization efforts as well around a MarkupExtension.  Maybe something like:&lt;/p&gt;
&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;
&lt;div class="csharpcode" id="codeSnippet"&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TextBlock&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="{local:ResourceLookup Path=MyResourceKey}"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I think this will be a useful feature.  Of course you are required to actually write code for your extension!&lt;/p&gt;
&lt;p&gt;Also in the beta is the ability to perform binding in Style setters.  These are some great improvements to our markup/binding story and features which you have been asking for so I can’t wait to see how they are used!&lt;/p&gt;
&lt;p&gt;&lt;a href="#top"&gt;^ back to top&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;u&gt;&lt;a name="controls"&gt;&lt;/a&gt;Controls&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is another general category I am including some features which are available in Silverlight 5.&lt;/p&gt;
&lt;p&gt;First is what we call ClickCount.  This will help with basically doing the double-click tracking on elements in your application:&lt;/p&gt;
&lt;div class="csharpcode-wrapper" id="codeSnippetWrapper"&gt;
&lt;div class="csharpcode" id="codeSnippet"&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CheckClick(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, MouseButtonEventArgs e)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.ClickCount == 2)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum4"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum5"&gt;   5:&lt;/span&gt;         &lt;span class="rem"&gt;// double-click happened&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum6"&gt;   6:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre class="alteven"&gt;&lt;span class="lnum" id="lnum7"&gt;   7:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Video: &lt;a href="http://www.silverlight.net/learn/videos/all/silverlight-5-mouse-button-double-and-multi-click"&gt;Pete Brown demonstrates ClickCount usage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Next is multiple-window support.  This is the same Window element that the MainWindow shares and you are able to create numerous Windows that your application can interact with and show as separate windows in the OS.  This is not a ChildWindow implementation where they are all within the main object.  This feature is available to out-of-browser applications.  Once the main application is closed, all the Windows created from that will close as well.&lt;/p&gt;
&lt;p&gt;Video: &lt;a href="http://www.silverlight.net/learn/videos/all/silverlight-5-native-operating-system"&gt;Pete Brown demonstrates multiple Windows&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="#top"&gt;^ back to top&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;u&gt;&lt;a name="3d"&gt;&lt;/a&gt;3D Graphics API&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;One of the coolest demos at the Silverlight Firestarter was the 3D demonstrations.  I don’t even claim to be close to a novice on 3D graphics, but I can’t wait to see what people do with the 3D APIs.  I would keep a watch on &lt;a href="http://kodierer.blogspot.com/"&gt;Rene Schulte&lt;/a&gt; as I’m positive he’ll have some cool stuff come out!  It’s hard to show a short snippet of 3D but here’s some effects you’ll be able to do:&lt;/p&gt;
&lt;p&gt;&lt;img title="" style="margin-right: auto; margin-left: auto; float: none; display: block;" alt="Silverlight 3D Example" src="http://storage2.timheuer.com/3dhouse2.png" /&gt;&lt;/p&gt;
&lt;p&gt;Be sure to watch out for more examples here to understand the capabilities.&lt;/p&gt;
&lt;p&gt;Check out &lt;a href="http://kodierer.blogspot.com/"&gt;Rene Schulte&lt;/a&gt; and &lt;a href="http://www.andybeaulieu.com/Home/tabid/67/EntryID/216/Default.aspx"&gt;Andy Beaulieu&lt;/a&gt; for some good examples.  Here are some teasers:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=VGzwJ9NnHKk&amp;amp;feature=player_embedded"&gt;Simple 3D Test game&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://3dphysics.codeplex.com/"&gt;Silverlight 5 3D Physics&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://vimeo.com/22168601"&gt;Silverlight 5 3D with Silverlight Augmented Reality Toolkit&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="#top"&gt;^ back to top&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;u&gt;&lt;a name="trustinbrowser"&gt;&lt;/a&gt;Trusted Applications in Browser&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A new feature we are bringing is the ability to do some of the “trusted” features in Silverlight &lt;em&gt;in the browser&lt;/em&gt;.  This brings the current functionality of trusted applications in current form to be used in the browser context without having to be installed.  This still requires the XAP to have the ElevatedPermissions security setting in the manifest as it would exist with out-of-browser applications as well as the XAP being signed (and the certificate in the user’s trusted publisher store).&lt;/p&gt;
&lt;p&gt;Additionally the requirement would be that a registry key be set on the machine to enable this.  This could be deployed via Group Policy or other desktop-management techniques.  Once these are in place, the application can take advantage of the elevated permissions feature set introduced in Silverlight 4, including things like full keyboard access in full-screen mode.&lt;/p&gt;
&lt;p&gt;&lt;a href="#top"&gt;^ back to top&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;u&gt;&lt;a name="trusted"&gt;&lt;/a&gt;Trusted Applications Out-of-browser Enhancements&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In addition to the new multiple Window support, trusted out-of-browser applications can now access the broader file system outside of the user’s “My Documents” type areas on the disk.  We hope this provides greater flexibility in the most trusted application area.&lt;/p&gt;
&lt;p&gt;&lt;a href="#top"&gt;^ back to top&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;u&gt;&lt;a name="general"&gt;&lt;/a&gt;General “stuff”&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In addition to the features noted above, here’s some things that are also included that I chose not to put in one of these categories and are implemented in the Silverlight 5 beta:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Startup performance improvements on multi-core systems (multi-core JIT) &lt;/li&gt;
    &lt;li&gt;ComboBox with type-ahead searching &lt;/li&gt;
    &lt;li&gt;DefaultFileName in SaveFileDialog!!! &lt;/li&gt;
    &lt;li&gt;Improvements in the graphics stack brought over from the Windows Phone codebase &lt;/li&gt;
    &lt;li&gt;Hardware acceleration in Windowless mode in Internet Explorer 9 &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You may be realizing there was a lot more shown at MIX keynote and will be discussed.  You’d be right.  There are a number of things we are still refining that aren’t in the current beta such as:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Vector printing &lt;/li&gt;
    &lt;li&gt;Power awareness for things like full-screen apps (i.e., don’t put me to sleep if I’m watching an awesome movie) &lt;/li&gt;
    &lt;li&gt;Remote control support allowing users to control media playback &lt;/li&gt;
    &lt;li&gt;OpenType support as previously mentioned &lt;/li&gt;
    &lt;li&gt;Text clarity improvements with pixel snapping as previously mentioned &lt;/li&gt;
    &lt;li&gt;A new DataContextChanged event &lt;/li&gt;
    &lt;li&gt;WS-Trust support for services &lt;/li&gt;
    &lt;li&gt;64-bit support for the plugin &lt;/li&gt;
    &lt;li&gt;COM interop for trusted in-browser applications &lt;/li&gt;
    &lt;li&gt;P/Invoke for trusted applications &lt;/li&gt;
    &lt;li&gt;PivotViewer control improvements and distributed in the SDK &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As you can see we’re still going to be busy and hope that you like what you see so far!&lt;/p&gt;
&lt;p&gt;&lt;a href="#top"&gt;^ back to top&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Summary and Feedback&lt;/h2&gt;
&lt;p&gt;Now you have some new toys to play with.  If you’ve read all this post then your tools should have been done downloading now, so go install them, watch some of Pete’s videos linked here and learn about the new features.  If you find issues please be sure to report the feedback (it is better to report bugs/issues via the official channels than as a comment here).  Also be sure to read the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=214346"&gt;changes document&lt;/a&gt; to get an idea of how any changes may affect your applications.&lt;/p&gt;
&lt;p&gt;Congratulations to the Silverlight 5 team (be sure to say hello to them at MIX if you are there) and we hope you like what you see and the direction we’re going to enable features you’ve been asking for in the platform.&lt;/p&gt;
&lt;p&gt;Hope this helps! &lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7f1576a9-e72a-490d-94d7-4fdc048bca99" style="margin: 0px; padding: 0px; float: none; display: inline;"&gt;&lt;span class="tags"&gt;tags: &lt;a rel="tag" href="http://timheuer.com/blog/Tags/silverlight+5/default.aspx"&gt;silverlight 5&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/Tags/silverlight/default.aspx"&gt;silverlight&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/Tags/mix11/default.aspx"&gt;mix11&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/Tags/sl5/default.aspx"&gt;sl5&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="wlWriterHeaderFooter" style="margin: 0px; padding: 0px;"&gt;&lt;hr /&gt;
&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://timheuer.com:443/blog/aggbug/14807.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid>http://timheuer.com:443/blog/archive/2011/04/13/whats-new-in-silverlight-5-a-guide.aspx</guid>
            <pubDate>Wed, 13 Apr 2011 17:09:22 GMT</pubDate>
            <comments>http://timheuer.com:443/blog/archive/2011/04/13/whats-new-in-silverlight-5-a-guide.aspx#feedback</comments>
            <slash:comments>61</slash:comments>
            <wfw:commentRss>http://timheuer.com:443/blog/comments/commentRss/14807.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Visual Studio Template Behavior Research</title>
            <link>http://timheuer.com:443/blog/archive/2011/03/17/poll-visual-studio-template-behavior.aspx</link>
            <description>&lt;p&gt;I’ve been working on some stuff around templates lately and had my own opinions of some of the value of certain features of the Visual Studio template functionality.  What I’m speaking of here is when you choose File…&lt;em&gt;New Project&lt;/em&gt; or on an existing project &lt;em&gt;Add Item&lt;/em&gt;.  Both of those show you a list of templates.  When you select one most typically you get new files in your project.  It is one area of Visual Studio that is the simplest to extend and provide specific templates for your developers.&lt;/p&gt;  &lt;p&gt;There is an option for template developers to specify what, if any, files are open by default once the template is added.  Using &lt;a href="http://silverlight.net"&gt;Silverlight&lt;/a&gt; as an example, when you create a new project you’ll see that the default &lt;em&gt;MainPage.xaml&lt;/em&gt; file is opened for you in the designer.  I wanted to get a feeling of what developers thought of this functionality.  Help me with some research?&lt;/p&gt;  &lt;p&gt;&lt;iframe src="http://twtpoll.com/badge/if/?twt=qobw24&amp;amp;tbg=1&amp;amp;b=1" width="300" height="400" frameborder="0" scrolling="no" name="twpw_if" id="twpw_if"&gt;Your browser doesn't support iFrames :( Vote for this poll &lt;a href="http://twtpoll.com/qobw24" title="here" target="_blank"&gt;here&lt;/a&gt;.&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;This is, of course, totally un-scientific and I just wanted to get a litmus test of what people thought of that functionality (opening files by default, not just the concept of templates).  Thanks in advance for helping out!   &lt;/p&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f40e9f18-f0eb-4aed-881a-ad5e474f8e16" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/Tags/visual+studio/default.aspx" rel="tag"&gt;visual studio&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/vs2010/default.aspx" rel="tag"&gt;vs2010&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/riaservices/default.aspx" rel="tag"&gt;riaservices&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/expression/default.aspx" rel="tag"&gt;expression&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/templates/default.aspx" rel="tag"&gt;templates&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://timheuer.com:443/blog/aggbug/14805.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid>http://timheuer.com:443/blog/archive/2011/03/17/poll-visual-studio-template-behavior.aspx</guid>
            <pubDate>Thu, 17 Mar 2011 15:30:41 GMT</pubDate>
            <comments>http://timheuer.com:443/blog/archive/2011/03/17/poll-visual-studio-template-behavior.aspx#feedback</comments>
            <slash:comments>15</slash:comments>
            <wfw:commentRss>http://timheuer.com:443/blog/comments/commentRss/14805.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Silverlight 4 February 2011 Update Released Today</title>
            <link>http://timheuer.com:443/blog/archive/2011/02/14/silverlight-february-2011-update-gdr3.aspx</link>
            <description>&lt;p&gt;Today (at approximately 10:00 AM PST) our team released an update to the &lt;a href="http://silverlight.net"&gt;Silverlight&lt;/a&gt; 4 runtime.  This update, dubbed internally as “GDR3,” provides an update in the following key areas (&lt;a href="http://support.microsoft.com/kb/2495644"&gt;KB2495644&lt;/a&gt;):&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Timestamp issues with media playback and VC-1 codec&lt;/li&gt;
    &lt;li&gt;Visual Studio IDE crash when profiling a Silverlight application which has a pixel shader&lt;/li&gt;
    &lt;li&gt;Enabling Silverlight to run as a 32-bit process in 64-bit Firefox on OSX&lt;/li&gt;
    &lt;li&gt;DRM fixes for a “6207” error when playing protected content after upgrading to a version of Silverlight&lt;/li&gt;
    &lt;li&gt;Memory leak fixes with regard to the use of in-line DataTemplate&lt;/li&gt;
    &lt;li&gt;Out-of-browser applications failing to update if the application name was changed&lt;/li&gt;
    &lt;li&gt;Media playback error when the media streams have redirect information&lt;/li&gt;
    &lt;li&gt;Improving network latency (&lt;a href="http://support.microsoft.com/kb/2505882"&gt;KB2505882&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Many readers of this blog will likely zero in on the memory leak fix here.  The issue is discussed/debated/ridiculed ad nauseam on the forums relating to this issue.  If your customer applications are facing this issue and you chose not to apply one of the two workarounds, then you want to encourage your customers to upgrade to this release.  This can be done using the minimum runtime version attributes in your &amp;lt;object&amp;gt; tags where you use Silverlight.  This will prompt the user for an upgrade.  Of course, I’ve stated my opinion many times before that this should be a customized experience and we’ve even &lt;a href="http://silverlight.net/learn/whitepapers"&gt;provided sample code&lt;/a&gt; to do so in our installation experience whitepaper.&lt;/p&gt;
&lt;h2&gt;‘I noticed &amp;lt;your-favorite-bug/feature&amp;gt; isn’t fixed here’&lt;/h2&gt;
&lt;p&gt;Each service release doesn’t fix our backlog completely.  If there is an issue you are seeing with Silverlight after applying this update, please, please, please log a bug on the product.  Don’t assume someone else has.  There is a specific way you can log a product bug on Silverlight as I’ve outlined in this post: &lt;a href="http://timheuer.com/blog/archive/2010/05/03/ways-to-give-feedback-on-silverlight.aspx"&gt;Ways to give feedback on Silverlight&lt;/a&gt;.  The ideal bug is one that is detailed, reproducible, and provides an actual repro project/sample.  This is the fastest route to getting a bug understood and evaluated.&lt;/p&gt;
&lt;h2&gt;Getting the update&lt;/h2&gt;
&lt;p&gt;As with all service updates, this update will be made available to customers via Microsoft Update.  If you are a developer and don’t want to wait, you can download the bits here (please be aware network propagation across the globe might take a few hours):&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=149156"&gt;Silverlight runtime&lt;/a&gt; (end-user)&lt;/li&gt;
    &lt;li&gt;Silverlight &lt;strong&gt;developer&lt;/strong&gt; runtime: &lt;a href="http://go.microsoft.com/fwlink/?LinkID=188039"&gt;Windows&lt;/a&gt; or &lt;a href="http://go.microsoft.com/fwlink/?LinkID=188040"&gt;Mac&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is NO SDK update for this release.  As a developer you only need to update the developer runtime on your machine to continue enabling Silverlight development but to also have the new runtime on your machine as a user as well.  Please note that by you, the developer, simply having the updated dev runtime doesn’t “force” your apps to use it.  This is controlled by using the minRuntimeVersion flags in your &amp;lt;object&amp;gt; tag to trigger what the minimum requirement is for your application.&lt;/p&gt;
&lt;p&gt;Hope this helps!   &lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f3bb9552-0348-4f51-ae97-980d399cfa42" style="margin: 0px; padding: 0px; float: none; display: inline;"&gt;&lt;span class="tags"&gt;tags: &lt;a rel="tag" href="http://timheuer.com/blog/Tags/silverlight/default.aspx"&gt;silverlight&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/Tags/gdr/default.aspx"&gt;gdr&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/Tags/gdr3/default.aspx"&gt;gdr3&lt;/a&gt;, &lt;a rel="tag" href="http://timheuer.com/blog/Tags/datatemplate/default.aspx"&gt;datatemplate&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="wlWriterHeaderFooter" style="margin: 0px; padding: 0px;"&gt;&lt;hr /&gt;
&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://timheuer.com:443/blog/aggbug/14803.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid>http://timheuer.com:443/blog/archive/2011/02/14/silverlight-february-2011-update-gdr3.aspx</guid>
            <pubDate>Mon, 14 Feb 2011 20:19:12 GMT</pubDate>
            <comments>http://timheuer.com:443/blog/archive/2011/02/14/silverlight-february-2011-update-gdr3.aspx#feedback</comments>
            <slash:comments>44</slash:comments>
            <wfw:commentRss>http://timheuer.com:443/blog/comments/commentRss/14803.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Silverlight Toolkits now on NuGet</title>
            <link>http://timheuer.com:443/blog/archive/2011/02/10/silverlight-toolkit-available-on-nuget.aspx</link>
            <description>&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" align="left" src="http://storage2.timheuer.com/nuget-229x64.png" /&gt;Last night after a quick e-mail exchange with Phil, David and Scott I revised my &lt;a href="http://silverlight.net"&gt;&lt;strong&gt;Silverlight&lt;/strong&gt;&lt;/a&gt; Toolkit “NuPack” packages I had &lt;a href="http://timheuer.com/blog/archive/2010/10/07/silverlight-toolkit-nupack-windows-phone-toolkit.aspx"&gt;previously created when NuPack NuGet first came out&lt;/a&gt;.  At the time there were a couple of things still not supported and frankly, I got busy and never bothered to check back.  Scott had seen something on a forum inquiring why Silverlight stuff, namely our open source controls, aren’t deployable via &lt;a href="http://nuget.org"&gt;&lt;strong&gt;NuGet&lt;/strong&gt;&lt;/a&gt;.  There wasn’t any other reason other than resources not currently scheduled to add this to the build flows, etc.  So I spent a few minutes revising the packages and putting them up there:&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Silverlight Toolkits on NuGet" border="0" alt="Silverlight Toolkits on NuGet" src="http://storage2.timheuer.com/nugetsearch.png" /&gt;&lt;/p&gt;  &lt;p&gt;What you see above is the “Add Library Package Reference” results after you &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/27077b70-9dad-4c64-adcf-c7cf6bc9970c/file/37502/5/NuGet.Tools.vsix"&gt;install NuGet&lt;/a&gt;.  Now instead of having to install an MSI, etc. you can basically add a reference to the package and the bits will be copied to your project and automatically referenced.  In order to componentize the main &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, I created the NuGet packages in a way that they can be individually consumed, or a meta-package as “All.”  It’s cool that NuGet allows you to create a meta-package which is basically a dependency graph.  For instance, my “all” package has zero content…but here is the .nuspec contents:&lt;/p&gt;  &lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;   &lt;div id="codeSnippet" class="csharpcode"&gt;     &lt;pre class="alteven"&gt;&lt;span id="lnum1" class="lnum"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="html"&gt;xml&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;="1.0"&lt;/span&gt; &lt;span class="attr"&gt;encoding&lt;/span&gt;&lt;span class="kwrd"&gt;="utf-8"&lt;/span&gt;?&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum2" class="lnum"&gt;   2:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;package&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum3" class="lnum"&gt;   3:&lt;/span&gt;   &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;metadata&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum4" class="lnum"&gt;   4:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;SilverlightToolkit-All&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum5" class="lnum"&gt;   5:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;4.2010.04&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum6" class="lnum"&gt;   6:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;authors&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Microsoft&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;authors&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum7" class="lnum"&gt;   7:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;description&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;The complete Microsoft Silverlight Toolkit.  Details at http://silverlight.codeplex.com&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;description&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum8" class="lnum"&gt;   8:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;language&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;en-US&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;language&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum9" class="lnum"&gt;   9:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;licenseUrl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;http://silverlight.codeplex.com/license&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;licenseUrl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;    &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum10" class="lnum"&gt;  10:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;projectUrl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;http://silverlight.codeplex.com/&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;projectUrl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum11" class="lnum"&gt;  11:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;dependencies&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum12" class="lnum"&gt;  12:&lt;/span&gt;       &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;dependency&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="SilverlightToolkit-Core"&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;="4.2010.04"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum13" class="lnum"&gt;  13:&lt;/span&gt;       &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;dependency&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="SilverlightToolkit-Data"&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;="4.2010.04"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum14" class="lnum"&gt;  14:&lt;/span&gt;       &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;dependency&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="SilverlightToolkit-DataViz"&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;="4.2010.04"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum15" class="lnum"&gt;  15:&lt;/span&gt;       &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;dependency&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="SilverlightToolkit-Input"&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;="4.2010.04"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum16" class="lnum"&gt;  16:&lt;/span&gt;       &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;dependency&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="SilverlightToolkit-Layout"&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;="4.2010.04"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum17" class="lnum"&gt;  17:&lt;/span&gt;       &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;dependency&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="SilverlightToolkit-Theming"&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;="4.2010.04"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum18" class="lnum"&gt;  18:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;dependencies&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum19" class="lnum"&gt;  19:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Silverlight Toolkit - All&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum20" class="lnum"&gt;  20:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;owners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Tim Heuer&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;owners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum21" class="lnum"&gt;  21:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;iconUrl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;http://silverlight.microsoft.com/assets/sl-32.png&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;iconUrl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum22" class="lnum"&gt;  22:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tags&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;silverlight toolkit sltoolkit&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tags&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum23" class="lnum"&gt;  23:&lt;/span&gt;   &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;metadata&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum24" class="lnum"&gt;  24:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;package&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;It’ basically defines the pointers to what it needs and NuGet does the magic to manage the dependencies on install.  For the &lt;strong&gt;Silverlight for Windows Phone Toolkit&lt;/strong&gt;, we also have icons.  NuGet allows me to package up those icons as well so that when the package gets added, so do the icons (NOTE: there is still a step to mark them as content in the project).  I point this out because when the phone toolkit first came out some of the samples weren’t working for people because they didn’t read that they had to actually include some icons to get them to work.  Using NuGet, at least we’re able to help them even further.&lt;/p&gt;

&lt;p&gt;I really like this model.  I &lt;strong&gt;love&lt;/strong&gt; that I can use a familiar “Add Reference” gesture in Visual Studio, but I can also use a PowerShell VS window to do my package management as well if I wanted.  Take a look at the NuGet stuff and if you are a Silverlight developer, now you have everything easily at your fingertips!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;NOTE: The version numbers in the toolkit packages are &lt;em&gt;package&lt;/em&gt; version numbers.  We’ve never really promoted the toolkit versions as they literally are (i.e., 4.0.31319.blah) but rather as the release timeframe i.e., “April 2010” release.  Because NuGet follows CLR versioning taxonomy I created the package versions to hopefully be somewhat descriptive: 4.2010.04 – For Silverlight 4, April 2010 release – as an example.  It’s not perfect, but it works.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;NuGet has over 670 packages now in the repository with an amazing set of tools readily available at your fingertips.  There are some good Silverlight nuggets in there as well and it is nice to have our toolkits in there now also!  When updates come out, the Library Package Manager will show the updates, giving the developer the option to update them quickly.&lt;/p&gt;

&lt;p&gt;Hope this helps! &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5a689454-2a32-40e5-b131-7098dd0ecdf8" class="wlWriterEditableSmartContent"&gt;&lt;span class="tags"&gt;tags: &lt;a href="http://timheuer.com/blog/Tags/nuget/default.aspx" rel="tag"&gt;nuget&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/nupack/default.aspx" rel="tag"&gt;nupack&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/oss/default.aspx" rel="tag"&gt;oss&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/toolkit/default.aspx" rel="tag"&gt;toolkit&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/expression/default.aspx" rel="tag"&gt;expression&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/Tags/riaservices/default.aspx" rel="tag"&gt;riaservices&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;hr /&gt;&lt;div class="cc-license"&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://timheuer.com:443/blog/aggbug/14802.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Heuer</dc:creator>
            <guid>http://timheuer.com:443/blog/archive/2011/02/10/silverlight-toolkit-available-on-nuget.aspx</guid>
            <pubDate>Thu, 10 Feb 2011 20:55:25 GMT</pubDate>
            <comments>http://timheuer.com:443/blog/archive/2011/02/10/silverlight-toolkit-available-on-nuget.aspx#feedback</comments>
            <slash:comments>10</slash:comments>
            <wfw:commentRss>http://timheuer.com:443/blog/comments/commentRss/14802.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>System.Web.HttpWriter