Thursday, October 15, 2009

Migration knowledge: Converting a 100-form IntraWeb site to C#/ASP.NET

This migration knowledge story probably would not even get published by Embarcadero, but worth telling.

Environment:
- Delphi Enterprise 2006 x 3 (US$2000 each),
- IntraWeb 2006 x 3 (Euro 1,199),
- UniDac 2006 x 3 license (Euro 399 each),
- TMS IntraWeb Component Pack Pro Site License (Euro 395),
- Fast Report Server (Euro 1,000),
Charged via MasterCard

The site that was to be published but was not. Your reviewer, being a Delphi fan, and 2 other Delphi developers embarked upon a journey better described as hell-raising experience: Convert a VB/ASP site into modern looking, Ajax-compatible site.

[At that time, we had DevExpress ExpressWeb, but stopped using it because it was no longer supported in Delphi]

We inherited the site from an Indian outsourcing company who failed to maintain it well, and from tried, at least tried to get it working with Delphi.

The initial development went well, and work started from days into weeks, then into months. the trouble started with the awful looking IntraWeb website design...

Take a look at "other" websites. How fast do they load? they load almost instantaneously. Take a look at IntraWeb website. How long does the default startup page load for your ISAPI website? (Approx 8-9 seconds).

Is there any way to beautify an existing IWPage, nope, except unless you get TMS IntraWeb Pro pack, since that allows you to access the scripting and script your site and web-elements. But joy turned to sadness when none of the Joomla! templates or WordPress basic HTML templates worked. Not even a basic layout (like the C#/ASPX master page worked).

Then we tried frames, but the frames support was minimal, and only IFAME support worked. Then we tried to link the front-end site to the back-end site, only to see the click from PHP only to go into to main default page (Can someone please ask ArcanaTech to UPDATE their libraries? It's now open-source and not updated so often and with little documentation)

The grids did not fare well towards large datasets. Go to any decent Ajax vendor website, and click on any of their web-based grids, chances are, they would load faster than the IntraWeb grids or even TMS IntraWeb grids.

Edit controls are so poor, even the IntraWeb and TMS IntraWeb pack leaves much to be desired. Could they at least not use decent colors instead of all gray? Even ExtJS and other Ajax libraries use decent buttons for their grids.

The logic was awry because back button was disabled. Sure, how would the customer feel if there was no back button? Then you would have to make all sorts of navigation layouts for this. Did I mention about the non-professional Outlook bar, or menus? Look at other web-based menu systems. I would consider it a joke.

One fine day, the customer could no longer tolerate the basic-looking website, and 100 Forms, all checked-in, we looked at Visual Studio ASP.NET Express

The very basic thing about Visual Studio is not that it's free, the thing works. You want a good ASP.NET website, within hours you can get the same effort.

- Let's talk about session handling, a dirty word in Delphi. Why is it that Delphi have no good session handling outside IntraWeb? Even the ISAPI examples are so plain, you might consider them good for simple sites. With ASP.NET, you have various methods of session handling. To be fair, IntraWeb have various handling methods, but no control over the back button.

- Let's talk about Browser. Suppose you use Chrome on an old IntraWeb site, no dice, you have to upgrade. Use Chrome on an old ASP.NET site, it works without problems. Since IntraWeb controls the environment, and browse specific, you get all sorts of problems for no reason.

- Let's talk about Data. Pump up a 50 page (page 1..50) with 50 items each. Tell me any IntraWeb example that does this with live data and with 10 or 20 concurrent users. Did anyone try? or did nobody try because there are no known working IntraWeb site (even AracanaTech and TMSsite is ASP.NET) to try this out. Why not ask Borland to change their QA Central to IntraWeb? that would be real test :)

We were surprised by fast development pace (BTW: Order the book "NET 2.0 for Dephi Developers", the poor person who wrote this book reported poor sales) and fast compile time.

The heresy that goes around is that C# compiles longer than Delphi/Intraweb does and takes longer, well, if Delphi/IntraWeb is so good, why are there not more sites?

Conversion tips:
- To start, the equivalent of TIWPage, TIWForm in Dephi is ASPX form, or *.aspx files.

- There are no IntraWeb "master" pages or template layouts. The equivalent is ".master" files in ASPX.

- There are various grids and edit controls you can use. Ajax, C#-based ASP.NET grids, and nice edit controls. Did anyone ever notice the Atlas Ajax site? Shhh, keep it a secret from Delphi developers...

Conversion took two months, but that two months were gushing with praise from the owners of the site, and after 9 months, the site broke even.

It was really Delphi that could, if IntraWeb could fix those flaws, but sadly, the C# version was much better.

No comments: