Problem Solved: Modernizing a Classic ASP application

The Challenge

Early last year, we were 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:

In the 15 months that have elapsed since then, we have...

  • Successfully prototyped the proposed technology stack
  • Received approval to proceed with the modernization effort
  • Implemented and deployed to production the modernized application

Here is a quick rundown on the technology stack we used.

 

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 routingmiddleware 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 identicalto 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-...