<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Todd Anglin's Code Campground</title><link>https://weblogs.asp.net:443/toddanglin/</link><description>A casual look at the world .NET coding</description><item><title>Microsoft Ajax Client Library is dead, Long live jQuery</title><link>https://weblogs.asp.net:443/toddanglin/microsoft-ajax-client-library-is-dead-long-live-jquery</link><description>&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="jquery-punch" border="0" alt="jquery-punch" align="right" src="https://aspblogs.blob.core.windows.net/media/toddanglin/Media/jquerypunch_1A76FBD7.jpg" width="244" height="233" /&gt; I was saddened today by the news that Microsoft has essentially killed the Ajax Library, including the cool client-templates and client data context. It’s not “new” news, but I guess I had missed the nuance that the Ajax Library was dead during the excitement of Silverlight 4 and Windows Phone 7 at MIX.&lt;/p&gt;  &lt;p&gt;Originally posted on &lt;a href="http://stephenwalther.com/blog/archive/2010/03/16/microsoft-jquery-and-templating.aspx"&gt;Stephen Walther’s blog&lt;/a&gt;, and brought to my attention via &lt;a href="http://jclaes.blogspot.com/2010/04/state-of-client-side-aspnet-ajax-40.html"&gt;Jef Claes blog&lt;/a&gt; (via &lt;a href="http://twitter.com/aggiekevin/statuses/12472314564"&gt;Kevin Babcock’s tweet&lt;/a&gt;), the official line reads something like this:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Microsoft is throwing its weight behind jQuery and making it the primary way to develop client-side Ajax applications using Microsoft technologies…Microsoft is shifting its resources to invest in jQuery.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;The developers on the Ajax Library team are now 100% focused on contributing to jQuery and building plug-ins for that framework. That leaves me with mixed feelings…&lt;/p&gt;  &lt;h3&gt;The Happy Feelings&lt;/h3&gt;  &lt;p&gt;I’ve been a jQuery user and fan longer than I’ve been a Telerik customer (turned employee), long before Atlas ever existed, and back when Ajax.NET was a fledgling open source project trying to make “Ajax” possible in ASP.NET. In other words, I love jQuery, have believed in it for a long time, and I am happy to see it continue to gain mainstream popularity. Microsoft’s contributions to jQuery are welcome, and it will be great to start forgetting about some of the “less than memorable” Ajax Library syntax.&lt;/p&gt;  &lt;p&gt;Microsoft’s first attempt at contributing to jQuery will be in the form of a templating syntax, which if approved will be a big boost to the framework.&lt;/p&gt;  &lt;h3&gt;The Frown Feelings&lt;/h3&gt;  &lt;p&gt;All of the above said, Microsoft was really starting to come-up with some cool client-side features in the Ajax Library 4.0. I was an early adopter of the Ajax Library bits, and I’ve been promoting Microsoft’s innovative client-side templates, controls, and data context for more than a year when I speak at conferences. The announcement of Microsoft’s “shift in resources” right ahead of the .NET 4.0 release is like watching your favorite car in the race run out of gas on the last lap. One of my most anticipated improvements in ASP.NET 4.0 is now (for all intents and purposes) DoA.&lt;/p&gt;  &lt;p&gt;I get that jQuery is great (see above), but this radical change feels like two or three steps back to take one step forward.&lt;/p&gt;  &lt;h4&gt;WYSIWYG Software&lt;/h4&gt;  &lt;p&gt;I know, I know. The Ajax Library isn’t *technically* dead. The Ajax Library isn’t going anywhere. It’s still available, now as part of the &lt;a href="http://ajaxcontroltoolkit.codeplex.com/"&gt;Ajax Control Toolkit&lt;/a&gt;. And LinqToSQL isn’t dead either, right? Wrong. Ajax Library, like LinqToSql, is now a stagnate technology with no additional investment planned by Microsoft. That means you can use it if you like what you see today, but don’t count on the framework growing with your project. It’s WYSIWYG software. What you see is what you get…forever.&lt;/p&gt;  &lt;h3&gt;The technical impact&lt;/h3&gt;  &lt;p&gt;What does this mean to your code? In short, if you choose to follow Microsoft’s advice and focus on jQuery for your client controls, you can abandon in the short-term:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Two-way client-side bindings&lt;/li&gt;    &lt;li&gt;Client-side controls (like the DataGrid)&lt;/li&gt;    &lt;li&gt;Client-side data context&lt;/li&gt;    &lt;li&gt;Observable collections&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You also need to start re-learning your client-side template syntax if you want to adopt Microsoft’s proposed jQuery template framework. Instead of borrowing syntactically from XAML, the new template syntax borrows from ASP.NET:&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #008000"&gt;&amp;lt;!-- {%= %} surrounds template expressions --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;li&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;{%= propertyName %}&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;li&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;This is compared to the “old” way:&lt;/p&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #008000"&gt;&amp;lt;!-- Ajax Library templates --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;li&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;{{ propertyName }}&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;li&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;&amp;lt;!-- Or, alternatively --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;li&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;{binding propertyName, mode=oneWay}&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;li&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Yes, you can use the Ajax Libraries in the short-term while Microsoft works on porting this functionality to jQuery, but as you can see, the port will not be one-to-one. Using the Ajax Libraries today will guarantee major changes to your JavaScript code in the future.&lt;/p&gt;

&lt;p&gt;In the &lt;em&gt;long &lt;/em&gt;run, I agree with most that this change towards jQuery is for the better. I am just disappointed Microsoft took so long to acknowledge it and in the process dangled a carrot in front of web developers that’s not worth eating. Here’s to hoping Microsoft is able to quickly bring the cool features of Ajax Library 4.0 to jQuery so we can minimize the pain of this jarring transition!&lt;/p&gt;

