That was then, this is NOW

If you haven't looked into the latest version of Office, then you'll be quite surprised. It's a rock solid platform based on common technologies, it has tools for all skill levels and integrates across Office 2007's more than 30 clients, servers and services.

The Truth: Development on previous versions of Office was pretty darn awful...I'm not going to lie to you.

So why is Office 2007 a better platform?

Example #1: Custom Task Panes 

In previous versions, custom task panes could only reside in one application space. If you created a custom task pane, then as soon as another task pane would get triggered, it would hide your task pane. Also, since all task panes lived in the same application space, if one crashed, they would all crash. Now that's frustrating. There was also a lot of work required to connect the custom control to the Office application.

 With Office 2007, this has all changed. We now have multiple application spaces and each task pane has its own so they no longer affect one another. If you wanted to, you could even make enough custom task panes to span all across the document! Although I don't think you would really want to do that, I'm pretty sure no user would like it :). With Visual Studio 2005 Tools for the 2007 Microsoft Office System Second Edition (VSTO SE), it's easy to convert your custom control to a task pane. VSTO SE takes care of all the plumbing so that you can actually focus on writing that critical code.

Example #2: Custom Web Parts

Even though SharePoint 2003 was built on ASP.NET 1.0 technology, creating custom web parts was not. SharePoint 2003 had something called the "SharePoint Web Part Framework" which you would need to use to build web parts. It was a completely separate framework from ASP.NET, with its own methods, properties, storage, etc. Development was pretty darn for adding SafeControls was all notepad based and debugging was difficult to setup. Not fun.

Windows SharePoint Services 3.0 and Microsoft Office Servers 2007 are now all based on ASP.NET 2.0 and Microsoft provides Web Parts as part of the ASP.NET 2.0 framework. This means that any .NET developer can develop, deploy and debug web parts with ease. Visual Studio extensions for WSS 3.0 makes this even easier by doing all the plumbing for you. Now THAT'S a solution!

Example #3: Custom UI

 Add-ins were ususally hidden beneath levels and levels of bloated menus making the discoverability of your add-in a very small possibility. Developers didn't want to have add-ins which were hidden under the increasing complexity of previous versions of Office. We went from 2 toolbars in Word 1.0 to 31 in Word 2003 along with 19 task panes, multiple contextual menus, etc. It was crazy! In addition, the object model was not shared so if you wanted to customize the Word UI, you would need to re-write your code if you wanted to put it in PowerPoint.

Our whole goal in re-creating the UI for Office 2007 was "discoverability". With the new Ribbon in Office 2007, you get prime real estate to showcase your add-in. With the changes made in custom task panes, you can create whatever you want on that control, your entire business solution and tie that into the discoverability of the ribbon.

Check out the Developer portion of Jensen Harris' blog. He's the UI man for Office 2007.

I'm in Barcelona this week at the TechEd EMEA Developer Forum talking about how to start building solutions on Office 2007. When I get back I'll post the code to my demo and add some other cool resources.