Project Description

This project hosts examples, tests and discussions of ASP Classic Compiler. ASP Classic Compiler is based on a VBScript compiler that compiles ASP pages into a .NET executable so that they can run inside the ASP.NET environment.

3/30/2014 Converted the source control from Mercurial to Git. Added examples on DateTime usage.
4/10/2011 Uploaded unit testing framework. Documents to appear in my blog.
3/29/2011. Open the source code under the Apache 2.0 license. See announcements.
Build 0.6.2.34834 uploaded on 04/04/2010. Fixed a few bugs. See History for more details.
Build 0.6.1.34834 uploaded on 03/27/2010. Fixed a few bugs.
Build 0.6.0.34834 uploaded on 12/18/2009. It works with FMStocks 1.0 now. See this blog entry for more details
Build 0.5.7.34834 uploaded on 12/03/2009. Fixed numerous little bugs.
Build 0.5.6.34834 uploaded on 11/30/2009. Fixed numerous little bugs.
Build 0.5.5.34834 uploaded on 11/16/2009. This version has significant enhancements on error reporting.
Build 0.5.4.34834 uploaded on 11/2/2009. Built with DLR 0.92. VS2010 and Silverlight build are available now.
Build 0.5.3.32871 uploaded on 10/25/2009. This build supports Windows Azure, variable initializer and extension operators.
Build 0.5.2.32072 uploaded on 10/17/2009. This build supports using asp classic compiler as an ASP.NET MVC ViewEngine.

Project Detail

ASP Classic Compiler is based on our VBScript compiler (sorry, no JScript at this time) that compiles VBScript into a .NET executable. The compiler host is implemented as an ASP.NET handler. The VBScript compiler is based on a hand-written parser and uses Microsoft Dynamic Language Runtime to generate the IL.

This project has two goals:
  1. High backward compatibility. The goal is to be able to run the majority of real world ASP pages under ASP.NET unmodified. This will provide a far smoother experience for migrating ASP Classic to ASP.NET. Currently, most ASP projects have to be migrated as a whole because ASP Classic and ASP.NET do not share states. ASP Classic Compiler will run ASP pages under the context of ASP.NET so they share the same state and security. This allows projects to be migrated page by page.
  2. CLR interoperability. For those who need a scripting language like VBScript, we intend to an a minimum set of new syntax constructs so that it can interoperate with .NET classes without registering these classes as COM.

Please visit the Features page for features and limitations. If you encounter an incompatibility, do no modify your page yet. Instead, use Issue Tracker to post bugs and feature requests. Take a vote so that we know the priorities. It is our goal to run most real-world ASP pages without modification.

Typical scenarios to use ASP Classic Compiler

  1. When you need to run ASP and ASP.NET side-by-site, ASP Classic Compiler runs your pages inside the ASP.NET runtime. You can migrate page by page and take advantage of the ASP.NET infrastructure immediately.
  2. When you want to run ASP pages faster, ASP Classic Compiler runs the same page up to a few times faster using the latest technology in Dynamic Language Runtime. Pages can run even faster if they are modified to use ASP.NET cache and .NET StringBuilder.
  3. When you run ASP in Cassini (the built-in web server in ASP.NET), ASP Classic Compiler is the only solution to run ASP pages inside Cassini.
  4. Windows Azure application in the cloud, as it is an ASP.NET application. Windows Azure does not support ASP Classic. You can run php but you have to run it in full-trust. ASP Classic Compiler can run in standard partial-trust since it is just another ASP application. You can even deploy pages to Azure storage so that you do not need to repackage your application to deploy a change.
  5. As view in ASP.NET MVC. Since ASP tends to generate html directly, it is more natural to migrate ASP pages to ASP.NET MVC than ASP.NET WebForms. We will provide a view engine so that the ASP Classic Compiler can be used as a view engine for ASP.NET MVC.
  6. As the template engine for a code generator. The ASP Classic Compiler can be hosted anywhere from a console to a GUI application. We run ASP Classic Compiler in our unit testing project.
  7. When you want to deploy a dynamic website on a read-only media/devices, it is possible to package ASP Classic Compiler with an embedded web server (e.g. Cassini) and database (e.g., SQL Server Compact edition) to run from a CD-ROM. ASP Classic Compiler generates code in memory. Users can run it when logging into the standard user account without requiring elevated privileges. .NET 2.0 is the only thing that needs to be preinstalled. IIS is not needed.

Have fun!

Related Pages:

Features
Installation
FAQ
History
ASP View Engine for ASP.NET MVC
Contact
Acknowledgements
Contributors

Last edited Mar 30 at 6:30 PM by dotneteer, version 48