a brief about me

My avatar
Fabio Zendhi Nagao

is an applied mathematician from IME - USP - Brazil currently working as CTO at Lojcomm Internet, a company specialized in e-commerce. + info

fields of interest: E-commerce, Web 2.0, Web Design, Mathematical Programming.

out of date goodies

In order to help the large amount of people looking for my old widgets everyday, I'm putting below a list of the most wanted. Note that the others are still accessible at http://zendold.lojcomm.com.br/.

support my projects

If you like my free products and want to support their advancement, please consider making a small (or large!) donation.

ASP Xtreme Evolution

Introduction

This project born from the necessity of bringing some up-to-date best practices to the Classic ASP World. Things like a good MVC architecture, with XML interacting with your database providing a standard way to your system talk to other systems and XSLT building your views are minimal requirements for any good application. But you should be asking yourself: “Why Classic ASP? It’s old, the .NET Framework is at 3.5!” and I’m ready to answer: “And why not?”. The truth is that Active Server Pages has it’s time in the Internet history and for a large period it was widely used. As any relevant programming language, it left a big amount of complex applications running in a so perfectly nice way that they are not going to be replaced very soon. Just for example: Here, in Brazil, the Visanet online transaction process still relies in Classic ASP and COM+ extensions. The same happen with some big banks.

Why VBScript and not JScript? First of all, in it’s time, VBScript was the “standard” language of ASP. Many developers took their time reading articles and making experiments with VBScript, not JScript so I belive it’s a good idea to respect the time people spent to their VBScript skills and make a good thing for them. Second, VBScript isn’t a bad language. It’s a language after all, like any real world language: English, Japanese, Portuguese. Saying that a programming language is better than other seems so lame to me as saying that French is better than English or Japanese is better than Portuguese. It has some annoying things like being case-insensitive and a very rustic class model, but nothing that we can’t bypass and make some poems and musics. This is the case of the framework support for features that was not too mature in the time of ASP conception but are very often used nowadays. Things like managing zip files, manipulating images, using JSON to communicate with the client-side engine in this Ajax-Era.

Did’nt you take a look at Google? There are already Troika.ASP and Simple MVC ASP Framework why not to use them? Yes, it’s true there are good projects online, actually I’ve based my own in some of the Rob Rohan one, like hijacking the Session scope into a Request scope. But this framework is entire built from the ground and the way it talks between the modules isn’t the same as in that one. Well, Troika.ASP is a very complete MVC Framework and it also comes with a lot of helpful classes. But it’s written in JScript and I just wanted to give the a good alternative to the people who like VBScript.

Concept

The ASP Xtreme Evolution goal is to provide a versatile MVC URL-Friendly base for Classic ASP applications with some additional features that are not ASP native. It should implement things that are common to most applications removing the pain of starting a new software and helping you to structure it so that you get things right from the beginning.

Main parts

Routing your Friendly URLs

The routing system takes every url request and translate, if necessary, into something understandable to the system. In this framework, the engine will be basically mapping http://www.yourdomain.com/controller/method/0/1/2/3/…/n to your controller.method() with an array Session(“argv”) with the values [0, 1, 2, 3, …, n].

Model

The Model accesses your data. It might talk to a database, or to a web service, or use smoke signals to acquire the information it returns to you; the essential point is that the way the data is retrieved is absolutely irrelevant to the code that uses the model. So in the beginning, your application would use models that return “fake” dummy test data for rapid prototyping, and later, you will write the actual code that talks to a database.

View

The View presents your data. That typically means it renders an HTML document from one or more templates. But it could also build an RSS feed from the data it was given, or create a JSON data structure for the Ajax functionality of your application – it’s all up to you!

Controller

The Controller contains the business logic: the code that talks to the model, performs necessary tasks, send it to the view, prepares data for the cache system and to be sent to the user.

Cache System

In order to avoid processing the same code at every request, the cache system will save specific requests (configured at /app/config.xml) and tell the routing system to use the processed static version making those pages blazing fast to be retrieved.

Extended features

There are some built-in classes which helps a lot when handling Zip files, Image manipulations, JSON and Uploads.

Required extensions

ASP Xtreme Evolution is based in some extensions, but don’t worry it’s all free and everything already comes with the package. Although, if you want to check the original projects, here’s a list of their sites:

Documentation

You can find the framework documentation here

Working example

A blank installation is running here check it now to see the routing and ?inspect=true features working.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Download

You can download the zip package here.

Installation

For installation instructions, please read the INSTALL.txt located at /app/docs or follow the image instructions below:

4 Comments

Hudson Mendes 29 Jan 08 at 4:16pm

Good stuff, mate!

Jack 30 Jan 08 at 10:04am

Cool framework! I like old goodies and still addicted to ASP ;)

WebGyver 30 Jan 08 at 11:08am

Awesome stuff!

You know, despite all the OOP and C# demands of our time, I am still spending almost 50% of my time in Classic ASP. Your information and links have certainly helped me a great deal as far as refactoring some of the legacy code — from structured ASP to OO ASP.

Thank you!

Dave M 11 Jun 08 at 11:26am

Wow, Nice work. Looks like a great project. The rewrite part will be great if it works correctly I’ve been tinkering with Troika and the urls were the one thing that bugged me about using the MVC pattern.

I notice your link to the Ionics Isapi Rewrite Filter is dead. I wanted to check that out to see if I can install that rewrite module/extention on a shared server, as most of the stuff I code will be hosted on a server that won’t allow isapi filters to be installed.

Is there a new link to the Ionics Isapi Rewrite Filter website, or did that project just become abandoned?

Thanks,
Dave

p.s. After writing that, I found the Open Source stuff here:
http://www.codeplex.com/IIRF


Dave, all the required components already come with the framework package.

Post a comment

Comment Guidelines

  • Have no more than 2 links, otherwise your comment will be flagged as spam.
  • Links are automagically generated.
  • Textile Guide: _emphasis_, *strong*, -deleted text-, +inserted text+, @code@ ... more.
  • No signatures. No solicitations. Be nice. Be civil.