Monday, 12 March 2012

MetroYam–a .NET Yammer client (or three)

I first came across Yammer via Rob Farley when I was working at LobsterPot Solutions. Imagine Twitter and Facebook morphed together, but just for a single organisation instead of publishing your thoughts for all the world (or your friends) to see. Yammer knows what information to show you because it's based around your email address – so for example everyone who has a @gardiner.net.au email address would be able to collaborate on Yammer together, without worrying that their posts would be seen by non @gardiner.net.au users.

It's quite a useful platform for sharing resources and information amongst colleagues, and a useful adjunct to other communication methods (face to face, phone, email, IM). The basic offering is free, but if you want to have more administrative control you pay for the privilege.

Access is via their website, but they also provide a number of platform-specific clients too. Unfortunately the Windows client isn't the greatest. I've had problems where it wouldn't auto-update, and the current version doesn't seem to have working notifications. It also uses Adobe AIR, which is just one more think to keep patched. It's enough to make you want to write a decent client and maybe learn a few things along the way – queue 'MetroYam' – my name for a Yammer client built on .NET.

My plans are to build a number of clients:

  • a WPF-based Windows desktop application
  • a Metro-style app for Windows 8 (WinRT)
  • a Windows Phone app

It will be interesting to see how much code I can share and reuse between the 3 different platforms.

The inspiration for the user interface I plan to build is MetroTwit (my Twitter client of choice) – a great example of the Metro design that Microsoft are building into Windows 8.

Screenshot of MetroTwit

It won't be a carbon-copy but they've got some good ideas worth emulating.

Resources

Yammer API

Lucky for me, Yammer have a REST API that they provide for things just like this. It uses OAuth for authentication and JSON.

Caliburn Micro

I plan to use Caliburn Micro for all three clients. I've used CM before, for my 'Aussie Toilets' Windows Phone app, so this will be a chance to explore it's support for WPF and WinRT.

RestSharp

For the WPF and Windows Phone clients, I'm going to make use of the RestSharp library to access the Yammer API as it provides support for JSON as well as OAuth. RestSharp doesn't support support WinRT, so I'll need to take a different approach there.

Visual Studio 2010 + 2012 beta

And finally it's happened! You can open solutions and projects in 2012 not be restricted from still using them in 2010. I'll need to use VS 2012 to build the WinRT projects, but I'll also need to still use VS2010 to build the phone app (as the 2012 beta doesn't come with Windows Phone support yet).

3 comments:

Unknown said...

How far have you got with this? We use Yammer and I would be interested in using an alternate client.

Unknown said...

How far have you got with this? I'd be interested in using your alternative client.

Anonymous said...

Hey i am not able to get a token for auth 2.0. Can you please help me?