&lt;p&gt;[In addition to blogging on &lt;a href="http://telerikwatch.com"&gt;Telerik Watch&lt;/a&gt;, I now tweet &lt;a href="http://twitter.com/toddanglin"&gt;@toddanglin&lt;/a&gt;]&lt;/p&gt;</description><pubDate>Mon, 19 Apr 2010 21:32:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/microsoft-ajax-client-library-is-dead-long-live-jquery</guid><category>Ajax Control Toolkit</category><category>Ajax Library</category><category>JavaScript</category><category>jQuery</category></item><item><title>Azure’s Free Ride almost over, Get your credit cards ready</title><link>https://weblogs.asp.net:443/toddanglin/azure-s-free-ride-almost-over-get-your-credit-cards-ready</link><description>&lt;p&gt;Consider this a public service announcement for those of you that may not be receiving (or paying attention to) the details about the upcoming changes to Microsoft’s Azure pricing. Up to now, Microsoft’s Azure cloud hosting has been a “CTP” preview and as such it has also been free. Come PDC and November 17th, though, your continued usage of Azure as a free playground for cloud development will nearing its end.&lt;/p&gt;  &lt;p&gt;Here’s what will happen:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;At PDC, Microsoft will introduce a number of new features to Azure and more-or-less start the transition of Azure from a CTP to a paid service&lt;/li&gt;    &lt;li&gt;Azure will &lt;em&gt;remain a CTP&lt;/em&gt; until the end of the year (December 31st) and you can continue to experiment and use it freely during that time. (I &lt;em&gt;think&lt;/em&gt; MSFT will allow new CTP sign-ups during that period, but I’m not 100% certain.)&lt;/li&gt;    &lt;li&gt;In January, you have to make a commitment to keep using Azure. You’ll be able to sign-up for the service, and as a way to help you make the transition from free to paid, your first month of usage will be free.&lt;/li&gt;    &lt;li&gt;Finally, on February 1st, your credit card will start paying for your Azure time.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So, at this point, you’ve got about 3 more months to play with Azure for free. After that, if you use a bare minimum Azure setup with SQL Azure hosting, you can expect to pay about $100 per month (&lt;a href="http://weblogs.asp.net/toddanglin/archive/2009/07/15/azure-cloud-pricing-falls-somewhere-between-vps-and-dedicated.aspx"&gt;as I outlined in a previous blog post&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Microsoft’s January “grace period” is also a nice gesture. While a basic Azure setup will only cost you $100/month, costs can be much higher if you’re using many nodes. The free January “bill” will be a good reality check for how much your testing setup will cost in the real world.&lt;/p&gt;  &lt;p&gt;Finally, don’t forget that Microsoft also recently announced that some versions of Visual Studio 2010 will be shipping with “free” Azure hosting. That means you may still have an option for experimenting with Azure without incurring extra charges if you’re using VS 2010 Pro, Premium or Ultimate with MSDN. Specifically:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Ultimate gets you 250 hours/month of Azure cloud computing&lt;/li&gt;    &lt;li&gt;Premium gets you 100 hours/month&lt;/li&gt;    &lt;li&gt;Pro gets you 50 hours/month&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;While cool, don’t forget that the average month has 720 hours. So if you upload a project to Azure and expect it to be there day-in and day-out, you’re still stuck paying for about 500 hours of computing time (about $60/month at $.12/hr). It’s also unclear if the MSDN packages with Visual Studio will include any provisions for Azure bandwidth and SQL usage, and if they don’t that’ll be another $5 to $15 per month.&lt;/p&gt;  &lt;p&gt;Now that you’ve had a year to play with and test Azure, are you ready to pay for it? Is it worth money or will you be sticking with other tried and true hosting providers?&lt;/p&gt;</description><pubDate>Fri, 30 Oct 2009 20:50:36 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/azure-s-free-ride-almost-over-get-your-credit-cards-ready</guid><category>Azure</category><category>Cloud Computing</category></item><item><title>Are you a digital pack rat?</title><link>https://weblogs.asp.net:443/toddanglin/are-you-a-digital-pack-rat</link><description>&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="digitalpackrat" border="0" alt="digitalpackrat" align="right" src="https://aspblogs.blob.core.windows.net/media/toddanglin/Media/digitalpackrat_162979AA.png" width="250" height="411" /&gt; With the recent acquisition of my new Mac Pro, I knew it was time to face the music and clean-up years of accumulated digital files. I have procrastinated the task for years, and now I fear further delay could lead to tragedy, with old, loud hard drives just daring me to let them guard my data until their platters spin no more. It is time to stare my digital pack rat behavior in the face and do some house cleaning.&lt;/p&gt;  &lt;p&gt;But how did I get to this point? How did I become a digital pack rat?&lt;/p&gt;  &lt;p&gt;The problem begins when you buy (or build) a new computer. The thrill of a new computer- a computer that runs fast and clean- overrides all reason. You know your old, raggedy documents need to move to the new computer with you, but you can’t be troubled at a time like this to go digging through your old hard drive making “life or death” decisions about old documents. And you definitely don’t want to just copy everything to your nice, new, clean hard drive.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;What do you do?&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;If you’re a digital pack rat, you just add the old drive to your new computer. IDE (for &lt;em&gt;really &lt;/em&gt;old drives) and SATA cables are cheap and chainable, so you just slap the old drive in the new system and your problem is solved. Not enough room in the new computer case for more drives? Then your drive finds an external HDD enclosure and leeches on to your new computer, like a suckerfish attached to a shark. You can worry about your old documents later when you have more time.&lt;/p&gt;  &lt;p&gt;And, of course, that time never comes.&lt;/p&gt;  &lt;p&gt;Years go by and systems get upgraded. Each time you make yourself the same promise: I’ll bring my old files with me now, but as soon as I have more time, I’ll go through my old files and consolidate them on one drive. This builds, until one upgrade you’ve had enough.&lt;/p&gt;  &lt;p&gt;That’s where I found myself this weekend. Staring at five dusty hard drives, a mix of IDE and SATA, accumulated over years of upgrades. With my shiny- and most importantly, quiet- new Mac Pro begging me to not ruin the silence with my bevy of bytes, I set-off to finally make good on my promise and consolidate my digital life.&lt;/p&gt;  &lt;p&gt;It was actually more fun than I thought. You’d be amazed by how much old files can tell you about your life. I found everything from old college class work to saved “IM fights” with my wife from our dating years. I found random sound clips, &lt;a href="http://www.youtube.com/watch?v=bocmVZXXY8w"&gt;funny short video clips&lt;/a&gt; (reminding of the days before YouTube), and pictures of forgotten events.&lt;/p&gt;  &lt;p&gt;There were three important pieces of technology that helped me unpack my digital pack rat nest:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16812264002"&gt;External HDD to USB Dock&lt;/a&gt; – This little dock allows you to treat a full-size HDD like a USB stick. With the convenience of plug-and-play, and the transfer speed of eSATA, I was able to make quick work of my GB of old data.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822136317"&gt;1TB Internal HDD&lt;/a&gt; – To consolidate your old data, you need a big drive to hold everything. My old drives ranged from 60GB to 320GB, so a 1TB drive was plenty for my needs. I opted for the “green, low power” Western Digital primarily because A) this drive is for storage, not active work, and B) noise is very important to me, and this drive is whisper quite!&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.apple.com/macosx/what-is-macosx/quick-look.html"&gt;Mac OS X&lt;/a&gt; – For quickly digging through old files you don’t recognize, you can’t beat OS X’s “Quick Look” functionality. You can literally hit the spacebar for almost any selected file- Office document, Adobe document (including Photoshop and Illustrator), videos- and OS X will instantly preview the contents for you without opening any new programs. I love Windows 7, but it has nothing on this OS X feature.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I now have an organized collection of digital files on a single drive, and a stack of old drives on my desk to format and reuse for other projects. Once a digital pack rat, I’m now organized and clean…at least until the next computer upgrade!&lt;/p&gt;  &lt;p&gt;What you about you? Are you a digital pack rat? How many years of hard drives or “archived” files are you carrying around with every computer upgrade? Share you pack rat stories in the comments.&lt;/p&gt;</description><pubDate>Mon, 31 Aug 2009 17:54:17 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/are-you-a-digital-pack-rat</guid><category>Miscellaneous</category><category>OS X</category><category>Pack Rat</category></item><item><title>Unexpected changes from Silverlight 3 Beta to RTW, The Good and The Confusing</title><link>https://weblogs.asp.net:443/toddanglin/unexpected-changes-from-silverlight-3-beta-to-rtw-the-good-and-the-confusing</link><description>&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="SilverlightBlackVertical" border="0" alt="SilverlightBlackVertical" align="right" src="https://aspblogs.blob.core.windows.net/media/toddanglin/Media/SilverlightBlackVertical_53DE899C.png" width="131" height="146" /&gt; By now, everyone should know that &lt;a href="http://www.microsoft.com/presspass/press/2009/jul09/07-10uxlaunchpr.mspx"&gt;Silverlight 3 is official&lt;/a&gt;. Born on July 10th at a big launch event in San Francisco, Silverlight 3 completes the 9 month cycle of improvement that kicked-off immediately after the official release of Silverlight 2 in &lt;a href="http://telerikwatch.com/2008/10/wait-is-finally-over-silverlight-2.html"&gt;October of 2008&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;If you are at all interested in Silverlight, you probably participated in the Silverlight 3 beta. It was a great beta program that gave developers a solid look at many of SL3’s new features, but as with all betas, there were changes in the final Release To Web (RTW). Actually, there were a lot of changes, many of them “breaking,” though I’ll be quick to acknowledge that you’re “allowed” to make breaking changes during a beta cycle. You can find a complete listing of changes and how you should address them on MSDN:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc645049(VS.95).aspx"&gt;http://msdn.microsoft.com/en-us/library/cc645049(VS.95).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So far, so good.&lt;/p&gt;  &lt;p&gt;In fact, some of the changes in the RTW are &lt;em&gt;good&lt;/em&gt; breaking changes.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Out-of-Browser API Breaking Changes&lt;/strong&gt;      &lt;br /&gt;During the beta, this API had some less than intuitive names that lead to some awkward programming. For instance, during the beta, the idea of taking a Silverlight application OOB was considered “detaching” it from the browser. When running in a “detached” state, the Silverlight app was said to be “RunningOffline.” Confusing, since an OOB Silverlight app can still be connected to the Internet and running “online.”      &lt;br /&gt;      &lt;br /&gt;In the RTW, the API names are much better. You now “Install” a Silverlight app to take it out of browser (instead of “Detach”), and you can detect OOB apps by checking the “RunningOutOfBrowser” property (instead of “RunningOffline”). &lt;em&gt;Much better…&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Assembly Caching Changes&lt;/strong&gt;      &lt;br /&gt;During the beta, there were two problems with Assembly Caching (a.k.a Transparent Platform Extensions): it only worked with Microsoft assemblies and it required that the assemblies come from Microsoft.com. With the RTW, both problems are fixed. Now any assembly (including 3rd party assemblies, like &lt;a href="http://www.telerik.com/silverlight"&gt;Telerik’s RadControls&lt;/a&gt;) can be cached and by default the assemblies will come from your own domain (though apparently you can still use the Microsoft.com downloads if you want them).&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;URI Mapper Changes&lt;/strong&gt;      &lt;br /&gt;Less breaking change, more RTW improvement, the URI Mapper (used in Silverlight Navigation to define URL routes) is now part of the default “Silverlight Navigation Application” Visual Studio template. In RTW, the Navigation routes include a “pattern matching” convention by default (instead of hard coding all links), which I think is going to make it a lot easier for people to discover the path to “clean” Silverlight deep-linking URLs.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Not all breaking changes in the RTW are good, though. And I’m not complaining about changes that are just frustrating because they break code. I’m talking changes that actually made me pause in confusion and wonder if Microsoft made the right choice in their design decision.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;The ASP.NET Silverlight Controls Are Dead       &lt;br /&gt;&lt;/strong&gt;This is the most shocking and confusing change to me. In the Silverlight 3 RTW, Microsoft has officially “killed” the Silverlight ASP.NET server controls (&amp;lt;asp:silverlight… and &amp;lt;asp:mediaplayer…). These weren’t complicated controls. They were simple wrappers that automated the somewhat tedious process of adding all of the HTML object embed tag code required to place a Silverlight application on a page. I, for one, found them convenient.      &lt;br /&gt;      &lt;br /&gt;To make matters more confusing, Microsoft isn’t making very clear &lt;em&gt;why&lt;/em&gt; they killed them- only that the new guidance is to write the Silverlight embed HTML yourself (or use the new VS templates). You can continue to use the “old” version of these server controls, and you can even download the source and enhance them. But I’m still left wondering why these controls were abandoned.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;More Controls Removed from the Silverlight SDK       &lt;br /&gt;&lt;/strong&gt;I get that Microsoft wants (needs?) to keep the Silverlight plug-in size small. I was happy to hear at MIX 09 that after all the new features in Silverlight 3 that the plug-in size got &lt;em&gt;smaller&lt;/em&gt;. But with the Silverlight 3 RTW, Microsoft has moved 10 controls back out of the SDK and in to the Toolkit. And what does that mean…      &lt;br /&gt;      &lt;br /&gt;It means &lt;em&gt;your&lt;/em&gt; application XAPs just got bigger if you use any of these controls. Frankly, I’d rather have a 1% bigger core install and save all apps from delivering these controls.      &lt;br /&gt;      &lt;br /&gt;And should we really have to use the Toolkit for basic layout controls like WrapPanel and DockPanel? I know the Toolkit helps controls get updated faster, but these seem like staples that belong in the core- where they started in Silverlight 3 beta!&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Silverlight 3 is a &lt;em&gt;huge&lt;/em&gt; improvement over Silverlight 2. I think it is the version that is going to really make more people attempt serious application development on the RIA platform. The feedback from the Beta program obviously had a real and noticeable impact on the RTW- I’m just not sure all of the impacts are good.&lt;/p&gt;  &lt;p&gt;What do you think?&lt;/p&gt;</description><pubDate>Fri, 07 Aug 2009 19:51:39 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/unexpected-changes-from-silverlight-3-beta-to-rtw-the-good-and-the-confusing</guid><category>Silverlight</category></item><item><title>Azure Cloud Pricing Falls Somewhere Between VPS and Dedicated</title><link>https://weblogs.asp.net:443/toddanglin/azure-cloud-pricing-falls-somewhere-between-vps-and-dedicated</link><description>&lt;p&gt;As you may have heard by now, &lt;a href="http://blogs.msdn.com/windowsazure/archive/2009/07/14/confirming-commercial-availability-and-announcing-business-model.aspx"&gt;Microsoft has just unveiled&lt;/a&gt; the official pricing for its forthcoming Azure cloud computing platform. Ever since its &lt;a href="http://telerikwatch.com/2008/10/live-from-pdc-2008-keynote.html"&gt;introduction at PDC08&lt;/a&gt;, Microsoft has been very coy about the pricing for Azure. They’ve always defaulted to the party line that Azure pricing will be “competitive” with other cloud offerings.&lt;/p&gt;  &lt;p&gt;Today we learn exactly what “competitive” means.&lt;/p&gt;  &lt;p&gt;According to the Azure Team Blog, pricing will be about $.12/compute hour, $.15/GB/month for storage, and $.10in/$.15out/GB for bandwidth. There will be additional flat monthly charges for using Microsoft’s “SQL Azure” (or SQL Server in the cloud). I won’t repeat all of the pricing details- &lt;a href="http://blogs.msdn.com/windowsazure/archive/2009/07/14/confirming-commercial-availability-and-announcing-business-model.aspx"&gt;they are easy to find&lt;/a&gt; on the web now- but I will provide some analysis of how Azure seems to compare to other “traditional” hosting options.&lt;/p&gt;  &lt;p&gt;In my experience, there are 3 basic hosting types: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Shared &lt;/strong&gt;– You get a single website on server hosting many other people’s web sites. (Cheapest option, least control – &lt;em&gt;pricing usually $5 - $15/month&lt;/em&gt;)&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Virtual Private Server (VPS) – &lt;/strong&gt;You get a single Windows VM on a server hosting other people’s VMs. (More expensive than shared, less expensive than dedicated, complete control over OS configuration – &lt;em&gt;pricing usually $99/month and up depending on server config&lt;/em&gt;)&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Dedicated&lt;/strong&gt; – You get a single dedicated server that &lt;em&gt;only&lt;/em&gt; hosts your web sites (Most expensive and most configurable option – &lt;em&gt;pricing usually $200/month and up depending on power of server, quality of service&lt;/em&gt;)&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;With the introduction of Azure, there is now a 4th hosting type for .NET developers to consider:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Cloud&lt;/strong&gt; – You get a single website on a “cloud fabric” that can be configured to run on 1 or more virtual “instances” (Most scalable and (perhaps) reliable hosting, little control over environment)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;How does the cloud pricing compare to other hosting types?&lt;/strong&gt; Let’s do the math for a “typical” website running a single Azure instance:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Hosting:&lt;/strong&gt;&amp;#160; about $90/month ($.12/hr * 24 hours * 30 days)    &lt;br /&gt;&lt;strong&gt;Bandwidth:&lt;/strong&gt; about $3/month (assuming 10 – 15 GB bandwidth)    &lt;br /&gt;&lt;strong&gt;Storage:&lt;/strong&gt; &amp;lt; $1/month (assuming up to 6GB of storage)    &lt;br /&gt;&lt;strong&gt;SQL:&lt;/strong&gt; $10/month (assuming 1GB “SQL Azure Web Edition”)&lt;/p&gt;  &lt;p&gt;So that brings that &lt;strong&gt;the grand total for Azure hosting to roughly $100/month&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Of course, with Azure, there is no “flat rate.” Everything is based on actual consumption (except for SQL Azure), so if you use less bandwidth or less storage, your bill will be…relatively unchanged. That’s because the real bulk of your bill is tied-up in the “computing hour” charges, which will be &lt;em&gt;at least&lt;/em&gt; $90 per month for a single Azure instance.&lt;/p&gt;  &lt;p&gt;Where Azure’s “consumption pricing” starts to be an advantage is if you have “peak” processing times when you need additional instances of your application running for a short period of time. With Azure, you’ll only be billed for the additional instances for the time they are running, unlike traditional hosting that usually charges you for (at the very least) a full month’s service for additional hosting instances.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Azure’s Threat to Shared Hosting&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Soon after the announcement of Azure at PDC08, the halls were buzzing with people wondering how this “hosting in the cloud” would affect “traditional” .NET hosting providers. Would Microsoft put great hosting companies like DiscountASP.NET out of business? How could shared hosting compete with all that cloud computing has to offer?&lt;/p&gt;  &lt;p&gt;Now that we have pricing, I think it’s clear that shared hosting providers are safe. In fact, all existing hosting providers are probably safe from losing much business to the cloud as Azure seems to fit somewhere in-between Shared and VPS services:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Azure provides little control over the hosting environment, like Shared Hosting&lt;/li&gt;    &lt;li&gt;Azure runs your “instance” in a dedicated virtual environment, like VPS Hosting&lt;/li&gt;    &lt;li&gt;Azure is priced competitively with VPS, but it is significantly more expensive than Shared Hosting&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What do you think of Azure’s pricing model? Is $100/month the price you would expect to pay to have your site run in a cloud environment? Or for that price, would you rather have the control that a VPS offers? Sound-off and then prepare for the official Azure launch this November at PDC 2009.&lt;/p&gt;</description><pubDate>Wed, 15 Jul 2009 19:01:38 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/azure-cloud-pricing-falls-somewhere-between-vps-and-dedicated</guid><category>Azure</category><category>Cloud Computing</category><category>Hosting</category></item><item><title>Another Solution for Defeating the SQL Server 2008 Installer with Visual Studio 2008</title><link>https://weblogs.asp.net:443/toddanglin/another-solution-for-defeating-the-sql-server-2008-installer-with-visual-studio-2008</link><description>&lt;p&gt;Here’s the problem:&lt;/p&gt;  &lt;p&gt;I have a clean Win7 RC box with VS 2008 SP1 installed and a working SQL 2008 Express “Data Base Engine” (installed via the Web Platform Installer). I discovered that SQL Management Studio Express was missing, and there began my long and frustrating journey to install Microsoft’s SQL management tools…&lt;/p&gt;  &lt;p&gt;I’m not sure why the tools were missing in the first place, but it turns-out that there is &lt;em&gt;no&lt;/em&gt; simple way to install them. There is &lt;em&gt;no&lt;/em&gt; separate installer for the tools as there was (so conveniently) for SQL Server 2005. &lt;em&gt;[&lt;strong&gt;UPDATE:&lt;/strong&gt; After fighting a long battle, I rediscovered an option in the new &lt;a href="http://www.microsoft.com/express/sql/download/"&gt;Web Platform Installer&lt;/a&gt; to add the SQL Management Tools to SQL Server 2008. A little late now to know if that would have worked, but hopefully you can give that a try before getting too far on your own painful SQL Server 2008 journey.]&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Enter the SQL Server 2008 installer. After countless attempts to “add” the tools to my existing install, I could never get the installer to provide me with the desired options. Not one to waste time “fighting software,” I uninstalled SQL Server 2008 and started fresh. To my dismay, the SQL Server 2008 Installer started throwing this install-blocking error at me when trying to re-install:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Setup will not complete because the rule &amp;quot;Previous releases of Microsoft Visual Studio 2008&amp;quot; failed.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This message further asserts that you must install Visual Studio 2008 SP1 before the installer will continue. But…like many others, I &lt;em&gt;already installed SP1! &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;So, I began looking for hacks around the installer. There are many options scattered across the web, but &lt;a href="http://www.brianpeek.com/blog/archive/2008/08/13/sql-server-2008-visual-studio-sp1-and-visual-studio-express.aspx"&gt;the tip&lt;/a&gt; that finally made things clear is this:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The SQL Server 2008 installer is checking the HKLM\SOFTWARE\Microsoft\DevDiv\XXX\Servicing\9.0\SP reg keys to tell if SP1 is installed. If you inspect those keys and find any SP keys with the value “0,” that is your road block.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As it turns out, every installed version of Visual Studio 2008 must have SP1 installed for the SQL Server 2008 installer to work. This leads to the other main source of confusion:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;If you installed SP1 for your “main” VS 2008 version (such as Pro or VSTS)- and you’re sure of it- there is probably some other version of VS installed that &lt;em&gt;does not&lt;/em&gt; have SP1 installed (such as Express or- as in my case- Shell).&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Inspecting your reg keys is the fastest way to discover if such a version is installed. In my case, I discovered that there was an entry for both “VSTS” and “IDE” in my Visual Studio reg keys. VSTS was my main Visual Studio version, and its SP reg key correctly indicated that SP1 was installed. For the IDE entry, though, the version was listed as RTM with no SP.&lt;/p&gt;  &lt;p&gt;What is the “IDE” version of Visual Studio?&lt;/p&gt;  &lt;p&gt;Thanks to the info on &lt;a href="http://blogs.msdn.com/heaths/archive/2009/05/29/detecting-visual-studio-2008-service-pack-1.aspx"&gt;Heath Stewart’s blog&lt;/a&gt;, we learn that this reg key entry is for Visual Studio Shell edition. It’s &lt;a href="http://stackoverflow.com/questions/845152/what-is-visual-studio-2008-shell-integrated-mode"&gt;not clear&lt;/a&gt; when this version of VS2008 is being installed (or how important it is for other programs), but uninstalling it or upgrading it to SP1 is &lt;em&gt;yet another&lt;/em&gt; way to solve your SQL Server 2008 install problems.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;One more handy tip&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;If you really want to take a blunt-force approach to any of the SQL Server 2008 “warnings,” there are command line switches that enable you to bypass some of the rule checks. Originally revealed by “Paul” &lt;a href="http://www.thushanfernando.com/index.php/2008/08/10/fix-rule-previous-releases-of-microsoft-visual-studio-2008-failed/"&gt;in the comments of another blog post&lt;/a&gt;, you can use the following switch to launch your SQL Server 2008 installer with the VS version check and “reboot required” rules disabled:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;setup /ACTION=install /SkipRules=VSShellInstalledRule RebootRequiredCheck&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Based the sheer volume of comments and blog posts already on the Interwebs about this very topic, it would seem that Microsoft may have regressed a bit with the release of SQL Server 2008. I’m sure there are plenty of “good reasons” for why SQL Server 2008 “has” to be so dependent on VS 2008, but the end result is clearly lots of frustration for users. I hope MSFT takes note and makes things simpler for the next version. I know &lt;em&gt;many&lt;/em&gt; hours of frustration will be saved if they do!&lt;/p&gt;</description><pubDate>Thu, 09 Jul 2009 02:45:55 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/another-solution-for-defeating-the-sql-server-2008-installer-with-visual-studio-2008</guid><category>Microsoft</category><category>SQL Server</category><category>Tips  Tricks</category></item><item><title>Windows 7 Beta – Application Compatibility List (update)</title><link>https://weblogs.asp.net:443/toddanglin/windows-7-beta-application-compatibility-list</link><description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Starting Windows 7" border="0" alt="Starting Windows 7" align="right" src="https://aspblogs.blob.core.windows.net/media/toddanglin/Media/win7loading_246E2584.jpg" width="233" height="240" /&gt; With Windows 7 officially in beta and millions of people apparently clamoring to try it, I expect many people will be playing the “does it/doesn’t it” work game with their favorite software and the new beta OS. I recently made the jump to start running Win7 full-time and have already installed a number of applications with varying degrees of success. To help others traveling along this path, I plan to log my experiences here for my app compatibility experiences with Win7 Beta.&lt;/p&gt;  &lt;p&gt;Before I begin listing apps, though, let me provide my general advice when it comes to installing software on Windows 7 beta. It is very possible that you will hit problems when trying to install your software, but in almost all cases, you can solve your problems with these steps:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Re-run the installer as “admin”        &lt;br /&gt;&lt;/strong&gt;With elevated privileges, most installs recover and work- even installs that &lt;em&gt;should &lt;/em&gt;have worked b/c they worked in Vista.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Re-boot, re-run the installer        &lt;br /&gt;&lt;/strong&gt;When the simple “Run as admin” fails to solve the problem, try rebooting, then re-running the install. In cases where run as admin failed, rebooting solved most of my remaining install problems. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;With that out of the way, here are the specific apps I’ve installed and the current status (last updated: 20 Feb 2009):&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="519"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="160"&gt;&lt;strong&gt;App Name&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="357"&gt;&lt;strong&gt;Status/Notes&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Office 2007 Ultimate (including Outlook)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;No problems. Ran installer as admin.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Cisco VPN (5.0.00.0340)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;HUGE problems. After install, BSODs Windows. There is a solid work around out there, though. This worked for me:          &lt;br /&gt;&lt;a href="http://blog.tiensivu.com/aaron/archives/1817-How-to-prevent-Cisco-VPN-client-version-5.0.4.0300-installation-from-bluescreening-Windows-7-x32-Build-7000.html"&gt;http://blog.tiensivu.com/aaron/archives/1817-How-to-prevent-Cisco-VPN-client-version-5.0.4.0300-installation-from-bluescreening-Windows-7-x32-Build-7000.html&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Trillian Astra IM (Beta)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;No problems. Works well.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Firefox 3.1 (Beta)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs fine, but must run as admin. Won’t launch if not launched as admin.          &lt;br /&gt;&lt;em&gt;Extensions:&lt;/em&gt;           &lt;br /&gt;FireBug 1.4 (alpha) works fine in FF3.1 beta on Win 7. Foxmarks works, too.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Chrome (v1)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs and runs fine         &lt;br /&gt;&lt;strong&gt;UPDATE: &lt;/strong&gt;Well, maybe it’s not perfect in Win7. Chrome is crashing much more often than it did in Vista (yes, Chrome does crash). Works most of the time, but a little buggy.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Live Mesh&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installed and worked at first, now fails to start on boot. Fails to start and provides relatively generic error. For now, this is broken for me, though I know it’s working for others. Also, cannot uninstall- all attempts currently fail.          &lt;br /&gt;&lt;strong&gt;UPDATE: &lt;/strong&gt;After disabling UAC, it now works!&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;SnagIt (v9)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs and works fine.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Visual Studio 2008 Team System&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs and works fine (so far)         &lt;br /&gt;&lt;strong&gt;UPDATE: &lt;/strong&gt;Only major problem so far is working with web services. All attempts to use WCF or ASMX web services in Cassini currently fail. Others have mentioned this problem. Hopefully MS will fix this soon.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;SQL Express 2008&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs and works fine. Ran installer as admin.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Expression Blend&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installed fine. Haven’t tested yet.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Silverlight SDK, VS Silverlight Tools&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs fine and runs fine&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;RegEx Buddy&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs fine, runs fine.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Xobni (Outlook plug-in)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs and works well. Performance much improved recently.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Live Writer&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Using it now. Installs and works fine.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Adobe CS3 (Illustrator, Photoshop, InDesign)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Install is a little tricky. Failed the first time. After a reboot and run as admin &lt;em&gt;from a DVD &lt;/em&gt;(must burn files to disc first), installs fine.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Ashampoo (DVD burning)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Window’s built-in data DVD authoring would not work for me. I installed Ashampoo and it worked fine.          &lt;br /&gt;&lt;strong&gt;UPDATE: &lt;/strong&gt;After disabling UAC, Windows data DVD authoring is working as expected.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Telerik RadControls/Telerik Reporting/Telerik OpenAccesss ORM/Telerik WebUI Test Studio&lt;/td&gt;        &lt;td valign="top" width="357"&gt;All Telerik tools install and work fine. Development experience works and apps built with the tools work in Win7.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Virtual Clone Drive (ISO mounter)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Install worked fine, but application does not work. Worse, cannot be uninstalled. Install at your own risk for now.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;ReSharper 4.1&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs fine. Seems to work without serious problems.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;ZoomIt (utility)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Works without error in Win7 beta.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;GoToMeeting (&lt;strong&gt;UPDATE&lt;/strong&gt;)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Works fine (I’ve used GTM and GTW) BUT for whatever crazy reason, Citrix blocks downloads of the GTM software when you access the download site from Win7. Just plain dumb since their software already appears to work fine in Win7. Workaround: grab the installer directly and you’ll be fine:         &lt;br /&gt;&lt;a title="http://www.cto20.com/Home/tabid/647/EntryId/91/How-To-Run-GoToMeeting-on-Windows-7-Duh.aspx" href="http://www.cto20.com/Home/tabid/647/EntryId/91/How-To-Run-GoToMeeting-on-Windows-7-Duh.aspx"&gt;http://www.cto20.com/Home/tabid/647/EntryId/91/How-To-Run-GoToMeeting-on-Windows-7-Duh.aspx&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Internet Download Manager (&lt;strong&gt;UPDATE&lt;/strong&gt;)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs fine, works fine, intercepts download fine&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Camtasia Studio 6.0 (&lt;strong&gt;UPDATE&lt;/strong&gt;)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs fine, works fine. I’ve recorded a few video, edited them, and published them without issue.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;3D-FTP (&lt;strong&gt;UPDATE&lt;/strong&gt;)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Bah! I’ve love this program for so long, but alas the latest version just doesn’t work well on Win7. Granted, I’ve never used the latest version on Vista (I was using an older version previously). Point: latest version is not worth the upgrade.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;CuteFTP 8 Pro (&lt;strong&gt;UPDATE&lt;/strong&gt;)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs and works great! Better than 3D-FTP.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="160"&gt;Virtual PC 2007 (&lt;strong&gt;UPDATE&lt;/strong&gt;)&lt;/td&gt;        &lt;td valign="top" width="357"&gt;Installs fine, works fine. I’ve built a Vista VPC and it works like normal.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;UPDATE: &lt;/strong&gt;I just got tired of needing to elevate everything to “Run as Admin” to get anything done, so I disabled UAC completely. After a restart, low and behold, Live Mesh started working! And, the files that previously wouldn’t work with Windows DVD burner suddenly were available for burning! Guess UAC needs some more “tweaking.” For now, if you’re a power user, you can probably save some headaches by turning it off. &lt;strong&gt;&amp;lt;/update&amp;gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;That’s all for now. As you can see, the only things really giving me trouble are Live Mesh, Virtual Clone Drive, and Window’s own built-in DVD authoring. Otherwise, things are working well. If I have any other major installs, I’ll be sure to update this post, so bookmark this for future reference. Also, feel free to share your own experiences in the comments to help others. If there are enough comments, I’ll update the post with the community compatibility updates.&lt;/p&gt;  &lt;p&gt;Hope this helps all of you joining me on the bleeding edge!&lt;/p&gt;</description><pubDate>Mon, 16 Feb 2009 23:50:24 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/windows-7-beta-application-compatibility-list</guid></item><item><title>Chrome still needs some polish</title><link>https://weblogs.asp.net:443/toddanglin/chrome-still-needs-some-polish</link><description>&lt;p&gt;&lt;img style="margin: 0px 0px 5px 5px" border="0" alt="chromeBugs" align="right" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/Chromestillneedssomepolish_122F4/chromeBugs_963790a3-e1f9-4e5a-ae54-c16f209b0e94.png" width="239" height="172" /&gt; As pretty much the entire developer world knows by now, Google recently made a splash by introducing their own &amp;quot;home grown&amp;quot; browser called &lt;a href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt;. The browser was introduced as &amp;quot;the browser that does everything right because it doesn't have legacy baggage,&amp;quot; and it has largely lived up to its billing. The browser is fast. It's easy on the memory footprint. And it's definitely got Google's minimalist signature all over it.&lt;/p&gt;  &lt;p&gt;That said, as I sit here typing this, I'm waiting for Google Chrome to respond. It seems one of my tabs has introduced some nasty JavaScript and completely hosed the entire, well, chrome. That's right. The sin which Chrome was supposed slay (one tab crashing the whole browser) still lives. And that's not the only sin that lives.&lt;/p&gt;  &lt;p&gt;In the weeks since Chrome's introduction, I've been using it as my new primary browser (move over Firefox 3 and your continued memory bloat). Over that period, I have come to appreciate the good and the bad with Google's freshman browser effort, and I can definitely report that it has its issues. Not enough to make me stop using Chrome as my primary &lt;em&gt;browsing&lt;/em&gt; browser, but enough take some of the shine off Google's glistening browser.&lt;/p&gt;  &lt;p&gt;Among the observed problems, here are my top &amp;quot;complaints&amp;quot; (or &amp;quot;ways it could be improved&amp;quot; for you optimists out there):&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;DNS Resolver is Weak:&lt;/strong&gt; Don't know why or what this means, but on multiple occasions, sites that wouldn't open in Chrome could be successfully loaded in Firefox. It seems like Chrome has trouble establishing a connection with some sites and just quits trying (providing &amp;quot;UNKNOWN ERROR&amp;quot; as the most helpful of error explanations). This is a pretty big deal since it could mean users hitting this error think your site is inaccessible when, in reality, it may just be inaccessible to Chrome. The problem is magnified by the fact that the &amp;quot;error page&amp;quot; looks just like a normal Chrome 404 page, so it isn't entirely clear Chrome has encountered a problem. Hopefully this is on the top of Chrome's &amp;quot;must be improved&amp;quot; list.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Rendering Not Perfect (or at least not same): &lt;/strong&gt;This isn't a big deal to users per se, but as a web developer (and a &lt;a href="http://www.telerik.com"&gt;web component vendor&lt;/a&gt;) it is rather annoying to have yet another slightly different rendering engine to support. True, Chrome is &lt;em&gt;most&lt;/em&gt; like Safari, but it's not identical. That means another set of &lt;a href="http://acidmartin.wordpress.com/2008/10/01/css-filtering-and-distinguishing-google-chrome-and-safari/"&gt;CSS hacks&lt;/a&gt;, &lt;a href="http://groups.google.com/group/comp.lang.javascript/browse_thread/thread/8b9056290f599867?pli=1"&gt;JavaScript tricks&lt;/a&gt;, and browser testing scripts to manage. And yes, hacks and tricks have already been identified that are required to support Chrome. Thanks Google...&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Weak Developer Tools: &lt;/strong&gt;Again, more of a developer complaint, but Chrome still lacks the powerhouse developer tools Firefox provides (albeit via its add-on market). Chrome does pack some interesting developer oriented tools, but they're not nearly powerful enough to replace &lt;a href="http://www.getfirebug.com"&gt;Firebug&lt;/a&gt; or the Web Developer toolbar.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Inconsistent Plug-in Experience: &lt;/strong&gt;While this burden really falls on the plug-in vendors, it is annoying that plug-ins like Silverlight and Java don't consistently work in Chrome. Eventually I'm sure these plug-ins will catch-up, but for now, it's hit or miss if the plug-ins you need to browse the web work in Chrome.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;What does this all mean? It means Chrome is a &amp;quot;really good&amp;quot; browsing browser, but it's not good enough to be your only browser (yet). You still need Firefox or IE around to load specific sites or perform serious analysis on web pages. A pretty substantial accomplishment for a &amp;quot;brand new&amp;quot; (its roots are quite established, really) browser, so Google should be proud. If I were Mozilla, I'd probably start to reconsider those &lt;a href="http://www.news.com.au/technology/story/0,25642,24286707-5014239,00.html"&gt;lunches at Mountain View&lt;/a&gt; - Google is definitely poised to kill Firefox popularity in a few years time.&lt;/p&gt;  &lt;p&gt;I still plan to use Chrome as my primary browsing browser going forward. It loads faster than any browser out there (from a cold start), and that alone keeps me coming back. I'm also a fan of the new &amp;quot;intelligent&amp;quot; start page and the super-effective &amp;quot;everything bar.&amp;quot; In fact, I've grown so used to using the address bar for both search and navigation in Chrome that I cringe when I'm forced to use a separate UI for those tasks in IE, Firefox, and Safari. With a little more time and a little more polish, I'm sure Chrome will really shine and quickly become my primary browser for browsing &lt;em&gt;and&lt;/em&gt; developing.&lt;/p&gt;  &lt;p&gt;What do you think of Chrome? Have you become a Chrome convert or do think Google's missing the mark?&lt;/p&gt;</description><pubDate>Tue, 07 Oct 2008 02:45:29 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/chrome-still-needs-some-polish</guid><category>Browsers</category><category>Chrome</category></item><item><title>XAML : Developers :: Modern CG : Spielberg &amp; Lucas</title><link>https://weblogs.asp.net:443/toddanglin/xaml-developers-modern-cg-spielberg-amp-lucas</link><description>&lt;img src="https://aspblogs.blob.core.windows.net/media/toddanglin/Media/jarjarbinks.jpg" width="250" height="319" alt="jarjarbinks.jpg" style="float:right; margin-bottom:5px; margin-left:5px;" /&gt;

