Really huge Facebook Application - What is the best solution??

May 8, 2010 at 1:05 AM

Hey,

I have an idea for a really huge facebook application- the application itself is simple (more or less...), but it's deal with LOTS of data.

 

1 - Now I need to choose the perfect solution for this project and plan the architecture.

I think about a combination of .net Web Service (which is the back-end of the application, handles the data requests) and Flash (a presentation layer which communicate with the service).

What's your opinion about it?  Is the Facebook .net library stable enough to deal with this kind of facebook applications?

If you have any recommendations to start with, I'll glad to hear them.

 

2 - The second question is about the servers- Cloud? VPS? what do you think? any recommendations?

 

 

Thanks a lot!

 

Lidan.

May 8, 2010 at 9:01 AM
Hi Lidan, I think the .NET is not a perferct solution if you have to deploy your solutions into the cloud. Windows based deployment have several disadvantages: - Windows based cloud services are more expensive (25-30% vs linux deployments). - Most cloud service providers and monitoring services supports Windows only in beta (it's the situation for Rackspace and RightScale we contacted with). Mono doesn't fully supported by the existing API so I think it's the major risk for the .NET platform. Thanks, Dmitry.
May 8, 2010 at 12:35 PM

Lidanh,
if you are already familiar with .NET then go ahead with it. For cloud hosting you should consider windows azure. Works really well. I have an app that uses FDT, silverlight and is hosted on Windows Azure.

Good luck!

May 8, 2010 at 12:55 PM

Thanks!!!

SantiagoIT, I'm a .net programmer.  I can be sure that facebook .net library is stable enough to deal with this large-scale-project and start to plan the application architecture on .net, or I need to start learning php instead of? :\

 

What about the combination of .net Web service as an application-back-end and Flash as a presentation layer? is it the best solution?

 

If you have any more recommendations, please let me know it's very important for me.

 

Lidan.

May 9, 2010 at 6:11 AM

I guess Steve thinks otherwise ;)

To answer your question(s): It depends. What do you want to achieve? Who is your audience?...

If you need something for the masses the front end inevitably needs to be a combination of JavaScript/HTML. If you need something that is more like a business app kind of solution then you should use Silverlight.  

.Net has the advantage that the development tools are much more sophisticated, the rate of errors is much lower and productivity is higher, BUT only after you have enough proficiency in it. So if you have enough resources I would go for .Net as the backend, otherwise I would look into something like Ruby or even Python (despite it's shortcomings).

For backend dataservices check out odata.org. That's the way to go. And it can be set up in a matter of days using the Microsoft Stack.

Regarding this library, well there is the REST API and there is Open Graph....

And to answer the cloud question: IMHO it is the way to go, We are very satisfied with Rackspace (although they don't support .Net 4 yet on there Cloud Sites Product, which means that we have to have virtual servers there as well) and Azure (They of course have the pricing issue for low usage roles). If you need to process huge amounts of data then you have to do serious calculations before deciding which route to take, as SQL Server access is expensive and you might want to look into NoSQL solutions (maybe you can model most of your data requirements using MapReduce?)

Martin

 

May 9, 2010 at 4:17 PM

Listen to the .NET Rocks show where they interviewed jimzim about scaling the Outback Steakhouse FB app built on Azure and this toolkit.  http://www.dotnetrocks.com/default.aspx?showNum=540