tags:

views:

963

answers:

10

for startups with limited capital, creating web based business application, which platform is the best bet, is it MS.NET (browser+IIS+Database+vb.net/c#) or LAMP stack?

Any views with respect to RAD, real cost of software (not just the licenses), architecture, SOA, OOP, framework, scalability, extensibility would be helpful on .NET vs LAMP.

+10  A: 

If you finally decide to use Microsoft technologies, maybe the Microsoft Bizspark program is useful for you.

Konamiman
+1, good program for startups
orip
Or WebsiteSpark depending on exactly what you're trying to achive
Murph
I wonder why I have got a downvote on this?
Konamiman
+8  A: 

If limited capital is your primary concern, it has nothing to do with these alternatives and everything to do with how much in-house expertise and experience you have with one or the other. Getting your deployment delayed to fix a problem due to lack of experience could easily kill your startup; just like having to hire someone else who does have the necessary experience may not be possible.

Are you sure that both

  • you are equally well experienced with either
  • know you will not, under any circumstances, be able to hire the needed expertise

are true?

Roger Pate
+7  A: 

We're a MS-based startup, and some things are starting to hit us. Some examples:

  • Can't run IIS 7 on our XP dev machines (IIS7 is available only on Vista and up)
  • Vanilla Visual Studio sucks, and Resharper costs a lot of money - if we have a consultant come over for a few weeks, we can't afford a license (and no, the free Coderush Xpress doesn't fill the gap)
  • Setting up environments with SQL Server and Windows servers is tricky license-wise. In many dev environments we run SQL Server Express instead, with limitations (e.g. DB size - we can't always use production DBs).
  • Horizontal scaling costs - adding another production web server or DB costs quite a bit
  • Automation is harder than Linux - it seems to be part of the Windows mindset. There are decent tools, but it's just easier on Linux, including tuning the OS and configuring the web servers (automating the configuration of IIS is possible, but a pain, vs. normal config files like Apache's).
  • Support from MS is expensive, and not for smaller players like a startup. If you want support, you go to a consultancy, so it's the same as Linux.

Obviously, as a startup you should be as comfortable with your technology choices as you can - you don't need extra noise. But if you're on equal grounds with regards to a Microsoft stack or a free one, I would suggest a free one. As a bonus you get more technological choices, like Apache/Lighttpd/nginx, PHP/Python/Ruby/Java, etc..

