<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.wintellect.com/CS/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Steve Porter's Blog</title><link>http://www.wintellect.com/CS/blogs/sporter/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>Tons of Great Azure Resources</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2011/04/26/tons-of-great-azure-resources.aspx</link><pubDate>Tue, 26 Apr 2011 19:48:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:19827</guid><dc:creator>sporter</dc:creator><slash:comments>2</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/19827.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=19827</wfw:commentRss><description>&lt;p&gt;Over the past couple of days &lt;a href="http://www.wintellect.com/cs/blogs/jeffreyr/default.aspx"&gt;Jeffrey Richter&lt;/a&gt; and I, along with Microsoft, have been working with an Atlanta based ISV on how they can best implement Azure in their enterprise.&amp;#160; I was working to put a good list of resources together for the ISV and I figured I’d make it public as well.&amp;#160; This list is in addition to the already comprehensive list found at the following link: &lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/b/cdndevs/p/azureresources.aspx" href="http://blogs.msdn.com/b/cdndevs/p/azureresources.aspx"&gt;http://blogs.msdn.com/b/cdndevs/p/azureresources.aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Tools/Components&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows Azure Connect      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx" href="http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx"&gt;http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/gg433122.aspx" href="http://msdn.microsoft.com/en-us/library/gg433122.aspx"&gt;http://msdn.microsoft.com/en-us/library/gg433122.aspx&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title="http://blogs.technet.com/b/gmarchetti/archive/2011/04/18/azure-connect-a-vpn-between-azure-and-your-machines.aspx" href="http://blogs.technet.com/b/gmarchetti/archive/2011/04/18/azure-connect-a-vpn-between-azure-and-your-machines.aspx"&gt;http://blogs.technet.com/b/gmarchetti/archive/2011/04/18/azure-connect-a-vpn-between-azure-and-your-machines.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Azure Traffic Manager      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx" href="http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx"&gt;http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title="Getting Started with Windows Azure Traffic Manager" href="http://go.microsoft.com/fwlink/?LinkID=212076"&gt;Getting Started with Windows Azure Traffic Manager&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title="http://convective.wordpress.com/2011/04/15/windows-azure-traffic-manager/" href="http://convective.wordpress.com/2011/04/15/windows-azure-traffic-manager/"&gt;http://convective.wordpress.com/2011/04/15/windows-azure-traffic-manager/&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Azure CDN (Content Delivery Network)      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx" href="http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx"&gt;http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ff919705.aspx" href="http://msdn.microsoft.com/en-us/library/ff919705.aspx"&gt;http://msdn.microsoft.com/en-us/library/ff919705.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Windows Azure Application Monitoring Management Pack      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://pinpoint.microsoft.com/en-us/applications/windows-azure-application-monitoring-management-pack-release-candidate-12884907699" href="http://pinpoint.microsoft.com/en-us/applications/windows-azure-application-monitoring-management-pack-release-candidate-12884907699"&gt;http://pinpoint.microsoft.com/en-us/applications/windows-azure-application-monitoring-management-pack-release-candidate-12884907699&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Windows Azure SDK for Java      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://www.windowsazure4j.org/" href="http://www.windowsazure4j.org/"&gt;http://www.windowsazure4j.org/&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;SQL Azure Reporting      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://www.microsoft.com/en-us/sqlazure/reporting.aspx" href="http://www.microsoft.com/en-us/sqlazure/reporting.aspx"&gt;http://www.microsoft.com/en-us/sqlazure/reporting.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;SQL Azure Data Sync (Based on Microsoft Sync Framework Technologies)      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://www.microsoft.com/en-us/sqlazure/datasync.aspx" href="http://www.microsoft.com/en-us/sqlazure/datasync.aspx"&gt;http://www.microsoft.com/en-us/sqlazure/datasync.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Azure AppFabric Caching      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/windowsazureappfabric/archive/2010/10/28/introduction-to-windows-azure-appfabric-caching-ctp.aspx" href="http://blogs.msdn.com/b/windowsazureappfabric/archive/2010/10/28/introduction-to-windows-azure-appfabric-caching-ctp.aspx"&gt;http://blogs.msdn.com/b/windowsazureappfabric/archive/2010/10/28/introduction-to-windows-azure-appfabric-caching-ctp.aspx&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/windowsazureappfabric/archive/2011/04/10/windows-azure-appfabric-caching-availability-announced.aspx" href="http://blogs.msdn.com/b/windowsazureappfabric/archive/2011/04/10/windows-azure-appfabric-caching-availability-announced.aspx"&gt;http://blogs.msdn.com/b/windowsazureappfabric/archive/2011/04/10/windows-azure-appfabric-caching-availability-announced.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Windows Azure Platform TCO Calculator      &lt;ul&gt;       &lt;li&gt;&lt;a title="https://roianalyst.alinean.com/msft/AutoLogin.do?d=176318219048082115" href="https://roianalyst.alinean.com/msft/AutoLogin.do?d=176318219048082115"&gt;https://roianalyst.alinean.com/msft/AutoLogin.do?d=176318219048082115&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Microsoft Assessment and Planning Toolkit      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://technet.microsoft.com/en-us/library/bb977556.aspx" href="http://technet.microsoft.com/en-us/library/bb977556.aspx"&gt;http://technet.microsoft.com/en-us/library/bb977556.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;CodePlex Projects and MSDN Code Samples&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows Azure Toolkit for Windows Phone 7      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://watoolkitwp7.codeplex.com/" href="http://watoolkitwp7.codeplex.com/"&gt;http://watoolkitwp7.codeplex.com/&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;SQL Azure Migration Wizard      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://sqlazuremw.codeplex.com/" href="http://sqlazuremw.codeplex.com/"&gt;http://sqlazuremw.codeplex.com/&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Windows Azure SDK for PHP      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://phpazure.codeplex.com/" href="http://phpazure.codeplex.com/"&gt;http://phpazure.codeplex.com/&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Silverlight Pivot in Azure      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://pivotviewerinazure.codeplex.com/"&gt;http://pivotviewerinazure.codeplex.com/&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Windows Azure Starter Kit for Java      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://wastarterkit4java.codeplex.com/" href="http://wastarterkit4java.codeplex.com/"&gt;http://wastarterkit4java.codeplex.com/&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Azure Library for Lucene.Net (Full Text Indexing for Azure)      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://code.msdn.microsoft.com/AzureDirectory" href="http://code.msdn.microsoft.com/AzureDirectory"&gt;http://code.msdn.microsoft.com/AzureDirectory&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;General Articles, Blogs, and Blog Posts&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;CDN for IIS Smooth Streaming      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/hanuk/archive/2011/04/12/windows-azure-cdn-for-iis-smooth-streaming.aspx"&gt;http://blogs.msdn.com/b/hanuk/archive/2011/04/12/windows-azure-cdn-for-iis-smooth-streaming.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Things You Can Do with Windows Azure      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://things.smarx.com/" href="http://things.smarx.com/Windows"&gt;http://things.smarx.com/Windows&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Windows Azure Platform Consumption/Pricing      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=en&amp;amp;locale=en-US&amp;amp;offer=MS-AZR-0003P" href="http://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=en&amp;amp;locale=en-US&amp;amp;offer=MS-AZR-0003P"&gt;http://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=en&amp;amp;locale=en-US&amp;amp;offer=MS-AZR-0003P&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Understanding Windows Azure CDN Billing      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/windowsazure/archive/2011/04/11/understanding-windows-azure-cdn-billing.aspx" href="http://blogs.msdn.com/b/windowsazure/archive/2011/04/11/understanding-windows-azure-cdn-billing.aspx"&gt;http://blogs.msdn.com/b/windowsazure/archive/2011/04/11/understanding-windows-azure-cdn-billing.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Deploying a Java application to Windows Azure      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://java.interoperabilitybridges.com/articles/deploying-a-java-application-to-windows-azure-with-command-line-ant" href="http://java.interoperabilitybridges.com/articles/deploying-a-java-application-to-windows-azure-with-command-line-ant"&gt;http://java.interoperabilitybridges.com/articles/deploying-a-java-application-to-windows-azure-with-command-line-ant&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Storage Related Articles, Blogs, and Blog Posts&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Java Access to SQL Azure      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/brian_swan/archive/2011/03/29/java-access-to-sql-azure-via-the-jdbc-driver-for-sql-server.aspx" href="http://blogs.msdn.com/b/brian_swan/archive/2011/03/29/java-access-to-sql-azure-via-the-jdbc-driver-for-sql-server.aspx"&gt;http://blogs.msdn.com/b/brian_swan/archive/2011/03/29/java-access-to-sql-azure-via-the-jdbc-driver-for-sql-server.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Windows Azure Storage Abstractions and their Scalability Targets      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/windows-azure-storage-abstractions-and-their-scalability-targets.aspx" href="http://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/windows-azure-storage-abstractions-and-their-scalability-targets.aspx"&gt;http://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/windows-azure-storage-abstractions-and-their-scalability-targets.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Similarities and Differences – SQL Azure vs. SQL Server      &lt;ul&gt;       &lt;li&gt;&lt;a title="Similarities and Differences - SQL Azure vs. SQL Server" href="https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=64372127-9ef5-4e4b-96b2-2d40714f49f5&amp;amp;lcid=1033"&gt;https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=64372127-9ef5-4e4b-96b2-2d40714f49f5&amp;amp;lcid=1033&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Sharding with SQL Azure      &lt;ul&gt;       &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/sqlazure/archive/2010/12/23/10108670.aspx" href="http://blogs.msdn.com/b/sqlazure/archive/2010/12/23/10108670.aspx"&gt;http://blogs.msdn.com/b/sqlazure/archive/2010/12/23/10108670.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=19827" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Visual Studio 2010 Database Project From an Existing Database</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2011/02/12/visual-studio-2010-database-project-from-an-existing-database.aspx</link><pubDate>Sat, 12 Feb 2011 16:37:18 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:19475</guid><dc:creator>sporter</dc:creator><slash:comments>8</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/19475.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=19475</wfw:commentRss><description>&lt;p&gt;There are several reasons I prefer using Visual Studio for maintaining the design and functionality of a SQL Server database.&amp;#160; The two top reasons are the source control integration and the ability to easily deploy an instance of the database with test data.&amp;#160; There’s also great functionality like schema and data compare but those are out of scope for this post.&lt;/p&gt;  &lt;p&gt;When designing a database from scratch I like to use tools other than Visual Studio.&amp;#160; Sometimes I just work in script or use the built in design functionality from SQL Server Management Studio.&amp;#160; The vast majority of the time though I use a third-party tool like Sparx Systems’ Enterprise Architect.&amp;#160; I really like the visual design surface that EA offers and it’s also great when you need to reverse engineer an existing database.&lt;/p&gt;  &lt;p&gt;So my problem was that I needed to be able to create a Database Project from an existing database design in SQL Server.&amp;#160; The solution ended up being a pretty simple three step process.&lt;/p&gt;  &lt;p&gt;First, create a new Visual Studio 2010 Database Project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wintellect.com/CS/blogs/sporter/image_1B922C2D.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.wintellect.com/CS/blogs/sporter/image_thumb_52F83D5B.png" width="430" height="249" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Once you’ve got the project created you next need to add a data connection to our existing SQL Server database.&amp;#160; This connection will allow you to maintain a relationship between the Visual Studio project and the database it targets.&amp;#160; Once the connection is added you will be able to drill down and view the various database objects.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wintellect.com/CS/blogs/sporter/image_4B009AF9.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.wintellect.com/CS/blogs/sporter/image_thumb_17C46190.png" width="252" height="367" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://www.wintellect.com/CS/blogs/sporter/image_2FE7CBEB.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.wintellect.com/CS/blogs/sporter/image_thumb_641BF531.png" width="239" height="369" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now that the project is connected to the target database you can generate all selected database objects into your VS Database Project.&amp;#160; Right-click on your project and choose “Import Database Objects and Settings…”.&amp;#160; It’s important to note that you can just as easily import from a script file which in some cases might be your only or preferred option depending on your level of access to the target database.&amp;#160; The script import process is identical with the exception of a script file not a database connection being the input.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wintellect.com/CS/blogs/sporter/image_4E520CD4.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.wintellect.com/CS/blogs/sporter/image_thumb_2CF26738.png" width="419" height="322" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Once the import process is complete you will have scripts for your database objects as part of your Database Project that you can check into source control, use to deploy an instance of your database, etc!&amp;#160; Combine these scripts with a script to generate test data and you have the perfect way to share a development database in a team environment.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wintellect.com/CS/blogs/sporter/image_32CD0AD1.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.wintellect.com/CS/blogs/sporter/image_thumb_51A37EAF.png" width="257" height="464" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=19475" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Database/default.aspx">Database</category></item><item><title>ASP.NET 3.5 Extensions</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/12/10/asp-net-3-5-extensions.aspx</link><pubDate>Mon, 10 Dec 2007 04:01:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:4767</guid><dc:creator>sporter</dc:creator><slash:comments>0</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/4767.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=4767</wfw:commentRss><description>The preview is available for download &lt;A class="" title="ASP.NET Extensions Download" href="http://asp.net/downloads/3.5-extensions/" target=_blank&gt;here&lt;/A&gt;.&amp;nbsp; This includes the much awaited MVC support that &lt;A class="" title="Scott Guthrie's Blog" href="http://weblogs.asp.net/scottgu/default.aspx" target=_blank&gt;Scott&lt;/A&gt; has been recently blogging about.&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=4767" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Right Click event in Silverlight 1.1/2.0</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/12/09/right-click-event-in-silverlight-1-1-2-0.aspx</link><pubDate>Sun, 09 Dec 2007 22:28:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:4761</guid><dc:creator>sporter</dc:creator><slash:comments>1</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/4761.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=4761</wfw:commentRss><description>&lt;P&gt;There are many mouse events raised in Silverlight 1.1/2.0, but you will notice that right click is not one of them.&amp;nbsp; This is because by default the Silverlight plug-in hooks the right click to show information about Silverlight and update settings.&amp;nbsp; So what do you do if you have a feature such as a context menu that relies on the right click event?&amp;nbsp; Don't fret, JavaScript interaction with managed code comes to the rescue.&lt;/P&gt;
&lt;P&gt;First you&amp;nbsp;hook the right click event with your own JavaScript function.&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:courier new;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;function click(e) &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var control = document.getElementById("SilverlightControl");&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (navigator.appName == "Netscape" &amp;amp;&amp;amp; e.which==3) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(e.clientX + " " + e.clientY); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; control.Content.PageReference.RightMouseButtonDown(e.clientX, e.clientY); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (navigator.appName == "Microsoft Internet Explorer" &amp;amp;&amp;amp; event.button==2) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(event.clientX + " " + event.clientY); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; control.Content.PageReference.RightMouseButtonDown(event.clientX, event.clientY); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true; &lt;BR&gt;} &lt;/P&gt;
&lt;P&gt;document.onmousedown=click &lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 1. (JavaScript) Hooking right click event and passing to managed code&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;In the above code snippet you get a reference to the SilverLight plug-in and from there you can call your managed code method.&amp;nbsp; So in this case the JavaScript is calling a managed code method called RightMouseButtonDown that accepts the current mouse X and Y coordinates as input parameters.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Next you move over to managed code.&amp;nbsp; There are two steps that need to be taken for a managed code method to be called from JavaScript.&amp;nbsp; First you will need to register the class itself as callable from JavaScript.&amp;nbsp; You do this by registering the class as a scriptable endpoint and giving it a string reference name.&amp;nbsp; This code uses "PageReference" as the string reference name since the class name is "Page".&amp;nbsp; &lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:courier new;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;//Register the page class, "this", as a scriptable endpoint &lt;BR&gt;WebApplication.Current.RegisterScriptableObject("PageReference", this); &lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 2. (Managed Code) Registering the page class as a scriptable endpoint&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Finally you&amp;nbsp;decorate the managed code method that is to be called from JavaScript with the [Scriptable] attribute.&amp;nbsp; Once this is done the right click event will be hooked from JavaScript and passed on or "raised" to the appropriate managed code method. &lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:courier new;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;[Scriptable] &lt;BR&gt;public void RightMouseButtonDown(int x, int y) &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Do some work here &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // such as displaying a context menu &lt;BR&gt;} &lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 3. (Managed Code) RightMouseButtonDown method decorated with [Scriptable] attribute&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;That's it!&amp;nbsp; Now you have a managed code method that will be called when the user clicks the right mouse button.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=4761" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Centering and Sizing Text in Silverlight</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/10/11/centering-and-sizing-text-in-silverlight.aspx</link><pubDate>Thu, 11 Oct 2007 03:27:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:4022</guid><dc:creator>sporter</dc:creator><slash:comments>1</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/4022.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=4022</wfw:commentRss><description>&lt;P&gt;One of the things that I find myself doing over and over in Silverlight is centering text in TextBlock objects. The majority of the time I am doing this for headers, footers, and other areas where I have a single line of text. Often I find that I also need to size text within a TextBlock appropriately for the containing space. The algorithm is the same whether you do this in Silverlight 1.0 vs. 1.1, but I will show both. In figure 1 you see the XAML that we will be working with, figure 2 shows the JavaScript needed to center the text using Silvelright 1.0, and figure 3 shows the managed C# needed to center the text using Silverlight 1.1.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;Canvas&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;textCanvas&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;Width&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;640&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;Height&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"480"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;CenteredText&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;Text&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;This Text Should Be Centered.&lt;/SPAN&gt;" &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:red;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;640&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;Height&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"480"&lt;SPAN style="COLOR:blue;"&gt; /&amp;gt; &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;Canvas&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 1. XAML&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;var&lt;/SPAN&gt; headerText = &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.target.findName(&lt;SPAN style="COLOR:#a31515;"&gt;"CenteredText"&lt;/SPAN&gt;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;while&lt;/SPAN&gt;(headerText.ActualWidth &amp;gt; headerText.Width) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;headerText.FontSize -= 0.5; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;}&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;var&lt;/SPAN&gt; newLeft = ((headerText.Width - headerText.ActualWidth) / 2)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.headerText.GetValue(&lt;SPAN style="COLOR:#a31515;"&gt;"Canvas.Left"&lt;/SPAN&gt;); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;headerText.SetValue(&lt;SPAN style="COLOR:#a31515;"&gt;"Canvas.Left"&lt;/SPAN&gt;, newLeft);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;var&lt;/SPAN&gt; newTop = ((headerText.Height - headerText.ActualHeight) / 2) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;+ &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.headerText.GetValue(&lt;SPAN style="COLOR:#a31515;"&gt;"Canvas.Left"&lt;/SPAN&gt;); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;BR&gt;headerText.SetValue(&lt;SPAN style="COLOR:#a31515;"&gt;"Canvas.Top"&lt;/SPAN&gt;, newTop);&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 2. Centering and sizing text in JavaScript&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;while&lt;/SPAN&gt;(CenteredText.ActualWidth &amp;gt; CenteredText.Width) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;{&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;CenteredText.FontSize -= 0.5; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;double&lt;/SPAN&gt; newLeft = ((CenteredText.Width - CenteredText.ActualWidth) / 2) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;+ (&lt;SPAN style="COLOR:blue;"&gt;double&lt;/SPAN&gt;)CenteredText.GetValue(&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;.LeftProperty); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;CenteredText.SetValue(&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;.LeftProperty, newLeft); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;double&lt;/SPAN&gt; newTop = ((CenteredText.Height - CenteredText.ActualHeight) / 2) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;+ (&lt;SPAN style="COLOR:blue;"&gt;double&lt;/SPAN&gt;)CenteredText.GetValue(&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;.TopProperty); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;CenteredText.SetValue(&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;.TopProperty, newTop);&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 3. Centering and sizing text in Managed C# &lt;/DIV&gt;
&lt;P&gt;&lt;BR&gt;First findName is called to get a reference to the TextBlock object of which you are centering the text.&amp;nbsp; This step is only required in the&amp;nbsp;1.0 version; you will already have a strongly typed reference in&amp;nbsp;1.1.&amp;nbsp; Next a while loop is executes that decreases the font size of the TextBlock object until the actual width is less than or equal to the width. Next a new left and top position is calculated and set for the TextBlock object. The text is not actually centered in the TextBlock object since there is no support for centering, instead the TextBlock object itself is moved to the appropriate left and top positions to give the illusion of being centered. &lt;/P&gt;
&lt;P&gt;In a scenario where you need to set the text property of a TextBlock repeatedly you will need to cache the initial left and top position of the object so that you have the same starting point every successive time you center the text.&lt;/P&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=4022" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>The Silverlight 1.1 Control Base Class You Should Be Using</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/10/07/the-silverlight-1-1-control-base-class-you-should-be-using.aspx</link><pubDate>Sun, 07 Oct 2007 21:39:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:4008</guid><dc:creator>sporter</dc:creator><slash:comments>2</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/4008.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=4008</wfw:commentRss><description>&lt;P&gt;There are a couple things that I think a Silverlight control base class should be doing for you. First of all it should load up the appropriate XAML from the resource collection for you. As long as you follow the naming and association convention of Namespace.ClassName.xaml this is fairly easy to do. With just a little bit of reflection code you can get the namespace and class names to build the filename from. This will end up saving you some debug cycles when you copy/paste a control to create a new control forgetting to update the string referencing the XAML file for the new control.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;BR&gt;string&lt;/SPAN&gt; xamlFileName = &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt;.Format(&lt;SPAN style="COLOR:#a31515;"&gt;"{0}.{1}.xaml" &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.GetType().Namespace &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.GetType().Name);&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;The second thing your base class should be doing for you is storing a reference to your top level Canvas object. You will then use this reference to find existing child objects such as StoryBoards, TextBlocks, or MediaElements or maybe add new controls/objects to the children collection. Whatever logic you are writing in your control, you are guaranteed to need a reference to this root object.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;BR&gt;RootCanvas = &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;)&lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.InitializeFromXaml(&lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; System.IO.&lt;SPAN style="COLOR:#2b91af;"&gt;StreamReader&lt;/SPAN&gt;(s).ReadToEnd());&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;Hopefully this will help out. Below is the complete source for the base class.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;BR&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;CustomControlBase&lt;/SPAN&gt; : &lt;SPAN style="COLOR:#2b91af;"&gt;Control &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;{ &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt; _rootCanvas; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt; RootCanvas &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;/SPAN&gt; { &lt;SPAN style="COLOR:blue;"&gt;return&lt;/SPAN&gt; _rootCanvas; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&lt;/SPAN&gt; { _rootCanvas = &lt;SPAN style="COLOR:blue;"&gt;value&lt;/SPAN&gt;; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&lt;/SPAN&gt; CustomControlBase() &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.IO.&lt;SPAN style="COLOR:#2b91af;"&gt;Stream&lt;/SPAN&gt; s = LoadXamlStream(); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RootCanvas = &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;)&lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.InitializeFromXaml(&lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; System.IO.&lt;SPAN style="COLOR:#2b91af;"&gt;StreamReader&lt;/SPAN&gt;(s).ReadToEnd()); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected&lt;/SPAN&gt; System.IO.&lt;SPAN style="COLOR:#2b91af;"&gt;Stream&lt;/SPAN&gt; LoadXamlStream() &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string&lt;/SPAN&gt; xamlFileName = &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt;.Format(&lt;SPAN style="COLOR:#a31515;"&gt;"{0}.{1}.xaml" &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.GetType().Namespace &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.GetType().Name); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.GetType().Assembly.GetManifestResourceStream(xamlFileName); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;}&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=4008" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>My Silverlight blog roll</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/09/08/my-silverlight-blog-roll.aspx</link><pubDate>Sat, 08 Sep 2007 01:27:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:3893</guid><dc:creator>sporter</dc:creator><slash:comments>0</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/3893.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=3893</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;I am sure that I am missing a few, but this is certainly a good starting point.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blog.seanalexander.com/"&gt;Addicted to Digital Media&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/bardak/default.aspx"&gt;Barak's Blog about Silverlight and beyond&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://www.mindfusioncorp.com/weblog/"&gt;Building a Better User Experience&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/astrauss/default.aspx"&gt;Come Get Some...Thoughts On Software Technology&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/delay/default.aspx"&gt;Delay's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/devdave/default.aspx"&gt;DevDave - Dave Relyea's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/eric_griffin/default.aspx"&gt;Eric Griffin's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://nerddawg.blogspot.com/"&gt;Even a chimp can write code&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://explosivedog.com/default.aspx"&gt;ExplosiveDog.Com&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/gavingear/default.aspx"&gt;Gavin Gear's Tech Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/jaimer/default.aspx"&gt;Jaime Rodriguez &lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN;"&gt;&lt;A href="http://www.wintellect.com/cs/blogs/jprosise/default.aspx"&gt;Jeff Prosise's Blog&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/default.aspx"&gt;Jesse Liberty - Silverlight Geek&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/jstegman/default.aspx"&gt;Joe Stegman's WebBlog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/webnext/default.aspx"&gt;&lt;FONT color=#0000ff&gt;Laurence Moroney's Web.NEXT Blog&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://weblogs.asp.net/mschwarz/default.aspx"&gt;Michael's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/mharsh/default.aspx"&gt;Mike Harsh's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/default.aspx"&gt;Mike Taulty's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/msmossyblog/default.aspx"&gt;MS MossyBlog &lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/nickkramer/default.aspx"&gt;&lt;FONT color=#0000ff&gt;Nick on Silverlight and WPF&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://weblogs.asp.net/scottgu/default.aspx"&gt;&lt;FONT color=#0000ff&gt;ScottGu's Blog&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://silverlighting.blogspot.com/"&gt;&lt;FONT color=#0000ff&gt;Silver Lighting - My Silverlight Blog&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/silverlight_sdk/default.aspx"&gt;&lt;FONT color=#0000ff&gt;Silverlight SDK&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/somasegar/default.aspx"&gt;&lt;FONT color=#0000ff&gt;Somasegar's WebLog&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/tims/default.aspx"&gt;&lt;FONT color=#0000ff&gt;Tim Sneath&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://geekswithblogs.net/WynApseTechnicalMusings/Default.aspx"&gt;WynApse&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=3893" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Silverlight presentation last week in Charlotte</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/09/07/silverlight-presentation-last-week-in-charlotte.aspx</link><pubDate>Sat, 08 Sep 2007 00:54:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:3892</guid><dc:creator>sporter</dc:creator><slash:comments>0</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/3892.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=3892</wfw:commentRss><description>&lt;FONT face=Calibri size=3&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;Keith Rome and I presented on Silverlight last week for the &lt;A href="http://www.developersguild.org/"&gt;Charlotte Developers Guild&lt;/A&gt;.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;We could not have hoped for a better crowd; by my count there were close to 80 in attendance.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The theme for the night was “Silverlight Soup to Nuts”.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I presented an overview of the features available to developers in Silverlight 1.1 including animation control, interaction with the HTML DOM, use of isolated storage, calling managed code from JavaScript, custom controls, and web service interaction.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;You can download the code for the talk from my recently published Silverlight article on DevX: &lt;A href="http://www.devx.com/RichInternetApps/Article/35225"&gt;Managed Code Shines in Silverlight 1.1&lt;/A&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;Keith then presented on his newest Silverlight 1.1 game, Gem Blaster.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Gem Blaster uses Keith’s next generation gaming engine building on his previous game, Popper.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;You can also go directly here to play the game: &lt;A title=http://www.mindfusioncorp.com/gemblaster/ href="http://www.mindfusioncorp.com/gemblaster/"&gt;http://www.mindfusioncorp.com/gemblaster/&lt;/A&gt;.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=3892" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Silverlight/default.aspx">Silverlight</category></item></channel></rss>