&lt;p style="text-align: left;"&gt;For anyone having trouble understanding this post's title, it's &lt;a href="http://www.800score.com/gre-guidec2b.html"&gt;old analogy syntax&lt;/a&gt;: XAML is to Developers as Modern CG is to Steven Spielberg and George Lucas. Still not making sense? Let me provide some more explanation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How great directors lost their way with CG&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Few people would disagree that the great movie directors of yore- namely Steven Spielberg and George Lucas- have passed their great movie making prime. If we look at the movies these directors have produced in the last 5 years (or so), like AI, War of the Worlds, or the new Star Wars, they pale in greatness to early hits. Movies like Jaws, Close Encounters of the Third Kind, ET, Indiana Jones, Star Wars, and American Graffiti are universal classics that make recent flicks look like uninspired, freshman projects.&lt;/p&gt;
&lt;p&gt;So what happened? Did these creative minds become less creative with success? Did they lose their ability to make a great movie? I would argue that modern CG happened. Technology opened these director's brains for the world to, enabling them to put every "creative" idea they could conceive on screen. And that, as it turns out, is not a good thing.&lt;/p&gt;
&lt;p&gt;Think about it. The practically fully animated Star Wars prequels with their armies of robots and everybody's favorite Jar Jar Binks. The latest Indiana Jones movies and it's cliche aliens and UFOs- and Indiana Jones flying through the air in a CG refrigerator. Even War of the Worlds, for all of its production value, didn't come close to capturing the magic of Spielberg's more successful alien movies like ET and Close Encounters. In each case, these movies were loaded with CG, "enabling" the directors to tells stories and put things on screen they couldn't have done due to technical limits in the 70's, 80's, and even early 90's.&lt;/p&gt;
&lt;p&gt;And in each case, these movies have failed to live up to the greatness of their directors. Without technical constraints, these great creative minds aren't making great movies. It seems that creative minds like Spielberg and Lucas produce better results when thy have technical limits. Their movies actually &lt;em&gt;benefitted&lt;/em&gt; in the past from some built-in editing. Technical constraints forced them to be more creative, to keep things simple. The result: better stories and better movies.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What's this got to do with XAML and Developers?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Just as great film makers made better movies when they had to be creative within limiting technical boundaries, I see the emergence of new "freeing" technologies like Silverlight and WPF (both based on XAML) creating a new challenge for developers. Now that developers can easily integrate animation, media, 3D, and a whole array of "wiz-bang" features in their applications, I fear developers will make the same missteps as the movies. Previously impossible features can now be easily included in apps, and in many cases developers and designers will probably see this as a good thing. "Finally we can put our ideas in to our apps," they'll say.&lt;/p&gt;
&lt;p&gt;But will this lead to better applications for users? I'd argue that in many cases it won't. As application developers, I think we've benefited from a little technical constraint to keep our application's in-check and to force us to be more creative, more resourceful. With flexible technologies like XAML, great developers will be those that can be good "editors" of their own applications.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Are you saying new technology is bad?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Of course, not! I'm all in favor of new technology and moving the quality of movies and software forward. It just needs to be done appropriately to &lt;em&gt;enhance&lt;/em&gt; traditional experiences, not completely re-invent them. We don't need Indiana Jones flying through the air in a refrigerator, but putting him on a rocket powered sled (again CG) is great! It fits the story and the CG makes the experience more believable. So it goes with software. Do we need to replace our ASP.NET AJAX apps with Silverlight? No, but we can definitely &lt;em&gt;enhance&lt;/em&gt; them with technologies like Silverlight to make the experience more enjoyable where appropriate.&lt;/p&gt;
&lt;p&gt;I suppose this all boils down to the old-ish adage: Just because you can, doesn't mean you should. As you start developing with new platforms like WPF and Silverlight, don't fall prey to "unlimited freedom." Be good editors of your applications. Create constraints. Be creative. If you do, I think you'll avoid going the way Spielberg and Lucas and you'll continue to create great software hits on these new platforms!&lt;/p&gt;

