So in the past I've written articles that talk about how the web as an application model is peaking for certain types of application models. Specifically that while the 'reach' of web applications - ie. the way that even now I can be sitting in a Del Taco in Riverside (where it is 108 degrees farenheit) updating my blog just prior to heading over for a user group meeting, provide a powerful paradigm. This isn't going to disappear and isn't to be discounted, but it isn't enough. New technologies such as Silverlight and WPF will help extend the life of the web as a UI, but the reality is, web services allow me to use a rich client vs. a web site for editing my comments and then just submit the data to the server.
Most enterprise applications (as opposed to public facing) continue to be rich client applications. In the future there will still be many such applications which are written from the ground up, expecially those which are focused more on sizzle then steak. But I feel that the new paradigm for actual business applications will be to leverage someone else's User Interface for much of the framework with a minimalist custom set of controls. A couple years ago the common 'UI design pattern' we heard from smart client customers was for them to ask for a user interface based on Outlook. This is still the case but things are shifting, you see instead of asking for a client based on Outlook - instead we are starting with Outlook as the client and just customizing it for the needs of the organization.
Visual Studio Tools for Office (VSTO) have been around since .NET 1.x but as I have been informed many times - haven't really taken off as some expect. However, like so many things, until the rest of the infrastructure to support a technology is in place even a great tool gets only limited use. In the past VSTO has primarily focused on the document. Specifically it started as a replacement for VBA and the document centric customizations of VBA and Macros... but with Office 2007 and Visual Studio 2008 (Orcas) - well this isn't the same model.
An OBA is an Office Business Application, in short it is an architectural model which leverages the full Office System to implement custom business solutions. The first key enabling technology is of course SharePoint aka Microsoft Office SharePoint Server 2007. I'm not a big fan of SharePoint as a development platform, but as a host for documents and document templates it is unparalleled. By marrying key document templates with a web site you gain the benefit of a web application with a rich client. I'll post more in the future on some of the key enabling technologies which can then be built on this - think about Add-In's and custom message contents but the key is now that we have a solid server combined with a host of new tools the OBA model leveraging VSTO is a very viable solution framework.
Don't think so - well take a close look at Team System. Team Explorer is in part an OBA, yes there is a 'custom' add in for Visual Studio which isn't part of Office - however, I know for a fact that when I start working with tasks, work items, bugs etc. in TFS I do it all with Excel. Why because Team Explorer's custom interface pieces aren't natural to me, but the add-ins for Excel and the way that the forms are hosted on SharePoint and retrieve and update data from SQL Server provide me a user interface which is effective. So when you are thinking about how to engineer that next big smart client application don't discount the value of being able to leverage the Office System as the plumbing for much of what you'll do.
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.