Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I work at a Microsoft shop doing mainly web development.

We had a client who asked us to review (improve) the data model for his web app, but said that he wants to develop his app in PHP (he knows "a guy" who can do it).

When I asked him why he wants to go with PHP, he gave me the standard set of arguments from the 90's:

  1. Microsoft is evil, and PHP is free
  2. Writing an ASP.NET app is more expensive (software-wise)
  3. Why would Facebook use PHP if it was a bad idea? [classic]

He had a few more comments about the costs associated with going .NET.

The truth is that "Microsoft is expensive" does not hold water any longer, with their "Express" suite, you can develop an ASP.NET app without paying anything for software.

When it comes to hosting, you can save a few bucks with PHP over .NET, but that's a small fraction of the projected development costs (we quoted 10-15k).

Going back to my question, what arguments would I give to a client in favor of ASP.NET over PHP? [please provide sources for quantitative claims]

share|improve this question

closed as too broad by gnat, Bart van Ingen Schenau, GlenH7, MichaelT, Konrad Morawski Apr 5 at 21:35

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

21  
I wouldn't argue ASP.NET over PHP unless they had existing systems in MS technology they needed to interface with. –  Josh K Jul 28 '11 at 18:10
8  
show him intellisense! –  CamelBlues Jul 28 '11 at 19:26
8  
then tell him to have his "guy" do it –  Jim Jul 28 '11 at 20:21
6  
The "Microsoft is expensive" issue comes into play more in the OS and database server areas, rather than the dev tools. –  Chris Farmer Jul 28 '11 at 23:52
2  
There's always Linux+Mono for ASP.NET, though I don't know what's its current status. –  luiscubal Jul 29 '11 at 0:55

10 Answers 10

up vote 99 down vote accepted

Just Tell him the truth.. You are not a PHP shop. (That's reason enough why YOU can't do it in PHP)

This is the price you are quoting for .Net. If he can beat that elsewhere, so be it.

It's a horrible sales tactic to knock down your competition based on the platform used. (Even if it has a lot of weight in the clients mind)

Sell yourself, Sell your Strengths, admit where you lack expertise. You will win the job on your merits.

"We can build great Websites, look at our portfolio, Look at our track record, check our references. We can do what you asking and we can do it at a fair & competitive price, But we can't do it in PHP."

share|improve this answer
3  
But I don't think it's really about the relative merits of PHP. I think it's really about hiring "a guy." Who almost certainly doesn't charge $10,000 (since after all, he's not a business with actual expenses, he's "a guy.") Yes, I've been through this before. –  Scott Wilson Jul 28 '11 at 18:45
3  
I agree with this. Although PHP is a popular technology, with my current experience it would take me about 3 times as long to build a website in PHP that it would for me to do it in ASP. You could do it in PHP, but it would take longer, be more bug prone, and would be harder to update because your an ASP guy. –  Kratz Jul 28 '11 at 20:22
    
That's exactly what I was thinking when I saw this question. You obviously want to try to steer a client toward what you know. There's no use in pitching the ASP.NET, they both have their usefulness, and now both can be used in enterprise development. I feel most comfortable in .NET, but I do whatever a client wants. –  stephenbayer Jul 30 '11 at 18:20

You're probably wasting your time. If the prospect is considering a $10-15K job and having difficulty choosing between a professional firm versus "a guy," he probably doesn't actually have $10-15K. (If he was considering retaining your professional services firm using ASP and another professional services firm using PHP, it would be a different story.)

