InfoQ

News

C# and VB .NET Libraries to Google, YouTube, Facebook, and other Web 2.0 APIs

Posted by Abel Avram on Apr 03, 2008 05:30 AM

Community
.NET
Topics
Web 2.0
Tags
Visual Basic.NET ,
Web services ,
C#

In a recent post on his blog, Scott Hanselman has compiled a list of .NET libraries useful to interface with some of the Web 2.0 APIs that have proliferated all over the web. He also provides examples on how to access those services. This is an excerpt of his list.

Digg

Digg's API is called REST and uses XML for communication. DiggApiNet is a .NET wrapper for the Digg API. Digg API.NET is another wrapper available on CodeProject. In the following example written by Hanselman, an XmlDocument is created and loaded from a specified URL, then the XML nodes are copied into Digg specific objects.

private const string get_popular = "http://services.digg.com/stories/popular/comments/{0}";

public DiggComments GetPopular()
{
return GetPopular(new Hashtable());
}
public DiggComments GetPopular(Hashtable args)
{
string uri = String.Format(get_popular, HttpBuildUrl(args));
return new DiggComments(Request(uri));
}
public DiggComments(XmlDocument xml_doc) : base(xml_doc, "events")
{
_comments = new List();
if (xml_doc.SelectSingleNode("events") == null
|| xml_doc.SelectSingleNode("events").SelectNodes("comment") == null) {
throw new DiggApiException("XML response appears to be malformed, or contains unexpected data.");
}
foreach (XmlNode node in xml_doc.SelectSingleNode("events").SelectNodes("comment")) {
_comments.Add(new DiggComment(node));
}
}

Facebook

Facebook has developed a complex API, and there is plenty of .NET support for it. CodePlex hosts two related projects: Facebook.NET, which provides a .NET library for use in developing Facebook applications and accessing Facebook APIs, and Facebook Developer Toolkit which was initially developed by Clarity Consulting Inc.. Jay Lagorio has written a Facebook wrapper for VB.NET, and fbasync is a CodePlex project focused on asynchronous API for Facebook. 

Google and YouTube

Google's API, named GData, is a comprehensive set of libraries for communication using XML over HTTP. GData is serving YouTube, Blogger, Google Calendar, Notebook, Spreadsheets, Documents, Picassa, etc. Google has provided a wrapper for .NET developers, so they can read and write GData content quite easily, like in the following example provided by Google in the .NET Developer's Guide:

AtomEntry newPost = new AtomEntry();
newPost.Title.Text = "Marriage!";
newPost.Content = new AtomContent();
newPost.Content.Content = "<div xmlns='http://www.w3.org/1999/xhtml'>" +
"<p>Mr. Darcy has <em>proposed marriage</em> to me!</p>" +
"<p>He is the last man on earth I would ever desire to marry.</p>" +
"<p>Whatever shall I do?</p>" +
"</div>";
newPost.Content.Type = "xhtml";
newPost.Authors.Add(new AtomPerson());
newPost.Authors[0].Name = "Elizabeth Bennet";
newPost.Authors[0].Email = "liz@gmail.com";

AtomEntry createdEntry = service.Insert("http://www.blogger.com/feeds/" + blogId + "/posts/default", newPost);

For more information and many other libraries available for various Web 2.0 services, Scott Hanselman's post is a good starting point.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.