Monday, June 23, 2008

I DID IT!

I've completed the code for my Facebook Developer Toolkit & ASP.NET MVC Preview 3 integration toolkit!

I know that nobody in the world would even read this - yet - but I'm excited about it!

I've made it RIDICULOUSLY easy! I've added support for iFrame & FBML applications and all you have to do is add an ActionFilterAttribute to your Controller Action!

The code looks something like this:


[Facebook.Web.Mvc.InitializeIframeAction]
public ActionResult Index(Facebook.API.FacebookAPI facebookAPI)

After that you have complete access to the FacebookAPI that is part of the Facebook Developer Toolkit (FBDT).

Nick Berardi started trying to do the same thing with the FBDT but realized that they had an inheritance model for getting ASPX pages to work correctly which doesn't work well with microsoft's MVC model . He moved to the Facebook.NET framework because it was more object based. I feel like I've created a better domain model for the FBDT!

note: I was originally going to base my MVC implementation on Castle's Monorail since Microsoft's MVC teams is working with the folks at Castle. I did have some issues with getting both MVC frameworks to work correctly in a shared-hosting environment but ultimately Microsoft's MVC architecture had an easier fix...I get into it more when I write my real article...this is just me being excited that I'm done with my first version and Xodel (my software development company) can release some real software for the first time since I created it!

2 comments:

Kanaka Chalam said...

Hi Peter, I tried using your filter and am facing problems. The filter keeps looping around the facebook addurl and the application, please help

Peter Corcoran said...

kanaka chalam

I ran into this same problem a number of times. You need to be sure you are using the correct application & secret code Facebook gave you. It did tend to bounce when it could not authenticate users, but I had thought I worked those problems out.


Post a code sample for me to take a look at and I'll see if I can't figure it out.

Thanks.