Posted by Jonathan Clarke - 19 January 2017
Building sophisticated browser-based business solutions is nothing new for Sandfield. Maintrak, arguably the first large-scale transport management system written in ASP in New Zealand, was developed by Sandfield and went live in early 2000. The solution was ground-breaking and represented a massive change in the technology stack for Mainfreight -- from character based UNIX application to ASP on Windows based servers. It was, and still is, very successful and we’ve never looked back.
From that time we have continued to prefer building browser-based business systems (with all their inherent advantages), with one major exception. Our financial accounting system, On Account, had continued to be a Windows-based product.
On Account, even as a Windows app, has never had any issues integrating easily with any system whether it was browser-based, Windows, or developed by a third party. We maintained On Account as a Windows app for several reasons, including:
- Windows forms provided a very rich experience, particularly with the data grids which allowed copy-and-paste, sorting, filtering, and could scale well, supporting tens of thousands of rows on the screen at once. No web grids could match the performance of Windows grids.
- Very powerful pivot-table style reporting built right into On Account that leveraged Microsoft’s OWC pivot technology.
- Customers had become accustomed to the rich interface and even in the late 2000’s it was anticipated we would have trouble reproducing all of the functionality we have in Windows adequately in a browser interface.
The objective was to provide all the functionality we had in the Windows version and build in capabilities that mitigated the technical limitations of a browser environment.
In 2012, after considerable planning and technical evaluation we began to get serious about moving to a new browser-based interface for On Account. The objective was to provide all the functionality we had in the Windows version and build in capabilities that mitigated the technical limitations of a browser environment. This was quite some undertaking as at this time no major accounting or ERP products had successfully pulled this off. Whilst there were some great web-based small business accounting products like Xero gaining momentum, they don’t come anywhere near the depth of functionality, sophistication and scale that On Account can operate at. Some of our client databases are now over half a terabyte in size, have complex integrations, and process very large transaction volumes all day, every day.
We have recently completed developing the full On Account experience in a browser, and here are some of the key lessons learnt:
- Set your standards high. The browser version shouldn’t be a second-class citizen to the Windows app. Aim for feature parity so it’s compelling to use.
- Do not simply replicate your Windows user experience. Re-design it so that your app feels like a web app. Avoid pop-ups and too many drilldowns to subforms, pages or property sheets which are commonplace in Windows apps. These UX paradigms don’t translate that well to web apps.
- Support all modern mainstream browsers so you have broad platform compatibility. Our users are using an increasingly diverse number and types of devices. Conversely, don’t let support for legacy versions limit how great your web app could be. If you must support older versions of browsers revert to basic functionality for those users.
- When confronted with technical limitations, explore what third party controls and open source libraries are available, but don’t settle for second best. We had several examples where no commercially available controls met our standards so we chose to develop our own in order to meet our own high standards for functionality and performance.
Do not simply replicate your Windows user experience. Re-design it so that your app feels like a web app.
The architecture adopted meant that we could upgrade customers to the browser version, whilst still retain all the functionality in the Windows version -- the back-end is compatible with both browser and Windows front-ends.
We have several key areas of functionality that when developed via a browser may have meant a step-back in functionality from the Windows version. These included:
- Presenting thousands of rows. It’s not unusual for On Account transactions or on-screen enquiries to return tens of thousands of rows, or even more. We needed to implement a solution that provided ease of use of scrolling but minimised the “page size” so the browser remained responsive.
- Pivot-style reporting. Our power users love the built-in pivot style reporting in On Account. It’s the power of Microsoft Excel, but in your financial accounting system. We needed to continue to offer this but the Microsoft OWC ActiveX control used in the Windows version was no longer an option. We evaluated every third party control available and they all came up short. Many did not perform well with large data sets, could not render all the report options we offer, could not export data, and typically came with a lot of baggage that was not required for our application. We made the call to develop our own, and it performs brilliantly, renders consistently, can handle huge reporting data sets, and provides world-class export capability, to CSV, Excel, and direct Google Apps integration.
- Copy-and-paste. Sounds like basic functionality, right? Not so easy in browser-based apps! Customers enjoyed the ability to simply copy a grid of transaction lines and paste it straight into Windows On Account. This could be from other transactions, spreadsheets with raw data or even sheets with complex formulas. We strived to allow a simple CTRL-V (or CMD V) within the browser app which triggered a seamless paste operation into On Account. We developed this functionality and it works incredibly well, automatically parsing column names, formats, validation and all whilst ensuring the pasted data meets the rules that On Account imposes on any transaction.
Today, Windows apps are looked upon the same way UNIX-based character based apps were viewed in the 1990’s. For typical line of business solutions there is no future in Windows based apps and it truly is a legacy platform. So browser based business apps are absolutely the way to go for many reasons we don’t have time to go into here. We learnt that you can’t rely on third parties to provide all the technical solutions you need. To make something truly great you sometimes need to do the hard yards and build it yourself.