Content area
Microsoft's newest version of Visual Basic .Net (VB .Net), is a huge leap forward, recreating Visual Basic as a full-fledged object-oriented programming environment. At Zagat Survey LLC, the decision to start early with a complete rewrite in VB Net was a practical matter. While the cost of scrapping an existing application and building a new one is substantial, so is just reworking the old code. The cost of moving applications is part of the reason why Hughes Hubbard & Reed LLP is taking a gradual approach to shifting its portfolio of Visual Basic applications to VB Net. For most corporate IT shops, whether to move to VB .Net is still an open question. There is no immediate requirement to rewrite or convert most legacy Visual Basic applications.
TECHNOLOGY
As Microsoft phases out Visual Basic 6, IT developers must make difficult choices on the road to VB .Net.
By Frank Hayes
WHAT ARE WE going to do with all this Visual Basic?
If you're a project manager with a portfolio of Visual Basic applications to maintain, that's no idle question. Microsoft's newest version of its flagship programming language, Visual Basic .Net (VB .Net), is a huge leap forward, re-creating Visual Basic as a full-fledged object-oriented programming environment for building full-scale Web services.
But using VB .Net will require retraining Visual Basic programmers to make them full-fledged object-oriented programmers. And for existing Visual Basic code that has been tweaked and adjusted over many years from version to version, VB .Net may signal the end of the line.
In the long run, keeping those applications going won't be practical: Microsoft will end all support for VB 6 in 2008.
In the short run, corporate software developers have choices to make. They can rewrite those Visual Basic programs in VB .Net. They can choose an- other .Net language, such as C#, or shift to a non-.Net approach like Java. Or they can bide their time by maintaining the programs with VB 6 -- for now.
"There's not a clear need to move applications," says Chris Dial, an analyst at Forrester Research Inc. in Cambridge, Mass. "Microsoft has made it easy to run Visual Basic 6 applications under Net." That makes the question of when to think about shifting large legacy Visual Basic applications to .Net much murkier, though Dial says it's clearly time to stop building new software with VB 6.
Going for Broke
Zagat Survey LLC in New York decided to jump right into VB Net with both feet.
"We've been working on this since [VB Net] Beta 1 about two years ago," says Patrick O'Toole, lead developer. "This" is a completely new version of a large legacy Visual Basic application, rewritten from the ground up with expanded features.
At Zagat, which rates restaurants and hotels, the decision to start early with a complete rewrite in VB Net was a practical matter. "The existing Visual Basic application was inadequate for the company,"
O'Toole says. "We kept it running, but the new project replaces it."
O'Toole says becoming familiar with VB .Net's new frameworks and syntax were a challenge, but online help made that relatively easy to handle. A bigger obstacle for most teams is object-oriented programming.
"Most of my guys were familiar with classes. A couple were pretty objectoriented," he says. For O'Toole, a former C++ programmer, the concepts weren't new, but he doesn't underestimate the challenge for the typical Visual Basic programmer.
Reworking the Code
While the cost of scrapping an existing application and building a new one is substantial, so is just reworking the old code. The cost of a simple rewrite of a client/server application in VB 6 to VB Net, without adding new features, can run as high as 60% of the original cost of the application, according to Gartner Inc. in Stamford, Conn.
That's because the changes in VB .Net are far more than skin deep. All .Net programming languages use a common runtime framework. As a result, simple Visual Basic operations, such as reading and writing a file, must be reworked to use C++-like semantics.
One advantage to rewriting for VB .Net is that the common runtime all but eliminates "DLL hell," a situation where runtime Dynamic Link Library (DLL) files can be overwritten when new applications are installed, according to Microsoft Net group product manager David Lazar. And because all .Net features are available, VB .Net removes almost all the limitations of Visual Basic when compared with other languages.
But moving legacy programs to VB .Net isn't trivial, Lazar acknowledges. VB .Net includes an upgrade wizard, but it's intended to be used as a learning tool; it's not designed to automatically find and convert incompatible code.
The cost of moving applications is part of the reason why Hughes Hubbard & Reed LLP, an 1,100-employee law firm in New York, is taking a gradual approach to shifting its portfolio of Visual Basic applications to VB Net. Another reason: The ultimate target isn't VB .Net, but C#, says CIO Steve Sommer.
"Our approach is to leave the legacy code running in mixed mode, and then gradually port it - not en masse, but as needed," Sommer says. The price tag for rewriting the firm's financial, document management and Web applications will be upward of $3 million. But patching the old code isn't safe or practical.
And six months to a year from now, Sommer plans to end all Visual Basic work at Hughes Hubbard & Reed, shift new development to C# and begin porting old applications as required. In the meantime, it's training time. "Retraining is important, because going to this object-oriented approach - it's terrible to have to do it, but you have to think the way .Net's got to be," he says.
For other IT shops, an important consideration is the mix of applications on the desktop and on the Web. "We do both desktop and Web applications for our agents," says Sam Cooper, a senior programmer at Safeco Corp., an insurance company in Seattle. "The functionality is combined into both."
But the number of Safeco's desktop Visual Basic applications is dropping, and the bulk of the portfolio is now on the Web side. That has led to the company's strategy: Leave existing Visual Basic desktop applications alone as long as they work; if there's a major change needed, perform an assessment to see if it makes sense to rewrite the application in VB .Net and see what new functionality could be added.
It's on the Web side - where rewriting isn't actually required - where Cooper says he expects to see the most use of the new .Net capabilities. "If there are people we aren't directly connected to, we may want to rewrite to expose things as Web services," he says. But everything will be assessed on a case-by-case basis.
A Little Means a Lot
Some IT departments don't have a large portfolio of Visual Basic applications, but rather just enough code to have to pay attention to the problem. "We only have a little bit in Visual Basic 6," says Neville Teagarden, CIO at Navigant International Inc., a travel management company in Englewood, Colo. "Most of our code is ASP [Active Server Pages] with some Visual Basic embedded in it."
That simplifies the problem for Navigant, which is shifting from Visual Basic and C++ to C# and rewriting code as necessary. But it doesn't eliminate the need for training. "We've sent people through boot camp already, and we're retooling the entire base of developer skills over the next six months," Teagarden says.
But for most corporate IT shops, whether to move to VB Net is still an open question. There's no immediate requirement to rewrite or convert most legacy Visual Basic applications.
And when to start - and to start training, and for what languages or technologies - will depend on how much value IT stands to gain by moving them.
Delaying the Inevitable
Not everyone needs to jump on the VB .Net bandwagon right now. And with corporate IT budgets down sharply this year, it's a bad time to launch any projects that aren't certain to pay for themselves quickly - which may extend the life span of VB 6.
"There's a massive investment that was made in VB 6, and IT departments want to wring out the return on that," says Dan Mezick, president of IT training company New Tech USA in North Haven, Conn. "VB 6 isn't broken, and the whole Web services thing is not enough of a reason to switch. Everybody's trained in VB 6. Everybody knows where the warts are. And this is happening at a time when labor is actually pretty cheap for Visual Basic people."
But that won't last, Mezick says. He says he's already seeing strong interest in VB Net training and expects to see a stampede to .Net by early 2003.
- Frank Hayes
" There's a massive investment that was made in VB 6, and IT departments want to wring out the return on that.
BAN MICK. PRESIDENT, NEW TECH USA
VISUAL BASIC TRENDS
Even before VB .Net arrived, the role of Visual Basic was changing in the enterprise.
QuickLink: 31638
www.computerworld.com
Copyright Computerworld Inc. Aug 12, 2002
