Josh Holmes blogged about Microsoft as a platform company rather than an application company. He referred to VSTO as making Office a platform for other companies to develop applications. He further mentioned Facebook's recent success as a platform for others to extend.
I heartily agree with everything that Josh is saying. I think I heard the same argument a few years back. Jerry Pournelle has said for years that while OS/2 was the better OS technically, IBM wanted to sell the SDK, while Microsoft was slipping Windows SDK CDs in every Comdex attendee's bag.
I especially endorse Josh's argument that Firefox is a better platform than Internet Explorer. It doesn't have to be that way, but it is, for now. Firefox has some flaws in its add-in model. I keep expecting Microsoft to release a managed API like VSTO or the MPF for IE.
Software development is constantly in flux. Should we build web apps, Windows Forms apps, Click Once smart clients, WPF or Silverlight apps? For my eight years as a software developer, I have built applications that leverage the power of the desktop computer. I like desktop apps. I use web apps, like gmail, del.icio.us and Google Reader, but I prefer a rich desktop application UX.
Perhaps I'm becoming a curmudgeon, but AJAX doesn't excite me. It's still just JavaScript, and it's still slow. I'm not foolish, I realize that the trend will continue to be leveraging the web as a platform, as more previously desktop only applications move into the browser, and I don't think this is a bad thing.
What I know is that no web app can completely duplicate the rich UX of a desktop application, no matter how many smart people argue otherwise. I use OWA frequently, but it is not a replacement for Outlook. In fact, I think Outlook is the best example of leveraging Office as an application platform. The most recent release of VSTO made creating Outlook plugins significantly easier.
If I were still creating line of business applications as a consultant, I would be adding an Outlook dashboard to every client's system. Check out TeamLook for an example of what I'm describing. I keep expecting Microsoft to purchase Personify Design and make Juan independently wealthy.
As I examine my own computer usage I have identified one other desktop application that I believe will not be moved entirely to the web. That application is Visual Studio. I use it daily, and I cannot imagine an equivalent experience in a browser. That is why I have been so stoked about VSX since I first heard about it.
I'm not sure the message has traveled throughout the developer community, but the new Visual Studio 2008 Shell turns Visual Studio into a platform for new application development. It takes some explaining, but think of Visual Studio as a framework for building an application. VS handles the main screen, and most of the plumbing, and you as the application developer focus on adding business value.
I'm not saying that the Visual Studio Isolated Shell is the right solution for every smart client application, but if the problem domain fits the Visual Studio tool and command metaphor, then it is worth your time to investigate. I'll be speaking about exactly this topic on November 10 at the Memphis Day of .NET. I'll also be blogging on Cave Markin