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

download

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 checkout from the ASP Xtreme Evolution github address

Installation

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

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

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

Hi,

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…

Chao!

Sven Neumann 12 Sep 08 at 7:12am

Hi,

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

Vestaci Građevinske Struke 2 Dec 14 at 1:23am

It’s nearly impossible to find well-informed people abou this subject, but you seem like yoou
know what you’re talking about! Thanks

Eric D Gray 2 Dec 14 at 2:53pm

It’s really a nice and useful piece of information. I’m happy that you shared this helpful information with us.
Please stay us informed like this. Thank you forr
sharing.

Eric Donald Gray 2 Dec 14 at 2:55pm

Amazing blog! Do you have any tips for aspiring writers?
I’m planning to start my own website soon but I’m a little lost on everything.

Would you recommend starting with a free platform like
Wordpress or go for a paid option? There are so many choices out there that I’m totally confused ..
Any suggestions? Thanks!

Eric Donald Gray 2 Dec 14 at 4:42pm

I feel this is one of the such a lot significant information for me.
And i am glad reading your article. But wanna commentary on some normal things,
The website style is wonderful, the articles is actually
excellent : D. Good job, cheers

Eric D Gray 2 Dec 14 at 5:25pm

It’s an remarkable post in favor of all the online
users; they will get advantage from it I am sure.

Saleh Stevens 2 Dec 14 at 10:41pm

Excellent way of describing, and good post to obtain data concerning my presentation subject matter, which i am going to present
in school.

champ man 15 triche 7 Dec 14 at 2:21pm

Paper Toss by Backflip Studios is regarded as an antique
among workplace games. The school provided youngsters with facilities for example
spacious ventilated class rooms using the latest
teaching aids, an abundant library including a variety of expensive books,
state-of-the-art computer labs and well equipped science labs.
Check out a few totally awesome games that you can start
playing right after reading this. You can take unique, vintage-style photos in your compact photographic camera or
digital SLR and never have to concern yourself with editing.
You can search soccer games online and find a proper soccer coaching.
All of the enemies could also jump, bounce, roll
and move along very fast against all of the wall structures.
Mathematicians search for patterns and formulate new conjectures.
offering cheats and cheat codes, free hints, with exclusive video game
previews and daily news for all those X Box, Xbox 360 games.

All these kind of online cool games follow basically the same pattern: you drive your vehicle along approximately challenging circuits, with super experienced
opponents to get over and then leave behind you, different types of bonuses to collect and different types of
obstacles in order to avoid, too. Among these gaming devices, computers belong to the most used ones.

Remember they can get more information with practical activities like games.
Your goal is to aid Homer (who says that his is without blame for which happened) rebuild the town and discover his family and Bart.
The post here is often a discussion on both the child and Atari video gaming online.
The starting point is squaring each with the digits to acquire the partial results.
And a research shows that you receive a better
refreshment by playing a game title or by listening
music. This may seem funny, and you’ll not
think such a thing exists, but dependence on games is as real as any other addiction. There
may be a significant bit of research done on this topic and it is possible
to bet there will be considered a whole lot more to come.

In fact, when the users can adjust the situational factors found in the seed, the experience might be made better.
At the same time, they must take care for the road, avoiding
accidents that could bring about injuries to their passengers.
Color is another factor inside the game because besides matching
clothes, there should be complementary colors with what
Barbie is wearing. If you are looking for Wii games for ladies aging nearly of four years then,
this game is the very best option. The goal in the game is drive to the helicopter that just landed.
Children receive insights into basic addition plus subtraction, also since basic geometry, especially regarding shapes and their
companies. Now you’re ready to jump in to the online realm of quests,
battles, and never-ending adventures. People will likely be known to have their own player
and it was always fun to simply to utilise home after school and play until
our thumbs were numbing.

champ man 15 triche 7 Dec 14 at 2:23pm

Paper Toss by Backflip Studios is regarded as an antique
among workplace games. The school provided youngsters with facilities for example
spacious ventilated class rooms using the latest
teaching aids, an abundant library including a variety of expensive books,
state-of-the-art computer labs and well equipped science labs.
Check out a few totally awesome games that you can start
playing right after reading this. You can take unique, vintage-style photos in your compact photographic camera or
digital SLR and never have to concern yourself with editing.
You can search soccer games online and find a proper soccer coaching.
All of the enemies could also jump, bounce, roll
and move along very fast against all of the wall structures.
Mathematicians search for patterns and formulate new conjectures.
offering cheats and cheat codes, free hints, with exclusive video game
previews and daily news for all those X Box, Xbox 360 games.

All these kind of online cool games follow basically the same pattern: you drive your vehicle along approximately challenging circuits, with super experienced
opponents to get over and then leave behind you, different types of bonuses to collect and different types of
obstacles in order to avoid, too. Among these gaming devices, computers belong to the most used ones.

Remember they can get more information with practical activities like games.
Your goal is to aid Homer (who says that his is without blame for which happened) rebuild the town and discover his family and Bart.
The post here is often a discussion on both the child and Atari video gaming online.
The starting point is squaring each with the digits to acquire the partial results.
And a research shows that you receive a better
refreshment by playing a game title or by listening
music. This may seem funny, and you’ll not
think such a thing exists, but dependence on games is as real as any other addiction. There
may be a significant bit of research done on this topic and it is possible
to bet there will be considered a whole lot more to come.

In fact, when the users can adjust the situational factors found in the seed, the experience might be made better.
At the same time, they must take care for the road, avoiding
accidents that could bring about injuries to their passengers.
Color is another factor inside the game because besides matching
clothes, there should be complementary colors with what
Barbie is wearing. If you are looking for Wii games for ladies aging nearly of four years then,
this game is the very best option. The goal in the game is drive to the helicopter that just landed.
Children receive insights into basic addition plus subtraction, also since basic geometry, especially regarding shapes and their
companies. Now you’re ready to jump in to the online realm of quests,
battles, and never-ending adventures. People will likely be known to have their own player
and it was always fun to simply to utilise home after school and play until
our thumbs were numbing.

comprar gostos Instagram e seguidores 15 Dec 14 at 11:58am

I don’t even know the way I ended up here, but I thought this submit was good.
I do not realize who you’re but definitely you’re going to a well-known blogger if you happen to aren’t already.
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.