You in fact can use the Facebook C# SDK (http://facebooksdk.codeplex.com) with .Net 35. We actually don't rely on the dynamic keyword internally in the library so we are able to compile it to .net 4.0 and .net 3.5. If you download the latest release you will find builds for .Net 4.0, .Net 4.0 Client Profile, .Net 3.5, .Net 3.5 Client Profile, Silverlight 4, and Windows Phone 7.
While most of the examples on the site show how to use dynamic, you actually can use the objects without the dyanmic keyword. For example:
var app = new FacebookApp();
var result = (IDictionary<string, object>)app.Api("me");
string firstName = (string)result["first_name"];
string lastName = (string)result["last_name"];
The dynamic keyword makes it a bit easier to access the dictionary objects, but it is not required. Let me know if you have any other questions. @ntotten
FYI, I am the creator of the Facebook C# SDK at facebooksdk.codeplex.com.
Additionally, the old Facebook Toolkit has not been updated in many months and is starting to run into trouble with the new facebook authentication systems and apis.
Nikhil's Facebook.Net (facebooknet.codeplex.com) project has not been updated in over 2 years and is definitely NOT compatible with the Graph API or the new OAuth authentication.
Lastly, the 'official' Facebook C# SDK from Facebook is very simple and really only does a few basic things such as make a api call. There is nothing in there for authentication, etc.