<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.sqlxml.org/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/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>SqlXml Blogs</title><link>http://blogs.sqlxml.org/</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Win7-Beta End-Of-Life !!!</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/07/03/win7-beta-end-of-life.aspx</link><pubDate>Fri, 03 Jul 2009 07:29:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:468219</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>Well, it is not that bad actually :). If you did install Windows 7 Beta version (Build 7000) then your system can be behaving strangely by reinstalling every couple of hours. This is an expected behaviour and DONOT ignore this. Please UPGRADE to Win7-RC (Buil-7100) immediately. You also enjoy the fun of working with Win7 on this build for the next one full year !!! So, What is stopping you? Go do it ... For your benifit follow the steps - Download Windows 7 RC from here http://www.microsoft.com/windows...(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/07/03/win7-beta-end-of-life.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=468219" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/ITPro/default.aspx">ITPro</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Migration/default.aspx">Migration</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Windows/default.aspx">Windows</category></item><item><title>How much data changes since last backup</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/07/02/how-much-data-changes-since-last-backup.aspx</link><pubDate>Thu, 02 Jul 2009 08:44:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:467973</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>Paul Randal has a wonderful post that tells you how much of data has changed since the last full backup. A wonderful script to have in handy ... Read the blog post here . Now with this script one can take a informed decision if they want to take a differencial backup or a full-backup....(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/07/02/how-much-data-changes-since-last-backup.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=467973" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/ITPro/default.aspx">ITPro</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Performance/default.aspx">Performance</category></item><item><title>P&amp;P: Acceptance Test Engineering Guide, Volume I - beta2</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/07/01/p-amp-p-acceptance-test-engineering-guide-volume-i-beta2.aspx</link><pubDate>Wed, 01 Jul 2009 14:47:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:467893</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>PART I &amp;ndash; THINKING ABOUT ACCEPTANCE explains six mental models that are useful when thinking about the acceptance process. Chapter 1 The Acceptance Process Chapter 2 Decision-Making Model Chapter 3 Project Context Model Chapter 4 System Requirements Model Chapter 5 Risk Model Chapter 6 Doneness Model PARTII &amp;ndash; PERSPECTIVES ON ACCEPTANCE describes the acceptance process from the perspectives of key stakeholders in two different kinds of organizations: the Information Technology Department...(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/07/01/p-amp-p-acceptance-test-engineering-guide-volume-i-beta2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=467893" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Downloads/default.aspx">Downloads</category></item><item><title>Windows 7 and Windows Server 2008 R2 Online Videos</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/06/15/windows-7-and-windows-server-2008-r2-online-videos.aspx</link><pubDate>Mon, 15 Jun 2009 16:00:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:464496</guid><dc:creator>vinodkumar</dc:creator><slash:comments>1</slash:comments><description>Windows 7 Features Overview Windows 7 Deployment Enhancements Windows 7 Managebility Solutions Technical Overview of Windows Server 2008 R2 - Part I Technical Overview of Windows Server 2008 R2 - Part II Using Windows Server 2008 R2 Migration Tools Enjoy and watch the video&amp;#39;s online and show some cool tips to your peers :) ......(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/06/15/windows-7-and-windows-server-2008-r2-online-videos.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=464496" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/ITPro/default.aspx">ITPro</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category></item><item><title>Follow me on Twitter?</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/06/08/follow-me-on-twitter.aspx</link><pubDate>Mon, 08 Jun 2009 17:06:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:463116</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>I have been a bit lazy on keeping updates going on this Blog, but I have been a bit more active on the Twitter world. If you are on twitter, you can follow me on vinodk_sql . But my blogging will surely continue ... I am slowly balancing and getting back on track....(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/06/08/follow-me-on-twitter.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=463116" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category></item><item><title>Windows Mobile 6.5 Developer Toolkit Available</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/06/04/windows-mobile-6-5-developer-toolkit-available.aspx</link><pubDate>Thu, 04 Jun 2009 16:39:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:462843</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>Yes, you heard it right - It is WM 6.5 Toolkit is out. I know a number of ISVs and Customers have been waiting for building their mobile applications on top of this. Available in 6 different languages and also contains a device emulator to work on. We will also have the Compact Framework 2.0 on the ROM ... Lots of exciting things ... Get it today....(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/06/04/windows-mobile-6-5-developer-toolkit-available.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=462843" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Downloads/default.aspx">Downloads</category></item><item><title>IIS Search Engine Optimization (SEO) Toolkit Beta</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/06/04/iis-search-engine-optimization-seo-toolkit-beta.aspx</link><pubDate>Thu, 04 Jun 2009 09:57:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:462831</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>Today, Microsoft is announcing the IIS Search Engine Optimization (SEO) Toolkit Beta &amp;ndash; brand new tools that help Web developers, hosting providers, and server administrators improve their sites&amp;rsquo; relevance in search results by recommending how to make them more search engine-friendly. The IIS SEO Toolkit includes three modules that integrate with IIS Manager: Site Analysis, which suggests changes that can help improve the volume and quality of traffic to your Web site from search engines;...(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/06/04/iis-search-engine-optimization-seo-toolkit-beta.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=462831" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/ITPro/default.aspx">ITPro</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category></item><item><title>Tech.Ed India 2009: My notes on the Success !!!</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/05/22/tech-ed-india-2009-my-notes-on-the-success.aspx</link><pubDate>Fri, 22 May 2009 05:58:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:460809</guid><dc:creator>vinodkumar</dc:creator><slash:comments>3</slash:comments><description>This is one post which I have wanted to write for a long-time and it has taken me a week to get it online. Tech.Ed India 2009 was without doubts a rocking, fantabulous success. If anyone attended the event, they would 200% agree to what I am saying. What is my part in this event? &amp;ndash; Well I have was gifted enough to manage the content and be track owner for as much as 5 tracks. Each of these tracks were really interesting and I enjoyed being part of it &amp;hellip; I also realize what it takes to...(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/05/22/tech-ed-india-2009-my-notes-on-the-success.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=460809" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/TechEd+India+2009/default.aspx">TechEd India 2009</category></item><item><title>Back from TechEd India 2009</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/05/16/back-from-teched-india-2009.aspx</link><pubDate>Sat, 16 May 2009 15:14:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:460398</guid><dc:creator>vinodkumar</dc:creator><slash:comments>2</slash:comments><description>I couldnt have asked for more. TechEd India 2009 was a grand grand success. I will write more updates in a day ... There is lots to share and what we did at TechEd India 2009 which makes this event really, really, really unique ... This is the reason I have been off the blogs for the past 2 weeks ... Exhausted but very excited and happy to see TechEd go flawlessly....(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/05/16/back-from-teched-india-2009.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=460398" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/TechEd+India+2009/default.aspx">TechEd India 2009</category></item><item><title>April 2009 Cumulative Update of the SQL Server Driver for PHP</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/05/01/april-2009-cumulative-update-of-the-sql-server-driver-for-php.aspx</link><pubDate>Fri, 01 May 2009 10:41:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:458974</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>This is available on the MSDN Downloads page and on CodePlex too. Now this driver now allows you to work with PHP 5.3 also. Good work team ... Behind the scene&amp;#39;s this driver uses the SQL Server Native Client on the background and hence is really optimized. Thought of sharing this trivia if you were not aware....(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/05/01/april-2009-cumulative-update-of-the-sql-server-driver-for-php.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=458974" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/ITPro/default.aspx">ITPro</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/PHP/default.aspx">PHP</category></item><item><title>SAP Certifies new SQL Server Integration Services Connector for SAP BI</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/04/15/sap-certifies-new-sql-server-integration-services-connector-for-sap-bi.aspx</link><pubDate>Wed, 15 Apr 2009 03:34:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:457663</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>On April 5, 2009 SAP certified the new SQL Server Integration Services (SSIS) connector for SAP NetWeaver BI 7.0 Open Hub Service. Launched with the Feature Pack for SQL Server 2008, the new SSIS connector for SAP BI allows customers to move data at high speed from SAP NetWeaver BI 7.0 into SQL Server. Documentation of Using SQL Server 2008 Integration Services with SAP BI 7.0 Latest Feature Pack (April-09) has the updated connector downloads for the same...(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/04/15/sap-certifies-new-sql-server-integration-services-connector-for-sap-bi.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=457663" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/ITPro/default.aspx">ITPro</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category></item><item><title>SQL Server 2008 - April Updates</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/04/14/sql-server-2008-april-updates.aspx</link><pubDate>Tue, 14 Apr 2009 03:33:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:457418</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>There have been some new downloads added with SP1 release on the MSDN Download center and I thought I will get them all in one list for your reference and download. SQL Server SP1 SQL Server Express Edition SP1 SQL Server 2008 Feature Pack - April 2009 SQL Server 2008 - Upgrade Advisor SSRS - Report Builder 2.0 - April Update SSRS add-in for MOSS 2007 - April Update SQL Server 2008 Data Mining add-in for MS Office 2007 - April Update...(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/04/14/sql-server-2008-april-updates.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=457418" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category></item><item><title>Azure Services Training Kit – April Update</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/04/12/azure-services-training-kit-april-update.aspx</link><pubDate>Sun, 12 Apr 2009 16:11:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:457003</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>The first Azure Services Training Kit was released during the week of PDC and it contained all of the PDC hands-on labs. Since then, the Azure Services Evangelism team has been creating new content covering new features in the platform. The Azure Services Training Kit April update now includes the following content covering Windows Azure, .NET Services, SQL Services, and Live Services: 11 hands-on labs &amp;ndash; including new hands-on labs for PHP and Native Code on Windows Azure. 18 demo scripts &amp;ndash;...(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/04/12/azure-services-training-kit-april-update.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=457003" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Cloud+Services/default.aspx">Cloud Services</category></item><item><title>GIDS 2009</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/04/07/gids-2009.aspx</link><pubDate>Tue, 07 Apr 2009 03:28:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:456141</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>I will be at the Great Indian Developer Conference - Will you be there on 22nd-25th? A lot of exciting topics on MS too up to attend ......(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/04/07/gids-2009.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=456141" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category></item><item><title>TechEd India 2009</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/04/01/teched-india-2009.aspx</link><pubDate>Wed, 01 Apr 2009 06:57:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:455282</guid><dc:creator>vinodkumar</dc:creator><slash:comments>2</slash:comments><description>If you were wondering what is keeping me busy? It has been TechEd, TechEd and just TechEd. We are really excited to bring TechEd India 2009 to you from May 13th-15th at Hyderabad.This is one place where you will find sessions interesting for Developers, ITPro and Architects. I will drop a line more on things to come and what tracks we have finalized ... Just wait for updates ... Tons and tons to come your way !!! We are already on twitter . Just incase you want to follow !!! If you are on twitter...(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/04/01/teched-india-2009.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=455282" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/TechEd+India+2009/default.aspx">TechEd India 2009</category></item><item><title>Faking the Initialized Event in Silverlight</title><link>http://blogs.sqlxml.org/bryantlikes/archive/2009/03/24/faking-the-initialized-event-in-silverlight.aspx</link><pubDate>Wed, 25 Mar 2009 00:24:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:454365</guid><dc:creator>bryantlikes</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;This is another nugget of gold gleaned from the &lt;a href="http://videos.visitmix.com/MIX09/06W"&gt;Climbing Mt Avalon workshop&lt;/a&gt;, although I believe this one came from &lt;a href="http://twitter.com/JonathanRuss"&gt;Jonathan Russ&lt;/a&gt;. He was talking about a bunch of threading tricks in WPF and showed how if you wanted to run some code after everything was initialized you could use the BeginInvoke method of the Dispatcher object. Since there are many places in my code where I want to execute something when the control loads, but only once (since the loaded event gets fired whenever the object gets re-added to the visual tree) I end up writing a lot of code like:&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Page : UserControl
{
    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; initialized = &lt;span class="kwrd"&gt;false&lt;/span&gt;;

    &lt;span class="kwrd"&gt;public&lt;/span&gt; Page()
    {
        InitializeComponent();
        Loaded += &lt;span class="kwrd"&gt;new&lt;/span&gt; RoutedEventHandler(Page_Loaded);
    }

    &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Loaded(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
    {
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (!initialized)
        {
            &lt;span class="rem"&gt;// do some initialization work&lt;/span&gt;
            initialized = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
        }
    }

}&lt;/pre&gt;
&lt;p&gt;This works, but it isn&amp;rsquo;t perfect and there seems to be a lot of issues with the &lt;a href="http://blogs.msdn.com/silverlight_sdk/archive/2008/10/24/loaded-event-timing-in-silverlight.aspx"&gt;timing&lt;/a&gt; &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.loaded(VS.95).aspx"&gt;of&lt;/a&gt; &lt;a href="http://silverlight.net/forums/p/40306/115105.aspx#115105"&gt;the&lt;/a&gt; &lt;a href="http://blogs.msdn.com/devdave/archive/2008/10/11/control-lifecycle.aspx"&gt;loaded event&lt;/a&gt;. So based on what Jonathan was saying, you could instead just put a call into BeginInvoke in the contructor like so:&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Page : UserControl
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; Page()
    {
        InitializeComponent();
        Dispatcher.BeginInvoke(Initialized);
    }

    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Initialized()
    {
        &lt;span class="rem"&gt;// do some initialization work&lt;/span&gt;
    }
}&lt;/pre&gt;
&lt;p&gt;

