Arian Kulp's Blog
opinion, insight, and occasional code

ODC 2008 Impressions

Monday, February 18, 2008 2:43 PM

The Office Developer Conference has a fairly broad focus since you can do so much with the client and server products.  VSTO customizations are definitely where it's at.  VBA's role was relegated to talks on bridging it to VSTO.  Interestingly, VBA isn't going away any time soon.  There is too much of an investment in VBA technology at many companies to just abandon it.  Of course, many companies had classic VB applications that became unsupported with the advent of .NET.  I think that they will deprecate it eventually, or it will morph into a managed scripting environment (Monad? VSA?).  VSTO is awesome, but it lacks the instant gratification of macros.  If they can create managed macro recording, that would be a good start.  It would still be challenging to bridge with legacy VBA, but it should be possible.

Visual Studio continues to make the VSTO/SharePoint experience better.  Visual Studio 2008 Pro now includes VSTO templates and designers instead of requiring a dedicated edition.  This is a must in my mind if Microsoft wants wide-scale adoption of the platform.  You can create templates for document- or system-level customizations, a designer for the new 2007 ribbon toolbar (very slick), and an integrated debugging experience.  SharePoint extensibility still happens through SharePoint designer, though it's the same core IDE.

There's a lot of complexity surrounding SharePoint custom feature deployment.  I've never done this before and I hope I never need to!  There is some support in Visual Studio, but all of the Microsoft presenters discussed third-party or MS-unsupported tools, scripts, and built actions to ease the experience.  It's definitely not as easy as deploying an ASP.NET web site!  Fortunately VSTO client customizations can be done with standard installers.  One nice upgrade with Visual Studio 2008/.NET 3.5 is the ability to deploy VSTO code using ClickOnce.  This should make it a lot easier to keep users up-to-date and simplify the overall install process.

There were a number of talks about WCF (communications), WPF (presentation), and WF (workflow) in the context of Office dev.  In general, there was a big focus on Software as a Service (SaaS).  Keeping your business code separate from its interaction and presentation allows you to do much more with it.  Calling out to a Web service, enforcing a workflow, or providing rich user interfaces is considered more and more standard these days.  There are so many custom ways to do these things, but have them encompassed in the WinFX/.NET 3.5 framework takes away a lot of the heavy lifting.  Of course there's a learning curve as with all new technology, but doing it right the first time is really worth it.  I'm a huge fan of declarative programming and WinFX is really taking big steps to enable this.

Microsoft Office VSTO interop is soon to be considerably simplified with the introduction of Office Interop API Extensions.  These are amazing.  No longer is C# the red-headed stepchild of VB in the Office dev arena (boy, you don't get to say that much!).  It creates extension methods (new to C# 3.0) to reduce the need to specify the ridiculous list of optional parameters and the "ref" keyword.  It allows for a strongly-typed API to write VSTO code.  Still better, it creates a LINQ provider for Outlook!  No more custom DASL queries that don't support parameterization and are fragile as all get out.  No more remembering column names or doing weird cast operations.  It looks amazing and I can't wait to get my hands on it!  At this point it's unsupported, but it's expected to be integrated into the core Office Interop libraries soon.

There was some good talk on SharePoint search, that is, creating custom properties then configuring them as advanced search keywords.  Very handy if you tag a document with a policy number, then you want to find documents for a given policy along with other data (such as coming from the BDC).  Full-text search isn't always the answer.

I attended a great session on Excel user-defined functions running in Excel Services.  This allows you to execute managed code from an Excel document without actually embedding any code in the document itself.  It's a great way to create complex reporting solutions.

All in all, it was a great time.  I learned a lot of new stuff, met some key Microsoft Office folks, and walked away with my mind spinning.  My favorite aspect of conferences is how I always start coming up with ideas that spring from one off-handed comment from a presenter, or I see how a demo could evolve into something truly useful.  I scribble away like mad trying to capture these thoughts and am almost giddy as I try to realize what's possible!

On a final note, I got some exposure to a product to which I've never paid attention: Microsoft Small Business Manager.  As it turns out, this tool has great managed API support and is a perfect vehicle for driving demos.  Query for financial info and create a statement in Excel.  Query for customers and create a letter in Word.  Query for opportunities and create custom entities and forms in Outlook.  Definitely worth keeping in mind for future demos!

Comments have been closed on this topic.