As Facebook continues to grow at a rapid pace, more and more businesses have been signing on developers to build custom Facebook applications using Facebook's API's so that they can gain exposure to the Facebook masses and the extraordinary amount of personal data that those users have stored within Facebook.
I recently was asked to build a Facebook application for a project. Naturally, I wanted to find a nice solution that would work with my technology set, mainly ASP.NET, not Facebook's standard language: PHP. I even considered building the app using Silverlight, but decided against it since Silverlight is still so new and hasn't been installed yet by so many users. Since we're in the .NET 3.5 era, I decided to go with ASP.NET MVC rather than the standard web forms version of ASP.NET.
The first thing to do is to find a .NET Facebook framework. Like most people, when I first started searching around, I found two choices: Facebook.NET and the Facebook Developer Toolkit.
The Facebook Developer Toolkit is probably the more popular of the two but it has some shortcomings. From my reading, I got the overwhelming impression that the code base was poorly written by the creator, Clarity Consulting. Furthermore, there is no built-in support for ASP.NET MVC so you have to figure out how to make them mesh yourself. Lastly, many of the methods aren't up to date to match the Facebook API methods so you're on your own to update them manually. The Facebook API's change frequently so it's very hard for a .NET Facebook Famework to keep up with those changes, and the FDT doesn't seem to do too good a job of that.
Facebook.NET was written by a well-respected MSFT employee, Nikhil Kothari, and thus, the code base is nice and clean. It provides for much more flexibility than the FDT, hence it'd be easier to make it work with ASP.NET MVC. However, Nikhil seems to have ditched the project, so it hasn't been updated in a couple of years. That means that its methods no longer match the Facebook API methods.
I wasn't satisfied with either of these solutions so I kept looking and was extremely happy when I found a new project called the .NET Facebook API Client, which is still in Alpha. This project is specifically designed for ASP.NET MVC and provides a Visual Studio 2008 template that sets everything up for you, such as Facebook authentication and using Facebook Connect. The code is nice and clean and is provided to you so that if you run into bugs (since it's an Alpha release), you can modify the code yourself to get it working. Here's the best part - they built a tool that will automatically update the methods when the Facebook API methods change, so it will always match the Facebook API, something that is sorely missing from the big two that I mentioned above.
With the .NET Facebook API Client, I was able to build my first ASP.NET MVC Facebook application without running into too many issues. You can find the link to the app below, which has you enter in your email address, mobile #, and carrier, and then lets you pick your favorite sports teams. It will send you a text message at the end of each game for the teams you picked with the final scores.
http://apps.facebook.com/sportsalert/