&lt;div class="posttagsblock"&gt;&lt;a href="http://technorati.com/tag/UX" rel="tag"&gt;UX&lt;/a&gt;, &lt;a href="http://technorati.com/tag/XAML" rel="tag"&gt;XAML&lt;/a&gt;&lt;/div&gt;</description><pubDate>Fri, 29 Aug 2008 20:34:23 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/xaml-developers-modern-cg-spielberg-amp-lucas</guid><category>Silverlight</category><category>WPF</category></item><item><title>Potluck Programming (or UWWFY)</title><link>https://weblogs.asp.net:443/toddanglin/potluck-programming-or-uwwfy</link><description>&lt;p&gt;&lt;img style="margin: 0px 0px 5px 5px" border="0" alt="RabbitHole" align="right" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/PotluckProgrammingorUWWFY_14BD8/RabbitHole_7ebd777d-0a18-45ab-8a66-38b58ddd560a.png" width="263" height="223" /&gt; Have you ever found yourself spending more time trying to learn patterns than actually designing or coding your application? It's easy to do. With the maturation of .NET, suddenly everywhere you look you see presentations, books, and blog posts talking about this pattern or that pattern, each asserting that the other is inferior for some obscure reason. And you, being the mature .NET developer that you are, follow these conversations, desperately trying to find the &amp;quot;magic&amp;quot; patterns that will make your next project perfectly maintainable, easily extendable, and consistently scalable from the get-go. I know, because I've been there.&lt;/p&gt;  &lt;p&gt;Now, there's nothing wrong with patterns. In fact, they're very helpful in moderation. They allow developers that implement code to benefit from the long winded thinking done by developers that have time to think about the absolute best way to do things. The problem, though, is that there is no &amp;quot;absolute&amp;quot; right or wrong way to do things. There are &lt;em&gt;better&lt;/em&gt;&amp;#160; and &lt;em&gt;best&lt;/em&gt; ways to do things for specific scenarios (as learned from collective experience), but no one can tell you the &amp;quot;right&amp;quot; way to write your application. And left unchecked, it's easy to wander down the rabbit hole of pattern research and get lost in &amp;quot;Patternland.&amp;quot;&lt;/p&gt;  &lt;p&gt;So, I'm coining (or re-coining, as the case may be) the term &amp;quot;&lt;strong&gt;Potluck Programming&lt;/strong&gt;.&amp;quot; Or if potluck's aren't your thing, &lt;strong&gt;UWWFY&lt;/strong&gt;&amp;#8482;- &amp;quot;Use What Works For You.&amp;quot;&lt;/p&gt;  &lt;p&gt;The concept is simple, but essential. When setting-out to improve your development with patterns, find patterns that help solve problems you have (not problems you &lt;em&gt;think&lt;/em&gt; you'll have- YAGTNI), find patterns that make sense for your project (not every project is a huge enterprise, super complex application with the need for IoC containers), learn the patterns, and then start writing some code!&lt;/p&gt;  &lt;p&gt;And don't feel guilty if you don't follow the pattern 100%. I like to quote the wonderful piece of 21st century cinema Pirates of Caribbean to explain this. In the words of the digitally-enhanced (or is it degraded?) Captain Barbosa:&lt;/p&gt;  &lt;p&gt;&amp;quot;The patterns are more what you'd call &lt;strong&gt;&lt;em&gt;guidelines&lt;/em&gt;&lt;/strong&gt; than actual rules. Arrr...&amp;quot; (loosely quoted)&lt;/p&gt;  &lt;p&gt;Patterns are supposed to help you write code in a way that avoids the problems other developers have encountered, but they're not supposed to be a paint-by-numbers guide to coding your application. Use what works for you and don't let patterns bog you down. And if you find yourself getting bogged down, step back and write some code. If nothing else, that will help provide more context for the pattern so you can learn it more quickly.&lt;/p&gt;  &lt;p&gt;Hopefully this simple advice will help you avoid the productivity drain that pattern research can become. Have you ever found yourself crawling down the pattern rabbit hole? Sound-off in the comments.&lt;/p&gt;</description><pubDate>Thu, 31 Jul 2008 05:07:03 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/potluck-programming-or-uwwfy</guid><category>Patterns</category><category>Potluck Programming</category><category>UWWFY</category></item><item><title>What "cloud computing" means to you (it's important)</title><link>https://weblogs.asp.net:443/toddanglin/what-quot-cloud-computing-quot-means-to-you-it-s-important</link><description>&lt;p&gt;&lt;img style="margin: 0px 0px 5px 5px" border="0" alt="cloud computing" align="right" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/LiveMeshv.MobileMeorWhathappenedtoGDrive_D627/cloudcomputing_b434934a-9b5e-4a7e-be0c-85b1eb29f761.jpg" width="260" height="253" /&gt; It is amazing to me how quickly the the noise surrounding cloud computing has grown. Overnight cloud computing has become a mainstream talking point with everyone postulating how enterprising start-ups and lumbering enterprises will use the emerging technology in software projects. InformationWeek is running cover stories on cloud computing, Microsoft is touting their new cloud services, and even Apple is getting-in on the game with MobileMe. It seems cloud computing has replaced software as a service as the most popular water cooler talk.&lt;/p&gt;  &lt;p&gt;And if you ask me, cloud computing is much more interesting and much more able to be a &amp;quot;game changer&amp;quot; than SaaS ever was. SaaS always seemed like a fancy way to describe hosted applications. It really wasn't anything &lt;em&gt;new- &lt;/em&gt;eBay has been providing SaaS auction services for years- just a change in focus and maturity. Even as a young entrepreneur, I built &lt;a href="http://www.careerfairlive.com"&gt;career fair management software&lt;/a&gt; that I sold to customers from my hosted environment- who knew I'd &amp;quot;stumbled&amp;quot; on the SaaS business model. &lt;/p&gt;  &lt;p&gt;Cloud computing, on the other hand, is substantive. It is bringing real, game changing technology to the table that is going to enable a new generation of entrepreneurs to capitalize on never before possible access to cost-effective, low-risk scaling. In other words, cloud computing is going to give little ideas the ability to reach big audiences without millions of dollars in financing. That's an exciting development if you're like me and you're always looking for ways to bring your ideas to life without investing your &lt;strike&gt;wife's&lt;/strike&gt; life's (Freudian slip) savings.&lt;/p&gt;  &lt;p&gt;The impact of cloud computing on .NET developers should be big, too. I fully expect to see cloud service integration become standard practice in .NET applications and a new crop of tools to emerge that will help developers with the challenges cloud computing presents (network latency, dynamic scaling, etc.). At the component level, I wouldn't be surprised to see new data controls that enable you to easily bind to cloud data or ORM tools that make managing scalable data in the cloud as easy as managing a single instance of SQL Server. Unlike SaaS, cloud computing &lt;em&gt;will&lt;/em&gt; have an impact on your daily developer life.&lt;/p&gt;  &lt;p&gt;For those of you less interested in the business impact of cloud computing and still struggling to see its purpose, there are clear consumer driven applications of cloud computing sprouting-up at the world's major software producers that should provide &lt;em&gt;some&lt;/em&gt; clarity. Take, for instance, the &amp;quot;could drive.&amp;quot;&amp;#160; The long awaited drive that lives on the Internet, enabling users to save their files on their computer and access them anywhere, anytime.&lt;/p&gt;  &lt;p&gt;Microsoft and Apple are prepping services that bring this dream to life. Microsoft's &lt;a href="https://www.mesh.com/Welcome/Welcome.aspx"&gt;LiveMesh&lt;/a&gt; is a software + services approach that uses a small client install to enable seamless file synchronization between all of your devices (PC, Mac, and Mobile). Similarly, Apple's iDrive, previously part of .Mac and now a member of &lt;a href="http://www.apple.com/mobileme/"&gt;MobileMe&lt;/a&gt;, enables you to save files on your Mac and easily access them on the web or on another PC. Apple provides its software integration at the OS level, but end result is very similar to Microsoft's and both offerings rely on cloud services and storage to deliver the anywhere, anytime data access.&lt;/p&gt;  &lt;p&gt;With Microsoft's offering in particular, developer's have a unique solution to one of the biggest problems facing Silverlight: no local file system access. How do you build web-based replacements for client-apps if you can't save files to the local file system? Live Mesh. Using the Live Mesh APIs, you simply save an user's file to the cloud and the cloud in-turn syncs the file to the desktop. It's roundabout, sure, but it's also compelling since this approach should mean the file is always available to your online app, even if the user travels to another computer.&lt;/p&gt;  &lt;p&gt;But where's Google? Long before LiveMesh and MobileMe were twinkles in a marketer's eye, Google was rumored to be building &amp;quot;GDrive,&amp;quot; a Google-powered cloud storage service that you could use to backup and access your files. Since the early rumors, though, Google has been mum on the GDrive topic, allowing both Apple and Microsoft to beat the perennial cloud proponent on what should be their own turf. It is bizarre that Google appears to be a late mover in the cloud computing space, but I think it's safe to bet Google will eventually make their move.&lt;/p&gt;  &lt;p&gt;Until then, the work by companies like Microsoft, Amazon, EMC, and others make it clear cloud computing is here to stay, and in a big way. And while I don't think the term &amp;quot;cloud computing&amp;quot; will last forever, the use of the Internet as an applications platform will.&lt;/p&gt;</description><pubDate>Tue, 01 Jul 2008 21:56:58 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/what-quot-cloud-computing-quot-means-to-you-it-s-important</guid><category>Cloud Computing</category><category>GDrive</category><category>Live Mesh</category><category>Microsoft</category><category>MobileMe</category></item><item><title>Silverlight Mobile Road Map Refresher</title><link>https://weblogs.asp.net:443/toddanglin/silverlight-mobile-road-map-refresher</link><description>&lt;p&gt;In keeping with my &lt;a href="http://weblogs.asp.net/toddanglin/archive/2008/05/22/isolated-storage-changes-in-silverlight-2.aspx"&gt;apparent &amp;quot;theme&amp;quot; this week&lt;/a&gt; of providing you with some Silverlight detail refreshers, I want to bring-up the topic of Silverlight for mobile platforms. While it has been widely known since the earliest days of Silverlight that mobile platforms would be supported, little attention (or scrutiny) has really been applied to the portable plug-in. In fact, if I were to ask you to tell me about Silverlight's mobile plans right now, you'd probably list these details:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The plug-in will not require you to change your Silverlight code (build once, deploy everywhere- &lt;em&gt;ideally&lt;/em&gt;)&lt;/li&gt;    &lt;li&gt;The mobile plug-in will be available for Microsoft Windows Mobile and Nokia S40/S60 and Internet Tablet platforms.&lt;/li&gt;    &lt;li&gt;Microsoft is actively trying to develop partnerships to deploy the plug-in on other mobile devices. And no, the iPhone is not on the known short list.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;But quick! Tell me which &lt;em&gt;version&lt;/em&gt; of Silverlight is coming to the mobile platform first? And &lt;em&gt;when&lt;/em&gt; is that version going to be available? If those answers don't come to you as quickly, I don't blame you. The information is not really circulating as prominently as it should be.&lt;/p&gt;  &lt;p&gt;In my preparation for a recent trip to India- the place where all Silverlight Mobile development is done, by the way- I collected the latest known public details on Silverlight's mobile road map and will share them with you here. In short, Silverlight's road map looks something like this:&lt;/p&gt;  &lt;p&gt;&lt;img style="margin: 0px 0px 5px 5px" border="0" alt="silverlightMobileRoadMap" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/SilverlightMobileRoadMapRefresher_123E4/silverlightMobileRoadMap_f7ea8868-a5a8-455c-a2c2-66e0e9909bc0.png" width="475" height="225" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What's this diagram saying? Exactly this:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The first version of Silverlight for Mobile is going to be Silverlight 1.0 (JavaScript only - &lt;strong&gt;no .NET&lt;/strong&gt;) and a CTP should be available any day now.&lt;/li&gt;    &lt;li&gt;We'll get the first &amp;quot;official&amp;quot; Silverlight for Mobile (1.0) towards the end of this year, sometime after Silverlight 2.0 officially ships for the desktop. Around the same time we &lt;em&gt;should&lt;/em&gt; get a CTP of Silverlight 2.0 for Mobile.&lt;/li&gt;    &lt;li&gt;Finally, around this time &lt;em&gt;next year&lt;/em&gt; we'll get the .NET-loving version of Silverlight for Mobile.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It appears that the Silverlight for Mobile development is lagging about a year behind it's desktop counterpart, which may come as a surprise to some. The real take-away here, though, is this: if you're planning on doing any Silverlight development for mobile platforms, don't expect to begin rolling-out production applications until early 2009. If you want to roll-out applications that re-use that fancy Silverlight 2.0 .NET you're writing now, expect to wait 'til next summer for production.&lt;/p&gt;  &lt;p&gt;This post isn't intended to be &amp;quot;doom and gloom&amp;quot; on the Silverlight for Mobile road map, but rather a reality check for any developers that are getting increasingly excited about Silverlight 2.0 and are starting to make plans for real application development. Silverlight for Mobile is definitely coming- and it will be cool when it arrives- just don't expect to launch new Silverlight 2.0 apps completely cross platform (as in, including mobile devices) until sometime next year.&lt;/p&gt;</description><pubDate>Wed, 28 May 2008 02:28:17 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/silverlight-mobile-road-map-refresher</guid><category>Mobile</category><category>Silverlight</category></item><item><title>Isolated Storage changes in Silverlight 2</title><link>https://weblogs.asp.net:443/toddanglin/isolated-storage-changes-in-silverlight-2</link><description>&lt;p&gt;This isn't exactly what you call &amp;quot;breaking&amp;quot; news, but it is news that I don't see getting enough coverage. I also just noticed that I've been doling out bad info in my recent Silverlight 2 beta 1 presentations, so I wanted to take a minute to correct the record and set things straight.&lt;/p&gt;  &lt;h3&gt;The News&lt;/h3&gt;  &lt;p&gt;In short, Silverlight 2 beta 1 introduced some changes to the Isolated Storage API and its defaults. In Silverlight 1.1 alpha, the default Isolated Storage quota size was 1 MB. In Silverlight 2 beta 1, the &lt;strong&gt;default has been reduced to 100 KB&lt;/strong&gt;. The issue is not that significant, and I expect many Silverlight apps will not have a problem staying well inside of this quota. But if you're planning on making any &amp;quot;significant&amp;quot; use of the Isolated Storage, be prepared to hit your quota limit fast in Silverlight 2.&lt;/p&gt;  &lt;p&gt;The other tidbit that was news to me is how API for requesting a larger quota works. While the API for requesting a larger quota makes it appear like you can request any quota size you'd like (it accepts a size in bytes that you want to set the quota to, after all), in reality &lt;strong&gt;there are only a few discrete quota sizes you can use: 100KB, 1MB, 5MB, 10MB, and Unlimited&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;That means requests for sizes larger than one if the discrete values will &lt;em&gt;automatically &lt;/em&gt;round-up to the next valid quota size. And if your request is for a quota larger than 10MB, Silverlight will automatically ask the user to give you an &amp;quot;unlimited&amp;quot; quota. What's not clear at this point is what &amp;quot;unlimited&amp;quot; means, but it is likely that space will be limited by some user-configurable value (in the soon to arrive Isolated Storage configuration menu). I expect it will be very similar to the way users configure the allowed size for IE temporary files.&lt;/p&gt;  &lt;p&gt;I also think that this setup, however well conceived, means the Isolated Storage API should be altered. Why use an API that accepts a freely defined integer value when only 5 distinct options are available? Perhaps an enumeration would make things more clear. In the absence of a clear API, though, just make a mental note and don't be surprised when your request for 2MB is automatically translated in to a request for 5.&lt;/p&gt;  &lt;h3&gt;Quick Review&lt;/h3&gt;  &lt;p&gt;For those of you that have yet to try increasing the Isolated Storage quota, the process is very simple. All you must do is tell Silverlight how large you'd like to make your application's storage quota (in bytes) and it will prompt the user asking for their permission to grant the increase. If they approve it, you're in business. If they don't, you must design your application to handle rejection. See the code snippet below for a quick look at how the API works.&lt;/p&gt;  &lt;div&gt;   &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #008000"&gt;// Obtain an isolated store for an application and ask user&lt;/span&gt;
&lt;span style="color: #008000"&gt;// to allow quota increase&lt;/span&gt;
&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;
{
    &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; (var store = IsolatedStorageFile.GetUserStoreForApplication())
    {
        &lt;span style="color: #008000"&gt;// Request to increase the quota size&lt;/span&gt;
        Int64 newQuotaSize = 1 * 1024 * 1024; &lt;span style="color: #008000"&gt;//1MB&lt;/span&gt;
        Int64 curAvail = store.AvailableFreeSpace;

        &lt;span style="color: #008000"&gt;// If available space is less than&lt;/span&gt;
        &lt;span style="color: #008000"&gt;// what is requested, try to increase.&lt;/span&gt;
        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (curAvail &amp;lt; newQuotaSize)
        {

            &lt;span style="color: #008000"&gt;// Request more quota space&lt;/span&gt;
            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!store.TryIncreaseQuotaTo(newQuotaSize))
                lblAlert.Text = &lt;span style="color: #006080"&gt;&amp;quot;Increase rejected.&amp;quot;&lt;/span&gt;;           
            &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;
                lblAlert.Text = &lt;span style="color: #006080"&gt;&amp;quot;Increase approved.&amp;quot;&lt;/span&gt;;
        }
        &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;
            lblAlert.Text = &lt;span style="color: #006080"&gt;&amp;quot;1 MB is still available.&amp;quot;&lt;/span&gt;;
    }
}
&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (IsolatedStorageException ex)
{
    lblAlert.Text = ex.Message;
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Beyond that, there are only a few additional facts important to remember about Isolated Storage quotas:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;While Silverlight Isolated Storage files are isolated at the &lt;em&gt;application &lt;/em&gt;level (per XAP), the quota is set per &lt;em&gt;domain&lt;/em&gt;. This design is for security, and MS's Wilco Bauer has a good explanation &lt;a href="http://www.wilcob.com/wilco/News/isolatated-storage-in-Silverlight.aspx"&gt;on his blog&lt;/a&gt;. &lt;/li&gt;

  &lt;li&gt;Isolated Storage is a non-volatile cache. That means it &lt;em&gt;won't&lt;/em&gt; be cleared by browser cache resets. The files are stored separately and can only be cleared by the Isolated Storage API (in other words, programmatically by your app) &lt;em&gt;OR&lt;/em&gt; by the user with the forth coming configuration menu. &lt;/li&gt;

  &lt;li&gt;Isolated Storage is shared across browsers. Changes made to files in Isolated Storage in Firefox are accessible in IE and vice versa. That also means they share the same quota, so you don't get separate space allocations for each browser. &lt;/li&gt;

  &lt;li&gt;You can only access the GetUserStoreForApplication() method within a Silverlight initiated event (such as a Silverlight button click). You &lt;em&gt;cannot&lt;/em&gt; fire requests to increase the quota arbitrarily- you must respond to some user action. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hopefully this post helps highlights some important changes in the Isolated Storage quota system in Silverlight 2 beta 1 and sets you up for successful development on the soon to arrive Silverlight 2 beta 2. Assuming it doesn't make any &lt;em&gt;more &lt;/em&gt;significant changes...&lt;/p&gt;</description><pubDate>Fri, 23 May 2008 03:44:57 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/isolated-storage-changes-in-silverlight-2</guid><category>Silverlight</category><category>Snippet</category></item><item><title>Second Life Heroes Launch Event Tomorrow</title><link>https://weblogs.asp.net:443/toddanglin/second-life-heroes-launch-event-tomorrow</link><description>&lt;p&gt;&lt;a href="http://www.facebook.com/event.php?eid=32230420202"&gt;&lt;img style="margin: 0px 0px 5px 5px" border="0" alt="herosHappenSL" align="right" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/SecondLifeHerosLaunchEventTomorrow_E21E/herosHappenSL_962de0ac-719e-4259-a4c7-72b2cc628fa5.jpg" width="200" height="142" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;[Content cross-posted from &lt;a href="http://telerikwatch.com/2008/04/second-life-heros-launch-event-tomorrow.html"&gt;TelerikWatch.com&lt;/a&gt;]&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;I regret not giving this event more coverage, but late is better than never&amp;#160; (right?). Tomorrow, Saturday, April 26th, in the vast realms of Second Life, Microsoft and the Second Life .NET User Group are putting on a &lt;a href="http://www.facebook.com/event.php?eid=32230420202"&gt;virtual Heroes Launch&lt;/a&gt;. You may have seen Heroes Happen Here Launch events in the &amp;quot;real world&amp;quot; over the last few months. They are being organized all over the globe to help get people introduced Visual Studio 2008, SQL Server 2008, and Windows Server 2008. And now they're even being organized &amp;quot;out of this world&amp;quot; and in the virtual realms of Second Life.&lt;/p&gt;  &lt;p&gt;All of the action will kick-off tomorrow at 9:00 AM SLT (Second Life Time = PST) and run 'til about 5:00 PM. To join the fun, all you need to do is make sure you've downloaded and installed Second Life (&lt;a href="http://www.secondlife.com/"&gt;it's free&lt;/a&gt;), created a goofy avatar (as in silly, not the Disney character...though I guess you could do that, too), and then transport on over to the new &lt;a href="http://slurl.com/secondlife/Microsoft%20Island/190/73/22"&gt;Microsoft User Group Island&lt;/a&gt;. It really couldn't be easier and it is a great way to get involved in the launch events if you've been unable to attend one in RL (real life, for uninitiated).&lt;/p&gt;  &lt;p&gt;For a complete and detailed schedule of tomorrow's events, visit the &lt;a href="http://www.sldnug.net/launch2008/"&gt;Second Life DNUG website&lt;/a&gt;. It looks just like a real world conference schedule- the only difference is you can attend this one in your PJs. So get everything setup tonight and then come on out to the event tomorrow! If nothing else, I'll be at the event for a while and would love to meet you- look for the very normal avatar sporting the Telerik t-shirt and going by the name Bluelaser Hax.&lt;/p&gt;</description><pubDate>Fri, 25 Apr 2008 21:06:43 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/second-life-heroes-launch-event-tomorrow</guid></item><item><title>What's cooking for Silverlight 3.0?</title><link>https://weblogs.asp.net:443/toddanglin/what-s-cooking-for-silverlight-3-0</link><description>&lt;p&gt;&lt;img style="margin: 0px 0px 5px 5px" border="0" alt="silverlight3Beta" align="right" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/WhatscookingforSilverlight3.0_E59C/silverlight3Beta_a51483cf-6cc9-4c95-b1cf-dfa879a3657e.jpg" width="300" height="333" /&gt; Even though Silverlight 2.0 has yet to see the &amp;quot;official&amp;quot; light of day, we know that the beta &lt;a href="http://telerikwatch.com/2008/03/mix-08-keynote-recap.html"&gt;introduced at MIX08&lt;/a&gt; represents a &amp;quot;feature complete&amp;quot; version for this release cycle. Between beta 1 and the RTM expected towards the end of summer, Microsoft will not add any major new features to the Silverlight platform. Instead, they'll focus on performance improvements, platform stability, and a number of other &amp;quot;polish&amp;quot; issues like ClientBin security.&lt;/p&gt;  &lt;p&gt;Imagine my surprise, then, when I completed a short survey sent to attendees of MIX08 asking for input on how we'd like Microsoft to improve Silverlight. Clearly, we're talking about a version of Silverlight beyond 2.0, but nonetheless I found it interesting to see the questions on Microsoft's mind when it comes to talking about the future of their infant platform. There were plenty of questions you'd expect- Are you using Flash? Have you heard of Air? What do features do think are important in Silverlight 2?- but most interesting to me was a list of features Microsoft asked survey takers to rank.&lt;/p&gt;  &lt;p&gt;A list of 20 possible &amp;quot;new features&amp;quot; in Silverlight was presented and we were asked to rank each as a &amp;quot;Must [have]&amp;quot;, &amp;quot;Nice [to have]&amp;quot;, or &amp;quot;Not [needed]&amp;quot; (I've extended the cryptic ranking descriptions for clarity). Here is the complete list of features presented:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Richer text control&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;/li&gt;    &lt;li&gt;Support for spell checking&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;/li&gt;    &lt;li&gt;Support for inline tables&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;/li&gt;    &lt;li&gt;Support for PDF&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;/li&gt;    &lt;li&gt;HTML rendering&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;/li&gt;    &lt;li&gt;Printing&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;/li&gt;    &lt;li&gt;Offline storage&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;/li&gt;    &lt;li&gt;Local database storage&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;/li&gt;    &lt;li&gt;Database synchronization&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;/li&gt;    &lt;li&gt;Can install Silverlight application on desktop&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;/li&gt;    &lt;li&gt;Access to local hard drive limited to MyDocuments&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;/li&gt;    &lt;li&gt;Access to all of hard drive&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;/li&gt;    &lt;li&gt;Can drag &amp;amp; drop from desktop to Silverlight&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;/li&gt;    &lt;li&gt;Ability to create new Silverlight windows&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;/li&gt;    &lt;li&gt;Support for device access such as USB&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;/li&gt;    &lt;li&gt;Hardware accelerated graphical effects&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;/li&gt;    &lt;li&gt;Blend modes&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;/li&gt;    &lt;li&gt;Frame based animation&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;/li&gt;    &lt;li&gt;Inverse kinematics / bones&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;/li&gt;    &lt;li&gt;3D &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What makes this list very interesting is that it is from Microsoft, which means these are the features on the minds of the Silverlight development team. Some of the ideas seem inevitable, like offline storage, a richer text control, and printing support, while others really surprised me, like access to &lt;strong&gt;all&lt;/strong&gt; of a hard drive and hardware accelerated graphical effects. This survey wasn't sent on April 1st (it's been sitting in my Inbox for a while), so none of these are April Fools, including access to &lt;em&gt;all &lt;/em&gt;of a hard drive!&lt;/p&gt;  &lt;p&gt;In fact, almost half of the features deal with adding more interaction with and access to the local computer. I know many people would love more local system access in Silverlight, but that has generally been regarded as an impossibility if Silverlight has any hopes of remaining a secure and trustable plug-in. That makes me wonder if this list represents features Microsoft &lt;em&gt;really&lt;/em&gt; thinks it can implement or simply a collection of the most often requested features. My hope is for the prior, though I have no idea (and I'm sure MS doesn't either) how some of these features could be implemented securely.&lt;/p&gt;  &lt;p&gt;Also interesting are the features absent on the list. Where's the interest in full .NET support? Where's the requests for easier data binding? Or how about just improved text rendering? (Or am I the only one that thinks Silverlight renders text a little blurry vs. the browser?) &lt;/p&gt;  &lt;p&gt;So what do you think of this list? Are the features you want in the next version of Silverlight represented? If not, now's the time to start sounding-off and letting your requests be heard. Before you know it, Silverlight 2 will be official and the feature set for Silverlight 3 will already be well underway.&lt;/p&gt;</description><pubDate>Tue, 01 Apr 2008 21:52:53 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/what-s-cooking-for-silverlight-3-0</guid><category>MIX08</category><category>Silverlight</category></item><item><title>Fixing Vista's Default Web Development Settings</title><link>https://weblogs.asp.net:443/toddanglin/fixing-vista-s-default-web-development-settings</link><description>&lt;p&gt;File this under &amp;quot;used to be easy with XP&amp;quot; tips and tricks for Vista. As a &lt;em&gt;long&lt;/em&gt; time web developer on XP (all the way back to &amp;quot;classic&amp;quot; ASP), I feel I am pretty comfortable around IIS. I've successfully configured many a development site over the years and never really had much trouble. That's all changed with my recent upgrade to Vista Business and IIS7.&lt;/p&gt;  &lt;p&gt;Now, I didn't really notice the problem at first because I was using Visual Studio's built-in web server to test most of my sites (remember the days when that wasn't an option...). While doing some performance tests for Telerik, though, I was forced to leave Visual Studio and run a site in my shiny new IIS7. I created my new &amp;quot;application&amp;quot; just like I would have a Virtual Directory-based site in IIS6 and browsed the site in Firefox. Server Error.&lt;img style="margin: 0px 0px 5px 5px" border="0" alt="serverError" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/FixingVistasDefaultWebDevelopmentSetting_13BA2/serverError_cb5ff726-2202-4b90-b5da-35a25517ecf2.jpg" width="500" height="178" /&gt; &lt;/p&gt;  &lt;p&gt;Server Error 500.19? Say what? I set-off checking my configuration files, making sure everything looked correct, confirming that my sites &lt;em&gt;did&lt;/em&gt; work in Visual Studio's web server, and still, IIS served-up this &amp;quot;friendly&amp;quot; 500.19 error. So after some quick Googling (sorry Live Search, maybe after you buy Yahoo!'s search tech...I'll, er, um...give it another try...), I discovered that my wonderfully secure Vista Business installation &lt;strong&gt;disables ASP.NET development by default!&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;ASP &amp;quot;classic&amp;quot; development is enabled; ASP.NET development is not. Really?! In this day and age of .NET, why would you enable IIS development features &lt;em&gt;without&lt;/em&gt; enabling .NET support? In my opinion, this is a bad choice on Microsoft's part. Fortunately, the solution is easy.&lt;/p&gt;  &lt;p&gt;First, open your control panel and launch the Programs and Features interface (or type Programs in your Vista start search to find it quickly). Click on the &amp;quot;Turn Windows features on or off&amp;quot; side link.&lt;/p&gt;  &lt;p&gt;&lt;img style="margin: 0px" border="0" alt="controlPanel" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/FixingVistasDefaultWebDevelopmentSetting_13BA2/controlPanel_4a0548fa-2e97-400f-8256-3f110900c37b.jpg" width="500" height="375" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;When the the configuration window opens (and finally loads), look for the IIS settings section. You'll notice that it is &amp;quot;checked&amp;quot; with a blue box indicating not all sub-options are enabled.&lt;/p&gt;  &lt;p&gt;&lt;img style="margin: 0px 0px 5px 5px" border="0" alt="winFeatures1" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/FixingVistasDefaultWebDevelopmentSetting_13BA2/winFeatures1_1b7b422c-dd91-4a93-b5ad-23f2cf7f437a.jpg" width="429" height="375" /&gt; &lt;/p&gt;  &lt;p&gt;Expand the IIS node and look for the World Wide Web Services &amp;gt; Application Development Features section. You should see that the .NET Extensibility and ASP.NET sections are unchecked. Check the ASP.NET node and the .NET Extensibility node will automatically get checked, too.&lt;/p&gt;  &lt;p&gt;&lt;img style="margin: 0px 0px 5px 5px" border="0" alt="winFeatures2" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/FixingVistasDefaultWebDevelopmentSetting_13BA2/winFeatures2_09bcdf53-e444-4e4a-8780-aed93539ffc2.jpg" width="429" height="375" /&gt; &lt;/p&gt;  &lt;p&gt;Click okay, wait a while, and you should be back in business.&lt;/p&gt;  &lt;p&gt;&lt;img style="margin: 0px 0px 5px 5px" border="0" alt="pleaseWait" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/FixingVistasDefaultWebDevelopmentSetting_13BA2/pleaseWait_eb330663-7d7d-4e2c-85b1-e1429f5c0ad8.jpg" width="431" height="376" /&gt; &lt;/p&gt;  &lt;p&gt;Hopefully this seemingly obvious tutorial will help someone out there with the unnecessary pain that comes with the XP to Vista developer transition. If you find yourself hitting the 500.19 Server Error, this is probably your solution.&lt;/p&gt;</description><pubDate>Thu, 13 Mar 2008 04:08:26 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/fixing-vista-s-default-web-development-settings</guid><category>ASP.NET</category><category>Tips  Tricks</category><category>Vista</category></item><item><title>Top 5 Ways Microsoft Will Use Silverlight</title><link>https://weblogs.asp.net:443/toddanglin/top-5-ways-microsoft-will-use-silverlight</link><description>&lt;p&gt;&lt;img style="margin: 0px 0px 5px 5px" height="277" alt="Microsoft Silverlight 2.0 Beta" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/Top5WaysMicrosoftWillUseSilverlight_C843/silverlight2Beta_708d3781-73d5-424e-a93e-55fe86fac82a.png" width="250" align="right" border="0" /&gt; With MIX08 less than a week away and, in turn, the expected arrival of the Silverlight 2.0 beta, I thought it would be fun to ponder how Microsoft is planning to &lt;em&gt;use&lt;/em&gt; their new browser-based, cross-platform plug-in. After all, history reveals that many Microsoft platforms have their roots in satisfying internal Microsoft project needs (we owe the &amp;quot;X&amp;quot; in Ajax to the Outlook Web Access team), so it's only fair to assume that from the get-go Microsoft saw the opportunity to use Silverlight to build (or enhance) new products. The question is, which products will get the Silverlight treatment and when?&lt;/p&gt;  &lt;p&gt;To create my &amp;quot;Top 5&amp;quot; list, I've scoured the Internet for clues, pondered the skunk-works projects in Microsoft's Live Labs, analyzed Microsoft's competitive landscape, and tossed-in a dash of &amp;quot;gut feeling.&amp;quot; Clearly, a thorough scientific process. What follows is my best guess at the products Microsoft is planning on building on Silverlight in the next few years.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Microsoft Office Web Edition&lt;/strong&gt;       &lt;br /&gt;This is the &lt;a href="http://blogs.zdnet.com/web2explorer/index.php?p=41"&gt;inevitable&lt;/a&gt; purpose of Silverlight: to enable Microsoft to deliver the full Microsoft Office experience via the browser. Do you think Microsoft intends to sit idly by while competitors like Google threaten its Office cash cow online? You'd be crazy to think so. I think the reason we haven't seen a serious online Office attempt from Microsoft yet is because they're waiting for a mature Silverlight platform to make the jump. And assuming the next version of Office for Windows is going to be WPF/XAML based anyway, it makes all the more sense to build for Silverlight.       &lt;br /&gt;      &lt;br /&gt;The key barrier to an online Office experience with Silverlight is obviously local file system access (which Silverlight lacks for security). But given Microsoft is already experimenting with a &lt;a href="http://en.wikipedia.org/wiki/Windows_Live_Drive"&gt;Windows Live Drive&lt;/a&gt;, that is a problem easily solved with cloud storage. I think there is no question that Office running on Silverlight is a question of &lt;em&gt;when&lt;/em&gt; not &lt;em&gt;if&lt;/em&gt;.       &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;Likelihood: &lt;/strong&gt;High       &lt;br /&gt;&lt;strong&gt;Arrival: &lt;/strong&gt;With Office 14 (Note: There will be &lt;a href="http://apcmag.com/5753/microsoft_gets_to_work_on_office_2009"&gt;no Office 13&lt;/a&gt;, for obvious naming reasons).       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Radically new online mapping tools        &lt;br /&gt;&lt;/strong&gt;The online competition for mapping tools has really reached a plateau. Google Maps and Microsoft's Live Maps add new features every now and then (like the Google's cool ability to adjust your route), but nothing has been &amp;quot;earth shattering&amp;quot; for a number years. The move to Ajax-based ZUIs (&lt;a href="http://en.wikipedia.org/wiki/Zooming_User_Interface"&gt;Zoomable User Interfaces&lt;/a&gt;) was the last &amp;quot;big&amp;quot; transition for online mapping and that's several years old now.       &lt;br /&gt;      &lt;br /&gt;If Microsoft introduces a Silverlight version of Live Maps, though, we could start to see a slew of new features delivered to online mapping. For starters, with the .NET framework running in the browser, routes could be quickly calculated and adjusted without the need of significant help from the server, leading to more powerful routing tools. Then, with the strong animation support in Silverlight, routes could be previewed similar to the experience you get with today's GPS units (and similar to a &lt;a href="http://maps.ask.com"&gt;feature Ask.com has&lt;/a&gt;, but with more &amp;quot;richness&amp;quot;). The possibilities with a plug-in based tool are endless.       &lt;br /&gt;      &lt;br /&gt;Even more interesting, though, is the &lt;a href="http://www.itwriting.com/blog/?p=348"&gt;mounting&lt;/a&gt; &lt;a href="http://worldwidetelescope.com/"&gt;evidence&lt;/a&gt; that Silverlight 2.0 will include a technology from Microsoft Live Labs called &lt;a href="http://labs.live.com/Seadragon.aspx"&gt;Seadragon&lt;/a&gt;. Seadragon is a technology Microsoft purchased in late 2006 that enables huge amounts of visual data to be smoothly browsed over a network, regardless of bandwidth. According to the research site, Seadragon provides transitions that are &amp;quot;smooth as butter&amp;quot; with performance tied only to the pixel-to-bandwidth ratio. With this technology in Silverlight, the map ZUI that we've come to love could get a big boost.       &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;Likelihood: &lt;/strong&gt;High       &lt;br /&gt;&lt;strong&gt;Arrival: &lt;/strong&gt;Within a year       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Cross platform .NET IDE        &lt;br /&gt;&lt;/strong&gt;Before you scoff at the idea, hear me out. One of the key &amp;quot;problems&amp;quot; with .NET is that the only way to really develop .NET is on Windows with Visual Studio (there are other &amp;quot;less elegant&amp;quot; ways, but really...come on). With Silverlight making the push to build the .NET framework on OS X and Linux, there will be new reason for developers on those platforms to want to use .NET to build applications. If Microsoft can create a simplified Visual Studio IDE running on Silverlight for those developers, they could start to increase .NET adoption in the traditionally non-.NET Linux and OS X dev crowds.       &lt;br /&gt;      &lt;br /&gt;Clearly, this task is not without its challenges. Even more so than Office, a Visual Studio product that doesn't have direct access to the file system would be a hard sell. Maybe this product could drive an innovative and secure way to grant a Silverlight application access to a user's PC- I'm sure Enterprises are going to want that functionality sooner rather than later, anyway. Beyond that, an IDE would also assume the availability of the full .NET framework (something Silverlight isn't delivering in 2.0). This opens up the speculation that maybe future plug-ins could quietly stream (with user permission, of course) a full, cross-platform .NET framework to their PCs so future Silverlight apps could take advantage of all .NET framework features. Time will tell...       &lt;br /&gt;      &lt;br /&gt;So while a browser-based IDE is a stretch, even simple tools with IntelliSense support would be a step in the right direction. Hopefully Microsoft will make &lt;em&gt;some&lt;/em&gt; .NET dev tools- Silverlight or otherwise- available cross platform as the .NET framework moves that direction.       &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;Likelihood: &lt;/strong&gt;Eh...       &lt;br /&gt;&lt;strong&gt;Arrival: &lt;/strong&gt;Beyond Silverlight 2.0       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Accelerated Software + Service        &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;Assuming &lt;/em&gt;the full .NET framework eventually makes it to Silverlight, and &lt;em&gt;assuming&lt;/em&gt; something is done to make local file system access possible, Silverlight could very quickly enable Microsoft to accelerate its path down the &lt;a href="http://msdn.microsoft.com/en-us/architecture/aa699384.aspx"&gt;Software + Service&lt;/a&gt; road. If the Yahoo! deal isn't evidence enough, Microsoft's actions over the last couple of years should make it clear that they are trying to reinvent themselves as an online company capable of competing with Google on its home turf. So far their progress has been slow and largely unsuccessful (thus the Yahoo! deal). A new .NET-enabled platform like Silverlight could help Microsoft quickly port a number of its consumer applications to web-based versions.       &lt;br /&gt;      &lt;br /&gt;The &amp;quot;software&amp;quot; in the Software + Services model in this case would be the light-weight and flexible Silverlight plug-in. The &amp;quot;services&amp;quot; would be the applications delivered via the plug-in, likely sold on a subscription model or supported via ads. While Google could in theory do the same with Flash, the key difference is that Microsoft already has a large and successful portfolio of consumer desktop applications. If Microsoft can convince those people to try online versions of the tools they're used to, they may capture a large portion of the market Google can't reach. And if you're Microsoft, everything these days seems to be about beating Google.       &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;Likelihood: &lt;/strong&gt;Maybe       &lt;br /&gt;&lt;strong&gt;Arrival: &lt;/strong&gt;1 - 2 years       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Cross platform data mining        &lt;br /&gt;&lt;/strong&gt;This is less of a possible Microsoft &amp;quot;product&amp;quot; and more of a possible Microsoft &amp;quot;use&amp;quot; for Silverlight. To the best of my knowledge, this is the first time Microsoft is releasing a tool that will work on all three &amp;quot;major&amp;quot; OS platforms- Windows, OS X, and Linux. It's also one of the first browser tools from Microsoft that works in all three &amp;quot;major&amp;quot; browsers- IE, Firefox, and Safari. Combine that with the Silverlight plug-in's ability to automatically update itself- which implies &amp;quot;phone home&amp;quot; capabilities- and you have a plug-in that will give Microsoft an unprecedented look at the usage patterns of different browsers and operating systems.       &lt;br /&gt;      &lt;br /&gt;For example, as the Silverlight plug-in reaches the masses, Microsoft will have millions of plug-ins checking-in to see if new versions of plug-in are available. Clearly, to check for the right version, that &amp;quot;ping&amp;quot; will need to include browser and OS information. By analyzing that info, Microsoft can track first hand the fluctuations in the popularity of different browsers and operating systems (vs. what analysts report). Is that a privacy concern or a big value for Microsoft? Probably not, but it will be interesting to see what they do now that they're supporting &amp;quot;enemy&amp;quot; browsers and OSs. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So there you have it. The five things Microsoft is most likely to do with Silverlight in the next few years. Clearly, this doesn't cover at length the ways I expect Microsoft &lt;em&gt;enhance&lt;/em&gt; Silverlight over the next couple of years or how I expect other companies to use this emerging technology. That's fodder for a different post. &lt;/p&gt;  &lt;p&gt;Do you think I'm on track or have I missed the mark? I guess we'll start to know more next week at MIX!&lt;/p&gt;</description><pubDate>Thu, 28 Feb 2008 22:03:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/top-5-ways-microsoft-will-use-silverlight</guid></item><item><title>North Houston DNUG meeting tonight</title><link>https://weblogs.asp.net:443/toddanglin/north-houston-dnug-meeting-tonight</link><description>&lt;p&gt;&lt;a href="http://www.nhdnug.org"&gt;&lt;img style="margin: 0px 0px 5px 5px" height="87" alt="North Houston .NET User Group" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/NorthHoustonDNUGmeetingtonight_CF18/nhdnugLogoBlue_83a9ec5f-5c57-43c4-b25a-38ea006c0ae0.png" width="330" align="right" border="0" /&gt;&lt;/a&gt;This is a bit of a late notice, but for any of you in the Houston area here's your official reminder that the newly founded North&amp;#160; Houston .NET User Group will be meting tonight (Thursday) at 6:30 PM. This is the second official meeting on the new Houston-area DNUG, and if the turnout is anything like week one, we should have a full crowd and a good time. Tonight's speaker is Claudio Lassala who will be talking about test driven development (aka TDD). The subject of TDD is increasingly becoming more common in .NET conversations as Microsoft introduces technologies that make it easier to do (such as the forthcoming ASP.NET MVC and the inclusion of VS Test tools in all Pro SKUs), so this is a great opportunity to come learn more about an important .NET topic.&lt;/p&gt;  &lt;p&gt;For future reference, the NHDNUG meets the 3rd Thursday of every month at Lone Star Community College (formerly Montgomery College) in The Woodlands, Texas. Doors will open around 6:00 PM and the meeting will officially start at 6:30 PM. As per the DNUG norm, there will also be free pizza and drinks and some great giveaways. I think tonight's prizes include a copy of Expression Studio, a license for the RadControls for ASP.NET from Telerik, and a copy of Visual Studio 2008 Pro! So if you're in the area, you definitely don't want to miss this event. Set your reminders and I'll see you tonight at 6:30 PM!&lt;/p&gt;  &lt;p&gt;For more details, visit the NHDNUG site: &lt;a href="http://www.nhdnug.org"&gt;http://www.nhdnug.org&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 21 Feb 2008 20:58:36 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/north-houston-dnug-meeting-tonight</guid><category>DNUG</category><category>Events</category><category>NHDNUG</category></item><item><title>The definitive UI component metaphor</title><link>https://weblogs.asp.net:443/toddanglin/the-definitive-ui-component-metaphor</link><description>&lt;p&gt;&lt;img style="margin: 0px 0px 5px 5px" height="441" alt="Construction" src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/ThedefinitiveUIcomponentmetaphor_EFB6/Construction_56aa3570-866e-48c3-8299-2415fecdcd50.png" width="250" align="right" border="0" /&gt; One thing you learn quickly when you leave a Fortune 200, well recognized Enterprise and join a smaller, &lt;a href="http://www.telerik.com"&gt;much more exciting&lt;/a&gt; software company is that it is a lot harder to answer the inevitable &amp;quot;what do you do?&amp;quot; question. That is no more true than during the holidays, when you're visiting with distant relatives, many of whom still think of AOL as the Internet and think software is written by geeks in basements. Plagued by this problem, I have constantly sought the &amp;quot;perfect&amp;quot; metaphor for &amp;quot;what I do&amp;quot; so that &lt;em&gt;anyone&lt;/em&gt; can understand software UI components. And at last I have the answer.&lt;/p&gt;  &lt;p&gt;Rather than keep the metaphor to myself, I have decided to share this simple insight so that your future holiday conversations can proceed without awkward pauses and quick transitions to &amp;quot;how 'bout those &amp;lt;sports team here&amp;gt;&amp;quot;. If you're not in the business of making UI components, then hopefully this metaphor will help you explain (or even understand) the role UI components play in software development. &lt;/p&gt;  &lt;h3&gt;UI components are doors and windows&lt;/h3&gt;  &lt;p&gt;The crux of the metaphor is this: UI components are to software developers what doors and windows are to a contractor (I know, more of an analogy than a metaphor, but go with it). Let me explain why this comparison is so perfect.&lt;/p&gt;  &lt;p&gt;When a contractor is building a house, there are many pieces of the house that he buys pre-made to save time and money on the project. These are things like doors, windows, faucets, and fixtures. All contribute to the final look-and-feel of the house and all come with variety of &amp;quot;features&amp;quot;. Windows may be double paned and filled with argon gas for insulation; doors might have decorative glass inserts or an easy-hang frame. At the end of the day, these are well-defined, commodity items that don't need to be custom made to build a beautiful custom home.&lt;/p&gt;  &lt;p&gt;With enough time and money, though, there is no reason the contractor &lt;em&gt;couldn't&lt;/em&gt; build all of these things himself. He could hand-craft the house's windows, doors, and fixtures. They would all be unique, one-of-a-kind items that were built to the exact specifications of the house. &lt;/p&gt;  &lt;p&gt;But since the contractor is an expert at building houses, not windows or doors, the &amp;quot;features&amp;quot; or quality of the items he builds will probably be less than the doors or windows he could have bought pre-made. Even assuming he's had pervious experience building custom doors and windows on past houses, it's unlikely that he knows the latest and greatest techniques for building energy efficient items or has all of the expensive tools for doing advanced things like argon filled windows. For the sake of argument, though, let's say the home owners don't mind that they don't get all of the bells and whistles as long as the doors and windows work. Let's also say the contractor has the ability to build high-quality doors and windows.&lt;/p&gt;  &lt;p&gt;Five years pass and the home owners have been happily enjoying their custom home and have decided to do some remodeling. The original contractor moved to a different state and is no longer available, so the home owners pick another qualified contractor. Part of the remodeling includes adding more doors and windows that match the original house, but since they are custom made, it is going to cost them a lot more on the new project. The original contractor didn't leave instructions detailing how he built the custom windows and new contractor is not as good at custom work. &amp;quot;Why didn't you just use pre-made doors and windows?&amp;quot; the new contractor asks. The home owners, faced with mounting maintenance costs, are starting to wonder the same thing.&lt;/p&gt;  &lt;p&gt;At the time, it seemed okay to build custom doors and windows with their custom house. The contractor said it wouldn't be a big deal; he'd done it before. It cost a little more, but the contractor said it was better than depending on some outside window or door company. He failed to mention that they'd lose advanced energy saving features, have higher maintenance costs, and be on their own to fix problems- all issues that could have been avoided with pre-made items.&lt;/p&gt;  &lt;h3&gt;Complete the metaphor&lt;/h3&gt;  &lt;p&gt;In the previous illustration, simply substitute UI components for doors and windows, custom software development for custom home development, lead programmer for contractor, and management for home owners to bring everything back to software. It should be clear that a strong comparison can be drawn between home building and UI components. It is a much stronger analogy than comparing UI components to car manufacturing (a comparison I've seen before), where often the manufacturers &lt;em&gt;do&lt;/em&gt; make many of their own parts (and then produce thousands of the same car).&lt;/p&gt;  &lt;p&gt;In short, just like doors and windows for a house, UI components save software developers time and money by delivering advanced, well tested, and high quality tools that can be used in any software project. And down the road, when the original software team has moved on to new projects, the maintenance team has someone to turn to for help fixing problems or adding new features an application.&lt;/p&gt;  &lt;p&gt;Hopefully this metaphor/analogy/illustration makes the concept of UI components easier for your to understand and easier to explain to your non-software friends and family. Now if only an equally simple analogy existed for the title &amp;quot;Technical Evangelist&amp;quot;...&lt;/p&gt;</description><pubDate>Wed, 20 Feb 2008 00:33:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/the-definitive-ui-component-metaphor</guid><category>Miscellaneous</category><category>UI Components</category></item><item><title>Are you excited about ASP.NET MVC?</title><link>https://weblogs.asp.net:443/toddanglin/are-you-excited-about-asp-net-mvc</link><description>&lt;p&gt;&lt;img src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/AreyouexcitedaboutASP.NETMVC_B881/curious_9cd2a11b-a8d3-4f8e-9f76-0fde42b5f3f3.png" id="id" style="margin: 0px 0px 5px 5px;" alt="curious" mce_src="https://aspblogs.blob.core.windows.net/media/toddanglin/WindowsLiveWriter/AreyouexcitedaboutASP.NETMVC_B881/curious_9cd2a11b-a8d3-4f8e-9f76-0fde42b5f3f3.png" align="right" border="0" height="197" width="207"&gt; As I observe the reactions across the Internets about the &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx"&gt;forthcoming ASP.NET MVC framework&lt;/a&gt;, there seem to be two general reactions: those that can't wait to get their hands on the MVC framework and see this release as long over due, and those that don't see the point of rocking the WebForms boat. When I first heard about the new framework, I must admit that I fell in to the later camp. What would a new MVC framework let me do that I can't do (with all my years of experience and 3rd party tools) faster with WebForms?&lt;/p&gt;  &lt;p&gt;Not satisfied to ignore the issue, I dug deeper and tried to learn all there is to know about the yet to be released framework. Along the way I learned some very cool facts about ASP.NET MVC that have moved me from one camp to the other. I'm now very excited about trying ASP.NET MVC and looking forward to the first preview bits that should be available in a couple of weeks. But I know there are many of you out there that still don't see the point of ASP.NET MVC, so I decided to provide the answers to some the questions I had before doing my research to help you see why ASP.NET MVC might be worth adopting. My goal is not to convince you that ASP.NET MVC or WebForms is better, but simply to help you, the overloaded programmer that is still trying to fully grasp WPF, WF, WCF, XAML, and Silverlight, quickly understand some key facts about the new ASP.NET tool.&lt;/p&gt;  &lt;h4&gt;My personal FAQS&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;How hard is it going to be to learn ASP.NET MVC?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;There is no two ways about this aspect of ASP.NET MVC: it will have a learning curve that will require some time to master. ASP.NET MVC is a radical shift from the "traditional" ASP.NET method of page programming, where code and markup are (relatively) tightly coupled. Instead, "controller" classes will handle all of the processing logic and be wired to any number of "views" that render markup. Gone are the concepts of page postback (to itself, at least), code behind/beside, and (this is a big one) the page lifecycle. &lt;/p&gt;  &lt;p&gt;But before you think this is the end of world and abandon interest in ASP.NET MVC, remember back to the days when you transitioned from ASP classic to ASP.NET. At that time, the strange world of "WebForms" seemed bizarre, with "code behind" pages, this crazy thing called "ViewState", and a complex "page lifecycle" to learn. "How could I leave my inline coding and top-to-bottom page evaluation to learn this fancy ASP.NET?" we thought. It didn't take long, though, for ASP developers to quickly understand the benefits ASP.NET brings to the table and flock to the new technology. So it may be again with WebForms and ASP.NET MVC.&lt;/p&gt;  &lt;p&gt;While a lot is changing on the processing end of ASP.NET, many familiar concepts will continue to exist in MVC. Things like masterpages, themes, UserControls, ServerControls, and services like Membership and Profile will all be present and accounted for. Even ASPX pages survive as a valid way to create MVC Views. Some changes will clearly be required for ServerContorls (especially complex ServerControls like those that Telerik makes) to work in the new page lifecycle-less environment, but for the programmer using the controls these changes should be relatively transparent. The key change in MVC vs. WebForms is &lt;i&gt;where&lt;/i&gt; the framework processes its logic and renders its markup. Not &lt;i&gt;how&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Besides bringing MVC to ASP.NET, what's so special about ASP.NET MVC?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;One of the biggest advantages of the ASP.NET MVC framework is that it will make ASP.NET applications much easier to test. Unit testing ASP.NET applications today can be a challenge since many objects in an application require the HTTP context to function properly. You can get around that requirement by implementing mock objects, but that is especially difficult when the objects needing the mocking are not based on interfaces. In ASP.NET MVC, all core APIs and contracts are interfaced so you can easily build your mock objects and run fast tests against your ASP.NET code. Hopefully some of this benefit can be back-ported to WebForms in the future.&lt;/p&gt;  &lt;p&gt;Also in the realm of testing, the ASP.NET MVC framework does a much better job of enforcing clean separation of processing logic from UI markup. This is an inherent benefit of most MVC frameworks, so it should go without saying for ASP.NET MVC. Nonetheless, it will take what "code behind/beside" tried to do for the separation of logic and markup in WebForms to the next level and help ASP.NET developers enforce clean separation.&lt;/p&gt;  &lt;p&gt;Beyond testing improvements, the MVC framework is also introducing some very interesting URL processing models for ASP.NET developers. In the past, if you wanted to use a URL like "/products/beverages/beer" you would need a URL rewriter (at the IIS level, in fact) to make it happen. Under the hood, the URL would really be something like "/products/detail.aspx?cat=1&amp;amp;id=20" and you'd use Request.QueryString to extract the values. With ASP.NET MVC, clean URLs are the norm and they have tight integration with the MVC controllers. For example, if an ASP.NET MVC app has the URL "/Products/Details/5", it &lt;i&gt;automatically&lt;/i&gt; execute the "Details" method in the "Products" controller and passes the value "5" to the method as an input parameter. Pretty cool stuff!&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Is it an either or decision: WebForms or ASP.NET MVC?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;No. You can have an application that uses both WebForms and ASP.NET MVC. ASP.NET MVC is not replacing WebForms; it is simply another tool in the ASP.NET developer's toolbox to help them develop (and test) quickly and efficiently. But remember the age old truth: just because you &lt;i&gt;can&lt;/i&gt; doesn't mean you &lt;i&gt;should&lt;/i&gt;. I'd suggest you avoid the Frankenstein blended apps (like mixed ASP classic/ASP.NET apps) if you can.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;What about my 3rd party UI components? Are they still usable?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Maybe, but in most cases UI controls (like those that Telerik makes) will probably have to be "tweaked" for the MVC environment. Operations that currently postback to the page (like sorting a RadGrid, for instance) will not work in the lifecycle-less MVC approach. But have no fear, Telerik is eagerly awaiting the preview bits for ASP.NET MVC so we can run our tests and determine exactly what you'll need to have the same level of productivity in an MVC environment (as I am sure other component vendors are doing, too).&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Okay, this MVC thing sounds interesting. Can I download some bits?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Not yet, but according to a recent statement from Scott Guthrie, the first preview bits for the MVC framework should be available within the next couple of weeks. That means by the week of December 10th, you should be able to download the ASP.NET MVC framework and get your hands dirty with the approach to ASP.NET. Consider it an early Christmas present. It's up to you whether you'll consider it a lump of coal or beautiful diamond.&lt;/p&gt;</description><pubDate>Tue, 27 Nov 2007 20:46:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/toddanglin/are-you-excited-about-asp-net-mvc</guid><category>ASP.NET</category><category>ASP.NET MVC</category></item></channel></rss>