views:

363

answers:

13

Hello,

Two of my colleagues (and very good friends) have worked for years in Java, PHP, MYSQL, Tomcat, Struts, and the list go really on and on. I'm (the only one who chose the .NET framework). Now, our manager has convinced our boss to invest on us and some other who are willing to go through the process. So far, battles (them vs me) to convince other which framework (.Net - other free framework) has been pointless. Now, my friends have a new argument: .NET is not free.

I'd like to know how much it cost to choose .NET over the other (for instance, Java, Struts, TomCat, etc...). I'm not talking about which technology is better, but how much .NET would cost. So far, all the cost of learning was related to the purchase of my books (Visual studio Express is free).

By the way: If .NET is not free why people are still using it. Or, only big companies can use .NET???

Thanks for helping.

+3  A: 

It is free, but it is vendor locked to Microsoft. However the specifications for the underlying idea (C#, CLR/CLI) are not controlled entirely by Microsoft.

The cost of training is dependant on current skill levels. However, there is a very large amount of training and support material on the net and in publications.

Another aspect to the cost of ownership of the .NET Framework as it stands (ignoring Mono) is that it locks you on to a Windows platform (which incurs licensing).

More ownership costs are in productivity using the framework, however I cannot answer this in comparison to your current frameworks and tools.

Adam
I don't see why anyone should be "ignoring Mono". Why would Mono be worse than other open source tools? If it is not then why not use it? If it is inferior to Visual Studio + .NET then wouldn't that mean that open source tools are inferior in general and therefore you should choose .NET.
Stilgar
@Stilgar very good example of putting words in my mouth. I said ignoring Mono as I was talking directly about the .NET Framework being on Windows. I was simply pre-empting someone telling me that it's not platform locked. I know it isn't, but my current experience with people targeting ".NET" is that they aren't considering the Mono side.And to answer some of your questions: I didn't imply that; I don't know, I didn't say it was worse...; way too much of a generalisation in that one... - done.
Adam
I wasn't critisizing you in particular but the fact that people tend to ignore Mono in these debates. I personally don't like Mono and for the very same reasons I don't like other open source frameworks. I don't see why people who like open source tools should not like Mono. These debates are exactly where Mono should come forward.
Stilgar
+7  A: 

You don't have to pay to use .NET. You do have to pay for the Windows licenses.

Note: Java books cost money too.

compie
+1 for the note.
Rekreativc
+2  A: 

The .NET Framework is free - you can download it here.

What isn't free, is Windows - on which you host your application. There are various hosting options, depending on the size and requirements of your project. For small and single server applications, there are shared hosts & virtual servers available. Then there are dedicated servers, clusters and so forth.. As you can imagine, more servers = more licenses and that's where it could get expensive. But typically you can host .NET applications for a pretty cheap price :)

Marko
+3  A: 

.NET is not any more expensive than Java. You have to pay for - the operating system you run on, books to learn from, etc. But Visual Studio and .NET themselves are free. There's nothing more expensive about .NET.

