Sergey Nivens - Fotolia
At AgWorks, a developer of applications for the farming and agricultural industries, the season had come to plant the seeds that would allow it to grow in the age of cloud computing.
After attempting to take its suite of applications, written in early 1990s Microsoft Visual Basic, and do an in-house rewrite to leverage modern cloud technology, the Davenport, Iowa, company reconsidered that strategy, opting instead for the services of Mobilize.Net, a Bellevue, Wash., cloud computing consultancy that specializes in that very discipline.
"These were four applications written in the Visual Basic language that date from shortly after the time VB first came out [in 1991]," said Matt Gropel, director of technology at AgWorks. The applications, which had to be installed manually on each computer, lacked the connectivity necessary for farms to keep data organized and in sync with the retailers that kept them supplied with seed, fertilizers, pesticides and other materials. "We recognized that while Visual Basic had served us well for many years, it could no longer meet our needs in the cloud," Gropel said.
A suite of applications for Windows, AgWorks handles seven key tasks for farmers and the retailers that serve them. Among those tasks are crop planning, including seed application and fertilizer recommendations from soil test data; scouting, for logging weed, insect, and disease observations; mapping, which generates visual representations of agronomic data; and compliance, which provides historical logging to minimize liability when dealing with federal Environmental Protection Agency or Department of Transportation inquiries.
He giveth then, and taketh away now
Who better to transition businesses away from Visual Basic than the very person who put them there in the first place?
Matt Gropeldirector of technology, AgWorks
"We got you into this mess, so who better to get you out of it," said Tom Button current CEO of Mobilize.Net and former longtime corporate vice president of Microsoft's developer division. Yes, it's true; Button, now helping businesses move beyond the venerable Visual Basic language, is the same guy who brought its first six releases to market.
As cloud and mobile technology shifted where computation takes place, it became necessary to build new, interconnected experiences with data that could be accessed, shared and changed in real time by any authorized user. That meant a move away from Visual Basic technology along with Windows itself.
"Windows and .NET are legacy platforms; it's not what people are targeting today," Button said. [Editor's note: Microsoft would disagree.] "We had a great run at Microsoft building up the client-server programming model, but the opportunity now for developers is much broader than that." The cloud, Button said, changes everything. "The vast majority of new application development now is HTML5 front ends that are accessible by any device at any time, accessing a cloud-based back end for business logic and data access."
To ease the pain of transitioning away from legacy Visual Basic technology, Mobilize.Net applies artificial intelligence-based pattern matching over large blocks of program code then mapping those patterns into newer technology that is much more true to the original programmer's intent, Button said.
One common technique in the process is to perform the transition, yet maintain the classic Windows look and feel, largely to avoid retraining users. "It's especially important when you have a network of 10,000 insurance sales offices that have all been running the same Windows app for 20 years but now want the operational benefits of HTML5," Button said. "They don't want the phones lighting up with user support questions, so they use the Kendo UI package on HTML5 to perfectly replicate the old Windows."
The dreaded 'Frankenapp'
At AgWorks, an early strategy was to load the Visual Basic application portfolio onto virtual machines. "That allowed us to update just that VM image and then users would download and install onto their own machines," Gropel said. The next phase was to rewrite sections of applications as a web app that could be run through a browser. "We couldn't do that quickly enough and ended up with a Frankenapp, some of the old with some of the new." When a user clicked on a button in the browser, that would launch some of the legacy Visual Basic code. This partial rewrite was done in Visual Studio with C# as the main server-side language, the ExtJS application framework on the client side. "We developed a RESTful API in C# and ExtJS on the front for communicating and retrieving data," Gropel said.
The problem that remained was that users working their acreages of farmland still lacked internet connectivity, resulting in database synchronization problems. Though Gropel said AgWorks was on the right track, his development team, deeply experienced in the company's Visual Basic code, had not done this type of work before. Combined with a need to complete the project quickly, Gropel sought an outside solution. "Mobilize.Net quickly converted our Visual Basic code in an automated fashion that turned into very nicely patterned C# code," Gropel said. "It was much faster than we could have done rewriting the applications manually."
Not all apps are conversion candidates
AgWorks was lucky. All of its Visual Basic apps were well-suited for automated conversion. But, not all are, Button said.
"We have seen applications in manufacturing automation that have serial cards plugged into the PCI bus to gather data off the factory floor and turn that into a programmatically accessible data set. Or if you're programming to the bare metal in Windows, these are not going to make a lot of sense to move to HTML5 on an iPhone or an Android," Button said.
Good candidates are supply chain apps that use a forms-over-data model, such as salespeople who need to get a price quote and have visibility through the supply chain. "There are thousands and thousands of those apps like that written in the 1990s," Button said. "They are all great candidates for putting in HTML5 so users can access them from their iPhone or Android and have the same user experience and access to the same data, whereas before they were tethered to their windows PCs sitting behind their desk on the LAN."
Advice for others
Having lived through the transition, Gropel said other businesses in the same situation, regardless of size, should consider going outside for code conversion.
"We would have been stuck for months just doing conversion and not creating any new functionality if we had to do this ourselves," Gropel said. "As a business you want to innovate and add new features. You don't want to take a year just to convert from an older language."
Keep Windows legacy apps relevant with refactoring
What's in Visual Studio Online?
HTML5: Hype or hope?