So what is this actually doing? BeginInvoke puts a message in the message pump that is running under the covers of everything (note: I&amp;rsquo;m not a C++ programming so I don&amp;rsquo;t really fully understand &lt;a href="http://en.wikipedia.org/wiki/Event_loop"&gt;message pumps&lt;/a&gt; so this is an over simplification). Because it is last in line in the queue of messages to process, it gets executed after all the other initialization code which has already lined up. If you debug this you will see it actually gets called after the Loaded event gets called. However, this code is the first thing to execute once everything has been loaded and setup which is usually when I want my code to execute. &lt;/p&gt;
&lt;p&gt;So this is a much better way to handle initialization code since you aren&amp;rsquo;t adding event handlers that really only need to fire once and it executes once everything is fully initialized.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=454365" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/WPF_2F00_E/default.aspx">WPF/E</category><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Animation Hack Using Attached Properties in Silverlight</title><link>http://blogs.sqlxml.org/bryantlikes/archive/2009/03/23/animation-hack-using-attached-properties-in-silverlight.aspx</link><pubDate>Mon, 23 Mar 2009 22:27:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:454170</guid><dc:creator>bryantlikes</dc:creator><slash:comments>10</slash:comments><description>&lt;p&gt;In &lt;a href="http://blogs.sqlxml.org/bryantlikes/archive/2009/03/18/styling-hack-using-attached-properties-in-silverlight.aspx"&gt;my last post I blogged about using Attached Properties&lt;/a&gt; to get around the limitation that only Dependency Properties can be animated. One astute commented noted that he was guessing this could be applied to animations as well and the answer is yet it can. However, it requires one extra step that makes it a little less appealing. &lt;/p&gt;
&lt;p&gt;Also I mentioned in my last post, I got this idea from the Climbing Mt Avalon workshop at MIX which has &lt;a href="http://videos.visitmix.com/MIX09/06W"&gt;now been posted online&lt;/a&gt; and I would recommend watching if you&amp;rsquo;re doing Silverlight or WPF work. And now on to the code&amp;hellip;&lt;/p&gt;
&lt;p&gt;Typically if you want to animating something like the width of a grid in a column that isn&amp;rsquo;t animatable either because it isn&amp;rsquo;t a double, color, or another easily animatable type, then you would declare a dependency property on your own host class, usually a UserControl, and then animate that instead. A &lt;a href="http://programmerpayback.com/2008/11/08/animate-collapsing-a-grid-column-or-row-in-silverlight/"&gt;good example is this blog post&lt;/a&gt; on the subject which is what I&amp;rsquo;ve referred to many times. &lt;/p&gt;
&lt;p&gt;However, if we take the attached property route instead of putting the code in our user control, we could declare our own attached property to do the work for us. Here is a simple example:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;public static class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Attachments
&lt;/span&gt;{

    &lt;span style="color:blue;"&gt;public static readonly &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;DependencyProperty &lt;/span&gt;ColumnWidthProperty =
            &lt;span style="color:#2b91af;"&gt;DependencyProperty&lt;/span&gt;.RegisterAttached(&lt;span style="color:#a31515;"&gt;&amp;quot;ColumnWidth&amp;quot;&lt;/span&gt;, 
            &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:blue;"&gt;double&lt;/span&gt;), &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;Attachments&lt;/span&gt;), 
            &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;PropertyMetadata&lt;/span&gt;(
                &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;PropertyChangedCallback&lt;/span&gt;(OnColumnWidthChanged)));

    &lt;span style="color:blue;"&gt;public static void &lt;/span&gt;SetColumnWidth(&lt;span style="color:#2b91af;"&gt;DependencyObject &lt;/span&gt;o, &lt;span style="color:blue;"&gt;double &lt;/span&gt;value)
    {
        o.SetValue(ColumnWidthProperty, value);
    }

    &lt;span style="color:blue;"&gt;public static double &lt;/span&gt;GetColumnWidth(&lt;span style="color:#2b91af;"&gt;DependencyObject &lt;/span&gt;o)
    {
        &lt;span style="color:blue;"&gt;return &lt;/span&gt;(&lt;span style="color:blue;"&gt;double&lt;/span&gt;)o.GetValue(ColumnWidthProperty);
    }

    &lt;span style="color:blue;"&gt;private static void &lt;/span&gt;OnColumnWidthChanged(&lt;span style="color:#2b91af;"&gt;DependencyObject &lt;/span&gt;d, &lt;span style="color:#2b91af;"&gt;DependencyPropertyChangedEventArgs &lt;/span&gt;e)
    {
        ((&lt;span style="color:#2b91af;"&gt;ColumnDefinition&lt;/span&gt;)d).Width = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;GridLength&lt;/span&gt;((&lt;span style="color:blue;"&gt;double&lt;/span&gt;)e.NewValue);
    }

}&lt;/pre&gt;
&lt;p&gt;Once we have this code we can now simply animate the attached property like so:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;SilverlightApplication1.MainPage&amp;quot;
    &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot; 
    &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;
    &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;local&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;clr-namespace:SilverlightApplication1&amp;quot;
    &lt;/span&gt;&lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;400&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;300&amp;quot;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;LayoutRoot&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;White&amp;quot;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.Resources&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Storyboard &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;expandBlue&amp;quot;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimation &lt;/span&gt;&lt;span style="color:red;"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;blue&amp;quot;
                                 &lt;/span&gt;&lt;span style="color:red;"&gt;To&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;300&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Duration&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0:0:1&amp;quot; /&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimation &lt;/span&gt;&lt;span style="color:red;"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;red&amp;quot;
                                 &lt;/span&gt;&lt;span style="color:red;"&gt;To&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;100&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Duration&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0:0:1&amp;quot; /&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Storyboard&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Storyboard &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;expandRed&amp;quot;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimation &lt;/span&gt;&lt;span style="color:red;"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;red&amp;quot;
                                 &lt;/span&gt;&lt;span style="color:red;"&gt;To&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;300&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Duration&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0:0:1&amp;quot; /&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimation &lt;/span&gt;&lt;span style="color:red;"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;blue&amp;quot;
                                 &lt;/span&gt;&lt;span style="color:red;"&gt;To&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;100&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Duration&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0:0:1&amp;quot; /&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Storyboard&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.Resources&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;blue&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;local&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Attachments.ColumnWidth&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;200&amp;quot; /&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;red&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;local&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Attachments.ColumnWidth&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;200&amp;quot;/&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Rectangle &lt;/span&gt;&lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Fill&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Blue&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;MouseLeftButtonDown&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Blue_MouseLeftButtonDown&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Rectangle &lt;/span&gt;&lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Fill&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Red&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;MouseLeftButtonDown&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Red_MouseLeftButtonDown&amp;quot;/&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Unfortunately if you try the above code (after adding in the mouse event handlers) it won&amp;rsquo;t work. Why not? Well there seems to be an issue with animating custom attached properties when setting the target property directly in code (actually you&amp;rsquo;ll notice I left that out above. However, there is a way around it which I found over on &lt;a href="http://blogs.msdn.com/edmaia/archive/2008/10/16/animating-custom-attached-properties-in-sl2.aspx"&gt;Ed&amp;rsquo;s blog which is to set the target property in code&lt;/a&gt;. So here is the code behind with the work around:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;public partial class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;MainPage &lt;/span&gt;: &lt;span style="color:#2b91af;"&gt;UserControl
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;public &lt;/span&gt;MainPage()
    {
        InitializeComponent();
        &lt;span style="color:#2b91af;"&gt;Storyboard&lt;/span&gt;.SetTargetProperty(expandBlue.Children[0], &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;PropertyPath&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;Attachments&lt;/span&gt;.ColumnWidthProperty));
        &lt;span style="color:#2b91af;"&gt;Storyboard&lt;/span&gt;.SetTargetProperty(expandBlue.Children[1], &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;PropertyPath&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;Attachments&lt;/span&gt;.ColumnWidthProperty));
        &lt;span style="color:#2b91af;"&gt;Storyboard&lt;/span&gt;.SetTargetProperty(expandRed.Children[0], &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;PropertyPath&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;Attachments&lt;/span&gt;.ColumnWidthProperty));
        &lt;span style="color:#2b91af;"&gt;Storyboard&lt;/span&gt;.SetTargetProperty(expandRed.Children[1], &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;PropertyPath&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;Attachments&lt;/span&gt;.ColumnWidthProperty));
    }

    &lt;span style="color:blue;"&gt;private void &lt;/span&gt;Blue_MouseLeftButtonDown(&lt;span style="color:blue;"&gt;object &lt;/span&gt;sender, &lt;span style="color:#2b91af;"&gt;MouseButtonEventArgs &lt;/span&gt;e)
    {
        expandBlue.Begin();
    }

    &lt;span style="color:blue;"&gt;private void &lt;/span&gt;Red_MouseLeftButtonDown(&lt;span style="color:blue;"&gt;object &lt;/span&gt;sender, &lt;span style="color:#2b91af;"&gt;MouseButtonEventArgs &lt;/span&gt;e)
    {
        expandRed.Begin();
    }
}&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Once we set the target property via code, then everything works great. However, that is a pain and makes things a lot less clean. But still I think this is a useful approach to animating the properties that are not easily animatable.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=454170" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/WPF_2F00_E/default.aspx">WPF/E</category><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/UX/default.aspx">UX</category></item><item><title>Styling Hack Using Attached Properties in Silverlight</title><link>http://blogs.sqlxml.org/bryantlikes/archive/2009/03/18/styling-hack-using-attached-properties-in-silverlight.aspx</link><pubDate>Thu, 19 Mar 2009 00:08:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:453310</guid><dc:creator>bryantlikes</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;I need to find the forum post where this question was asked, but I&amp;rsquo;ll have to do that later since I&amp;rsquo;m at MIX09 and searching the forums is low on my list. But I wanted to share a cool hack that I came across in the &lt;a href="http://live.visitmix.com/Agenda/Workshops.aspx#hiking-mt-avalon"&gt;Climbing Mt Avalon&lt;/a&gt; (it was definitely a climb, not a hike).&amp;nbsp; One of the many cool things that was shared was a tidbit by &lt;a href="http://blogs.msdn.com/jaimer/"&gt;Jaime Rodriguez&lt;/a&gt; about using Attached Properties. &lt;/p&gt;
&lt;p&gt;The question in the forums was how you can style the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox.verticalscrollbarvisibility(vs.95).aspx"&gt;VerticalScrollBarVisibility&lt;/a&gt; property on a TextBox. The problem is that since this property isn&amp;rsquo;t a &lt;a href="http://msdn.microsoft.com/en-us/library/cc221408(VS.95).aspx"&gt;DependencyProperty&lt;/a&gt;&amp;nbsp; so it can&amp;rsquo;t be styled. You can test this out by trying the following Xaml:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &amp;lt;UserControl x:Class=&lt;span style="color:#006080;"&gt;&amp;quot;Attachment.Page&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt;     xmlns=&lt;span style="color:#006080;"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt;     xmlns:x=&lt;span style="color:#006080;"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     Width=&lt;span style="color:#006080;"&gt;&amp;quot;400&amp;quot;&lt;/span&gt; Height=&lt;span style="color:#006080;"&gt;&amp;quot;300&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     &amp;lt;UserControl.Resources&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;         &amp;lt;Style TargetType=&lt;span style="color:#006080;"&gt;&amp;quot;TextBox&amp;quot;&lt;/span&gt; x:Key=&lt;span style="color:#006080;"&gt;&amp;quot;test&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;             &amp;lt;Setter Property=&lt;span style="color:#006080;"&gt;&amp;quot;FontSize&amp;quot;&lt;/span&gt; Value=&lt;span style="color:#006080;"&gt;&amp;quot;24&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;             &amp;lt;Setter Property=&lt;span style="color:#006080;"&gt;&amp;quot;VerticalScrollBarVisibility&amp;quot;&lt;/span&gt; Value=&lt;span style="color:#006080;"&gt;&amp;quot;Visible&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;         &amp;lt;/Style&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;     &amp;lt;/UserControl.Resources&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;     &amp;lt;Grid x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt; Background=&lt;span style="color:#006080;"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;      &amp;lt;TextBox Text=&lt;span style="color:#006080;"&gt;&amp;quot;This is a test&amp;quot;&lt;/span&gt; Style=&lt;span style="color:#006080;"&gt;&amp;quot;{StaticResource test}&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;     &amp;lt;/Grid&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt; &amp;lt;/UserControl&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you try to run this it will fail. So how can we set this property in style? Well, a trick you can use is to set your own attached property and then have the property set the VerticalScrollBarVisibility property on the TextBox for you. Here is a very quick example that I cooked up (using &lt;a href="http://blog.nerdplusart.com/archives/silverlight-code-snippets"&gt;Robby&amp;rsquo;s code snippet&lt;/a&gt;):&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; Attachment&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Attachments&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;readonly&lt;/span&gt; DependencyProperty MyVsbvProperty =&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;             DependencyProperty.RegisterAttached(&lt;span style="color:#006080;"&gt;&amp;quot;MyVsbv&amp;quot;&lt;/span&gt;, &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;                 &lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(ScrollBarVisibility), &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;                 &lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Attachments), &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;                 &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; PropertyMetadata(OnMyVsbvChanged));&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; SetMyVsbv(DependencyObject o, ScrollBarVisibility &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;         {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;             o.SetValue(MyVsbvProperty, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;         }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; ScrollBarVisibility GetMyVsbv(DependencyObject o)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum17" style="color:#606060;"&gt;  17:&lt;/span&gt;         {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum18" style="color:#606060;"&gt;  18:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; (ScrollBarVisibility)o.GetValue(MyVsbvProperty);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum19" style="color:#606060;"&gt;  19:&lt;/span&gt;         }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum20" style="color:#606060;"&gt;  20:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum21" style="color:#606060;"&gt;  21:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnMyVsbvChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum22" style="color:#606060;"&gt;  22:&lt;/span&gt;         {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum23" style="color:#606060;"&gt;  23:&lt;/span&gt;             ((TextBox)d).VerticalScrollBarVisibility = (ScrollBarVisibility)e.NewValue;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum24" style="color:#606060;"&gt;  24:&lt;/span&gt;         }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum25" style="color:#606060;"&gt;  25:&lt;/span&gt;     }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum26" style="color:#606060;"&gt;  26:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Very unintuitive name and my casts could be bad since there are no type checks, just an example. So here when the attached property is changed we change the property on the TextBox that the property is declared on. So if we change our style to use the attached property instead of the actual property it will work: &lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &amp;lt;UserControl x:Class=&lt;span style="color:#006080;"&gt;&amp;quot;Attachment.Page&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt;     xmlns=&lt;span style="color:#006080;"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt;     xmlns:x=&lt;span style="color:#006080;"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     xmlns:local=&lt;span style="color:#006080;"&gt;&amp;quot;clr-namespace:Attachment&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     Width=&lt;span style="color:#006080;"&gt;&amp;quot;400&amp;quot;&lt;/span&gt; Height=&lt;span style="color:#006080;"&gt;&amp;quot;300&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;     &amp;lt;UserControl.Resources&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;         &amp;lt;Style TargetType=&lt;span style="color:#006080;"&gt;&amp;quot;TextBox&amp;quot;&lt;/span&gt; x:Key=&lt;span style="color:#006080;"&gt;&amp;quot;test&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;             &amp;lt;Setter Property=&lt;span style="color:#006080;"&gt;&amp;quot;FontSize&amp;quot;&lt;/span&gt; Value=&lt;span style="color:#006080;"&gt;&amp;quot;24&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;             &amp;lt;Setter Property=&lt;span style="color:#006080;"&gt;&amp;quot;local:Attachments.MyVsbv&amp;quot;&lt;/span&gt; Value=&lt;span style="color:#006080;"&gt;&amp;quot;Visible&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;         &amp;lt;/Style&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;     &amp;lt;/UserControl.Resources&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;     &amp;lt;Grid x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt; Background=&lt;span style="color:#006080;"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;                 &amp;lt;TextBox Text=&lt;span style="color:#006080;"&gt;&amp;quot;This is a test&amp;quot;&lt;/span&gt; Style=&lt;span style="color:#006080;"&gt;&amp;quot;{StaticResource test}&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;             &amp;lt;/Grid&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt; &amp;lt;/UserControl&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So there you have it. If you need to style a property on a control that isn&amp;rsquo;t a dependency property you can use this method to get around that limitation. There are a bunch of other uses for this that I&amp;rsquo;ll be blogging when I have another minute. &lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=453310" width="1" height="1"&gt;</description></item><item><title>SDS - MIX09 Announcements</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/03/18/sds-mix09-announcements.aspx</link><pubDate>Wed, 18 Mar 2009 05:03:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:453293</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>SQL Server Data Services and the Cloud computing is surely taking a lot of noise off-late and I just saw this post which talks about the latest announcement underway of having &amp;quot;full SQL Server&amp;quot; like functionality for the cloud from strctures, semi-structured and un-strctured data. This is good news from couple of angles, atleast I dont need to learn a new language construct :) ......(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/03/18/sds-mix09-announcements.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=453293" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Cloud+Services/default.aspx">Cloud Services</category></item><item><title>Silverlight Streaming Utility Classes</title><link>http://blogs.sqlxml.org/bryantlikes/archive/2009/03/11/silverlight-streaming-utility-classes.aspx</link><pubDate>Wed, 11 Mar 2009 23:36:53 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:453109</guid><dc:creator>bryantlikes</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Yesterday I was working through &lt;a href="http://silverlight.net/forums/t/78284.aspx"&gt;another question in the Silverlight Forums&lt;/a&gt; about how to upload video to &lt;a href="http://silverlight.live.com"&gt;Silverlight Streaming&lt;/a&gt; via code. At first I tried to reference &lt;a href="http://www.codeplex.com/videoshow"&gt;the Video.Show application&lt;/a&gt;, but there is a lot of code there and it doesn’t help if you just want to upload a bunch of videos to the same application. So I ended up taking some of the code from Video.Show and some of the code from &lt;a href="http://msdn.microsoft.com/en-us/library/bb851621.aspx"&gt;the SDK/API&lt;/a&gt; and created a very simple Utility class to help with the process. &lt;/p&gt;  &lt;p&gt;You can &lt;a href="http://code.msdn.microsoft.com/SlStreamingUtils"&gt;download the code on the Code Gallery site&lt;/a&gt;. It is very simple in that there is no error handling and I didn’t create a Silverlight version yet. I did implement GET, POST, PUT, MKCOL, and DELETE as well as creating the functionality to package a bunch of videos into a single zip which can be posted all at once. &lt;/p&gt;  &lt;p&gt;A few examples from the code, first creating a directory and PUTting a file in it:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;WebDavClient client = &lt;span class="kwrd"&gt;new&lt;/span&gt; WebDavClient(&lt;span class="str"&gt;&amp;quot;Your AppID&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Your Key&amp;quot;&lt;/span&gt;); 
&lt;span class="rem"&gt;// get those from http://silverlight.live.com&lt;/span&gt;
 
