ASP.NET is almost certainly the wrong technology for your project

Often, when we are pitching for new website projects, one of the requirements specified by the client is that we build the site using Microsoft’s .NET (“Dot Net”) technology. In many cases, it is bad advice and should be ignored!

This request is a usually the result of the company I.T manager/CIO/ Systems Administrator/Consultant recommending a solution to stakeholders which they are familiar with.

For simplicity’s sake, throughout the rest of this article I shall refer to your I.T Manager/CIO/Systems Administrator/Consultant as your “I.T Expert”.

.NET in a nutshell

In early 2002, Microsoft released their next generation of web application technology – the .NET framework. This superseded the old ASP (Active Server Page) technology which until then, had been Microsoft’s key technology for building dynamic, database driven websites and web applications.

.NET was not just an updated version of ASP – it was a completely rewritten, far more powerful and complex development framework which embraced the Object-Oriented approach to programming and introduced a new paradigm for building web applications using Microsoft technologies.

Since the initial launch of .NET, the framework has been improved, features added and more sophisticated tools for building and maintaining websites with .NET have been made available. The most notable of these being Microsoft Visual Studio, a complete IDE (Integrated Development Environment) for building websites with .NET

Your I.T Expert only knows Microsoft Technology

Before I begin, I want to make it clear that I am not implying that your IT Expert is incompetent. I will even go so far as to say that your IT Expert is possibly the best in their field and knows their technology inside out. (I also want to make it clear that this is not an anti-Microsoft rant, we use and love Microsoft products on a daily basis!)

The issue here is that most corporate I.T Experts administer predominantly Microsoft-based systems and technology: Windows Servers, Windows XP/Windows 7 Workstations, Microsoft Outlook, Microsoft Office (Work, Excel and Powerpoint), Microsoft Access Databases etc

They are often Microsoft-certified, are comfortable and familiar with the Microsoft technology, have a Microsoft rep who visits them regularly, they go to Microsoft launches, and generally live and breathe Microsoft on a day to day basis.

Thus, when called upon to provide their expert advice on a proposed website project, their immediate response is “built it in .NET”.

The problem here is that even thought your I.T Expert is very skilled in looking after corporate I.T environments, they most likely know very little about building and maintaining websites and web applications. It is just not a skill that is generally required by your I.T Expert.

The end-result of this is that companies spend a lot of time and money building web projects in .NET which could have been built faster, more cost effectively and with more flexibility using alternative technologies.

The problems with .NET

Overhead

.NET is very big and very powerful. It is used to build large corporate applications. This power comes with an overhead though. For most websites it is the equivalent of using a front end loader to move a few handfuls of dirt.

Expense

.NET applications usually use Microsoft SQL Server as the back end database. SQL Server is very powerful, and also very expensive. Again it is way more grunt than most websites/web applications need. It also requires IIS, Microsoft’s web server. This kind of hosting is more expensive, and performs less well, than its open-source counterparts.

Rapid Development

Modern web development is about fast, iterative development cycles. .NET is quite rigid and makes rapid development much harder. This leads to longer development cycles, overdue projects and blown budgets.

Search Engine Optimisation

The rigid structure of .NET makes Search Engine Optimisation harder to perform. Compromises often have to made in SEO strategies to accommodate the shortcomings of the framework.

Standards Compliant Code

It is difficult, if not impossible, to generate fully standards-compliant HTML using the .NET framework. If you care about good quality code, this becomes a real problem.

Javascript-based postbacks

.NET uses a mechanism called “Postbacks” for many of its interactive features. Unfortunately Postbacks require Javascript to be enabled in the browser using the site/application. This presents accessibility issues for internet devices without javascript and for disabled users.

Usability

Even though this is not directly a fault of the framework, for some reason .NET application are far more likely to contain critical usability problems. This is probably a cultural issue to do with the development tools and the developers themselves rather than the framework, but nonetheless it needs to be a consideration when building a website or web application.

Compiled Proprietary Code

.NET code for web projects is often compiled before deployment, with the source code being controlled by whoever originally developed the project. This essentially binds you to the vendor that built it. When you try to move to another vendor, often the original vendor will refuse to supply the source code.

Sometimes .NET is the right technology to use

There are some scenarios where the selection of .NET is appropriate. These would be situations where a website needs to integrate tightly with some kind of internal corporate systems which are built in .NET.

If this is your situation, then this could be a good reason to consider .NET. Although, even in this scenario, it is not a compelling reason. .NET makes exposing web-services very easy, so even when tight integration is required, this can be achieved through a web-service layer (which also adds a layer of abstraction and security between the website and the internal application).

Conclusion

We would encourage you to be sceptical when advised to use .NET for the purpose of building a website or web application project. In all likelihood this is not the right tool for the job.