Office 365 – Lync Online: to customize, or not to customize, that is the question
“To be, or not to be: that is the question:
Whether ’tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them?”
Hamlet Act 3 Scene 1
Like the main character Hamlet in the Shakespeare play wondered in this scene whether to continue to exist or not, so too do we as developers sometimes have to wonder whether to integrate with or customize certain applications or leave the standard functionality be.
Maybe I’m being overly dramatic but let us continue… So, what is Lync Online and why should developers care? Essentially think of Microsoft Lync as a combination of Microsoft Live Messenger, Microsoft Live Meeting and Microsoft Office Communicator. It is a next generation cloud communication service that is a hosted version of Microsoft Lync Server 2010.
The user will connect to it using the Microsoft Lync client and will be able to connect to other users using instant messaging, video/audio calls, online meeting, and virtual whiteboards and even screen sharing. If you are already familiar with Microsoft’s Office Communicator and Live Messenger you’ll immediately recognise the user interface of the Lync client as illustrated below:
When it comes to developing for Lync Online you first need to download the Microsoft Lync 2010 SDK. The Lync SDK provides developers with the tools to build custom Lync Clients, automate Lync and customize the standard Lync client as well as a bunch of WPF and Silverlight controls you can use to integrate Lync functionality into your own applications.
Let’s look at some of the controls that come in the SDK.
This control shows your online status, profile picture and your custom message. You do have the option of setting the size of the profile picture or whether to show the profile picture at all. The control re-uses the active Lync connection on the pc and to get the above screenshot I only needed to drag and drop the control on a WPF form.
ScheduleMeeting, SendEmail, SendFile, ShareDesktop, StartVideoCall, StartInstantMessaging and StartAudioCall buttons
The ScheduleMeeting button will launch Outlook and create a new meeting request for the user specified in the controls’ Source property, the SendEmail button creates a new e-mail and auto populates the To field to the selected users’ e-mail address. The SendFile and button launches a new Lync conversation window and opens up a select file dialog where the user can choose which file to send to the user specified in the Source property of the control. The StartVideoCall button launches a new Lync video conversation between the logged in Lync user and the user specified in the controls’ Source property. The StartInstantMessaging button launches an IM conversation window and finally, the StartAudioCall button starts a voice call to the specified user.
The ContactCard control can be used to show both basic or detailed contact and organisation details for Lync contacts. The control can be collapsed or expanded to show more detail. The user is able to start voice calls, IM sessions, app sharing, conference calls or file transfers directly from your applications using this control.
An intriguing feature of Lync is contextual conversations. For example, if you have an e-mail open in Outlook and need to respond to it, but before you do you need some information from your manager on what exactly to say in the mail. Normally, you would either phone your manager or start an instant messaging session and details of the mail would be discussed back and forth without your manager seeing the actual e-mail.
You can start an IM from Outlook and your manager will be prompted to open the e-mail in context. This way he can make changes to the e-mail and it would be automatically reflected on your side.
The best part about contextual conversations is you can embed the same functionality in your own applications. For example a support ticket system where you are able to contextually share tickets with your co-workers via Lync.
These are just a few of the features available to developers and to answer the question asked earlier: Yes! If you’re application requires instant messaging or communication functionality consider integrating and/or customizing Lync.
For more information about Lync, I recommend the following resources:
Thank you for reading. Until next time, keep coding!