Product information See CrunchyCode in action Get the latest updates Get CrunchyCode Now Get help with CrunchyCode


The Internet. It will quite possibly go down in history as the greatest invention of all time. It has the potential to educate the world. To cure disease. To bring wealth to the impoverished. To bring world peace.

But it hasn't done very much at all for the software development industry.

Web development today, quite frankly, stinks. Your average website is comprised of at least half a dozen different programming languages. You have your ASP.NET , XML, XSL, HTML, CSS, JavaScript, all with their own syntax, code editors and object models.

It's an accidental mish mash of technologies espoused by different vendors, barely kept in check by a standards body that can't keep up with the applications that people want to run over the Internet.

Which has resulted in a number of high profile dev shops shunning your pure vanilla web technologies such as HTML for a traditional, installed fat client application. Two of the most successful killer applications in recent times are Apple 's iTunes and Google Earth. They use the Internet to deploy and communicate, but have largely avoided scripting , HTML and stylesheets.

"99%" is not an officially recognised statistic. Perhaps a more accurate wording would be "99% of computer users have access to a Windows machine if they so choose". Linux is running on Intel Hardware. Macs are running on Intel Hardware. Even your terminal emulators are running on Intel hardware. The 1% minority are I.T. geeks who have perfectly good access to a Windows machine but choose to avoid it in a desperate act of nerdish defiance.

With Smart Clients , you're cutting your code in one language, that behaves just as predictably as any old C++, Visual Basic, PowerBuilder or Delphi client server rich client application. No cross browser issues. The user can't disable (or worse hack into) your web application by turning off JavaScript support. No more cross browser testing or cross browser version testing.

The Microsoft solution for Internet based fat clients is called the "Smart Client". Although hardly an original idea, it's actually quite an admirable solution. Smart clients can essentially do anything your Win32 applications could do. There are a few security restrictions of course, which are pretty much identical to those imposed on Java Applet's and Macromedia Flash applications. For example, you can't format someone's harddrive or corrupt their registry. You can only invoke web service methods hosted on the server the Smart Client was downloaded from

Had Smart Clients arrived earlier (say, 10 years earlier), maybe none of us would have heard of Java. Well, maybe that's a stretch, but the Smart Client is certainly a superior solution in several areas. It doesn't make any attempt to code to the lowest common denominator. It only works on Windows. (Technically, the .NET framework, but let's be honest. That's pretty much just Windows right now). You can rapidly build and develop a feature rich user interface without learning a multitude of languages. And it certainly isn't saddled with the same performance issues as Java applets were historically. (Yes, yes, Java is much faster now, we know).

Compared with "Web2.0" (which isn't really quite here yet), a Smart Client application can also come out on top. It's faster, better looking, more stable, avoids the mish mash of different languages and will quite possibly use less bandwidth. You install it once then forget about it. AJAX and JavaScript libraries are not only becoming a little overweight, but DHTML behaves unpredictably across browsers, platforms, scripting runtime versions and may not even work at all on some browsers.

But perhaps it's all a moot point. Smart Clients arrived a little late and now everyone, including Microsoft, is talking about AJAX and Dynamic HTML and Web 2.0.

Which isn't a bad thing, mind you. AJAX and Web 2.0 will only change the web for the better.

And it's fair enough, I suppose, that developers are a little wary of Smart Clients. If you've been burnt by DHTML applications and ActiveX and Java Applets and every other "fat client" architecture that didn't quite pan out, then you have to cut developers some slack. It probably doesn't help that you need the rather massive .NET framework installed on the client side in order to be able to use a Smart Client. (In fact, you need at least the same version of the framework as the developer who compiled the application).

But when all is said and done, a Smart Client will far out pace a HTML based web application in terms of user interface richness and pure power/performance. So if you're serious about "Web 2.0", spare a thought for the humble fat client. It might just get you out of a serious jam one day.

PS: This article has intentionally made no mention of the deployment benefits of Smart Clients because:

a) Most traditional deployment problems ("DLL hell" etc) aren't particularly prevalent in web architectures, so, really, who cares.

b) Whilst DLL hell was certainly a problem for ActiveX developers (and possibly other precursor Microsoft development platforms) which were based on the "let's save hard disk space" mentality, it has not been a particularly high priority issue for very many programming languages from outside Microsoft. Many applications have always been able to be deployed by copying the file system.

So we haven't given Microsoft any particularly great kudos in this space on the premise that you can't take credit for curing someone's cancer if you injected them with it in the first place.

 

Using CrunchyCode allows you to try numerous different techniques against your own database, without manually coding anything.

You can assess the pros and cons of different technologies from different vendors. By building multiple applications simultaneously, without you (or your team) lifting a finger, you can pick the user interface and coding styles that best suit your dev team and business requirements. You can measure the performance impact of implementing different technologies on large recordsets, small recordsets, high volume, low volume, usage patterns and much more

 

Contact UsTerms of Use Privacy Policy