Facebook is probably one of the (if not the) fastest growing social networking site's out there, with millions of users around the world. Microsoft and Facebook recently announced a partnership allowing end user's to program against there API using managed languages. The library is available here : http://www.microsoft.com/downloads/details.aspx?FamilyId=CCD46762-45EC-4FBE-AD91-FC916671E734&displaylang=en&clcid=0x409.
The API allows a developer to access information about a persons friends, groups, and other info. However while the normal Facebook web UI allows a person to drill through a friends, friends you cannot through the API. This really limits what you can use it for.
After installing the component, you simply reference it into your assembly, and create a new instance using the following:
Facebook.Components.FacebookService service = new Facebook.Components.FacebookService();
service.ApplicationKey = "<removed, get your own from facebook.com";
service.IsDesktopApplication = true;
service.Secret = "<removed, get your own from facebook.com>";
The first time you call a function such as .GetFriends() the following window will appear asking the user to login to facebook:

If you want to get a list of the user's friends, and output them, you can use the following:
var friends = service.GetFriends());
foreach (Facebook.User u in friends)
Console.Writeline(u.Name);
Just as an example, I have written one actual application using it, a XAML window using infragistics carousel window panel (I would post the source but it uses an infragistics control):

It’s reasonably cool if you’re really into Facebook, but the limitations in the information the UI can access, coupled with bizarre bugs, and the awkward authentication process make it almost not practical to use. But defiantly worth checking out.