It’s time to develop a new “mission-critical” application. How does a modern IT (information technology) department do so?
Here are most of the technologies that deserve consideration:
- Client-server to conventional desktop. Based on .NET or Java or another enterprise-class application framework, this seems to be the default choice for most IT departments.
- Client-server to a virtual desktop. This is often abbreviated as VDI, for virtual desktop infrastructure.
- Web transport to proprietary client technology, like Flash or Silverlight or a specific browser installation.
- Platform-specific client development.
- HTML5-based development.
A sliver of applications fall outside any of these categories: there are still times when 3270s or HTML4 or OpenVMS or various flavors of application virtualization are vehicles for new programming. Those people already know who they are, though.
More interesting are the comparisons between the numbered possibilities above. Understand, these aren’t strictly exclusive; there are times to combine a couple of them. In broad terms, though, these are the most important choices a development team has.
Time to re-consider
Even though you’ve been through this exercise before, it’s time to re-consider the choices, because:
- Mobile clients matter;
- The Cloud has grown enormously, and will continue to do so; and
- HTML5 is more capable than you realize.
Traditional client-server implementations have three glaring problems now: they don’t support the mobile, often employee-owned devices workers including the executive suite on down carry; they’re invisible outside the office LAN; and update involves deployment of client applications on every desktop. All the other numbered selections present themselves as “thin client” approaches by one definition or another. Among respondents in a recent study called “Anywhere, Anytime App Delivery“, only 30% make widespread use of mobile applications. While that’s a large number, and there are wonderful examples of mobile enterprise applications, I expect them to remain in the minority. For a traditional business, which must support traditional workplace desktops, the incremental expense of redeveloping with Objective C or another of the incompatible technologies common for mobile applications is a heavy burden.
I’m personally a big fan of HTML5. I see few enterprise applications beyond HTML5’s functional capacity. A bigger block with HTML5 is the dearth of developers with enough experience to use it well. When it works, though, solutions based on HTML5 answer most current questions applications face: there is (essentially) no client-side deployment, HTML5-oriented networking travels well all the way through the home office to a hotel or firewalled customer site, and a wide variety of mobile handsets are adequate displays.
VDI is an interesting alternative for conservative organizations, or ones suspicious of HTML5’s effective performance. They can continue to build in a familiar client-server model, but rely on VDI to bring up a useful display on mobile devices and ones distant in the home LAN. Licensing costs with VDI are stiff, though, and VDI generally makes sense only as a strategic choice, with the expenses amortized over many applications.
What issues dominate in your enterprise IT shop? How do these different approaches work for you?