DeadMG
Only the Express Editions are free and they are not really suited for professional software development - they are great for hobbyists but no more.
Daniel Brückner
@Daniel: Sure. But then, what features do you get in free Java IDEs?
DeadMG
I cannot really tell - my Java experience is limited to a few days (maybe only hours) with Eclipse - after that I decided for the .NET path. One of the common arguments against the .NET platform is that it is controlled by Microsoft. In my experience this was almost always a pro. The tools integrate nicely. The class libraries are consistent and different technologies integrate very well - no need to search through a huge number of 3rd party libraries and trying to integrate what you need. And Visual Studio is absolutely the best IDE I have ever used (even if it has it's own glitches).
Daniel Brückner
@Daniel: That's often how I feel. Why would anyone want to actually use Java?
DeadMG
Java IDEs (not only Eclipse) are also great. While I feel like Visual Studio Pro is slightly better there can be no real comparison between VS Express and Eclipse. Eclipse wins in almost every category. You get much more refactoring features, you get to use plugins, you can use unit test frameworks, you can organize all your projects in one workspace (pretty much the equivalent of VS solution). All these are things you don't get with VS Express. That being said VS Express can actually be used for professional development. We can work on our current project with Express (we don't but we could).
Stilgar
@DeadMG probably lots of java people would say the same, "why would anyone want to use .NET ?" Bot languages are usually just means to get to the same results. Even the ways of doing it are similar. "The question is not whether Java or .Net is the better architecture. The question is, how to integrate them, how to make them work together, what are their strengths and weaknesses?
Redlab
@Redlab: The advantage of .NET is that Java doesn't offer anything like P/Invoke.
DeadMG
@Redlab How about C# being much better language than the Java language?
Stilgar
P/Invoke is an advantage indeed, if you work on windows based systems. The same counts for C# i think. We could maybe rephrase the question: "The question is not whether Linux or Windows are better, the question is how to integrate them, what are their strenghts and their weaknesses?" | ps funny .net vs java video: http://www.youtube.com/watch?v=fzza-ZbEY70
Redlab
+1  A: 

Ask your friends to come up with the reason for that statement.

The .Net environment is free, but the development environment (if you want to use a professional version of Visual Studio) is not.

The java (etc) environment isn't entirely without costs either, there is always training, hardware and development time (== money).

Hans Kesting
+11  A: 

.NET is free - for download, use and anything.

What will cost you is the licenses for

  • your Windows operating system (yes, you could use Linux instead - almost free)
  • your development environment (Visual Studio costs money - except for the free Express editions, or you could use the free SharpDevelop IDE)
  • your database server (possibly, but again: free SQL Server Express editions are available, as well as a plethora of other free products)

You can absolutely develop 100% with free software for .NET, and using .NET doesn't cost you a thing (except the Windows OS license, maybe)

marc_s
gratis != libere (.net is free as in beer, not free as in speech)
Pete Kirkham
@pete the OP is clearly talking about the monetary cost involved.
Josh Smeaton
Cost also equals expected risk times loss of business continuity. Large companies mitigate the cost of non-free software using mechanisms such as source code escrow - if the supplier won't fix the bugs, they have a right to the source code for mission critical systems. Therefore large companies have the legal leverage to use non-free software, hence the OP comment that large companies can use .net, whereas those without a large legal dept. cannot.
Pete Kirkham
+3  A: 

It is free. The OS it runs on isn't. Also, there is Mono: an open source, cross-platform implementation of the CLR that is binary compatible with Microsoft.NET (you can use your .NET skills on other OSes than Windows).

Bottom-line: it costs nothing do develop under .NET, it may cost something (win license) to your users.

Jaroslav Jandek
+1  A: 

I'm not sure if you are asking about the framework itself or the whole development stack. If you are going serious about .NET development, I guess there is some cost, like a Professional license for Visual Studio ($1200 - the Express edition doesn't support plugins, for example).

If you are doing web development there's also the cost of hosting, which is usually more than LAMP stack hosts. This however varies a lot between providers and you need research. The cheapest ASP.NET shared hosts are in the range of $5 - $15 monthly.

Of course there are always alternatives to the paid things, but some of them (VS) are taken for granted in the community and you would reach dead ends in some cases if using free tools.

Slavo
Lately the cost of Windows hosting is coming down. I've seen hosting companies provide Windows hosting for the same price as LAMP (The trick is they are using SQL Server Express which limits your SQL Server databases to 4GB size).
Stilgar
+1  A: 

When people say .Net is not free, they mean it is not free as in free speech not as in free beer.

That may or may not be an issue for you. It depends on how you view being tied to a proprietary development environment. Judging by the amount of .Net based software, it's not an issue for a lot of people, but there is a risk that one day Microsoft will decide to start charging developers to use .Net or impose other conditions that you do not find acceptable.

