views:

1288

answers:

9

One thing that I keep hearing in reference to ASP.NET and MSFT technologies is that they cost money to use. Often when they are being compared to open source languages someone will mention that one factor in favor of open source is that it's free (to an extent). My question is, when does ASP.NET actually cost money to use in terms of using the proprietary technology?

Understandably there are the hosting fees, but I'm curious about the fees outside of these hosting fees. I'm especially curious about this as it relates one-person smaller-site development (non-team/large enterprise). Any help is appreciated.

(edits)

Some excellent answers. Much appreciated The projects that I'm looking to use the technologies for would be personal sites and very small business sites (1 or 2). The intent would of course be that these projects get much bigger. It seems that for commercial production, fees will apply. What about just basic dynamic "shared hosting" sites that provide information?

+10  A: 

Often when they are being compared to open source languages someone will mention that one factor in favor of open source is that it's free (to an extent). My question is, when does ASP.NET actually cost money to use in terms of using the proprietary technology?

Usually when people refer to "cost" in the way you described, they're implicitly referring to TCO, or total cost of ownership. The cost is not an explicit cost in that you've paid for something directly, but rather the long-term price of using something over its lifetime.

For example, even if a particular proprietary technology is free, it may be more difficult to hire and find people who know about it to work on your project. Consequently, if it is less popular than some open-source equivalent, you may wind up paying more for the same amount of labor because appropriately talented staff will be harder to find and in higher demand.

Conversely, if an open-source product is free but has low mindshare or performs poorly, it may well be worth it to pay for an expensive, closed-source proprietary solution rather than having to learn the idiosyncracies of the open-source version.

Naturally, there is some controversy surrounding just how to measure TCO, with both camps having some valid points.

John Feminella
I don't think you'll have much trouble finding people who know about .NET...
Telos
A: 

I find that it does not cost much money to use. It does infact cost a pretty penny to get windows based hosting. Visual studio is also expensive. After those, though, not many expenses are encountered.

A: 

If you want to use the more professional versions of Visual Studio to develop your applications: you will need to pay for that. Also, there are a lot of commercial components available on the market. These will save you time or improve your product, but at a cost.

For open source, there are also a lot of components, but in this scene most is free/open.

birger
A: 

You ain't seen nothing. Early 1.1 versions leaked like hell. You needed farms just to stay online. It got better, but bundle Windows facing servers, bundle MSDN, bundle maintainance, bundle ASP.NET high-cost entry to farm-wide scalability.. man, you just see the same written again:

Java Server Pages, Apache, Tomcat..

Same old.. Then came Google and showed how its done.

rama-jka toti
What? Google's a programming language now? You're not making sense!
Telos
Steve Jobs? Is this what you are doing with your time off? It is quite easy to write stable applications with the 1.1 version of the .NET Framework. Leaky programs are generally caused by bad practices and unskilled/under-qualified developers. Are you calling yourself out?
joseph.ferris
You obviously never used 1.1 ASP.NET. Dear me, that thing leaks to infinity.
rama-jka toti
As you are all so supportive, you should set hotmail to be your only provider and live.com your search engine. Good luck..v1.1 is known to leak, period, but you young guns never saw it or bothered.. you know, to check that framework that promises you the world ('the only way it can be').
rama-jka toti
Why don't you switch of viewstate for it? And stop using continous boxing, single thread pool (that blocked like hell), huge latency, crap design and so much more it isn't worth arguing.Go on, admit how many times you 'recycle-hammered' a process.. Stable as a pudding..
rama-jka toti
Last piece of advice,stay off Scott Gu's blogs..VB guy is teaching you how to code for heaven's sake.. Catching up with MVC, REST, heck always catching up and throwing away money in copying while the foundations are as crap as Java.That's why Google did their own infrastructure and finished the job.
rama-jka toti
I am not sure about Google's infrastructure, but as a one-time user of asp.net 1.1 I can attest to several problems - mind you, no technology is totally problem-free. And Asp.net 3.5 is much better. One big issue with ASP.net is that it is platform dependent, which is fine if you don't mind being hosted in a Windows server. I do. So I go with LAMP.
gnomixa
From under what rock did this troll sprang up?
Rafa Castaneda
From a cave you know very well :)
rama-jka toti
A: 