client.CreateFolder(&lt;span class="str"&gt;&amp;quot;MyVideos&amp;quot;&lt;/span&gt;);
client.PutFile(&lt;span class="str"&gt;&amp;quot;MyVideos&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;C:\\videos\reallyCoolVideo.wmv&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


&lt;p&gt;Next, packaging up a bunch of videos and POSTing the zip as an application:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;WebDavClient client = &lt;span class="kwrd"&gt;new&lt;/span&gt; WebDavClient(&lt;span class="str"&gt;&amp;quot;Your AppID&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Your Key&amp;quot;&lt;/span&gt;); 
&lt;span class="rem"&gt;// get those from http://silverlight.live.com&lt;/span&gt;
 
client.PackageAndPostFiles(&lt;span class="str"&gt;&amp;quot;MyVideos&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;C:\\videos\firstCoolVideo.wmv&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;C:\\videos\anothercoolVideo.wmv&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


&lt;p&gt;Let me know if you’d like to see a Silverlight version (be easy to implement) or if there are any other features you’d like added. &lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;a href="http://digg.com/submit?url=http%3a%2f%2fblogs.sqlxml.org%2fbryantlikes%2farchive%2f2009%2f03%2f11%2fsilverlight-streaming-utility-classes.aspx&amp;amp;title=Silverlight+Streaming+Utility+Classes"&gt;&lt;img src="http://digg.com/img/badges/100x20-digg-button.png" width="100" height="20" alt="Digg This" title="Digg This" border="0" style="border:0;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&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 style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=453109" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/WPF_2F00_E/default.aspx">WPF/E</category><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Debugging a Remotely Hosted Silverlight App</title><link>http://blogs.sqlxml.org/bryantlikes/archive/2009/03/10/debugging-a-remotely-hosted-silverlight-app.aspx</link><pubDate>Tue, 10 Mar 2009 18:32:14 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:453055</guid><dc:creator>bryantlikes</dc:creator><slash:comments>12</slash:comments><description>&lt;p&gt;This question has come up in the &lt;a href="http://silverlight.net/forums/t/78511.aspx"&gt;forums a few times&lt;/a&gt; so I thought it would be worth a blog post. Most people are pretty familiar with debugging a Silverlight application running locally during development, but what people many times don’t realize is that you can also attach your debugger to a xap file that is hosted remotely. &lt;a href="http://msdn.microsoft.com/en-us/library/cc838267(VS.95).aspx"&gt;This MSDN article&lt;/a&gt; touches on this briefly, but doesn’t really go into details on how it works. &lt;/p&gt;  &lt;p&gt;The important thing to understand about Silverlight is that it runs the .NET code on the client machine, not on the server. The code runs in the browser process, so if you’re going to debug it you need to attach to that process. The one caveat is that the xap on the server must be the same as the compiled xap on your development machine. In other words, you can’t debug the remote xap after you’ve made changes locally and haven’t deployed them.&lt;/p&gt;  &lt;p&gt;As an example I will demonstrate remotely debugging the &lt;a href="http://www.codeplex.com/Twilight"&gt;Twilight badge&lt;/a&gt; on my blog. &lt;/p&gt;  &lt;p&gt;First I open the Twilight.sln and since I’ve made a few changes in the last week I’ll deploy the latest xap file from my project to my server at &lt;a href="http://blogs.sqlxml.org/wpfe/twilight.xap"&gt;http://blogs.sqlxml.org/wpfe/twilight.xap&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Next, now that I am sure the xap file on the server has the same code as my solution, I can set a breakpoint on Line 36 (using version 1.5.2) where the Twitter javascript callback calls into Silverlight with the latest list of tweets:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;a href="http://blogs.sqlxml.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bryantlikes/image_5F00_14047933.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="112" alt="image" src="http://blogs.sqlxml.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bryantlikes/image_5F00_thumb_5F00_0CE53CBB.png" width="531" border="0" /&gt;&lt;/a&gt; &lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Now instead of hitting F5 to start debugging my application, I’ll open a new instance of Internet Explorer (or you could use Firefox to debug that as well) and navigate to &lt;a href="http://blogs.sqlxml.org/bryantlikes"&gt;my blog&lt;/a&gt; since that is where the xap shows up. Back in Visual Studio I click Debug –&amp;gt; Attach to Process and select the iexplore.exe process which is Internet Explorer (or firefox.exe if you’re debugging Firefox). &lt;/p&gt;

&lt;p&gt;NOTE: Make sure you click highlight iexplore.exe or firefox.exe and then click the Select button and choose Silverlight as the type of code you wish to debug.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.sqlxml.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bryantlikes/image_5F00_3AD28F73.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="442" alt="image" src="http://blogs.sqlxml.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bryantlikes/image_5F00_thumb_5F00_05C60043.png" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Once I click attach I can go back to my Internet Explorer window and hit refresh to force the breakpoint to get hit. If everything was setup correctly you should get taken back to Visual Studio where your breakpoint is highlighted and you can now step through your Silverlight code.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.sqlxml.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bryantlikes/image_5F00_33B352FB.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="105" alt="image" src="http://blogs.sqlxml.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bryantlikes/image_5F00_thumb_5F00_61A0A5B3.png" width="555" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;So why is this useful? Well a lot can change in your application when you start hosting it on a real server instead of in your localhost. For one, you now have to access services running on the server and you are subject to a lot more security checks that were ignored on your localhost. So I find this to be a useful tool for troubleshooting things when they work locally but break once I deploy out to a server.&lt;/p&gt;

&lt;p&gt;One last thing, you can also set this up to &lt;a href="http://msdn.microsoft.com/en-us/library/cc903948(VS.95).aspx"&gt;remotely debug code running on the Mac&lt;/a&gt;. &lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;a href="http://digg.com/submit?url=http%3a%2f%2fblogs.sqlxml.org%2fbryantlikes%2farchive%2f2009%2f03%2f10%2fdebugging-a-remotely-hosted-silverlight-app.aspx&amp;amp;title=Debugging+a+Remotely+Hosted+Silverlight+App"&gt;&lt;img src="http://digg.com/img/badges/100x20-digg-button.png" width="100" height="20" alt="Digg This" title="Digg This" border="0" style="border:0;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&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 style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=453055" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/WPF_2F00_E/default.aspx">WPF/E</category><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Art of Layoff ...</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/03/09/art-of-layoff.aspx</link><pubDate>Mon, 09 Mar 2009 04:18:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:452985</guid><dc:creator>vinodkumar</dc:creator><slash:comments>0</slash:comments><description>Is it an art? Wow, i know it is difficult for folks to layoff people and this audio from Harward school is a testimony ... Hear it when you have some time, worth it ....(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/03/09/art-of-layoff.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=452985" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Management/default.aspx">Management</category></item><item><title>Twilight 1.5: Multiple Views with MVVM</title><link>http://blogs.sqlxml.org/bryantlikes/archive/2009/02/26/twilight-1-5-multiple-views-with-mvvm.aspx</link><pubDate>Thu, 26 Feb 2009 19:15:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:452581</guid><dc:creator>bryantlikes</dc:creator><slash:comments>10</slash:comments><description>&lt;p&gt;You may have noticed the new look for the &lt;a href="http://www.codeplex.com/Twilight"&gt;Twilight Twitter Badge&lt;/a&gt; on my blog a few weeks ago. I wanted to add a few new looks for the badge and got one of them done but then decided I need to spend some more time on it before releasing it because I didn&amp;rsquo;t like the way the code was turning out. There were a couple of things I didn&amp;rsquo;t like:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The code was too tightly coupled to the views/skins. This made it hard to add new views/skins without duplicating code. &lt;/li&gt;
&lt;li&gt;The views/skins weren&amp;rsquo;t &lt;a href="http://alanle.com/?p=110"&gt;blendable&lt;/a&gt; at all. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To start my rework I began with &lt;a href="http://blogs.msdn.com/expression/archive/2008/10/27/simulating-sample-data-in-blend-2-sp1.aspx"&gt;this post by the Expression Blend/Design team on simulating sample data in Blend&lt;/a&gt;. The post is a very simple yet workable solution for displaying design time data in Blend so that you can work on the layout of your application. The only change I made was &lt;a href="http://blogs.sqlxml.org/bryantlikes/archive/2009/02/25/detecting-design-mode-in-silverlight.aspx"&gt;how I detected design mode&lt;/a&gt;. After playing around with that sample I decided that to implement this in Twilight I would need to switch to a &lt;a href="http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx"&gt;Model-View-ViewModel&lt;/a&gt; approach so I started doing some research into using this approach with Silverlight. In my research I came across &lt;a href="http://www.ryankeeter.com/silverlight/silverlight-mvvm-pt-1-hello-world-style/"&gt;this post by Ryan Keeter&lt;/a&gt; on using MVVM in Silverlight. It was a nice simple explanation that made sense to me so I set out to combine the expression team example and this MVVM example. &lt;/p&gt;
&lt;p&gt;What I ended up with is pretty close to MVVM. I say pretty close because I don&amp;rsquo;t think it fully fits since the ViewModels hook into some of the Views Storyboard events and also control the Views VisualState transitions. Maybe that fits into MVVM, but it probably breaks some of the rules. However, for this tiny application it makes things a lot easier. I still have multiple Views per ViewModel and the Views have zero code which is what I really wanted. &lt;/p&gt;
&lt;p&gt;There are two ViewModels that I&amp;rsquo;m using: ListViewModel and RotatingViewModel. Then on top of these two ViewModels are four Views: Default, Large, Small, and Tiny. &lt;/p&gt;
&lt;table border="0" width="400" cellpadding="2" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;ListViewModel Views&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Twilight&amp;amp;DownloadId=56287" alt="" /&gt; &lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Twilight&amp;amp;DownloadId=59808" alt="" /&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;
&lt;p align="center"&gt;Default View&lt;/p&gt;
&lt;/td&gt;
&lt;td width="200" valign="top"&gt;
&lt;p align="center"&gt;Large View&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The ListViewModel is for views where there is just a list of tweets while the RotatingViewModel is for views that display a single tweet at a time. &lt;/p&gt;
&lt;table border="0" width="400" cellpadding="2" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;RotatingViewModel Views&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Twilight&amp;amp;DownloadId=56691" alt="" /&gt; &lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Twilight&amp;amp;DownloadId=59807" alt="" /&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;
&lt;p align="center"&gt;Small&lt;/p&gt;
&lt;/td&gt;
&lt;td width="200" valign="top"&gt;
&lt;p align="center"&gt;Tiny&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can switch between these views by setting the mode initParam equal to the view you want (example: mode=tiny). The Tiny view looks like the twitter counter badge but then pops the bubbles over the surrounding content. This is done using the windowless = true parameter and absolute positioning. Right now the Silverlight will float over the content below it even when the bubble isn&amp;rsquo;t showing, so you won&amp;rsquo;t be able to click through to that content. I might be able to figure out a better way to handle it, but for now that is a known limitation. &lt;/p&gt;
&lt;p&gt;Since now all the view logic is in the ViewModel, writing tests is a lot easier. I&amp;rsquo;m still using the same Silverlight test framework, but thanks to &lt;a href="http://silverlight.net/blogs/justinangel/archive/2009/02/25/silverlight-unit-testing-rhinomocks-unity-and-resharper.aspx"&gt;this post by Justin Angel I added a few more complex tests using his WaitFor extension&lt;/a&gt;. The test coverage is still very light and I&amp;rsquo;m not testing the views at all, but I feel like I&amp;rsquo;m starting to get testing in Silverlight. &lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve also added another option for hosting Twilight on your blog. You can now host it via Silverlight Streaming using an iframe. Add the following HTML to your page: &lt;/p&gt;
&lt;p&gt;&amp;lt;iframe src=&amp;quot;http://silverlight.services.live.com/invoke/232/Twilight1.5/iframe.html?username=[your username]&amp;amp;count=10&amp;amp;mode=small&amp;quot; scrolling=&amp;quot;no&amp;quot; frameborder=&amp;quot;0&amp;quot; style=&amp;#39;width:200px; height:175px&amp;#39;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;** Hosting it via Silverlight Streaming doesn&amp;rsquo;t support the Tiny mode since the Silverlight won&amp;rsquo;t be able to expand outside of the iframe. &lt;/p&gt;
&lt;p&gt;In addition to hosting it via Silverlight Streaming, you can always self-host it or use the xap I have hosted on dreamhost at &lt;a href="http://twilight.bryantlikes.com/twilight.xap"&gt;http://twilight.bryantlikes.com/twilight.xap&lt;/a&gt;. If you&amp;rsquo;re already using the hosted version, you can switch the mode by using the mode initParam as I mentioned above. &lt;/p&gt;
&lt;p&gt;Hopefully this will serve as a great twitter badge for your blog and also a decent example of MVVM in Silverlight along with some unit testing examples as well. Feel free to &lt;a href="http://www.codeplex.com/Twilight"&gt;join the project on Codeplex&lt;/a&gt; and create your own views. I am still working on at least one more version that will make the colors tweakable and maybe even detect what colors should be used based on the surrounding html. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=452581" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/WPF_2F00_E/default.aspx">WPF/E</category><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/UX/default.aspx">UX</category><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/Twitter/default.aspx">Twitter</category></item><item><title>Detecting Design Mode in Silverlight</title><link>http://blogs.sqlxml.org/bryantlikes/archive/2009/02/25/detecting-design-mode-in-silverlight.aspx</link><pubDate>Wed, 25 Feb 2009 17:46:32 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:452526</guid><dc:creator>bryantlikes</dc:creator><slash:comments>26</slash:comments><description>&lt;p&gt;One of the things I’ve been trying to getting a better understanding of is how to make the Silverlight projects I work on more &lt;a href="http://twitter.com/a7an/status/1215936431"&gt;blendable&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;In general, WPF and Silverlight controls should be &amp;quot;blendable&amp;quot;. ItemsControls need to display representative data within the design surface.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The problem, at least for me, is that every &lt;a href="http://alanle.com/wp-trackback.php?p=110"&gt;example out there to detect design mode&lt;/a&gt; uses:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;var designMode = !HtmlPage.IsEnabled;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Since the Html Bridge is disable inside of Blend, this does work for the most part, but what about when your xap is hosted on another server? In this case the Html Bridge is disabled by default so if someone doesn’t configure it correctly they will get your design time data.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;strong&gt;Mode&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;strong&gt;HtmlPage.IsEnabled&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Blend&lt;/td&gt;        &lt;td valign="top" width="200"&gt;false&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Visual Studio&lt;/td&gt;        &lt;td valign="top" width="200"&gt;false&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Local Xap&lt;/td&gt;        &lt;td valign="top" width="200"&gt;true&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Remote Xap&lt;/td&gt;        &lt;td valign="top" width="200"&gt;false*&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Streaming Silverlight&lt;/td&gt;        &lt;td valign="top" width="200"&gt;true**&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;* This can be changed to true, but it is &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.interop.settings.enablehtmlaccess(VS.95).aspx"&gt;disabled by default&lt;/a&gt;.     &lt;br /&gt;** Enabled by default&lt;/p&gt;  &lt;p&gt;So I was trying to come up with another method to detect design mode in Silverlight and here is the best I have come up with so far:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsDesignTime()
{
    &lt;span class="kwrd"&gt;try&lt;/span&gt;
    {
        var host = Application.Current.Host.Source;
        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;
    }
    &lt;span class="kwrd"&gt;catch&lt;/span&gt;
    {
        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;
    }
}&lt;/pre&gt;

&lt;p&gt;What happens is that Application.Current.Host.Source works great when the plugin is hosted in a web page and will return the path to the xap file, but in design mode trying to access that property throws an exception. So if you hit the exception then you’re in design mode, otherwise you’re in a web page. Not super elegant but it feels better to me than checking if the Html Bridge is enabled since that isn’t a true check.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update: &lt;/strong&gt;As Tom mentions in the comments, you can also use DesignerProperties.GetIsInDesignMode. But if your goal is to make your project more blendable then Visual Studio support might not be important. &lt;/p&gt;

&lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td valign="top" width="200"&gt;&lt;strong&gt;Mode&lt;/strong&gt;&lt;/td&gt;

      &lt;td valign="top" width="200"&gt;&lt;strong&gt;DesignerProperties.GetIsInDesignMode&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="200"&gt;Blend&lt;/td&gt;

      &lt;td valign="top" width="200"&gt;true&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="200"&gt;Visual Studio&lt;/td&gt;

      &lt;td valign="top" width="200"&gt;false&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="200"&gt;Local Xap&lt;/td&gt;

      &lt;td valign="top" width="200"&gt;false&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="200"&gt;Remote Xap&lt;/td&gt;

      &lt;td valign="top" width="200"&gt;false&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="200"&gt;Streaming Silverlight&lt;/td&gt;

      &lt;td valign="top" width="200"&gt;false&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;So with this check worst case you get no data in the Visual Studio designer, but the Visual Studio designer isn’t that great anyway. Blend is the real goal. So instead instead of the above code you can use this code instead:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsDesignTime()
{
    &lt;span class="kwrd"&gt;return&lt;/span&gt; DesignerProperties.GetIsInDesignMode(Application.Current.RootVisual);
}&lt;/pre&gt;

&lt;p&gt;Thanks for the tip Tom!&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;a href="http://digg.com/submit?url=http%3a%2f%2fblogs.sqlxml.org%2fbryantlikes%2farchive%2f2009%2f02%2f25%2fdetecting-design-mode-in-silverlight.aspx&amp;amp;title=Detecting+Design+Mode+in+Silverlight"&gt;&lt;img src="http://digg.com/img/badges/100x20-digg-button.png" width="100" height="20" alt="Digg This" title="Digg This" border="0" style="border:0;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&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 style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=452526" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/WPF_2F00_E/default.aspx">WPF/E</category><category domain="http://blogs.sqlxml.org/bryantlikes/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Feb VTD - SQL Dev Track: My Session</title><link>http://blogs.sqlxml.org/vinodkumar/archive/2009/02/19/feb-vtd-sql-dev-track-my-session.aspx</link><pubDate>Thu, 19 Feb 2009 13:54:00 GMT</pubDate><guid isPermaLink="false">b1dba0ec-7f0a-44f8-b88f-2f1cac820aaf:452237</guid><dc:creator>vinodkumar</dc:creator><slash:comments>5</slash:comments><description>It was really nice to see a whole bunch of people attend my session on &amp;quot;7 things I wish Developers Knew about SQL Server&amp;quot;. On an average I had double the number of attendees when compared to the other sessions on the same track. It is really nice and thanks for attending the same. If you have any specific feedbacks, please drop a line and I will try to answer them. BTW, I know I had less time as far as Q&amp;amp;A is concerned but that is the format of the online event to be precise and crisp...(&lt;a href="http://blogs.sqlxml.org/vinodkumar/archive/2009/02/19/feb-vtd-sql-dev-track-my-session.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.sqlxml.org/aggbug.aspx?PostID=452237" width="1" height="1"&gt;</description><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/VTD/default.aspx">VTD</category><category domain="http://blogs.sqlxml.org/vinodkumar/archive/tags/Personal/default.aspx">Personal</category></item></channel></rss>