share|improve this answer
3  
Having worked in a small job shop, there is much truth in this. –  Anthony Pegram Jul 28 '11 at 18:38
9  
The only thing more annoying than "a guy" is "my neighbor's kid," who also does websites. I like to ask if the kid has taken an accounting class - perhaps he could do their taxes too! –  Scott Wilson Jul 28 '11 at 18:42
9  
This is basically it. When a "client" says "I know a guy.." what he really means is "My cousin/neighbor's kid/drinking buddy from college/guy I met playing golf/dog knows PHP and will do it for a few hundred bucks/a case of beer/a Klondike bar/snausages." It's best to walk away from people like that, you probably do not want them as clients. –  Wayne M Jul 28 '11 at 20:04
1  
If client makes reference to "my neighbor's kid" they probably don't need nor expect a $10 - 15k web site. –  The Muffin Man Jul 28 '11 at 23:50
    
@Nice: I once did a nixer for a guy who constantly questioned estimates etc because his nephew "knew computers too", and he'd read some of his "Learn VB in 24 hours" book. He paid well but Jebus he was so freaking annoying, the job cost him more than €15k. Unfortunately those gimps are out there. P.S. I suppose I was the guy :) –  Binary Worrier Sep 5 '11 at 8:28

I agree with the "because you're an asp.net shop" and "(a guy) == red flag" comments, but I have a few things to add, some for and some against asp.net. Note that I am a current MS ASP.Net MVP, so I may have a bias here:

  • He's using stand-outs like Facebook as an example of typical PHP results. The reality is that the highly-available nature of PHP means there are a lot of substandard PHP devs running around. The stand-out is far removed from the typical, in this instance. Effectively, PHP is the new VB.

  • He's also equating millions of dollars of investment in code and design done by facebook with what he can expect from his "guy". Apples and Oranges here. If you put enough money and time into it, you could run facebook on COBOL and Paradox. This is neither for ASP.Net nor against PHP. It's on you to make sure he appreciates what it is he's buying: programmer time. And maybe a certain level of professionalism that you can offer him and the PHP guy might not.

  • You mentioned a cost parity in developer tools. At best you're saying, "Hire us because we're not much worse." Really, this means nothing to him at all. He doesn't care about tooling cost. All he sees is a bid cost and an operating cost, and here the marginally higher operating (hosting) cost can hurt you. It's not much, but it's not zero. If he's suggesting you might be able to lower your bid by switching to PHP, he's misguided.

  • The "php guy" is probably not planning to build a site from scratch, and maybe you shouldn't either. It's much more likely he's thinking he'll drop in a joomla install with a nice pre-existing template to get him mostly there, and walk away with all the money for hardly any work. Sometimes this is a scam, and the delivered product is not good. Sometimes there is some real value here... if he really knows the product, the site is a good fit for the CMS, and he takes the time to deliver a polished result, there's nothing wrong with it. Make sure you're not overlooking the option to use a nice .Net-based CMS as a starting point and perhaps improve your bid this way.

share|improve this answer

You are also wrong. Asp.Net isn't "better" to everyone and therefore is not better. I am a C#/ASP.Net dev and have been for 10 years. I have also done professional PHP sites as well as made apps in Javascript, Ruby and Objective-C.
None of these are strictly "better" than the others. They all fill a need and possibly PHP fits your clients needs perfectly.

share|improve this answer
13  
Where did the OP say, or even imply, that Asp.Net is "better"? –  qes Jul 28 '11 at 21:40
1  
I think robust is a better word than better. –  The Muffin Man Jul 28 '11 at 23:53
    
@qes: by trying to convince someone to do A rather than B, that clearly implies that you think that A is a better option. –  nickf Jul 29 '11 at 8:13
3  
@nickf: in a particular scenario - that is, "I work at a Microsoft shop doing mainly web development.", whereas James here extends that through an assumption to some sense of absolute betterness that the OP didn't imply. –  qes Jul 29 '11 at 13:50

My standard answer was the old maxim: "Fast, cheap, good. Pick two." You're an ASP.NET pro shop, not "some guy". The actual benefit to him is not in the language he chooses but int he support he gets when the project moves out of production and onto a live server. Is "some guy" going to be around to help him when his site crashes?

share|improve this answer
1  
Though the idium isnt true that you can only have 2. you can only have all of 2 you have to decide how much of each you are willing to sacrifice to get some of the other one. –  Chad Jul 28 '11 at 19:01

