Microsoft entered the arena of dynamic web sites with ASP (Active Server Pages) about a decade ago. ASP allowed you to “actively” change the web pages served to the client depending on your needs. ASP worked (and still works) very well for basic web design. It requires a Microsoft based IIS server and the necessary licenses.
ASP.NET is Microsoft’s next evolution for server driven web pages. Rather than amend ASP to add new functionality, ASP.NET is a complete overhaul providing a programming interface that allows developers familiar with Visual Basic and other Microsoft based client-server development tools to code for the internet.
ASP.NET is superior to ASP Classic. There are four main areas that make ASP.NET a much better choice for programmers. These four areas include: stability, performance, scalability and language support.
Stability
ASP is running under the inetinfo.exe (IIS) process space, making it susceptible to application crashes. This happens because the IIS needs to be stopped or restarted on a regular basis. The ASP.Net process is separate from inetinfo.exe, meaning that it is not susceptible to these types of application crashes. This means that the final product will be much more stable.
Compilation
ASP Classic is comprised of VBScript or Jscript interpreted at run-time which means each page has a specific performance hit due to line by line interpretation. The interpretation of the pages simply results in some inefficiency.
ASP.NET however compiles the code the first time it is accessed. The compiled code results in .NET classes housed within assemblies and allow subsequent page requests to be serviced with previously compiled code. ASP.NET therefore inherently provides a more secure and largely efficient rendering model by incorporating compilation and specifically the reuse of the compiled code. This ultimately means a better experience for the end user.
Scalability
With Classic ASP applications, components used by pages are fairly difficult to update, maintain or replace. In general updating a component in a running application will require the shutting down of IIS, replacement of the component and finally a restart of IIS.
ASP.NET was built to provide specific enhancements that allow scalable and efficient application updating. The ‘xcopy’ deployment model of .NET allows replacement of pages and components in real time and does not require a restart of the web server. If an update needs to be made to a current production application, developers can simply make the change and the infrastructure can account for that change the next time a request is made to the altered page or component. This means that content updates, fixes and enhancements to ASP.NET applications can be made in real time with little to no impact to the user base.
Language Support
ASP.NET supports full server side programming languages and not just scripting languages. Only VBScript and Javascript are available for scripting in ASP Classic where as, in ASP.NET there are no such restrictions. With ASP.NET several programming languages like C# and VB.NET are available to program in accordance to the developers preference where both of them can even be used in the same application. The benefits of using server side programming languages can be seen in the previously mentioned compilation of code and the fact that rich control sets and complex frameworks are available to applications. In summary, the language support of ASP.NET allows for the development of robust, feature rich applications with deep programmatic support.