C# to HTML5: save on deployment costs
by John Browne, on Mar 2, 2016 4:52:07 PM
The last big company I worked at (Microsoft) had a LOT of desktops (as you can well imagine). And of course they also had a lot of internal apps that employees had to use, whether for performance reviews, source control, expense reports--you name it.
Needless to say, these were all Windows apps.
And I remember how troublesome pushing new releases of those apps was, since we had people running a variety of OS versions, with different hardware, device drivers, other software, dependencies, etc. That's the nature of native apps: they have to play nice with everything installed on the machine and sometimes that requires Mr. Help Desk to either physically sit at your desk while you check FB on your phone or else tie up your day on a screen-sharing session. Which all-too-frequently leads to the dreaded reinstall or restore step.
Even today, working for a much smaller entity, sometimes stuff just doesn't work right and time and effort has to go into troubleshooting installs of apps.
We had a customer--let's call them BigCo--who had a Windows app with about 6000 internal users world wide. This app got updated fairly regularly, and each update required months to deploy, because the configurations were so delicate. Basically an army of IT folks had to walk/drive/fly/swim/screenshare to all those users to troubleshoot install and config issues with each release.
The cost was staggering; the time suck huge.
Of course, they could have hosted the app on a terminal server and let people remote desktop into sessions running on VMs. That's a perfectly valid technical approach, but it's depressingly expensive if you have lots of simultaneous sessions and network latency can create a user experience that makes strong men weep.
There's a better way. The reason BigCo became a customer was they realized if they could migrate their Windows desktop client/server app to a proper Web application (ie transform C# to HTML5 and refactor the whole thing) their troubles would be over. A straight-up HTML app with JavaScript. Runs in any browser. Works on any device. Version deployment is as simple as pushing new bits up to the production server. Users do nothing--it just works.
Now BigCo has a Web version with a loosely-coupled, MVVM architecture that allows them to keep moving the app forward efficiently. They used our WebMAP technology to make the transition from C# to HTML5, with ASP.NET/MVC single-page application on the server side and a clean lift and shift of all their existing logic code.
Back in the day, when I worked at Microsoft and we lived in The Bleak Ghetto of Configuration Hell, a Web app wasn't an alternative: things like AngularJS and Bootstrap didn't exist. Neither did JavaScript or anything newer than HTML 1.0, which was, after all, a markup language for text.
But thankfully those days are long gone. Today there are many rich frameworks and tools for building Web apps with fully-featured user interfaces, applications that are secure, performant, and cloud ready.
And even better than building a Web app from scratch is being able to efficiently migrate an existing Windows app to a Web architecture and UX saving a bunch of money and time in the process. Not to mention risk.
That's a win-win for everyone.