orip
+1 - MS vs LAMP-like is not only about money.
Konamiman
If you're using such an old operating system as XP that's a problem within itself. BizSpark/WebSpark gives you licenses for VS and resharper isn't that expensive. Bizspark and Webspark also grant you licenses for server setup, which also offsets the horizontal scaling cost. Win2008/IIS7/SQL2008 is easily scriptable with PowerShell, you just have to learn it first, just like you'd have to learn Linux scripting, and IIS7 configs are XML. The only real point you have is the support cost, the rest are easily overcome.
blowdart
@blowdart: {Biz,Web}Spark is time-limited. "Easily scriptable" (with WMI, for example) is not the same as simple config files, which can be shared, versioned, diff'd, etc.. I maybe be giving IIS 7's config file an undeserving bad rap (IIS 6's metabase was terrible). We end up installing a large bunch of *nix-like utilities to do things like automate FTP, SSH, and SCP actions, and more. On Linux, you use your favorite scripting environment for automation, on Windows it's optimized for PowerShell. All of these can be overcome - obviously - but why pretend they're not there?
orip
And again, like I said, IIS7 is scriptable in your terms, the configuration is a .config file. Ditto with FTP (well the updated FTP from IIS.NET). As for scripting environments, well yes, PowerShell is built in, but so is VBScript and JScript. I'm not pretending they're not there, but I'm also not pretending they're a great hardship when compared to *nix either
blowdart
+2  A: 

If you feel comfortable with .NET, but want to limit your expenses a little bit - maybe an open source database would help you with that.

We are using MySql as a database on a linux server for our Windows applications - and it is working fine for us. But we have got linux experience in house - so this is no problem for us. (But you can install MySql or PostgreSQL on a Windows server too - but I have never done this productively)

bernhardrusch
+2  A: 

This view will probably be unpopular here, but most of the answers seem to be dancing around the patently obvious: on the assumption that your in-house knowledge isn't significantly greater in MS than LAMP, then I would choose LAMP every time, because it is FREE*

I would go so far as to say (taking into account my above caveat about existing knowledge) it would be crazy to choose MS over open-source technologies from a business perspective.

*which is not everything, but it is a thunderingly important thing, especially if you are bootstrapping your startup yourself. (Yes I mean free to acquire, but as a startup keeping costs low is incredibly important, whatever the sort of cost. Open source technologies are also no more expensive to run assuming resource in your locality is not heavily weighted in favour of MS)

DanSingerman
-1 for stating the obvious?
DanSingerman
Don't confuse free to acquire with free to run.
Murph
@Murph - Neither MS or LAMP are free to run. I am not sure there is any evidence to suggest either are cheaper or more expensive to run.
DanSingerman
@Murph - you assume that an MS stack is cheaper to run disregarding license. My personal experience has been that it's similar for small deployments, and cheaper on Linux with large deployments. I'm sure other people have a different story, but I prefer not to present opinion and personal experience as fact.
orip
+12  A: 

I'm not sure the technology stack is as important as availability and cost of developer resources. There's no point saving a few thousand on licences if the devs cost you more than that over time.

There are also questions of whether you can find competent developers for your chosen stack in your area. How much does lost dev time cost you if one of your guys/girls leaves and you need to find a replacement?

Add to that the cost and availability of additional resources like consultancy. Sooner or later you are likely to need external help and ordinarily one stack will have a larger community than the other.

Just my (quick) thoughts on the matter, and I'm not trying to say A is better than B because it depends on so many things.

ZombieSheep
+3  A: 

Its also worth noting that you can mix and match until you find the right balance of tools/technologies that you are comfortable with - i.e. Running a Windows server with a MySQL back end or running ASP.NET on Apache with Mono.

As others have mentioned, and I will reiterate: go with what you feel most comfortable with. As a small business you can't spend time futzing with the setup when you need to be writing software and interacting with your customers.

AnonJr
Good advice. You can for example choose ASP.NET, Windows and Visual Studio as your development stack and then host it on Linux with Mono, Apache and MySQL.
asbjornu
@asbjornu - certainly possible, but you can get ricochets by having such a difference between environments. Like AnonJr said, you don't want to spend time futzing.
orip
+2  A: 

If you have skills in .NET maybe you should go with BizSpark or something but try to avoid vendor lock-in. E.g. use an ORM or some sort of abstraction so you can switch from SQL Server.

Also don't forget Mono, e.g. Mono Tools (I have not looked at these myself). If you play your cards right you may be able to deploy .NET code on an open source platform sooner or later.

Alan Christensen
+3  A: 

I vote for the LAMP stack.

Most of the Linux tools - Apache, Python are much easier to use in comparison to IIS and .NET tools.

There's also a large support community that is both friendly and helpful, so you don't really need to be afraid about the lack of commercial/proffessional support.

Another positive point about LAMP is that it is free. It's a lot cheaper than cheap. If you've got people that are familiar with Apache, Python/Perl, and MySQL/Postgres, than this is the right choice IMO.

It's obivous that you need tech-savvy people that can handle LAMP, but it's the same with the Windows option.

Ory Band
They key point is that its NOT free. Yes you skip licensing costs but if, for example, you look at the monthly cost for a dedicated server the differences are not significant (windows is a bit more expensive) and equally you don't have to use say SQL server (which can be a problem in licensing terms) with windows.
Murph
Don't forget: easy for *you* to use and easy for the *OP* to use can potentially be two different things. In college we used a primarily MS stack for the classes, so for me IIS/SQL Server/etc. is easier to use. For one of the guys I work with now, who's school used a primarily FOSS stack, the MS Shop we're now working in is hard to use.
AnonJr
Murph: You are right that the monthly costs isn't that different, but I put my finger on the LAMP stack because it's easier to manipulate and work with.AnonJr: By saying that the LAMP is stuck is easier to use, I meant that where I come from, most people have noted the LAMP tools to be easier to learn and use. I agree with you that this opinion is not universal, only more popular IMO.
Ory Band
A: 

Another point to consider is how much control you want a 3rd party vendor to have over your stack. With MS they have the right (and have exercised it recently) to change licensing terms to extract more money. With LAMP you have the freedom to choose your own upgrade cycle and to branch development with the project isn't going in a direction compatible with your company goals. With MS you're at their mercy so when they decide that LINQ to SQL isn't supported anymore or that SQL Server is now licensed per-processor for web sites you must go with their rules or switch stacks.

As a caveat, we use MS in my current company because our developer base had more experience with it when we started. Until some recent SPLA and SQL Server license changes it really wasn't worth considering LAMP but we're reconsidering LAMP for future projects.

mmcconnell1618