This week, Seesmic announced a new Seesmic Desktop platform. They finally revealed more details to the public and released developer previews of their shell, SDK and some sample plugins. You can get them on the Seesmic Developer Wiki.
The best part? It’s built on Silverlight 4 and the Managed Extensibility Framework (MEF)! This is awesome news for those of us who have been using various clients that have been locked down to specific use scenarios. There always is a few things I want/need/etc in software and it’s great now that (at least in this space) I can change things I don’t like.
That’s right, Seesmic Desktop is moving more toward a “shell” concept (my words, not theirs) where they provide some defaults but also extensibility points for anyone to replace and/or extend. Don’t like the way they implemented Twitter? Fine, change it (or search for a better plugin).
This is a great way to get started with MEF as well. Seesmic Desktop 2 gives you an implementation of extensibility points and you just have to implement them, mark as the right Export/Imports and watch how ‘it just works.’ There were two plugins that I wanted to create right away, so here they are in my own personal ‘works on my machine’ release band.
One of the things I’ve found in using Twitter and Facebook is that when you start searching for things you notice that you find interesting information but it might not be in your native language. Recently I’ve been playing around with Microsoft Translator, which had an updated release at MIX10. As a frequenter of Twitter, I often just ignored the non-English information as I simply couldn’t read it and didn’t have a ready way at my fingertips to translate it.
My first plugin is my Translator for Seesmic powered by the Microsoft Translator engine. Simply drop this XAP in the plugins directory for Seesmic Desktop 2 and you’ll see new action options in the menu area of any timeline item:
Click this and it will translate the text to the current culture setting of your desktop (i.e., the intention is that your desktop is likely set to your preferred language). Here’s a video of it in action:
This is an example of a TimelineItemAction plugin that is global combined with a dynamic adding of a TimelineAttachment (the translation control).
I’ve been using Foursquare a lot lately. Why? I have no idea. Fun I suppose. If my political ambitions don’t work out in real life, I always know that I can be Mayor of Yogurt Jungle. Anyway, when in Twitter, Facebook, whatever people can ‘check-in’ to Foursquare and announce their location. This posts a note like I’m at Yogurt Jungle http://4sq.com/XXXX where the short URL points to the venue where you can get details. I wanted to be able in my app to see the venue details without having to visit the site. Luckily Foursquare has a public API. With that I can integrate ‘expanding’ their short URLs into Seesmic Desktop 2.
See the plugin notices when a Foursquare venue was mentioned (based on the short URL) and gives you the option to view more details (this is called an attachment in Seesmic Desktop Platform). Once clicking on it, it will expand to show the details (with a clickable title to the further venue details if you want) and an embedded map showing the location. Pretty cool? Maybe not to you, but I’m having fun finishing it. This is an example of a timeline Processor plugin with an attachment in the plaform.
Summary and test my plugins
As a Microsoft/.NET/Silverlight developer, extending the Seesmic Desktop Platform is easy. I’m familiar with everything I need to do, and just needed to familiarize myself with the extension points of the platform. MEF makes it easy to focus on what I want to do in my plugin and let the platform worry about loading things up, managing lifecycle, etc. I look forward to extending the platform for my needs more (and sharing what I’ve created for others). I’ve always extended things for my own use (creating 3 plugin extensions for Live Writer to meet my needs) and this is not different. I hope others can share their extensions as well!
The Foursquare plugin has a bunch of bugs I’m trying to work out right now so I don’t consider it stable to share just yet. The translator one is ready for testing. I’ve listed them on a page I’ll maintain my other contributions until Seesmic has a better distribution method. Visit my Seesmic Desktop Plugins page for more info. Be sure to subscribe to my feed for updates on Silverlight and my contributions!