Delphi … Internet …

September 20, 2005

In the early days (Delphi 1 to 4) I didn’t had a great interest in the Delphi Internet development proposals. I think it was Delphi 4 that proposed for the first time *Internet Express*. Delphi 5 introduced *WebBroker*. Delphi 6 added the *Websnap* layer to WebBroker. And then … silence. Oh, in the most recent products (Delphi 8 and 2005) there is ASP.NET (with code behind in Delphi), of course.

It is good to mention the two most notable third-party web frameworks (built on top of WebBroker and/or Websnap): “ExpressWebFramework”:http://www.devexpress.com/Products/VCL/EWF/ and “IntraWeb”:http://www.atozed.com/intraWeb/.

Personally, I have used Internet Express, WebSnap and ASP.NET. I only took a look at the third party ones.

So, let’s start with *Internet Express*. The central point of the development were the _page producers_. These were components that could take an html file or stream, pass it through a tag replacement filter and feed it to the response. Their design was so simple and generic that they can be used even in desktop applications (creating html dynamic pages as replacements of the classic grids or help pages).

The big thing, looking back at it, it is the InternetExpress’s MIDAS link. In fact, with no much of a hassle, one could write a desktop application and a web application using the same code on the server. By same code understanding the code providing client-side datasets with data from the database. I will get back on this one later, coupled with AJAX (note to self).

*WebBroker* went a lot further and proposed _web modules_ with _actions_. The actions correspond to the URLs that your application will respond to. The big news was that one could compile a CGI, ISAPI or Apache module (dso) with almost the same code, using only different project files. This was a big advance, and a hell of a reason to use Delphi. At the time WebBroker appeared, Borland provided Kylix, a Delphi/C++Builder sibling working on Linux. Add the triple offer (CGI/Isapi/Apache mdules) to Linux compilation and we have something very interesting! This was the time Delphi was in the frontline.

And here comes *Websnap*. Announced in a big way (_the RAD web framework_), Websnap is now a big disappointment. It was built on top of WebBroker and offered a lot of advantages, not loosing anything of the WebBroker’s offer. I must mention that I am still using it until today in my work.
And it was not bad. For starters, you got multiple WebModules, user management base components, session management (in-process by default, easily to expand to database hosted), adapters (layer between datasets and the produced page) etc.
But, man, it was complicated! Anything in it was written using interfaces. Which is not bad. But is very difficult to debug. Try only to debug a CGI. Now imagine ISAPI. That’s cold outside. Get in!

For me, it looks like at that point (between Delphi 6 and 7) it just stopped. At the same time, Delphi guys (read managers) saw .Net and we were left with our hammers and stones… I mean, Kylix stopped at the same time, Websnap too, this is a big chunk of Delphi! The Linux part and the Web part.

Now, we got ASP.NET. It is true, Websnap and WebBroker and Internet Express are still there, in the Win32 version of Delphi 2005. It has quirks, same bugs, same difficulties, no third party support (except those two frameworks mentioned before) - which shows how difficult is to grow something on those components.

Me, I am thinking that a combination of Websnap with InternetExpress and AJAX would (have) kill just any concurrence. They got it all, they just let it slip.

Now back to my Web 2.0 blogs, where nobody mentions Delphi no more ….

Update: some typos, some tenses …

Update 2: As usual, Marcu Cantù gets it sooner than others ;)

1 Comment »

The URI to TrackBack this entry is: http://mapopescu.blogsome.com/2005/09/20/delphi-internet/trackback/

  1. I must say I agree completly, it is nice to see people have blogs where they spread the same opinion you got.

    Comment by Luniquer — October 10, 2005 @ 7:31 pm

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>