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, Collective Intelligence, Interoperability, Web 2.0, Web Design, Mathematical Programming, Pattern Recognition.

contacts: Twitter and nagaozen @hotmail.com, @gmail.com and @yahoo.com

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 or buying me a book from my Amazon wishlish.

ASP Xtreme Evolution

ASP Xtreme Evolution logo



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.


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].


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.


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!


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:


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.


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/.


You can checkout from the ASP Xtreme Evolution github address


For installation instructions, please read the INSTALL.txt README.md or follow the image instructions below:


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?


p.s. After writing that, I found the Open Source stuff here:

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

asun 2 Aug 08 at 2:55pm

please help me~!i can’t download it~!please send the zip package to my email(sun2grit@gmail.com),thanks~!

Juan Pulido 3 Aug 08 at 8:08pm


Requiero pasar datos de un JSON a ASP y encontré que en este Framework hay una clase que lo hace.

Pero no puedo descargarlo, por favor Fabio no funciona el subdominio donde esta package.

Por cierto te encontré en webdevbros…


Sven Neumann 12 Sep 08 at 7:12am


I’ve been trying to use your json object. Turns out its pretty buggy. Here are some suggested fixes (quite obvious really):

This function was broken, since you were not recursing, but simply re-assigning parentNode in the loop.