JeremyP
If one day Microsoft starts doing this (which they won't) this would mean that .NET is having complete monopoly in the dev world. In this case this would mean that people who chose .NET had bet on the winning technology.
Stilgar
@Stilgar: Contrary to popular belief, there are plenty of alternative dev technologies to .Net. If Microsoft did try to start charging (which I agree they won't) it would just drive people away from it, except those that are willing to pay up.
JeremyP
That is my point. They will be stupid to charge before they have complete monopoly so they won't. What is more they won't charge for .NET even if they do have complete monopoly. More likely they will increase the price of Windows.
Stilgar
+1  A: 

just download visual studio with free SQL Server 2005 and you have a free .NET development enviroment

Saher
+1  A: 

Everything can be done for free using .net:

  1. IDE - Mono Develop (free) and runs on both windows and Linux
  2. Database - MySQL, SQLLite etc. these are all free and can run on both windows and linux
  3. .NET Framework also free

However, if you want to go the full on freebie route, you will have to make some compromises, as mono develop is great, but not as good as visual studio.

Ultimately, if you want a seamless integrated solution of framework, IDE, database etc, you will have to fork out some money.

Dusty Roberts
+2  A: 

The crux of the question is the meaning of "free". As others have pointed out, the integrated development environment (IDE) for .Net is as free as the IDEs for Java, PHP, etc. That is where the differences end. Furthermore, nothing is really free.

  1. Runtime licenses vary in cost. If you go with a LAMP (e.g. Linux-Apache-MySQL-PHP) platform, there are no run-time licenses. i.e. They are free. Microsoft will charge you noticeably for your .Net server licenses and your SQL Server licenses once you deploy your software. If you an Open Source Java implementation, or Mono (open source .Net), deployment will be free of licensing cost. If you use a commercial Java Virtual Machine (JVM), you'll pay a runtime license.
  2. Support is not free. If you go with LAMP, you'll end up using in-house resources for support, and/or you will buy support from an external organization such as RedHat. Microsoft/IBM/Oracle have some level of support built in for their paid run-time licenses.
  3. Legal indemnification is not free. When you go with a commercial vendor such as Microsoft (.Net), IBM/Oracle (JVM), and RedHat, you'll be protected against intellectual property claims of any software distributed by these vendors to be deployed by you. This turns out to be a big concern for companies that are big enough to be sued successfully. These costs are usually buried in run-time licenses or support contracts.

Issues 2 & 3 are why big companies usually go with Java or .Net. If you are big enough to be sued successfully, the runtime licenses are a cheap insurance policy. Also, big companies have more to lose if a software deployment fails, and tend to buy better support contracts.

Issue 1 is why small startups go with LAMP. Small companies usually prefer to support their own software stacks (mooting issue 2), and are not big enough to be sued (mooting issue 3). Also a software stack built with most infrastructure software released under Apache 2.0/MIT/BSD licenses are usually safe, and the Linux GPL license risk is manageable if you don't muck with the OS or drivers.

At my first startup, we chose .Net because our client-side IDE was .Net. It ended up costing a lot in the back end (e.g. $1500/month for over a year) for the .Net/SQL-Server licenses, even though the server was hardly used because we didn't have many users.

At other startups I worked for afterwards, they chose a Linux-Apache-MySQL-Ruby stack or a Linux-Nginx-PostgreSQL-Ruby stack. The deployment costs for underused servers was equal to the hosting costs of hosted virtual servers, which was a fraction of what a .Net stack would have cost.

Any project I ever saw with a big company or with people with a big-company mindset always chose Java or .Net. As company balance sheets get squeezed in this recession, and as open source software gets better support, big companies are starting to use LAMP and other open-source stacks, but this is coming slowly.

Jay Godse
+1  A: 

Sometimes free is too expensive

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. You aren't just buying products with Microsoft, you are actually buying productivity, which is very important as we all know working on open source platforms.

.NET is free. C# compilers are free Certain versions of Visual Studio are free. Do not fall for the anti-microsoft brigade telling you that it is high cost.

CodeToGlory