A .Net outlook on extending Outlook

I recently got curious about how easy it is to extend Outlook using .Net.  I currently use one Outlook Add-in, NewsGator, as my blog (RSS feed) aggregator. 

Briefly, I've found two ways you can use .Net to leverage Outlook data: either (1) by talking to Outlook from a standalone .Net Assembly using the Outlook Primary Interoperability Assembly (PIA); or, (2) by creating an Add-In that extends the behavior of Outlook itself (like NewsGator does).  

The process is fairly discoverable, but you’ll want a guide to help you get started.  This document provides an excellent introduction to both of the approaches mentioned above.  The author uses walkthroughs, highlights gotchas, indicates best practices, and includes links.  The sample code worked perfectly with VS2003, but if you’re using the Visual Studio 2005 beta, there is one small tweak required that is resolved by using an explicit cast, as described in this dotnetjunkies post.

(Aside: A third Outlook customization technique involves creating custom Forms within Outlook for viewing Contacts, Appointments, etc., but that’s a little quirkier, and, as far as I can tell, it’s strictly VBScript-based at this point and not .Net-enabled.)