Xp Asp

How to do ExtremeProgramming in ASP.

Don't feel any need to preserve original text please. This was written by an idiot.

Don't worry about that. ASP coders typically moved up from HTML or SQL. Not a compiled language. And VisualInterdev? "encourages" one to use the design philosophy "put the cursor where you don't have a feature and keep typing until there's a feature there".

And that really sucks for those of us who grew up on real programming systems. God I wish I was free to choose the development platform here, but there are too many political forces at work. The main one seems to be, NobodyEverGotFiredForBuyingMicrosoft.

While I agree with your view of the typical ASP coder, I don't think it fair that you blame the ActiveServerPages technology itself. All languages/technologies are abused/misused by people who have no clue what they're doing. Use the technology the way you want to... the right way. Check out OoAspPractices for more info.


PairProgramming is obvious (I'm actually doing it now as a way to bring a partner up to speed)

UnitTests are AspUnits

CodingStandards are extremely important, for both technique and style. Mixing 3 or 4 languages in one source file makes for an "InsaneSuperset?" much larger than traditionally reviled languages, such as C++. So a very tight SaneSubset becomes mission critical.

YouArentGonnaNeedIt works just fine, modulo technical details that you most certainly will need, such as Server.HTMLEncode().

OnceAndOnlyOnce works ok. Actually it works great! See OoAspPractices for more details on how.

RefactorMercilessly can be a pain. Asp seems to encourage awefull amounts of dependencies.


How do you test at present? This seems to be the weakest area. As I understand it testing needs to be automated to allow you to really RefactorMercilessly.

How are you achieving OnceAndOnlyOnce with Includes?

Well, I can at least reuse functions without cutting and pasting thanks to Includes. I'm told that I can use Classes, which would be much cooler, but Iis complained about not recognizing the class keywork on my first attempt, and I didn't have time to continue trying write then. In order to create classes in VbScript, you need to be using version 5.0 of the ScriptingEngines. You can download these from http://msdn.microsoft.com/scripting/.

One SaneSubset tip should be "reduce the total number of languages". If the client-side scripts are JavaScript, then the server-side ones should be too.

Voila! Now you have classes.

I'll run that by my partner. I suspect that having JavaScript running two different places might be more confusing than having two different languages. However, it is worth exploring.

It occurs to me that you might be able to write your classes in JavaScript in one script block, and then program with those classes in VbScript script blocks.

The above is 100% true.

But.. Mixing scripting languages in the page causes IIS to load each scripting language interpreter individually as it goes, impacting performance, potentially severely. This may or may not be formally documented anywhere, but it has been mentioned in a few MSDN articles in the past. --DaveCantrell


If your VbScript on ActiveServerPages is non-trivial, refactor it into VisualBasic ActiveX components. Then you'll have classes.


See also: ActiveServerPages


EditText of this page (last edited November 6, 2003) or FindPage with title or text search