this.getChildNodes = function(sPath) {
    var keys = [];
    var parentNode;
    if( sPath.length > 0 ) {
        var aPath = sPath.split(’.’);
        parentNode = me.data;
        for(var i = 0, len = aPath.length; i < len; i++) {
            parentNode = parentNode[aPath[i]];
    } else {
        parentNode = me.data;
    for(var key in parentNode) {
        (sPath.length > 0)? keys.push(sPath + “.” + key) : keys.push(key);
    return keys;

This function would fail on non-existent paths. Fixed that with one line:

this.getElement = function(sPath) {
    var node = me.data;
    var aPath = sPath.split(’.’);
    for(var i = 0, len = aPath.length; i < len; i++) {
        node = node[aPath[i]];
        if(!node) return null;
    return node;

Hi Sven, first of all, thanks your comments! I’ve checked your complaints and here is my answer:

The getElement function DOES WORK FOR NON-EXISTENT PATHS. I’ve made a call for something like fields.four in the docs example and it returns vbEmpty (uninitialized) or VarType 0 which appears to be the right one IMHO since NULL in VBScript stands for no valid data.

About the getChildNodes the fix concept is right although I like more the way below to do it:

this.getChildNodes = function(sPath) {
    var keys = [];
    var parentNode = me.data;
    if( sPath.length > 0 ) {
        var aPath = sPath.split(’.’);
        for(var i = 0, len = aPath.length; i < len; i++) {
            parentNode = parentNode[aPath[i]];
    for(var key in parentNode) {
        (sPath.length > 0)? keys.push(sPath + “.” + key) : keys.push(key);
    return keys;
Tonći 22 Sep 08 at 0:26am

Hi Fabio,

I don’t have deep knowledge of ASP but I’m wondering if it’s possible(and smart) to use Server.Execute of Server.Transfer? If I read the specs well, all variables should be transferred as well, which gives a nice way to switch from controller to view and vice versa. Or is there a nasty catch which I missed? And how do you use the traditional session info?

It looks like a good MVC overall, nice job! ;)

Timothy 18 Nov 08 at 6:36pm

Interesting. This is the kind of thing that VB coders needed…

flatfeet 30 Nov 08 at 3:10am

Good job, Fabio! BTW, anyone know if there is an inexpensive web host (based in USA or UK/Europe) that supports Classic ASP with ionic ISAPI filter, etc. so that we can use this framework by Fabio?

Kim, Kiseok 16 Jan 09 at 8:19am

Thank you for works!

Carlos Man 20 Mar 09 at 5:18pm

Thanks a lot for your json.class.asp file. Very useful and thoughtfully performed.

Carlos Mota 10 Apr 09 at 4:36pm

Hi Fabio!

Before I found your links I was kind of sad because many people called classic ASP an obsolete code (old code, legacy code, etc.) and I thought that the hundreds of hours I spent searching for ASP/VBScript in the Net and the thousands of hours I spent studying and working on that code, were kind of a lost time.

I’m not an academic programmer and my main interest is Webdesign. I have made a course of ASP.NET with C# but I don’t want to move from classic ASP to ASP.NET. I want to be able to coding the simple way, with just notepad or similar (I use Frontpage).
So, your efforts to keep ASP/VBScript alive are inspiring.

You also have good taste regarding webdesign.
Keep up the good work!

Carlos Mota

vanstar.he 22 Apr 09 at 6:14am

good job!

cyberd 28 May 09 at 2:07pm

Is it possible to use it at XP PRO (SP3 – IIS)… ?

i want to install it at c:\inetpub\wwwroot\newfolder

where the hell i must allow that filters…. can’t find where to allow them at IIS (winxp)…

thanx in advance..

ps: avira antivir found ***template.asp something having script virus …

I don't know if it runs in XP PRO. AXE is built to work on Windows Server. The best I can suggest you is to try installing one in a Virtualbox. Also, try a better anti-virus, this project is open-source, you can look inside and check yourself it doesn't contain anything harmful.

cyberd 29 May 09 at 5:36am

thanks for the answer…
but hey… avira antivir is number one! …better than kaspersky / nod32 / symantec.. may be the advance heuristic machine have some problem :-(i had it at medium security)

Do you know if axe can run at Abyss ? (the best web server ever with the help of selisoft ahtml)

Frankly I don't know. If what they say about having a real support for "Classic" ASP is true, then yes, since almost everything is pure ASP. The only tunnings you may need to do are: 1) changing from IIRF to the server URL Rewrinting system, 2) changing the Image class to use GD or ImageMagick (I'll make the last one available to Windows too) and... maybe something related to zip packages.

Bruno Souza 9 Jun 09 at 3:53pm

Olá Fábio. Parabéns, pelo artigo. Você tem esse material disponibilizado em português (para seus compatriotas)?

Oi Bruno, os artigos que considero mais importantes são também publicados no site http://www.imasters.com.br/. Veja se o que você procura já está lá.

frank 24 Jun 09 at 6:14am

I understand what your thought…But just listen to me... give up VBScript...
Instead, use JScript, It ‘s very better than VBS!

AXE currently roadmap points to extend ASP itself, which will make possible to use it with any ASP language (VBScript, JScript, Python, Ruby, Perl, ...) yaaaih! Wait and see :P

Sancler 20 Jul 09 at 5:18pm

Grande contribuição Fábio. Você realizou um trabalho realmente fantástico. Eu também tenho algumas pacotes de classes que facilitam a utilização do asp e gostaria de compartilhá-las caso esteja interessado.

Mike 26 Sep 09 at 6:46am

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

And if they are going to be replaced it should be by another Classic ASP application? I don’t think so.

But, you have done a great job and it is very admirable. Just very limited in scope. If only you had done this in 1998…

Allen 21 Oct 09 at 2:36pm

Bravo!! To express respect.

Eugeny 7 Oct 11 at 3:06am

Get Error 500;100
msxml6.dll error (0×80072EFD)
Connection with server could not be astablished /lib/axe/classes/kernel.asp line 192

Diego Ponce 1 Mar 12 at 10:43am

msxml6.dll error ‘80072efd’

A connection with the server could not be established

/lib/axe/classes/kernel.asp, línea 192

at: "Eugeny" and "Diego Ponce"

This error is usually related with miss-configuring the /app/config.xml or forgeting to add a view application pool.

Ngoc Tran 2 Apr 12 at 8:30am

I’ve followed the steps you guided but the installation was not successfull :( I couldn’t find the /lib/axe/bin/IsapiRewrite4.dll file, please re-check the installation guide. Thank you!

You are right, there isn't a IsapiRewrite4.dll anymore. Framework got upgraded to use Ionics Isapi Rewrite Filter 2.1 stable. Please visit their repository and download the latest binary.

John 22 Sep 13 at 0:45am

Hi Fabio.

I installed AXE and tried to install the rewrite filter and got an error message to say that it was incompatible with 64 bit systems. I then downloaded a 64 bit version, and installed it.

During the installation process I was only given the option of installing across the whole server, individual websites were not listed, then when I did it broke every site on the server. I’ve uninstalled it and everything is back to the way it was.

I’m using IIS 7 – I wondered if Microsoft’s official IIS URL Rewrite Module might do the job instead

Many thanks

sharp 70 inch tv costco uk 24 Jan 15 at 2:54am

Nevertheless, for televisions that have an identical Smart Score scores, we gave increased rankings to
the fashions with a lower cost per inch.

Campus Life Cheats 25 Jan 15 at 6:54am

It’s difficult to find well-informed people on this
topic, but you seem like you know what you’re talking about!

Campus Life Cheats 25 Jan 15 at 6:55am

It’s difficult to find well-informed people on this
topic, but you seem like you know what you’re talking about!

Hack Dofus 25 Jan 15 at 7:47am

je ne suis pas qui une bonne partie d’un internet le lecteur pour être honnête mais votre sites vraiment agréable, le maintenir !
J’irai de l’avant et le signet votre site Web revenir à l’avenir à l’avenir plus tard sur.
beaucoup de merci d’en haut|salut de , of cours ce article est actually nice
et j’ai appris beaucoup de choses de lui regarding
écrivant blog. thanks. d’en haut|salut de Whats sur Très agréable site! !
gars.. excellent.. Wonderful.. je fais Le signet votre blog et prend le
nourrit en plus ? je suis happy trouver pour aller voir à chercher nombreux serviable informations juste ici dans le submit, nous voulons le développe plus techniques dans ceci L‘égard, remercier vous pour partager.

. . . . de vous êtes véritablement un excellent
le webmestre. Le site Web chargeant pace est stupéfiant.
il le type de genre de sent Qui vous êtes
n’importe lequel faisant distinctif le tour.

aussi, Les contenus sont masterwork. vous avez fait Un magnificent task dans ceci

Todd 26 Jan 15 at 0:31am

Cuando se solicita dinero al banco para la compra de un piso es con la condición de
devolver ese dinero y unos intereses.

My Talking Tom hack 26 Jan 15 at 3:38pm

Every weekend i used to visit this web site, because i wish for
enjoyment, as this this site conations truly fastidious funny information too.

My Talking Tom hack 26 Jan 15 at 3:39pm

Every weekend i used to visit this web site, because i wish for
enjoyment, as this this site conations truly fastidious funny information too.

email 26 Jan 15 at 9:58pm

hello!,I like your writing sso so much! percentage we be in contact more about your poost on AOL?
I need a spe*****t in this space to solve my problem. Maybe that is you!

Taking a look ahead to look you.

cloud raiders hack 28 Jan 15 at 4:13pm

Hi there to every body, it’s my first pay a visit of this blog;
this web site consists of awesome and really good data for visitors.

cloud raiders hack 28 Jan 15 at 4:14pm

Hi there to every body, it’s my first pay a visit of this blog;
this web site consists of awesome and really good data for visitors.

venus factor reviews 29 Jan 15 at 3:57pm

Appreciating the pеrsistence yoou put into your website and Ԁetailed information you present.
It’s awеsߋme to coje across a blog every ߋnce in a whilе that
isn’t ttҺe sam unwanted rehashed material. Great read! I’ve bookmarked ƴokur site
and I’m including youг RSSfeeds too my Google account.

usaha online 2015 29 Jan 15 at 6:48pm

The crucial stp is the exchange oof cards, when you go out to create
impression on customers. For your business card to be tthe marketing tool it shoupd be, there are a few things you must take into
consideration when planning and designing your cards. Also, if there waas an automated way where you woupd bee reminded
of everyone’s birthday, anniversary, and other major events -five
too six days before those events happened, you would be more open to sending a greeting
card – especially if it only tkok two minutes at your computer to do
it. The first step in organizing the cards is to first collect all the cards in one place
sso that it is possible to esetimate the total volume
of the casrds and subsequently decide on the storage

Undead Slayer Cheat 30 Jan 15 at 1:39am

There is definately a great deal to find out about this topic.
I love all the points you have made.

Hack Dofus 31 Jan 15 at 0:06am

. Si quelques-uns un desires être mis à jour avec le plus chaud les technologies après
que qui il doit être le voir ceci la page Web et est en haut de
dater every jour d’en haut|salut de salut there, pour tout le temps j’ai vérifié webpage les postes
ici dans les premières heures dans le morning, because je like
à découverte de connaissance d’apprend de plus en plus de.
d’en haut|salut de pouvez-vous nous dire plus de ceci ? Je fais love pour découvrir plus les informations supplémentaires de détaille de Howdy !
Est-ce que ça vous ennuierait si je partage votre blog avec mon facebook groupe ?
Il y a beaucoup de les gens que je pense fais vraiment apprécie votre contenu.
S’il vous plaît me permettre de savoir.
beaucoup de merci

Township Hack 31 Jan 15 at 11:19pm

I believe this is among the most important info for me.
And i’m glad reading your article. But should statement on few general things,
The web site style is ideal, the articles is actually excellent : D.
Just right process, cheers

Township Hack 31 Jan 15 at 11:20pm

I believe this is among the most important info for me.
And i’m glad reading your article. But should statement on few general things,
The web site style is ideal, the articles is actually excellent : D.
Just right process, cheers

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.