Modernizing a Classic ASP application

The Challenge

We were recently tasked by one of our customers to propose and prototype a new technology stack for a complex application built using Classic ASP. The existing application uses an Oracle database and the JScript scripting language (essentially, JavaScript).

Our research led us to the following proposed technology stack:

Node.js

Node.js is an open-source, cross-platform toolkit for developing web applications using server-side JavaScript. By sticking with JavaScript as our server-side scripting language, we have the potential to re-use a large portion of the existing JavaScript codebase.

Express

Express is a minimal application framework that provides some basic features that any application would need, for example: request routing, middleware and template engines.

Underscore

Underscore is a library of JavaScript utilities. For our prototype, we depend on its template engine. We selected this template engine out of the 20+ engines available because its template syntax is identical to that used by Classic ASP. That should also allow us to re-use a large portion of the existing set of templates.

Consolidate

Consolidate provides a standardized API to most template engines available for Express. It allows the developer to potentially swap out template engines (the view in a Model-View-Controller architecture) without changing any code in the model or the controller.

Body-parser

Body-parser is middleware for parsing the body of incoming requests. It is typically used to extract form field values in the action script for a form.

SQLite

SQLite is a standalone, zero-configuration, cross-platform relational database engine. During the prototyping phase, it is convenient to be able to run the application without having an Oracle engine available. 

Nodemon

Nodemon is a utility for Node.js that will monitor the file system for changes in the source code and automatically restart the server in order to pick up those changes. This proves very useful during the development of a rapidly evolving prototype.

Source: http://www.finitewisdom.com/people/joshua-...