Today we have a few choices to get business software on someone’s computer. There are web applications like Google Gmail, Rich Internet Applications (RIA) that use Flash or Silverlight and there are Windows applications like Microsoft Outlook. We determined years ago that a Web 2.0 like web application wasn’t going to cut it. We spent a few years working on a “WebClient” for TempWorks and decided that there were too many roadblocks to achieve the vision we had for a client. Those were the days of early AJAX, the browser wars became stagnant and everyone was running IE6. We also passed on RIAs later on because their browser sandbox introduced a lot of the same roadblocks we had during our WebClient development. That meant a Windows application but we liked the easy deployment of a web application. We could of fell back into easy mode and required Windows Terminal Services (TS) or Citrix for all our remote installations but that opens another can of issues. If you’re a sysadmin I don’t have to list them, you all know them well. For others not familiar here are the nightmares of any TS/Citrix administrator; printing, local drive access, and more recently USB devices. There is a rich third party market to compensate for these shortcomings but they drive up the cost of already expensive TS/Citrix licenses and that make our product more expensive to the customer.
Yes, Virginia, there is another way. I had been long aware of a technology from Microsoft called remoting. It was kind of a sibling to web services, which was another possible choice to use. Remoting was lighter weight but used non-standard TCP protocols. I’d played with it and liked it but was very finicky to get it to work “right”. Web services offered standard HTTP/S protocols but was bloated. We needed something that was lightweight and fast like remoting but used standard protocols so we could cross firewalls without special configurations. Enter WCF. I first saw WCF at Microsoft’s PDC show in 2005 and loved it instantly. It offered exactly what I was looking for, lightweight and firewall friendly.
With WCF in our toolkit we had a way for our application to communicate across the Internet. Now I needed a way to deploy our application without too much hassle for the end-user. Microsoft had that answered for us as well. ClickOnce was a technology that allows .NET developed applications to be installed by a non-administrative user just by clicking on a web link (anchor tag for you web folks). Users just visit a web page and click a regular web link and ClickOnce installs all the files it needs, creates the shortcuts for the user and launches the application. It also allows in-place upgrading so when new versions of the application come out it will automatically download and install the update.
So today we have a Windows application that has many more features then any web application will ever have like USB access (think scanners and other capture devices) and local program access (think MS Outlook syncing) but can be installed locally with very little effort and work effortlessly across the Internet. There is a downside to all greatness. We use a lot of cutting-edge technology and unfortunately a lot of business computers are not the latest generation hardware or the end-user has poor Internet speeds. In these special cases we fall back to using Windows Terminal Services. I foresee in a few more years the hardware cycle will catch up with our technology as will broadband speeds. When this happens the less we have to fallback to TS and for me, that is something I look forward to.
If you want to try out our latest and greatest technology, visit our free download center here.