If you haven't seen Tafiti Visual Search, wander on over to CodePlex and check it out. Kevin Marshall and I contributed to the project by extending Tafiti to search against SharePoint. The Windows Live team recently made significant updates to the Tafiti project, and we just checked in a change set with the updated SharePoint search code. You can download the change set and configure it to search against your SharePoint portal.
The Microsoft Office Communicator 2007 SDK allows you to automate a running instance of Office Communicator 2007 to integrate Communicator functionality into your applications.
There are a bunch of other SDKs that the Unified Communication team puts out. The difference between them can get confusing, let's clear some things up for this specific SDK.
- You need to have Office Communicator 2007 installed and running
- The SDK works by automating functions of Communicator, e.g. when you start an IM conversation through code, a Communicator window actually launches
Check out the "what others are downloading" section of the download link above for links to some of the other SDKs.
The SDK comes with a help collection, but no sample applications. There are some good snippets of code in there, but it's pretty dry reading.
I put together a sample WinForms application that showcases some of the functionality that the SDK provides, it beats reading the help file to figure out what the difference between the IMessenger, IMessenger2, and IMessenger3 interfaces is.
The Visual Studio 2008 project includes some presence controls which you can download separately if you'd like.
I've worked on a couple of projects that involved using this SDK, here are some useful tips from stuff I've come across:
- Communicator allows you to add distribution lists as contacts, e.g. I add the Clarity "All Employees" group and automatically get everyone in Clarity on my buddy list. If you do this, you don't get the individual members of the group as contacts - they won't be in Messenger.MyContacts
- Clean up after yourself. This a COM automation API, use Marshal.ReleaseComObject to properly dispose of Communicator objects
- Various interfaces inherit from each other to provide more functionality, e.g. IMessenger3 inherits from IMessenger2 which inherits from IMessenger1
For a while now, I've been looking for a solution to sync my Google Calendar with Outlook. My wife and I have a Google Calendar on which we have "family events", she subscribes to it from iCal on her MacBook, and I subscribe to it from within Outlook and overlay it on top of my main calendar.
The only problem for me with this setup is that I don't get the items from the Google Calendar in my Outlook Calendar. I don't get reminders for them, and can't see them on my smart phone.
There's a few tools out there that do this, but after reading Jeff Atwood's post - A Question of Programming Ethics - about some unscrupulous applications, I'm hesitant to fork out my username and password to anybody.
Google recently released Google Calendar Sync to provide two-way or one-way sync between Outlook and Google Calendar and vice versa.
Configuration
Once installed, GCS puts an icon in your system tray which you can use to configure it.
One-way Sync from Google Calendar to Outlook
I was specifically interested in one-way sync from Google Calendar to Outlook, and set it to sync every 60 minutes (probably overkill).
The one-way sync works pretty well, but I found an annoying side-effect. Every time GSC performs a sync, I find a bunch of empty meeting requests in my Deleted Items folder in Outlook. They are all dated 12/31/1979 and are scheduled with random people from my company's Global Address Book.
Wonder what these are all for and why GSC is reaching into my Global Address Book ...
One-way Sync from Outlook to Google Calendar
Uneventful, same thing with the phantom meeting requests in the Deleted Items folder though. One of my colleagues mentioned that not all of his meeting requests in Outlook were being copied over to Google Calendar - I didn't verify this (too much crap in my Calendar to go through it one item at a time).
Two-way Sync
Nothing profound to add here.
Verdict
Google Calendar does a great job of inheriting the properties of Outlook meetings, e.g. the attendee list and each individual's status, your response to the meeting request, and the text of the meeting. It even puts a handy "maps" link to map whatever is in the Location field of the meeting request.
You might cause some confusion if you edit an Outlook meeting from Google Calendar, you probably should only edit meeting requests that originate in Outlook within Outlook itself.
Other than the strange issue with the meeting requests in the Deleted Items folder in Outlook, I have no complaints. I hope to see the issue resolved in future releases, I've come across some annoyed mentions of it on the web.
I would also like to see Google consolidate what it puts in the System Tray, there's no reason this can't be a part of the Gmail Notifier for example.
Update (03/31/2008)
I downloaded an update and it seems to have fixed the issue with the Calendar items in the Outlook Deleted Items folder.
Craig Shoemaker, my good friend and former co-worker, recently joined Infragistics as a new media evangelist. Today, he launched a new video podcast series called pixel8 which is going to focus on the convergence of user experience development with traditional software development.
The days of graphic designers mocking up pretty stuff in PhotoShop and tossing it over the fence are numbered! New technologies such as WPF and Silverlight are forcing UX and traditional developers to work together more closely than ever.
Craig's already got a few great shows lined up with Scott Guthrie, Josh Smith, and other new media ninjas - be sure to check it out.