Windows/.NET/ASP.NET/IIS/SQL Server vs. Linux/WebSphere/Java/Apache/Oracle information RRS feed

  • Question

  • Hi.

    I am looking for information that can help explain how the Microsoft platform (.NET/SQL Server/IIS/ASP.NET) is as able to meet the needs of scalability, performance, security and maintainability.

    One of our clients have an existing mission critical system on the .NET platform (Windows Server/.NET/SQL Server/IIS/ASP.NET/Web Services) and there are some parties in their IT organization that is claiming that the system would be inherently better if it was ported to Linux/Java/WebSphere/Apache/Oracle. With 'Inherently Better' they claim in terms of scalability, performance, maintainability etc.

    The existing system works well, it is a mission critical, high-availability, 24/7 system that processes ~30,000 transactions / day. The main issues that are being experienced have to do with the network and hardware infrastructure and the lack of support in those areas, however rather than facing some of these issues there are parties that are trying to use this as a 'if it was on Java/WebSphere' etc. it would be inherently better.

    I am looking for resources such as case studies where .NET has been used as a successful platform for high availability, high transaction systems to be able to illustrate that the system they have is in good company. If someone has some examples of 'high profile' companies that are successfully using .NET as a 24/7 mission critical platform, that would be great.

    If someone has examples of or links to recent case studies of .NET vs. Java/J2EE that would be much appreciated. I do have some information in this area but it is quite old.

    The goal is to be able to explain very factually that there are no inherent benefits to a 'Linux/WebSphere/Java/Apache/Oracle' platform compared to the 'Windows/.NET/ASP.NET/IIS/SQL Server' platform, all other things being equal.


    Monday, October 24, 2011 6:56 PM

All replies

  • I doubt you're going to find any tests that compare all of the possible variables of one entire server ecosystem versus another. If it were that easy, there wouldn't be any debate anymore! The reality is that it's just not that simple. Anyone who pretends it is either wants to sell you something or is completely uneducated. It's difficult to even find any meaningful comparison, because they are universally biased. I have yet to find a single exception from either side.

    For example...just starting with the OS. Is Linux faster or Windows? Obviously it depends on what you're doing with it. What kind of hardware is it running? What kind of applications need to run on it? How skilled is the administrator? Do you expect to keep it updated, or do you expect a "set it up and ignore it" scenario? You have to take all of those - and 1000 other pieces - into account to come up with an answer, and that's just the OS before we even talk about the development tools and platform, web server, data storage, and so on.

    Both environments are mature and used by huge corporations all over the world, including several with performance-critical high-availability systems. Obviously either is possible, so blaming the stack is a cop-out. Either can work, either will work. If a team finds one option or the other particularly difficult, it is either because external influences are int he way or because the team is not competent with the environment they're using. In the case of the latter, it is perfectly possible that switching to the platform which the development and IT teams are more comfortable with could provide better results.



    The following is my personal experience. I have not done conclusive side-by-side testing. It's not exactly what you asked for, but since I'm already thinking about it I'll share anyway...

    • Linux tends to stay running much longer without you having to touch it. But, if you ever do have to touch it, all updates and modifications are more difficult and expensive to pull off. The operating system is free, but it takes much more expertise to maintain, and a mediocre (or less) admin can kill performance and lead to tons of downtime. One common approach is just to avoid updating Linux once it is up and running, which is great for internal servers but can cause security vulnerabilities for outward-facing servers. Windows is unarguably easier to maintain, and includes easier tools for virtual environments (assuming Windows 8), but it tends to be slower than Linux in general and leaving it un-patched and un-updated is not really an option.
    • .NET and Java are both comparable development frameworks - I have used both quite a bit and like them both - but in general I can be much more productive in .NET. Mostly this is because I don't have to worry about managing packages for everything. In Java, I have to set up Ant, JUnit, Hibernate, Spring, and/or a bunch of other frameworks to get a project rolling. In .Net, I install the .Net framework - I have MSBuild, built-in unit testing, Entity Framework, etc. all built-in with no additional work required. I also prefer the simplicity of the C# language. In particular, when I'm in Java, I get irritated by having to declare every possible exception that could be thrown. I also miss lambda expressions, and (maybe most of all) the simple UI frameworks offered by .Net. Performance-wise, Java tends to come out marginally ahead, depending on exactly what you're doing, what optimizations you have enabled, and the skill of the developer. I haven't yet seen an application where a Java solution is noticeably better, but it does usually perform better in benchmarks.
    • Databases are mostly a wash between Oracle and SQL Server. I am more familiar with the SQL line (SSRS/SSAS/SSIS/etc.) than the Oracle products, but either one scales perfectly well. MySQL is a whole other monster - I wouldn't recommend it where scalability is critical unless you're going to invest a lot of money in hardware.

    Check out My Blog for tech news, development tips, and other information for geeks like me.
    • Proposed as answer by cornasdf Monday, March 25, 2013 5:41 PM
    Monday, October 24, 2011 9:27 PM