.net – Building a collaborative service(presence, chat) in .NET


We are looking to build a .NET based collaborative platform that enables logged in users to detect presence of other members and allow them to share/chat online. Members/Client interface is usually a browser and at times a winforms based application could also be used. System.Net.PeerToPeer namespace appears to address the naming issues with some level of OS independence(with additional updates), however presence and chat infrastructure is not available on all Windows platforms. System.Net.PeerToPeer.Collaboration has OS bindings and user presence cannot be maintained at the server. Also, in the future, its possible that more collaborative services might be required, such as sharing desktops etc.

Are there any .NET libraries that allow such capabilities or a custom solution would be required?

Best Solution

Why dont you use xmpp?

There are .net libraries. Here are few questions from SO

.NET XMPP libraries under Apache, MIT or MS-PL licenses?.NET XMPP libraries under Apache, MIT or MS-PL licenses? (also similar questions)

C# Client to Client Messaging

Good XMPP/Jabber client library for .NET 3.5 (or 4.0)

Check their related questions too.