Showing posts with label IntraWeb Series. Show all posts
Showing posts with label IntraWeb Series. Show all posts

Friday, November 27, 2009

Interesting Delphi alternative - RIA Ajax Gui Builder

Your reviewer was looking at doing his next Delphi-IntraWeb based app and was wondering what was around.

Costs
Let's say you have 5 people working on this project:

Price Proposal #1:
- Delphi 2010 enterprise * 5 = US$2499 * 5 = US$12,495
- TMS IntraWeb studio * 1 team license = US$1300
- MadExcept * 5 = US$99 = US$495
Others:
- Arcanatech Open-source
Total price for Delphi solution = US$14,290

- Possibly throw in RemObjects SDK, AnyDac, DataAbstract?, UniDac, PaxScript.
- Alternate would be kbmMW or Real-Thin-Client solution.

Price Proposal #2:
- WaveMaker community * 5 = US$0
- Apache = US$0
- (did not use anything else)


IntraWeb Alternatives
Your reviewer was looking around for credible alternatives to IntraWeb. Few days later, your reviewer found WaveMaker - www.wavemaker.com

There are several GUIs for JavaSript - ExtJS (commercial), Tibco General Interface, IBM WebSphere Mash, Aptana, SmartClient.com and WaveFusion.

For commercial solutions:
- ExtJs has bindings to Delphi (search around Torry's Delphi Pages),
- TibCo General Interface can communicate via SOAP (if you have RemObjects SOAP SDK) or Ajax/Json via DoJo.

[ExtJS is free if you are doing GPL work, like adding extra GPL code to your Delphi project and expecting nobody to find out about it. (smile)]

[TibCo, you have call them up for alternate payment methods, unless you want to get more frequent miles points on your credit card.]

Free offerings:
- Java/Eclipse have Ajax Toolkit you might want to look at
- IBM WebSphere assumes you use Java, the SOAP builder is interesting.

IBM WebSphere was impressive because it has Javascript GUI builder. TIBCO was also professionally done.

Aptana have embedded Javascript-server, the kind that could challenge IntraWeb into building stand-alone EXE files. It was very tastefully done. Your reviewer was impressed by DoJo and WaveMaker.


Problem #1: Learning many languages
The "problem" with Website development is, it's either using FireFox/XPCOM interface /FireBug with tedious coding with PHP/Java/Python/Perl.

That is:
- you can make a good site with Perl, to make "damn" good site with Perl, you would need very good Perl knowledge, JavaScript, DBI and so on.

- you can make a good site with PHP, to make "damn" good site with PHP, you need to learn PHP, PHP database interfaces, PHP Classes and so on.

- Ditto with Python, C#, NET, ColdFusion and Delphi/IntraWeb.

- The lingua franca you always had to learn were IE DOM Model, Firefox DOM Model, JavaScript and CSS.

There's also some Photoshop work. Your reviewer found free older versions of Corel Paintshop somewhere on Corel's website.


Problem #2: Desktop, Website?
The Win32 client does not play well with Web-based development tools. The familiar Delphi has IntraWeb (so long as you can pay for it), Visual C++ have ISAPI (Server-side), NET has two different classes, WebForms and WinForms.

People had to use embedded Cassini, mini-Java TomCat server (btw, most Java solutions have it, like Eclipse). The PHP folks have Apache/PHP stack (LAMP) under Windows if they wanted to serve-up "web-based Destkops"

Both Desktop programming and Web-based development are two different things.

Have you seen any successful IntraWeb EXE files lately? Me neither.


Problem #3: New protocols, open-standards
The Win32 client with Delphi, you have to use Indy (there's always the occasional Indy bashing going in the Borland newsgroups) or ICS or RemObjects (if you can see their HTTP server sources). If you have money, you can use the not-very-Clever components, which have not been updated for 2 years (to be fair, they updated it only for Delphi 2009 compatibility) in their history list. right.

There's JSON Ajax calls, any VCL for that?, or JMS?
(To be fair, there's Michael Justin's betasoft for JMS, with paid "trial").

It's pay, pay and pay to get involved into Web for Delphi.


Problem #4: GUI Builder?

This is where What you see is not what you get. With PHP, it would be constantly refreshing browser, emitting PHP + JavaScript, learning good PHP (server-side valiation) also means learning JavaScript, along with getting good IDE (such as UltraEdit or SlickEdit) that have Intellisense as well.

With Perl, there are those hard-core Perl-monk (:

I'm a Perl monk, I use Linux command-line, either VI or VIM, Emacs, :! to bash and then run Perl with stdin my Perl scripts and emit HTML on-scren, read it with lynx (text-based) HTML browser and program my way from there. Use Visual Studio? That would be way too tempting and over my head"

The problem is POST needs to parse data, GET needs to have pre-filled-in data or dynamic HTML web-pages, session needs to be handled, JavaScript needs to be emitted, and so on.

There is ASP.NET, JSF (Java Server Faces) which have direct GUI builders, until recently...

Your reviewer looked at IBM WebSphere, TibCo General Interface, SmartClient, ExtJS GUI builder, DoJo Bok(something) (by some Uncle on a blog).


DeskDrive WaveMaker
Your reviewer looked at Delphi 2010 and wondered if he should get this (and waste his Christmas bonus) or look at WaveMaker

The community was friendly, even so much your reviewer got assistance in hours. (Try posting on Embarcadero's forum and wait days for response).

The cost was free, as in US$0/- for community edition,

- the SOAP was working (did you try Delphi 2006, 2007, 2008, 2009's WSDL import only to plunk down a thousand more for RemObject's SDK?)

- the JSon was working correctly (why are there no examples to use JavaScript YUL (Yahoo Library) or DoJo toolkit with Delphi-back-end?)

- the speed was fast (did anyone try loading 1000 records?)

- the GUI looks amazing (did anyone making nice GUI in IntraWeb?)

- instant connections to databases (with Delphi, you plonk down more cash for this)

- plays well with C# (with DoJo.NET), Java, Perl and PHP.

There is really no need to play well with Delphi-socket-servers, since Delphi socket-server uses blocking code (hint: Indy), no ability to emit SOAP *with* serving JSon, HTTP or let alone connect to database or use scripting (what scripting?), without paying so much money.


The Love-Hate affair
This lead to a heated arguement here at DelphiHater's place:

DelphiLover: I need US$6,000 to buy RemObjects for the team, probably DataAbstract, or maybe RealThinClient or maybe AnyDac/or UniDac/ and some third-party to make HTTP server.

DelphiHater: How about I take US$6,000 from your bonus instead? :)

DelphiLover: We need a socket server and custom HTTP library.

DelphiHater: How about you use C#/NET or Java? There's Glassfish (Java stack) or IIS stack. You can even download Eclipse for free, Glassfish for free and use it. Visual Studio Lite is free, and you can build web-services that don't crash and burn.

DelphiLover: You really hate Delphi right?

DelphiHater: No, I don't hate Delphi, read what I wrote again, if I'm gonna make an RIA application, I need *reliable* products, things that work (24/7), things that perform as expected, things that play well with others. DelphiDeveloper, I can get you all these libraries, but if you cannot deliver results, whose fault is it?

DelphiLover: Why don't you just gimme the cash and I deliver results?

DelphiHater: After I give US$6000 (and pay for your salary) to the vendors, how long will it take for you to code the solution, make sure everything is tested, and then deliver results?

DelphiLover: humm...

DelphiHater: Did you see anyone else who made what you did? Did anyone see production sites for IntraWeb or Socket server successes? Why is it other people are successful using C# and Java and we're so behind in this game?

DelphiLover: Can we still develop a Win32 client?

DelphiHater: If the RIA client works well, customer is happy, there is really no need to use Delphi anymore.

Take these as words of wisdom.


:)

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.