tags:

views:

368

answers:

11

Hello. A friend wants to start a dating website, she wants me to help her. We still haven't discussed on what platform it'll be developed, but I'm thinking she'll suggest LAMP to save a buck (which is one reason already to chose over ASP.NET already). If the dating website does well, it'll potentially hold a large amount of data (I'm not sure if this would be another reason to consider either ASP.NET or LAMP).

Anyway, I ask this from an ASP.NET developer point of view. I have very little, almost null experience with LAMP, and I don't like it very much either, so if she decides to go with PHP odds are I won't help her. So what would be some good points to bring up when deciding which platform to develop on?

Please be objective, I don't want this to be argumentative or anything, try to stick to facts, not opinions alone.

Thanks!

+5  A: 

If LAMP makes you queasy, you can try ASP.NET over Mono.

IMO the only good reason to move away from a programming environment that you are already experienced with is the one you already mentioned: cost.

You would use LAMP specifically to build appliances. If you're not building appliances, the software cost for ONE server is marginal, and is not worth the tradeoff for moving to a totally different development environment, IMO.

Robert Harvey
I'll seriously consider this if she sticks to PHP. But first I want some good arguments to steer her away from that, but only if ASP.NET is really better for this type of website.
Carlo
You're best argument is that, if she stays with ASP.NET, she can get your help. That's worth more than the cost of a single ASP.NET server.
Robert Harvey
I can't think of any technical reasons why LAMP is out. There are many perfectly good, functional websites built with LAMP.
Robert Harvey
+5  A: 

What generally matter in that kind of choice is :

  • How much time will it require ?
  • How much money will it cost
    • Which is often linked to the time ^^


If you have a lot of experience with .NET and none with Linux/Apache/PHP/MySQL, choosing LAMP will mean that you'll need much more time : a whole lot of new stuff to learn.

It'll also mean that your code will probably not be as good as it would be with what you know.


After, the question is : do a couple of week "cost" more than a few licences ?

Only you and her can decide, there ;-)

Pascal MARTIN
So no technical differences? As for processing speed, data management / maintainability, memory in the server, user management, scaling, etc.?
Carlo
As the software are not exactly the same, of course, you'll get some differences -- but none that should matter that much, I'd say : both LAMP and .NET are some solid/performant/scalable/maintainable platforms, used by many big websites ;;; in my opinion, what matters the most is : *which one of those can you develop for ? Which one can your administer ? Which one will you be able to mainain ?*
Pascal MARTIN
I always thought there were significant technical differences when it came to handling really large amounts of data, but apparently the workforce (or time, which equals money) and to some degree preference, are the two arguments that really drive this decision. I have good arguments for her now. Thanks!
Carlo
You're welcome :-) Have fun !
Pascal MARTIN
@Carlo - what matters most for handling large amounts of data is your database platform. I have a personal opinion on the capabilities of the proposed platforms, but the main thing is that either php or asp.net will talk happily to both sql server and mysql and your ability to administer, tune, and design the DB will likely matter more than the raw capabilities.
Joel Coehoorn
@Joel Coehoorn: Ah thanks for pointing that out, I was being completely oblivious about the fact that ASP.NET can connect to different database platforms.
Carlo
A: 

LAMP is only cheaper until you read the fine print. It's not better or worse technically, just different.

The WebsiteSpark/BizSpark programs will get you all the Microsoft software you need to get started, free for three years. If price is her driving concern, point her to those programs if she's willing to consider the ASP.NET platform.

Hosting will cost a fair amount either way, because for a full-service website you don't want to go shared. You'll need at least one dedicated server to support a dating site. The OS and database will be free either way if you go with one of the *Spark programs I mentioned.

Dave Swersky
You can easily start on a shared hosting environment. You'll just have to keep an eye on performance/stability and maybe move to dedicated servers if you have to scale up.
Techpriester
A: 

As a small startup company you can get a free 3-year MSDN subscription (well, you have to pay $100 at the end of the 3 years). If you think .Net will be more efficient and this website will make money, seriously consider BizSpark.

Eric J.
-1 Not on topic.
Maciej
@Maciej: Yes, it is on topic. The question states in part "I'm thinking she'll suggest LAMP to save a buck". My response dispels the incorrect assumption in the question that .Net is more expensive for a startup company and could be a key factor in the OP's decision.
Eric J.
@Maciej: I agree with Eric J., this could be a good argument to throw at her when we discuss the platform.
Carlo
+1  A: 

I think the first question is: Which is the target programming language and environment that you have experience with?

Imagine the site will become a success - how do you scale then? LAMP can scale, and so can WISC, but in both scenarios you need people who actually know the environment and who can secure it. If you don't know Linux and MySQL and PHP, how are you going to scale and secure it?

So even though LAMP may be significantly cheaper (The SQL Server license is the heavy part in the WISC stack), after the first hacker attack or downtime, that initial savings may seem marginal compared to the damage.

