<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Shawn Burke's Blog : Controls</title><link>http://blogs.msdn.com/sburke/archive/tags/Controls/default.aspx</link><description>Tags: Controls</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>WPF and Silverlight Toolkit Compatibility</title><link>http://blogs.msdn.com/sburke/archive/2008/11/11/wpf-and-silverlight-toolkit-compatibility.aspx</link><pubDate>Tue, 11 Nov 2008 22:50:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9060697</guid><dc:creator>sburke</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/sburke/comments/9060697.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sburke/commentrss.aspx?PostID=9060697</wfw:commentRss><description>&lt;h3&gt;General Compat Thoughts&lt;/h3&gt;  &lt;p&gt;The majority of the controls in the &lt;a href="http://www.codeplex.com/Silverlight/Release/ProjectReleases.aspx?ReleaseId=18804"&gt;Silverlight Toolkit November 2008&lt;/a&gt; (PDC) release are Silverlight versions of controls already present in WPF.&lt;/p&gt;  &lt;p&gt;These &amp;quot;WPF Parity&amp;quot; controls include:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;DockPanel &lt;/li&gt;    &lt;li&gt;WrapPanel &lt;/li&gt;    &lt;li&gt;ViewBox &lt;/li&gt;    &lt;li&gt;Label &lt;/li&gt;    &lt;li&gt;Expander &lt;/li&gt;    &lt;li&gt;TreeView &lt;/li&gt;    &lt;li&gt;HeaderedContentControl &lt;/li&gt;    &lt;li&gt;HeaderedItemsControl &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We focused heavily on API compatibility for these controls, only making changes (I'm actually not sure if there were any) for things that aren't currently possible on the Silverlight 2 runtime.&amp;#160; And some things, like supporting Visual State Manager, required internal changes that made the process more complicated than just copying the existing WPF code.&amp;#160; &lt;/p&gt;  &lt;p&gt;We did leverage the WPF control specs and use the WPF controls behavior as our guidelines, and we were pretty hard-core about making sure the Silverlight Toolkit control's API was a strict subset of the corresponding WPF control's API.&amp;#160; One of the primary compatibility goals was also to enable sharing of design assets, via VSM between WPF and Silverlight with minimal changes, and this enables that as well.&lt;/p&gt;  &lt;p&gt;Even so, the controls aren't &amp;quot;strictly&amp;quot; compatible for two main reasons:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;CLR Namespace&lt;/strong&gt;: All of the Silverlight Toolkit controls are in the &lt;em&gt;Microsoft.* &lt;/em&gt;namespace instead of the &lt;em&gt;System.*&lt;/em&gt; namespace.&amp;#160; We made this change for a variety of reasons, some of which I mentioned in a &lt;a href="http://blogs.msdn.com/sburke/archive/2008/09/17/control-freak.aspx"&gt;prior post&lt;/a&gt;.&amp;#160; Basically we want our &amp;quot;out-of-band&amp;quot; controls to be in &amp;quot;&lt;em&gt;Microsoft.*&lt;/em&gt;&amp;quot; and the platform ones (e.g. in the core runtime) to be &amp;quot;&lt;em&gt;System.*&lt;/em&gt;&amp;quot;.&amp;#160; The main benefit of this is that when/if we decide to move controls into the runtime they will NEVER collide with the existing ones and therefore won't break any applications.&amp;#160; This then is an opt-in model for developers for when they want to swap over to the runtime controls&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;XML Namespace&lt;/strong&gt;: Silverlight doesn't currently support the same XML namespace semantics that WPF does.&amp;#160; In WPF you can use the &lt;strong&gt;XmlnsDefinitionAttribute&lt;/strong&gt; to &amp;quot;collapse&amp;quot; multiple CLR namespaces into a single XML namespace.&amp;#160; Silverlight's parser doesn't currently support this, hence the need to have a separate XML namespace for each &lt;em&gt;CLR Namespace + Assembly&lt;/em&gt; pairing, and you need to have a prefix for that in your XAML. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The upshot of all of this is that, to move your code from Silverlight to WPF, for the &amp;quot;parity&amp;quot; controls listed above, you'll need to do two things:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Change your &lt;strong&gt;using/Imports&lt;/strong&gt;* clause to be System.Windows.Controls from Microsoft.Windows.Controls. &lt;/li&gt;    &lt;li&gt;Remove the xmlns declaration and the prefixes from the XAML. So&amp;#160; &lt;strong&gt;&lt;font face="Courier New"&gt;&amp;lt;controls:DockPanel /&amp;gt;&lt;/font&gt; &lt;/strong&gt;becomes &lt;font face="Courier New"&gt;&lt;strong&gt;&amp;lt;DockPanel/&amp;gt;&lt;/strong&gt;&lt;/font&gt;, for example. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The constraints outlined above made it difficult to make compat &amp;quot;Just Work&amp;quot; at this point in time.&amp;#160; Doing so would have required a set of complex tooling changes and too many &amp;quot;moving parts&amp;quot; that could result in broken applications or versioning issues.&amp;#160; As such, our main goal was to make this compatibility experience &lt;em&gt;simple, consistent, understandable&lt;/em&gt;, and something the compiler can help you with.&amp;#160; All of which tend to be my preferences in most cases.&amp;#160; It's much easier for us to implement and deliver, while being easy for developers to manage.&amp;#160; At some point we may add some help to automate this if developers do have trouble with it.&lt;/p&gt;  &lt;h3&gt;How Compat Affects The Silverlight Toolkit&lt;/h3&gt;  &lt;p&gt;Which brings me to the point of all of this.&lt;/p&gt;  &lt;p&gt;Looking at the &lt;a href="http://www.codeplex.com/Silverlight/WorkItem/AdvancedList.aspx"&gt;CodePlex IssueTracker&lt;/a&gt;, there are quite a few issues reported that are more feature requests than bugs.&amp;#160; Unfortunately, many of these are things that we can't do without affecting the &amp;quot;subset&amp;quot; compat that I mentioned below.&lt;/p&gt;  &lt;p&gt;For example, there are several of these relating to the the TreeView:&lt;/p&gt; &lt;a href="http://www.codeplex.com/Silverlight/WorkItem/View.aspx?WorkItemId=844"&gt;TreeView: Drag &amp;amp; Drop, Inline Node Editing&lt;/a&gt;   &lt;p&gt;&lt;a href="http://www.codeplex.com/Silverlight/WorkItem/View.aspx?WorkItemId=850"&gt;TreeView: Ability to Cancel TreeViewItem Selection&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/Silverlight/WorkItem/View.aspx?WorkItemId=851"&gt;TreeView: Showing Connecting Lines in TreeView&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We are having some conversations about how to handle this.&amp;#160; The optimal solution would be for us to be able to have a derived TreeView class that does all this stuff, that we can then port back over to WPF so the same &amp;quot;extended&amp;quot; functionality works there.&amp;#160; Another option would be to write a separate &amp;quot;TreeViewEx&amp;quot; that does this, but that brings with it the potential for a lot of confusion and duplication.&amp;#160; And in both cases, we're investigating how many of these modifications can coexist peacefully.&amp;#160; We're still investigating.&lt;/p&gt;  &lt;p&gt;In any case, this is an area where we're happy to take feedback on or any other ideas about how best to handle this.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;* when controls move from the Toolkit such that a control exists in both places for some amount of time you may need to do an explicit &amp;quot;&lt;font face="Courier New"&gt;&lt;strong&gt;using DockPanel = System.Windows.Controls.DockPanel;&lt;/strong&gt;&lt;/font&gt;&amp;quot; disambiguation.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9060697" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sburke/archive/tags/Controls/default.aspx">Controls</category><category domain="http://blogs.msdn.com/sburke/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category></item><item><title>Silverlight Toolkit Now Available For Download</title><link>http://blogs.msdn.com/sburke/archive/2008/10/28/silverlight-toolkit-now-available-for-download.aspx</link><pubDate>Tue, 28 Oct 2008 12:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9020485</guid><dc:creator>sburke</dc:creator><slash:comments>29</slash:comments><comments>http://blogs.msdn.com/sburke/comments/9020485.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sburke/commentrss.aspx?PostID=9020485</wfw:commentRss><description>&lt;P&gt;On the heels of Scott Guthtrie's PDC keynote this morning, I'm very pleased to announce the launch of the &lt;A target=_blank href="http://www.codeplex.com/Silverlight" mce_href="http://www.codeplex.com/Silverlight"&gt;Silverlight Toolkit&lt;/A&gt; on CodePlex!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=image src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb.png" width=718 height=200 mce_src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The Silverlight Toolkit is a collection of components dedicated to making you - the Silverlight Developer - as productive as possible writing Silverlight.&amp;nbsp; The full Silverlight Toolkit is available under the Microsoft Public License, an OSI-Approved license that allows full reuse of the code.&lt;/P&gt;
&lt;P&gt;If you've read my last few posts, you know we're doing a slightly different release model.&amp;nbsp; Based on what we learned with the AJAX Control Toolkit, Scott asked me to build a team focused on writing controls for Silverlight and WPF that could do so in a rapid, agile way.&amp;nbsp; The Silverlight Toolkit is the first delivery from that team.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Download it &lt;/STRONG&gt;&lt;/EM&gt;&lt;A href="http://www.codeplex.com/Silverlight/Release/ProjectReleases.aspx" mce_href="http://www.codeplex.com/Silverlight/Release/ProjectReleases.aspx"&gt;&lt;EM&gt;&lt;STRONG&gt;here&lt;/STRONG&gt;&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;H3&gt;Release Model&lt;/H3&gt;
&lt;P&gt;We are focused on a rapid, feedback-centric release model.&amp;nbsp; Our goal is to update the Silverlight Toolkit releases roughly every 6-8 weeks - gated mostly on when we have "critical mass" of features or functionality.&amp;nbsp; Each release may contain new components, bug fixes, or both.&lt;/P&gt;
&lt;P&gt;We've delivered the Silverlight Toolkit as a set of assemblies, instead of just one.&amp;nbsp; We wanted to make sure that Silverlight Applications can pick the components they need and not pay to download all the ones they don't.&amp;nbsp; So we looked at all the components we're releasing today, and some that we're considering in the future and came up with some high level "buckets" that are easy to remember and give us room to grow.&amp;nbsp; Each of these buckets represent an Assembly in the Silverlight Toolkit.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Common - the Silverlight Toolkit base classes and components that we think a large percentage of applications will be using.&amp;nbsp; This contains AutoCompleteBox and the layout controls.&amp;nbsp; Default prefix is "controls". &lt;/LI&gt;
&lt;LI&gt;Input - components that take user input.&amp;nbsp; For this release, only NumericUpDown and it's base classes are in here.&amp;nbsp; Default prefix is "input". &lt;/LI&gt;
&lt;LI&gt;DataVisualization - this contains the charting components.&amp;nbsp; Default prefix "charting". &lt;/LI&gt;
&lt;LI&gt;Layout, Media - these are DLLs (buckets) that don't have any components for this release, but expect to see them in the future. &lt;/LI&gt;&lt;/UL&gt;
&lt;H3&gt;Quality Bands&lt;/H3&gt;
&lt;P&gt;There are two different ways that you can do software releases.&amp;nbsp; The traditional way is to hold an entire release until all components reach, roughly, the same quality level.&amp;nbsp; This works fine but forces all of your users to wait for everything.&amp;nbsp; It's a bit of an agility buzz kill.&amp;nbsp;&amp;nbsp; Another method, is to have a single, rolling, release vehicle which has components different quality levels.&amp;nbsp; This works fine, provided you can clearly designate which components are at which level so users can make informed decisions about what they are using.&lt;/P&gt;
&lt;P&gt;Enter &lt;A target=_blank href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Quality%20Bands&amp;amp;referringTitle=Home" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Quality%20Bands&amp;amp;referringTitle=Home"&gt;Quality Bands&lt;/A&gt;, which are high-level buckets that describe a given components API stability and overall finish level.&amp;nbsp; This concept ties in with the Issue Tracker on the CodePlex site.&amp;nbsp; Users file and vote on bugs, and we continue to improve the component in response to that feedback.&amp;nbsp; It's the nature and the volume of that feedback that helps us determine when to move a component to the next band.&amp;nbsp; As you move up the Quality Band scale, you'll get components that are mode dependable for a wide variety of projects.&lt;/P&gt;
&lt;P&gt;What are the Quality Bands?&amp;nbsp; We've designated four of them: &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Experimental&lt;/STRONG&gt; - components that are added to garner scenario or usefulness feedback.&amp;nbsp; These may not have a future in the Silverlight Toolkit.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Preview&lt;/STRONG&gt; - these are components that we have made a commitment too and we think will work for ~80% of the major scenarios.&amp;nbsp; Many components are relatively simple and if you just need the basic functionality, these may work for you.&amp;nbsp; We always do our best to minimize "breaking changes" in APIs or behavior, but components at this band may see some level of this as we perfect the API.&amp;nbsp; Think of this as Alpha quality, give-or-take.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Stable&lt;/STRONG&gt; - these components have moved out of Preview and should handle 90+% of scenarios.&amp;nbsp; We'll hold any breaking changes to a higher bar but if something is really wrong, we'll change it.&amp;nbsp;&amp;nbsp; Something like Beta quality.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Mature&lt;/STRONG&gt; - these components are at full "RTM" quality and fit-and-finish.&amp;nbsp; These components will not have breaking changes (except in rare critical situations like security issues) and are usable in a broad range of scenarios.&amp;nbsp; The API stability is key here - by using these components, our goal is that upgrading from one Silverlight Toolkit release to another should be a no-brainer.&lt;/P&gt;
&lt;P&gt;The Silverlight Toolkit contains a CHM help file, and if you navigate to any of the component's documentation, you'll see the Quality Band clearly marked at the top.&amp;nbsp; On the CodePlex site, we've also added information about this.&lt;/P&gt;
&lt;P&gt;Controls in the Mature band are eligible to be released with the Visual Studio Tools for Silverlight package, or in the Silverlight Runtime itself if appropriate.&lt;/P&gt;
&lt;P&gt;As you'll see below, all of the components in the Silverlight Toolkit are in the Preview or Stable bands, as this is a Preview release.&amp;nbsp; And, because we haven't taken any feedback from the community, nothing can be in Stable or Mature, by definition.&amp;nbsp; We're hopeful we can quickly move many of these components up through the bands!&lt;/P&gt;
&lt;H3&gt;New Silverlight Controls and Components&lt;/H3&gt;
&lt;P&gt;We have a great set of components available.&amp;nbsp; You may have noticed from the image above that Charting has made it into the Silverlight Toolkit!&amp;nbsp; The team has been working literally 24-hours a day to get charting into this release.&amp;nbsp; We've been very focused on getting the right charting architecture and API model in place, at the cost of some more flashy scenarios.&amp;nbsp; We're now confident that we are in a place where we have made the right decisions and we'll be able to quickly add chart types and animations. What sets our charts apart is that they fully take advantage of the powerful styling and templating model that's present in Silverlight. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_20.png" mce_href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_20.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=image src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb_9.png" width=304 height=205 mce_src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb_9.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Not only do we support templating (your truly made the template above, believe it or not!), but we do support dynamic update.&amp;nbsp; If the chart above is attached to an ObservableCollection-based data source, you'll see the bars animate as your data changes.&amp;nbsp; It's very cool (UPDATE: example animation&amp;nbsp;&lt;A href="http://timheuer.com/blog/archive/2008/10/28/silverlight-toolkit-released-with-charting-databinding.aspx" mce_href="http://timheuer.com/blog/archive/2008/10/28/silverlight-toolkit-released-with-charting-databinding.aspx"&gt;here at Tim's blog&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;AutoCompleteBox is a great component as well.&amp;nbsp; It allows full templating as well as super-easy "out of the box" scenarios where you just attach it to a collection of items.&amp;nbsp; It's very flexible.&amp;nbsp; Check out this AutoCompleteBox with a DataGrid as the drop down:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_23.png" mce_href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_23.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=image src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb_10.png" width=644 height=159 mce_src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb_10.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;This sample searches all columns with the word "New".&lt;/P&gt;
&lt;P&gt;Of course there is more, and here's the full list of components and their Quality Bands.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;Components in the &lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Quality%20Bands&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Preview" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Quality%20Bands&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Preview"&gt;Preview&lt;/A&gt; Quality Band&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#AutoCompleteBox" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#AutoCompleteBox"&gt;AutoCompleteBox&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#NumericUpDown" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#NumericUpDown"&gt;NumericUpDown&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Viewbox" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Viewbox"&gt;Viewbox&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Expander" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Expander"&gt;Expander&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%203&amp;amp;referringTitle=Home&amp;amp;ANCHOR#ImplicitStyleManager" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%203&amp;amp;referringTitle=Home&amp;amp;ANCHOR#ImplicitStyleManager"&gt;ImplicitStyleManager&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%202&amp;amp;referringTitle=Home" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%202&amp;amp;referringTitle=Home"&gt;Charting&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;Components in the &lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Quality%20Bands&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Stable" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Quality%20Bands&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Stable"&gt;Stable&lt;/A&gt; Quality Band&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#TreeView" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#TreeView"&gt;TreeView&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#DockPanel" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#DockPanel"&gt;DockPanel&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#WrapPanel" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#WrapPanel"&gt;WrapPanel&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20November%202008%20overview&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Label" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20November%202008%20overview&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Label"&gt;Label&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#HeaderedContentControl" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#HeaderedContentControl"&gt;HeaderedContentControl&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;&lt;A href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#HeaderedItemsControl" mce_href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#HeaderedItemsControl"&gt;HeaderedItemsControl&lt;/A&gt;&lt;/B&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H3&gt;Theming Containers&lt;/H3&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_10.png" mce_href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_10.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=image src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb_4.png" width=644 height=123 mce_src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb_4.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Another major goal of the Silverlight Toolkit is to help developers build good looking applications on this great Silverlight platform.&amp;nbsp; So in this release you'll see six new themes that you can use in your application.&amp;nbsp; We will also be making these themes available on WPF.&lt;/P&gt;
&lt;P&gt;Silverlight lacks a WPF feature known as "implicit styling", which allows the theme for a type of component - say, Button - to be defined centrally.&amp;nbsp; One of the powerful attributes of the Silverlight Toolkit is that it allows us to deliver "stopgap" functionality to help developers outside of the main Silverlight ship-cycle.&amp;nbsp; In this release, we have a component called Implicit Style Manager (ISM) that allows to do this in a way that is similar to WPF.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;We're leveraging ISM to deliver these themes in a very simple way.&amp;nbsp; Each theme is available in raw XAML, or in a DLL.&amp;nbsp; In this DLL, is the theme and a "theme container".&amp;nbsp; For using it, just add a reference to the theme DLL to your project, then wrap your UI with that container.&amp;nbsp; Done!&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=2 width=800&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=266&gt;Before:&lt;/TD&gt;
&lt;TD vAlign=top width=266&gt;XAML:&lt;/TD&gt;
&lt;TD vAlign=top width=266&gt;After:&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=266&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_14.png" mce_href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_14.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=image src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb_6.png" width=183 height=244 mce_src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb_6.png"&gt;&lt;/A&gt; &lt;/TD&gt;
&lt;TD vAlign=top width=266&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;STRONG&gt;&amp;lt;shiny:ShinyBlueTheme&amp;gt;&lt;/STRONG&gt; &lt;BR&gt;&amp;lt;StackPanel Margin="10" &amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Button Content="Button"/&amp;gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; &amp;lt;CheckBox Content="CheckBox"/&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;RadioButton Content="One"/&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;RadioButton Content="Two"/&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;basics:Calendar/&amp;gt; &lt;BR&gt;&amp;lt;/StackPanel&amp;gt; &lt;BR&gt;&lt;STRONG&gt;&amp;lt;/shiny:ShinyBlueTheme&amp;gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=266&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_16.png" mce_href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_16.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=image src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb_7.png" width=183 height=244 mce_src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_thumb_7.png"&gt;&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;There's lots more.&amp;nbsp; With the Silverlight Toolkit project, we've got a great sample site that shows all of the components and how to use them, and we've got more components and themes on the way!&amp;nbsp; This site is also hosted on Silverlight.net &lt;A target=_blank href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html" mce_href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html" mce_href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=image src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_21.png" width=580 height=484 mce_src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/ScottsKeynote_7833/image_21.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note at the top you can see the running sample, the XAML, and the C# code it took to build it.&amp;nbsp; &lt;A href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html" mce_href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html"&gt;Play around with it&lt;/A&gt; - there's lots to do there.&lt;/P&gt;
&lt;H3&gt;Information and Support&lt;/H3&gt;
&lt;P&gt;There are several ways to get support on the Silverlight Toolkit:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;File bugs on the &lt;A href="http://www.codeplex.com/Silverlight/WorkItem/List.aspx" mce_href="http://www.codeplex.com/Silverlight/WorkItem/List.aspx"&gt;CodePlex Issue Tracker&lt;/A&gt;. &lt;/LI&gt;
&lt;LI&gt;Ask questions on the &lt;A href="http://silverlight.net/forums/35.aspx" mce_href="http://silverlight.net/forums/35.aspx"&gt;Silverlight Controls Forum&lt;/A&gt;. &lt;/LI&gt;
&lt;LI&gt;Check out all of the blogs and materials available from the Silverlight Toolkit team and others like &lt;A href="http://silverlight.net/blogs/jesseliberty/" mce_href="http://silverlight.net/blogs/jesseliberty/"&gt;Jesse Liberty's Silverlight Geek&lt;/A&gt;&amp;nbsp;and &lt;A href="http://timheuer.com/blog" mce_href="http://timheuer.com/blog"&gt;Tim Heuer's blog&lt;/A&gt;.&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I hope this has given you an idea of what we've been up to and where we are headed.&amp;nbsp; Let us know what you think!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9020485" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sburke/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/sburke/archive/tags/Controls/default.aspx">Controls</category></item><item><title>Silverlight 2 Released - Silverlight Toolkit on the Way</title><link>http://blogs.msdn.com/sburke/archive/2008/10/14/silverlight-2-released-silverlight-toolkit-on-the-way.aspx</link><pubDate>Tue, 14 Oct 2008 20:32:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8999822</guid><dc:creator>sburke</dc:creator><slash:comments>22</slash:comments><comments>http://blogs.msdn.com/sburke/comments/8999822.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sburke/commentrss.aspx?PostID=8999822</wfw:commentRss><description>&lt;p&gt;As you know, today &lt;a target="_blank" href="http://weblogs.asp.net/scottgu/archive/2008/10/14/silverlight-2-released.aspx"&gt;we released Silverlight 2&lt;/a&gt;.&amp;#160; Scott mentioned the Silverlight Toolkit in his post as well - which is exactly &lt;a target="_blank" href="http://blogs.msdn.com/sburke/archive/2008/09/17/control-freak.aspx"&gt;what my team is working on&lt;/a&gt;.&amp;#160; We're driving hard to get the first preview release of the Silverlight Toolkit at PDC later this month.&lt;/p&gt;  &lt;p&gt;Just to reiterate a few points that Scott called out.&amp;#160; We'll be doing the release under an OSI license (MS-PL) and we will again be including unit tests and a testing harness.&amp;#160;&amp;#160; The harness is something that you're welcome to use in your projects, I talked about it &lt;a target="_blank" href="http://blogs.msdn.com/sburke/archive/2008/09/30/unit-testing-with-silverlight.aspx"&gt;a few weeks ago&lt;/a&gt;.&amp;#160;&amp;#160; We're including the tests themselves so that developers will be able to have plenty of examples about how to write tests, but also it allows some level of coverage for any modifications users choose to make to the controls themselves.&lt;/p&gt;  &lt;p&gt;Keep watching this blog for updates on the Silverlight Toolkit and how we're progressing.&amp;#160; In the meantime, here's a screen shot of just a few of the controls in action, with different themes applied.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/Silverlight2ReleasedSilverlightToolkiton_9422/ControlsPPCT%20(4)_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="ControlsPPCT (4)" src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/Silverlight2ReleasedSilverlightToolkiton_9422/ControlsPPCT%20(4)_thumb.jpg" width="511" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;(No, we're not doing an Outlook control...that's just example content.)&lt;/p&gt;  &lt;p&gt;Lots more to come.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8999822" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sburke/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/sburke/archive/tags/Controls/default.aspx">Controls</category></item><item><title>Unit testing with Silverlight</title><link>http://blogs.msdn.com/sburke/archive/2008/09/30/unit-testing-with-silverlight.aspx</link><pubDate>Tue, 30 Sep 2008 22:57:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8970654</guid><dc:creator>sburke</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/sburke/comments/8970654.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sburke/commentrss.aspx?PostID=8970654</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/UnittestingwithSilverlight_B618/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 5px; border-top: 0px; border-right: 0px" border="0" alt="image" align="left" src="http://blogs.msdn.com/blogfiles/sburke/WindowsLiveWriter/UnittestingwithSilverlight_B618/image_thumb_1.png" width="354" height="196" /&gt;&lt;/a&gt; One of the things I was most excited about when we shipped the Silverlight 2 Beta 1 controls was the included unit testing harness, written by &lt;a target="_blank" href="http://www.jeff.wilcox.name/blog"&gt;Jeff Wilcox&lt;/a&gt;.&amp;#160; I think it's a good thing when we can share some of our internal tooling.&amp;#160; It's good for customers, because they can leverage the work that we've been doing, and it's good for people here because it gives them a chance to &amp;quot;ship&amp;quot; something and get some visibility in the industry.&amp;#160; And this is definitely the case with the Silverlight Unit Test Framework, which Jeff has just &lt;a target="_blank" href="http://feeds.feedburner.com/~r/JeffWilcox/~3/407068832/"&gt;updated for RC0&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This is the exact package that we're using internally to run our automated unit tests and we've been adding features to it as our team grows.&amp;#160; Oftentimes, development teams here at Microsoft use a different testing harness from what the testing teams use (please don't ask...) and I'm keen to avoid that setup, and the Silverlight Unit Test Framework provides the functionality for both.&amp;#160; And that we're allowing customers to leverage it opens up some other possibilities that I'll get into later.&amp;#160; Note that the Silverlight Unit Test Framework is an unsupported toolset, not an official Microsoft product.&lt;/p&gt;  &lt;p&gt;Some of you may be asking why we wrote our own unit testing harness instead of using something like nUnit or MbUnit.&amp;#160; The main reason is because the existing offerings were all written against the full .NET Framework.&amp;#160; Even though Silverlight is .NET code, it really is a different platform.&amp;#160; And it has some special needs due to the constraints on the type of reflection you can use (public only) and how you're able to instantiate and discover tests.&amp;#160; So we decided we needed a harness that was written fully in Silverlight and hosted the tests directly in the harness itself.&amp;#160; This has worked out well.&lt;/p&gt;  &lt;p&gt;So if you're starting to get rolling with Silverlight, and you want to do some unit testing, definitely give the Silverlight Unit Test Framework a look.&lt;/p&gt;  &lt;p&gt;More details &lt;a target="_blank" href="http://feeds.feedburner.com/~r/JeffWilcox/~3/407068832/"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8970654" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sburke/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/sburke/archive/tags/Controls/default.aspx">Controls</category></item><item><title>Updated ExpandoHeaderControl sample for RC0</title><link>http://blogs.msdn.com/sburke/archive/2008/09/28/update-expandoheadercontrol-sample-for-rc0.aspx</link><pubDate>Mon, 29 Sep 2008 00:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8968197</guid><dc:creator>sburke</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/sburke/comments/8968197.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sburke/commentrss.aspx?PostID=8968197</wfw:commentRss><description>&lt;P&gt;Here is the updated control sample for RC0.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Just a few changes from Beta 2 - RCO:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;generic.xaml needs to now be in a folder called "themes" (case sensitive) rather than in the root of your project.&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;In VSM transition declarations "Duration" has been renamed to "GeneratedDuration"&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;So porting was easy.&amp;nbsp; If you want to play with this, definitely load it up in Blend and check out the great new VSM support as well.&amp;nbsp; It make re-templating MUCH easier and I had some fun creating weird collapse effects (not included).&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8968197" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/sburke/attachment/8968197.ashx" length="22433" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/sburke/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/sburke/archive/tags/Controls/default.aspx">Controls</category></item><item><title>Control Freak.</title><link>http://blogs.msdn.com/sburke/archive/2008/09/17/control-freak.aspx</link><pubDate>Wed, 17 Sep 2008 07:40:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8954856</guid><dc:creator>sburke</dc:creator><slash:comments>48</slash:comments><comments>http://blogs.msdn.com/sburke/comments/8954856.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sburke/commentrss.aspx?PostID=8954856</wfw:commentRss><description>&lt;h3&gt;Hmmm...no blogging lately...what has Shawn been up to?&amp;#160; &lt;/h3&gt;  &lt;p&gt;Yes, guilty.&amp;#160; But here's what's been going on over the past few months.&amp;#160; Shortly after MIX07, &lt;a target="_blank" href="http://weblogs.asp.net/scottgu"&gt;ScottGu&lt;/a&gt; brought up an idea of building a larger team focused on building controls.&amp;#160; We kicked this idea around for while as we talked about details, timelines, and goals.&amp;#160; In April, most of these details were worked out and we hashed out a charter and some early areas of focus and deliverables.&lt;/p&gt;  &lt;p&gt;The problem we saw was that we had a bit of a fragmented controls story.&amp;#160; My team (the Agility Team that brought you the AJAX Control Toolkit, etc.) had been writing some controls.&amp;#160; The core Silverlight team was writing some controls.&amp;#160; The UIFX Team (which brought you ASP.NET and Windows Forms) was writing some controls.&amp;#160; The WPF team was writing controls.&amp;#160; You get the idea.&amp;#160; So Scott asked me to build a team that would unify these various efforts, in strategy if not in implementation.&amp;#160; And the &lt;strong&gt;Controls Team&lt;/strong&gt; was born on April 28th, 2008.&amp;#160; After reporting to Scott for a little over two years, my team and I popped down to report to &lt;a target="_blank" href="http://www.microspotting.com/tag/ian-ellison-taylor"&gt;Ian Ellison Taylor&lt;/a&gt;, GM of the WPF and Silverlight teams and veteran of all things &amp;quot;UI-Platform&amp;quot; at Microsoft for over 15 years.&lt;/p&gt;  &lt;h3&gt;Sooooo...what exactly will you be doing?&lt;/h3&gt;  &lt;p&gt;Good question.&amp;#160; My team owns the charter for both Silverlight and WPF control development.&amp;#160; That means doing most of the engineering, planning, and development of controls.&amp;#160; But it also means figuring out other ways to get controls into the toolbox for developers to use.&amp;#160; For example, if another team is developing a control that might be generally useful, we'll try to figure out a way to get it into our deliverable.&lt;/p&gt;  &lt;p&gt;The team is being built mostly from scratch.&amp;#160; So while we are ramping up and getting people hired in, we're focusing primarily on Silverlight controls.&amp;#160; Meanwhile, I have been working with the WPF folks helping them get some controls delivered to - the first of which is the DataGrid now available via the &lt;a target="_blank" href="http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=14963"&gt;WPFToolkit&lt;/a&gt;.&amp;#160; I am definitely committed to improving the controls story on WPF as well.&lt;/p&gt;  &lt;p&gt;One of the reasons Scott asked me to build this team is to continue the work we've been doing around pioneering transparency and agility in our software development process here at Microsoft.&amp;#160; The open model of the &lt;a target="_blank" href="http://www.codeplex.com/AjaxControlToolkit"&gt;AJAX Control Toolkit&lt;/a&gt; really broke a lot of new ground, and we continued some of that with the &lt;a target="_blank" href="http://blogs.msdn.com/sburke/archive/2008/03/05/silverlight-2-beta-1-controls-available-including-source-and-unit-tests.aspx"&gt;Silverlight 2 Beta 1 Controls&lt;/a&gt; we did when we shipped not only buildable source, but our unit testing harness, and tests too!&lt;/p&gt;  &lt;h3&gt;Who is on this team you speak of?&lt;/h3&gt;  &lt;p&gt;All Stars.&amp;#160; Some of them you may already be familiar with.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://blogs.msdn.com/delay/default.aspx"&gt;David Anson&lt;/a&gt;, Ted Glaza, &lt;a target="_blank" href="http://www.jeff.wilcox.name/"&gt;Jeff Wilcox&lt;/a&gt;, Ning Zhang, Mehdi Slaoui Andaloussi, &lt;a target="_blank" href="http://www.beacosta.com/blog/"&gt;Beatriz Stollnitz (Costa)&lt;/a&gt;, &lt;a target="_blank" href="http://blogs.microsoft.co.il/blogs/justinangel/"&gt;Justin-Josef Angel&lt;/a&gt;, &lt;a target="_blank" href="http://themechanicalbride.blogspot.com/"&gt;Jafar Husain&lt;/a&gt;, &lt;a target="_blank" href="http://blog.enginefour.com/"&gt;Shawn Oster&lt;/a&gt;, &lt;a target="_blank" href="http://blogs.msdn.com/keiths/"&gt;Keith Smith&lt;/a&gt;, and just this week, &lt;a target="_blank" href="http://www.sitechno.com/blog/"&gt;Ruurd Boeke&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;That's some horsepower right there, I tell you what.&amp;#160; I really couldn't ask for better people, and we've got more to hire!&lt;/p&gt;  &lt;h3&gt;What about the AJAX Control Toolkit?&lt;/h3&gt;  &lt;p&gt;The AJAX Control Toolkit is in good hands.&amp;#160; We've transferred ownership over to the ASP.NET team, and &lt;a target="_blank" href="http://weblogs.asp.net/bleroy/archive/2008/08/21/ajax-control-toolkit-released-for-net-3-5-sp1.aspx"&gt;Bertrand&lt;/a&gt; is leading the effort.&amp;#160; They've already started making good progress and I'm very excited about what they're planning for the future.&lt;/p&gt;  &lt;h3&gt;Okay, so when will you be shipping something?&lt;/h3&gt;  &lt;p&gt;Right.&amp;#160; Good question.&amp;#160; We are currently working on a set of controls for a preview release at &lt;a target="_blank" href="http://www.microsoftpdc.com/"&gt;PDC 2008&lt;/a&gt; in late October.&amp;#160; This will be a preview release, but we feel good about the quality bar that we think we can hit nonetheless.&amp;#160; Because we're using a slight different development model, our controls will be released earlier, improve evolutionarily over time, so there isn't a clear &amp;quot;RTM&amp;quot; date for them.&amp;#160; But in any case, we're doing a preview at PDC.&amp;#160; &lt;/p&gt;  &lt;p&gt;Here's a list of the Silverlight controls we are currently working on that we think will be ready.&amp;#160; We are working on some other components as well, but I'm leaving them off the list until we have higher-confidence about them being ready:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;DockPanel &lt;/li&gt;    &lt;li&gt;WrapPanel &lt;/li&gt;    &lt;li&gt;ViewBox &lt;/li&gt;    &lt;li&gt;Label &lt;/li&gt;    &lt;li&gt;HeaderedContentControl &lt;/li&gt;    &lt;li&gt;Expander &lt;/li&gt;    &lt;li&gt;TreeView &lt;/li&gt;    &lt;li&gt;NumericUpDown &lt;/li&gt;    &lt;li&gt;AutoComplete &lt;/li&gt;    &lt;li&gt;Accordion &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;All of these controls will use the new &lt;a target="_blank" href="http://electricbeach.org/?p=100"&gt;Visual State Manager&lt;/a&gt; templating model and be fully customizable in XAML by hand or through Expression Blend.&amp;#160; They will also ship with full, buildable source, unit tests, and an &lt;a target="_blank" href="http://code.msdn.microsoft.com/silverlightut/"&gt;updated unit testing harness&lt;/a&gt; nicely wrapped up with a tasty &lt;a target="_blank" href="http://www.opensource.org/licenses/ms-pl.html"&gt;OSI-Approved MS-PL&lt;/a&gt; license.&lt;/p&gt;  &lt;h3&gt;Wait as second...what's this 'slightly different' model?&lt;/h3&gt;  &lt;p&gt;Another good question.&amp;#160; Part of it, as noted above, is that we're going to be aggressive about shipping early and shipping source.&amp;#160; We'll be leveraging many of the learnings from the AJAX Control Toolkit as well as the SL2 B1 Controls efforts.&lt;/p&gt;  &lt;p&gt;Basically, it is based on an iterative, customer-centric delivery model that focuses on driving out the most critical customer issues over time.&lt;/p&gt;  &lt;p&gt;Sometime between now and PDC, we will be launching a &lt;a target="_blank" href="http://www.codeplex.com"&gt;CodePlex&lt;/a&gt; project for our Silverlight components (as a sibling of the WPF project mentioned above).&lt;/p&gt;  &lt;p&gt;Here's how it works:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;When a new component reaches &amp;quot;80%&amp;quot; quality - that is it meets the scenario needs of ~80% of customers - it will be added to the project. &lt;/li&gt;    &lt;li&gt;The project will have frequent releases when there is a critical mass of customer value (say, bug fixes or new components) that justifies a release.&amp;#160; Think every 6-8 weeks or so. &lt;/li&gt;    &lt;li&gt;Each release will include the components, documentation, sample code, and unit tests.&amp;#160; You, as the user are free to modify, copy, or redistribute the components however you see fit. &lt;/li&gt;    &lt;li&gt;Customers will file bugs/issues with the components via the CodePlex Issue Tracker.&amp;#160; Issue Tracker has a great voting facility built in.&amp;#160; We will prioritize our bug fixing and/or enhancement work based heavily on this voting.&amp;#160; Highly voted-for issues get fixed first, with some discretion based on cost/complexity.&amp;#160; For example, if the #2, #3, and #4 issues are easy fixes, they may get done ahead of a complex and difficult #1 issue, for a particular release. &lt;/li&gt;    &lt;li&gt;A given component, over time, will reach a very high quality level.&amp;#160; Throughout this process, two things will happen.&amp;#160; First, the &amp;quot;bar&amp;quot; for fixing a bug will go up.&amp;#160; That means, as the component stabilizes, we will be more-and-more careful about which fixes we accept.&amp;#160; Second, and as a corollary to the first, as the component stabilizes, we will be enforcing a stricter-and-stricter bar with respect to breaking changes.&amp;#160; This will happen pretty quickly.&amp;#160; A component that is &amp;quot;new&amp;quot; may have some amount of API changes as we react to feedback.&amp;#160; But after a release or two, we will lock down the API and behavior so that these components are very stable and easy for users to upgrade as new releases come out.&amp;#160; This is critical.&amp;#160; We're working on a way of marking (think metadata attributes and docs) each component to call out which&amp;#160; &amp;quot;stage&amp;quot; it's in, but the goal is to get them API stable relatively quickly.&amp;#160; Because we do frequent releases, upgrading to each new release has to be a &amp;quot;no-brainer&amp;quot;. &lt;/li&gt;    &lt;li&gt;For all new components, goto (1) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So over time you have a rolling release that is getting more and more featureful.&amp;#160; I don't know if 'featureful' is a word but if it's not, I'm coining it as a term right here!&amp;#160; Anyway, you get the idea.&amp;#160; If you want just the &amp;quot;baked&amp;quot; stuff, you can stick to the mature components.&amp;#160; If you have a need for another newer component, you can use those too.&amp;#160;&amp;#160; It's up to you.&lt;/p&gt;  &lt;p&gt;Over time, you will see some (maybe many) of these components work their way into either the Silverlight Core, or the Silverlight SDK as fully-supported components like you are used to.&amp;#160; That's the beauty of this model - it offers quick delivery at the front end for more cutting-edge customers, and the traditional &amp;quot;I got it with VS&amp;quot; model for customers that prefer that.&lt;/p&gt;  &lt;p&gt;When we start focusing on WPF components in the future, we'll be following a very similar model.&amp;#160; Just replace &amp;quot;Silverlight Core/SDK&amp;quot; with &amp;quot;.NET Framework&amp;quot; and you'll get the idea.&lt;/p&gt;  &lt;p&gt;In contrast to the AJAX Control Toolkit, we will *not* be accepting any customer contributions of fixes into the code base.&lt;/p&gt;  &lt;p&gt;So that's what I've been up to.&amp;#160; It's very exciting, stay tuned for more details!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8954856" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sburke/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/sburke/archive/tags/Controls/default.aspx">Controls</category></item></channel></rss>