Just to get it out of the way, there are legitimate reasons to have a requirement for a particular technology stack. These could range from infrastructure (often derived from "it has to run on X hardware, Y operating systems") to maintenance ("we have developers in Z, but only enough to maintain, not to build, so we need you to build it, and then we can support it long-term").

As a software engineer, your clients should trust you to build the best possible software for the money they are paying you. You should elicit all of the requirements for the system, from functional through nonfunctional, along with any constraints. Also document any assumptions that you make. Once you have a good idea of the big picture, you can work on finalizing the requirements and constraints.

In the end, it comes down to you giving a recommendation and a proposal, and your client agreeing to it. Do you want to compromise your best judgement for a client (or any employer)? I wouldn't want to.

share|improve this answer

I just witnessed a company pay nearly $200,000 for a not-yet-ready-for-primetime PHP ecommerce website (I lost the contract a year ago to these clowns). It's been over 10 months of development time. The site looks wonderful, but is lacking so many ecommerce "basics", it's a joke. I admit, I'm a lousy marketer - but here's the pitch the PHP company used: It's "free" and "open source"! Facebook uses it! Linux & MySQL is "free"! It's faster than ASP.Net! It's faster to develop!

The truth is, the original website (written in ASP.NET) had twice the features and was completed by a single developer in 3 months at a cost of $25K (including the cost for a FULL, single CPU license of SQL Server 2008 R2 & Visual Studio Pro). The $200K site had a team of developers, and STILL is not finished after 10 months, is half the speed (with cacheing) of the old site.

If you want to sell them ASP.Net, say "L.A.M.P. may be free, but your development time will cost more... MUCH MORE!" Facebook runs PHP, true, but they started out of an apartment where money was low and time was free. Facebook uses Oracle and MANY compiled programs these days (so that point is moot).

If you need reusability and simple code maintenance, scripted languages can quickly turn into a nightmare (including ASP here as well).

If you need performance, go with a compiled language - no scripted language will ever compete with compiled code and never will as the interpreter will always add overhead. Caching does help tremendously, but ASP.Net has caching too.

Sure, Linux is free, but Linux experts are very expensive when something goes wrong. Win server costs $$$ up front, but experts are cheap to find (and nearly ubiquitous) when something goes wrong. Connectivity to win-networks is dumb simple and rock solid, so integrating into other business systems is a breeze (accounting packages, shippers, etc) with the best user account management I've seen (though, MS did borrow a lot from Novell).

The GUI overhead that Linux people say is a big resource waster is nearly a non-issue with today's hardware. If you have an issue with it, there's the non-GUI versions of Windows Server ("Core" version) available w/powerShell.

share|improve this answer

The big reason you have not to use PHP is because it will cost your shop much more in time.

However, rather than just saying "no," you have another option. You can offer to do it in PHP, as long as the customer is willing to pay for the additional cost of your developers to learn a new language/platform.

That would make the time cost worthwhile to you, and in effect, he would be paying for additional education for your developers. Doing some development work in PHP won't hurt them, they will likely learn some things.

If he is not willing to pay the additional cost, then he is looking for someone else.

share|improve this answer

Check the price of hosting for Windows and Linux. The gap is pretty close. Now, SQL Server is another price issue. Does he plan on paying for the dev tools? Why should he care how much you've invested in Visual Studio?

Can your firm compete with the 'I know a guy' arguement by providing as many qualified developers as needed and manage the turn-over during the life of the project? Not that you can't find qualified PHP developers.

Facebook now converts their PHP to C+ Code. The SO sites do pretty well with ASP. Jeff and Joel would never do anything evil.

share|improve this answer

You don't. If these are the things the client is quibbling about before the project even starts, you should fire client. Even if you convince him to go the .NET route, he/she'll never be happy. If the client "knows a guy," then they should use him. They've already made up their mind.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.