The other thing is of course the PHP vs. ASP.net/C# decision. If you don't know PHP, then it's a decision of "Not having the application at all" and "Having the application on an expensive stack", unless your partner of course decides to hire someone else to develop that.

Technically, both have their pros and cons, but there are huge websites built on both stacks, so it really boils down to "Which platform can you reliably/comfortably setup and maintain?"

Michael Stum
Now that you mention the hacker attack. Is it a fact that LAMP is more prone to these than ASP.NET, or just easier to hack?
Carlo
@Carlo: Both are equally vulnerable if setup by someone with no clue and equally secure if setup by an expert. Linux and Windows both have holes here and there, and so do Apache and IIS. As said, there are huge sites on both stacks and while there are differences, overall the pros and cons roughly equal each other. Usually when you see news like "Website X hacked", it's often (generalization!) a SQL Injection attack caused by an inexperienced developer who is not using parameterized queries and does not sanitize user input, aka. building "WHERE Something LIKE %'.$_GET["Filter"].'%;" queries.
Michael Stum
The most security risks come from poor programming and not from the stack under your application. You can expect a good level of security from both stacks. I'd feel safer with LAMP but that could be subjective ...
Techpriester
Such a query will also hurt you in a WISC stack, although (generalization again!) the usage of Parameterized Queries seems a lot more widespread among .NET developers than PHP ones, possibly also because most still seem to use the old mysql interface which doesn't support parameters but is a lot simpler to use than the mysqli one which does support parameters (see MySQLi_STMT). Most (third generalization!) PHP Tutorials still seem to include SQL Injections while most ADO.net Tutorials use parameters. As said, a lot of generalizations, the bottom line is: A bad programmer can break everything
Michael Stum
+1  A: 

I agree with Pascal. Go with what you feel comfortable with in completing the project and don't forget that YOUR TIME EQUALS MONEY. You have to put a $$ value on your time. LAMP may be cheaper up front but if it winds up taking 1000 extra manhours, then suddenly it's more expensive.

Also take into account the lost opportunity cost in not being able to bring something to market b/c you chose a technology you were not familiar with.

At the end, if the plans are for this to be a business that is successful, the cost of using ASP.NET should be negligible or else I would question the seriousness of the effort.

Cody C
+1  A: 

One argument for the Apache/MySQL/PHP stack is that it's available on most major platforms (Windows/Linux/Mac/BSD/...) and most webhosters provide it as well. You also find many (as in "huge amounts") of good tutorials, books and other educational stuff about PHP/MySQL.

Apart from that all tools used in the LAMP stack are free (as in "free speech" and also as in "free beer"). ASP.NET is still a proprietary technology owned by Microsoft. I'm not a huge open source fan, but knowing that your tools will remain free to use in any way you want is quite nice.

Of course, if you have no experience with PHP at all and much exp. with ASP.NET it's easier for you to stick with ASP.

Techpriester
+1  A: 

If your comfortable with Microsoft products there's nothing to stop you from developing code in .NET and using a free database (however you may need to find/develop a custom database adapter if you are not using free versions of SQL server or Oracle). If you are generating a lot of traffic you can swap out the data layer of your code and invest in a better performing database.

Time costs money and if you can develop a better product both from a user and maintenance/performance perspective it will serve you better in the long run.

Some hosting companies include the OS and flexible contracts so I would make fit from your prespective. The market's pretty competitve for that type of site and there's no point throwing a lot of money at it until you get some useful metrics for your site IMO.

smithy
+1  A: 

The short answer is: it doesn't matter, unless the site is going to do something so amazingly different that one technology is obviously better suited. And I can't think of anything like that off the top of my head.

A big red flag is: if your friend is concerned about the extra $5/month for asp.net hosting instead of LAMP hosting, then you're probably not going to get paid. Ever.

Caveats aside, be realistic: what is the immediate goal? To get something working, or to design something on the scale of plentyoffish.com or facebook.com? [Facebook.com has about 44,000 servers at the moment]

So, what are the chances of your friend's dating web site exploding to the size where scaling is a concern? For most sites, the answer is "very close to zero" - because of the marketing effort required to drive that much traffic.

Now, what is the revenue stream? Is there any expectation that you will get paid to do this? Do you think the site will be profitable? Is the project fully funded?

Friendship is great, but don't let that keep you from asking the appropriate business and client-relationship questions. One sure way to ruin a friendship is to do some work for free and/or without thinking through the full extent of the project. Far too often, you think it is a one-time favor, while they think it is your job!

Steven A. Lowe
Haha of course I will get paid, and if I don't I'll stop working! But thanks for pointing it out. I can't say I haven't been in that situation before "working as a favor", it almost never works out well. Thanks for the realistic answer.
Carlo
A: 

Since you are looking for dating site, check out Markus Frind of plentyoffish.com he is running the largest dating site on .net platform with asp.net and sql.

Vijay
Thanks for the tip. I'll check those out.
Carlo