Also note that ASP.NET v2.0 is an awful piece of engineering, almost like DataSet itself.. MVC is making it better but no, I'd focus on being neutral to tech, whether VM runtime, dynamic language, or even native.

Stay neutral and it will pay dividends.. By default that makes you better than MS-only people yet it provides them with an option to use lock-in tech too.

rama-jka toti
Current version is 3.5 SP1 in any case, try to keep up.
John Saunders
Go ahead an stay "neutral to tech". The days of static HTML are over. Try justifying blanket statements with facts next time. The number of zealots on these types of posts is discouraging. Give me any platform and I can tell you reasons to avoid it - it really isn't hard to do.
joseph.ferris
Current version is Beta beyond your 3.5 SP1 that Ruby had for ages. Current version is something Java had back in 2003. It is nothing good or new or 100% representative of anything.Seriously, can you give me Google infrastructure? Then you should work for MS as it is their 'top new priority'.
rama-jka toti
+9  A: 

.NET is free. C# compilers are free Certain versions of Visual Studio are free, and you don't actually need it to write for .NET anyway (though it really, really helps!) There are many free online resources for learning .NET, such as http://asp.net

In short, there's no real cost to using ASP.NET other than the hosting fee of the website or options you might buy to make things easier (better versions of Visual Studio.)

There's more of an ideological divide, with open source guys on one side being pretty anti-microsoft and so claiming it's high cost to use. I wouldn't worry about them. ;)

Telos
Thanks for the help. One other thing, are the licensing fees applicable to most situations or are these mainly for large companies?
Mackristo
The language and run-time are "free". But as soon as you deploy to a "production" environment, you're on the hook for production licenses if you're hosting it yourself.
chris
No, no you're not. All you need is IIS, which is part of even Windows XP...
Telos
I believe that IIS under XP is restricted to 10 connections, and the security model is questionable - so, you can do it, but you probably don't want to.See http://www.codinghorror.com/blog/archives/000329.html for a bit more info on some of the restrictions and workarounds.
chris
+12  A: 

You have to measure many things when you determine cost. We recently went through an evaluation of platform choice by an outside vendor, and the recommendation is that we stay with a Microsoft.NET platform. Why? For us, the reason is that once you get to an enterprise-level product suite, the difference is not as big as people would like you to believe.

Purchasing Microsoft products is a sound choice. The initial cost might seem high, but keep in mind if you get Software Assurance on your purchase (Visual Studio, for example) you are entitled to free upgrades as long as you keep you SA current - and it is at a fraction of the cost of a repurchase. Many people think you need to buy the full retail version every time, and that is just not true. Work with a larger vendor, like CDW, to help with licensing questions. They got someone from Microsoft's Licensing Division on the phone with us and helped us choose what was right. Not high-pressured at all. They actually talked us down on some of the things we thought we needed.

MSDN subscriptions are great. I have one through my employer, but also used to maintain one personally. If you are a contractor/self-employed, it is an operational expense. Like buying full products, renewing a MSDN subscription is very inexpensive compared to a purchase, and especially considering what you get. The licensing within MSDN is rather generous, and since you are a one-person shop, if I read that correctly, one MSDN is more than enough for your non-production needs. Plus, the bundled Support Incidents are a nice plus, as well.

There are many versions of Visual Studio, from the Express Editions all the way up to the Team Editions. For example, we are rolling out Team Foundation Server right now, so our costs are obviously higher. For a startup or small shop, there are TFS hosting partners and you can get Team Explorer for free. Or you can mix and match, using Visual Studio for development and something like VSS, SVN, or countless other version control products out there.

Just because someone "goes open source", that does not mean that it is free. Yes, the platform choice might be free, and the tools might be free, but there is a definite chance that you will need a commercial library or component some day. Plus, nothing prevents you from going with Open Source products with Microsoft, either. There are many open source projects written in .NET that can be leveraged with your solutions, and Microsoft is becoming a lot more transparent. We are working on a very large, enterprise solution right now and we are using only one "commercial" product, outside of our development tooling. There is a lot of Open Source usage, and a lot of implementations cobbled from community musings and examples.

