Tuesday, November 28, 2006

How to choose: Web or Windows?

I recently ran across a question on the telerik forums that asked this: how do you know ahead of time when you should build an application for the web or instead build it for the desktop? That got me to start thinking about the issue and I realized that there are very few reasons in a Utopian world why you shouldn't build a new *business* application for the web. Applications designed and built for the web offer a number of benefits over their stodgy desktop counterparts:

  • Easy deployment and version management
  • Easy to upgrade and patch
  • Inherent cross platform compatibility (thanks to FireFox)
  • No software compatibility issues to contend with (because there is no installation to contend with)
  • Familiar application interface for end users (users are used to using their Internet browser)

During my time developing at a Fortune 200 I/T shop, I found that the simple task of bringing in a new desktop application can take hundreds of hours. You've got to get your Software Packaging team to package and verify the software, then you've got to get your Security team to validate the package, then you've got to get your Desktop Change Control Board to approve the new software for the desktop environment, then you've got to Software Distribution to schedule the deployment of the software to correct users, and finally you've got to help your end users find the new application on their computer. And all that assumes your Legal Department didn't have any issues with the installation license for the software; if they did, tack an extra 3 months onto the process for contract and license negotiations.

The web is not immune from all of these problems, but my experience has been that it is much easier to introduce a new web application to an Enterprise environment. Once a contract is in place (or if it's in house development, once the application is live), just email a new link to your users and everyone is on their way (with a little training, of course).

I emphasized early that this philosophy applies primarily to business applications, such as data manipulation applications, office-like applications, and the like. The web is still a long way from being a suitable replacement for all desktop applications (can you imagine doing your Visual Studio development in a web app?), so at the end of the day the appropriateness of the web depends entirely on your situation and application. Three years ago I would have called you crazy if you told me that Office could be replaced by web apps; today I'd tell to you it's only a matter of time (for average users- power users are a different bunch that will hit the limits of web apps quickly).

With that understanding, there a few reasons in the "real world" (sorry, we don't live in Utopia) that business applications shouldn't be built for the web:

  • Lack of technical know-how on your development teams (If you've got experienced Windows developers, their talent will be wasted trying to build for the web.)
  • Internal chargeback rates for web applications exceed benefits (a.k.a. Cost) (In large Enterprises, it is not uncommon for the internal chargeback rate for standing up and running a new web application to far exceed the costs of obtaining and installing a desktop app, especially if you have a small user base.)
  • Paranoid management (While security on the web can be managed just as easily as security on desktop- via AD integration, VPN, etc.- some management environments do not like the idea of having their business data accessible via a web browser.)
  • Technical capacity requirements of application (If you're application will be doing heavy data analysis, the desktop may provide a better experience. Case in point: Google Spreadsheets can handle 10,000 rows and Excel can handle 65,000+. Users working with lots of data need Excel's capacity.)

So where is the tie in to telerik? After all, this is the "Telerik Watch" blog. Quite simply, telerik controls take the User Interface question out of the equation when trying to decided between Web and Windows. Any user interface that you could build for a WinForms application using Visual Studio can just as easily be built for the web using r.a.d.controls for ASP.NET. Whatever other reasons you may find that the web is not appropriate for your application, limits due to your ability to create a desktop-like UI shouldn't be among them. With r.a.d.ajax it is very easy to create responsive, desktop-like experiences on the Web and the other 17 controls in the suite give you most of the tools you'll need to finish the job.

Web or Windows? The answer depends on your situation, but the application UI will be easy to build and will look great either way if you use r.a.d.controls.


Unknown said...

Todd, like many others, you forgot the most overlooked feature of .NET: Smart Clients, which combine the best of the 2 worlds, rich use interface and easy deployment.

There are so many things you can do with a Smart Client which can’t be done by a web application, like accessing the resource on the client computer. The only downside compared to a web application, is that the application will only run on a Windows computer… but that is certainly a trade of that I can live with.

Smart Clients is the future platform for business applications, however web applications are the platform for applications in cyberspace.

Smart Client fan

Todd Anglin said...

Smart Client Fan,

Thanks for the good insight and reminder about Smart Clients. They are indeed a big step forward for Windows based applications, blending the "statefull" nature of desktop apps with the deployment ease of the web.

Unfortunately, I do not think they will make Enterprise deployment that much easier. In most controlled Enterprise environments, the majority of users do not have admin access to their box and they cannot install any software.
The ClickOnce deployment is nice in concept and is similar to the install process ActiveX has provided Windows users for many years. The problem with the Smart Client distribution method, as with ActiveX, is that most users don't have permission to use it.

Enterprises must control the desktop environment to manage the technical risk of incompatible apps and legal risk of unlicensed apps. At the end of the day, the only person who will enjoy the Smart Client's improved distribution will be the packager who creates the Enterprise SMS package for traditional distribution.

The only way to avoid the Enterprise packaging and distribution process is to have an application that requires zero install on the client, and that's exactly what the web does.

Smart Clients are cool and I think certain companies will gain immensely from their blended model. For others, they will do little to change the Windows application process.