The one thing that often goes unmentioned is the human cost that goes into these decisions. Microsoft is hated by many and their solutions might not be the fastest or most robust (although I will take IIS7 on W2K8 over any other web server configuration any day) they are focusing on making people more productive at what they can do. You aren't just buying products with them, you are actually buying productivity. As someone who has worked in a few Open Source shops, I am very appreciative of all the things that they have gotten right and understand that free does not always mean better.

I have a "one-person" side business and I really recommend looking into an MSDN subscription. It will give you access to tools and technologies that you would not otherwise be able to get your hands on without going a la carte in a retail route. Talk with someone, like a CDW, to help you figure out your licensing needs. If it works out, definitely try that route. You can cover all your in-house needs in a one person shop with an MSDN subscription, most likely (for example, a lot of the products are available to install to you (as a user) up to ten times as long as the machines that they are installed on are "yours" and non-production. There are exceptions to that, but not many.)

If that does not work, try the free route. You can definitely use Mono for .NET Development, as well as the Express Editions. I know a few C# developers who swear by Mono and could not be happier.

Best of luck to you!

joseph.ferris
Do you think these costs apply to personal sites, or even small business sites? For these types of sites do you think the paid MSDN subscription would be necessary? Thanks for your help.
Mackristo
It really depends on what you are doing and what value you would take away from it. If you are using a shared host for a personal site, or are just putting up an informational site with little functionality, I think it is overkill. For example, do you need Windows Server, etc. to develop against?
joseph.ferris
No one has ever gotten fired for going with Microsoft.
Rob Elsner
+3  A: 

There are a couple of good answers already, but I'd like to add "it depends".

joseph.ferris obviously works in a large organization, where the cost of switching platforms is going to be very, very expensive, so the cost of paying the licensing costs is much less that the cost of switching. Take a look at Jonathan Schwartz's blog entry for Mar. 11, especially the section titled "When Free is too Expensive" for another reason to go with fully-supported infrastructure.

But consider a couple of other scenarios.

First, there's the hobbyist, which is what you seem to be addressing - you want to play around with the technology, and maybe put up a website or three. There aren't any issues with privacy or scalability, so you can deploy your application on an inexpensive shared hosting solution. In this case, costs are pretty much irrelevant - whatever platform you pick, you can get free tools to get you started. Remember kids, the first hit is always free.

For a startup, things are a bit different. If the goal is to build a large website, the potential licensing costs can be daunting - it's probably going to a lot cheaper to go with open source. In addition to the production environment, you need to pay for development environments, testing, etc. Even for a small company, licenses may be more than they have in the budget - a single Windows 2003 server Enterprise license lists for $4k. If you're trying to break into a competitive environment and compete on price, this alone may make you uncompetitive. I have seen situations where a Windows-based solution (server, database, and custom development coupled with a content management system) is two or three times the price of an open source solution.

chris
You're exactly right. I'm more of a hobbyist at this point and would like to create my own sites for various reasons, certainly with the hope that they'll become much bigger in the future. The same goes for the business related site that I'm doing.
Mackristo
Another data point - netcraft just released their march update, and while total share is around 50% apache/30% IIS when you look at the busiest sites, it's 66% apache/ 18% IIS - probably in no small part due to the licensing costs of scaling a Windows web farm.
chris
A: 

I know that it has been answered, but I will put my 2 cents. Why are you wondering about the cost of ASP.net? In my opinion, the choice of technology in your case (1-2 ppl development freelancer team) should be governed by technology familiarity. If you are an ASP.net expert, the expense of buying the products and MSDN subscription is well-worth it, because it's your primary language of choice that you know well, hence the projects that you implement, will be done better and faster, so it makes sense to stay with it.

However, if you happen to know another technology just as well and you are comfortable that you can deliver a robust product on-time with it, it may be worth it to go low cost. As a contractor, the main objective is to not lose time/money hence you pick a technology that balances your expenses and time spent learning it. In other words, if you are a Java expert, there is no point of paying for asp.net. If you know asp,net well already, then sure, stay with it.

The clients rarely care whether you used Ruby, PHP, Python, Java or ASP.net. They care about time lines, their cost and quality.

gnomixa