In-Depth

Early .NET returns: So far, so good

After two years of buildup for its new development suite, Microsoft's Visual Studio .NET hit the streets in February amid great fanfare. Promising simpler multilanguage development and a learning curve of nearly zero, .NET was expected to give Java a run for its money. Now that the dust has settled on its highly publicized debut, we can evaluate a little more fairly and accurately whether or not the development environment is all it is cracked up to be.

Visual Studio .NET lured developers into its fold by positioning itself as a customizable open tools platform. It boasted improved development productivity; improved cross-team, cross-community collaboration; and had the ability to utilize hundreds of third-party resources. But is it living up to its pre-release promises?

The indications are that Visual Studio .NET is a strong environment, as well as an improvement over Visual Studio 6.0, ''which in many ways is still quite strong compared to most Java environments,'' noted Thomas Murphy, senior program director in Application Delivery Strategies at Meta Group Inc., Stamford, Conn.

Although Visual Studio .NET lacks the richness of object-oriented development found in IBM's Eclipse/WebSphere Application Developer, Murphy believes it is well suited for its audience, which consists of mostly Microsoft developers. ''This is one of the reasons that people tend to be more productive in Microsoft than in Java,'' he added.

Developers I spoke with found the adoption of Visual Studio .NET to be fairly easy, perhaps partly because they were already in the Microsoft fold. But like most things, change can have its share of drawbacks. Nationwide Building Society (NBS), a mortgage lender in Swindon, England, took part in beta testing Visual Studio .NET and encountered the traditional shortcomings that play a role in the beta process.

''The Visual Studio .NET user interface is largely a compound of familiar Visual Basic and Visual C++ features,'' noted Dave Green, a software architect at NBS. ''Some things are buried a little strangely -- for example, material off the Properties window you get by right-clicking on a project in the Explorer window -- but by and large there was no problem.'' American Electric Power (AEP), a multinational energy company based in Tulsa, Okla., found the initial adoption of Visual Studio .NET a little painful but ''looking back, the transition was relatively easy,'' commented Joel Zinn, senior IT architect in West IT Services. ''And the payback has been worth the pain many times over.''

What about Microsoft's promise of a learning curve of nearly zero? NBS found that claim to be true. ''The Visual Basic .NET or C# learning curve is bigger,'' the company's Green asserted, ''but not major. The real learning curve with .NET is the .NET Framework. That takes a while to learn your way around.''

The .NET Framework is the infrastructure for the overall .NET Platform, upon which Visual Studio .NET was built. It combines common language runtime and class libraries (including Windows Forms, ADO.NET and ASP.NET) to provide services and solutions that can be easily integrated within and across a variety of systems.

Developers at AEP contend that the learning curve for Visual Studio .NET will vary widely depending on the base experience level of those making the transition. As experienced ASP/Visual Basic programmers, AEP's developers found that ''our learning curve consisted mainly of finding out how to do things differently and getting used to the new syntax. We felt we were actually productive almost immediately and within a couple of weeks, we felt very comfortable in the new environment,'' Zinn said.

Typically, it takes a couple of weeks before a developer feels comfortable using Visual Studio .NET. That is what it took for experienced developers at Xerox Global Services, said Robert Gerardi, manager of Xerox office services operations in Rochester, N.Y. For developers unfamiliar with Visual Studio altogether, he noted, it took about three weeks before they were really comfortable developing in .NET.

''My feeling is that you are looking at a three- to six-month time period to be up to speed on .NET [which includes time to put something in production],'' Meta Group's Murphy acknowledged. ''If, instead, a developer was to jump from Microsoft to Java at this juncture, they would be looking at six to 12 months.''

Visual Studio .NET vs. Java
And just how different is Visual Studio .NET from Java? The .NET technology is much more integrated, according to Xerox's Gerardi. AEP used Java previously, but the development team decided a couple years ago to move away from it because it was difficult to maintain and not very intuitive in its development, the firm's Zinn said. ''Plus,'' he added, ''it was extremely slow in execution.''

With the release of .NET, Microsoft drops its COM+ technology and moves everything to Web services, which are not as rich and robust as Java's distributed technologies and have not been put to the test. Regardless, Meta Group's Murphy believes the stateless message-oriented paradigm of Web services will yield a better success rate.

''In Web services, Java is a bit behind .NET in that .NET really integrates the support into the framework,'' he said. ''With Java, there are frameworks to work with XML but it is not a standard part of the language or the J2EE spec yet,'' although it will be part of the J2EE 1.4 spec due in early 2003.

In an effort to ease the transition of Java-language developers to the world of XML Web services, Microsoft created Visual J# .NET, which integrates with Visual Studio .NET and the .NET Framework. Visual J# .NET includes technology that allows users to migrate Java-language investments to the .NET Framework. Existing applications developed with Visual J++ can also be modified to execute on the .NET Framework, to interoperate with other .NET-based languages and applications, and to incorporate new .NET functionality such as ASP.NET, ADO.NET and Windows Forms.

In addition, for developers who want to move their existing applications to the .NET Framework, Microsoft offers the Java Language Conversion Assistant tool that automatically converts existing Java-language source code into C#.

Promises, promises
Visual Studio .NET is living up to its promise of simpler development by offering fewer lines of code, richer APIs and clean semantics. It also makes standard things, ''like building and consuming Web services very easy to do,'' noted NBS's Green. ''It doesn't have much impact on system design, which is much more affected by the .NET Framework.''

The implementation of Visual Studio .NET made it easy for AEP to transition to Visual Basic .NET, which is more object-oriented than ever, the company's Zinn said. ''It led us in that direction [object-oriented programming] and because of the intuitive nature of the IDE, helped move us to the OOP paradigm very easily.''

What truly helps Visual Studio .NET simplify development is its strong user interface foundation for both thick- and thin-client applications. ''In addition, the ability to work in a managed code world [like Java] creates a huge productivity boost for developers,'' Meta Group's Murphy said.

Because the product is still new and developers have not had a great deal of time to deploy applications using it, the full extent of Visual Studio .NET's scalability remains a mystery. Be that as it may, Xerox found .NET technology to be very scalable because of features such as ViewState, Distributed Session State, Compiled ASP.NET and SQL Managed Provider. AEP also found the product very scalable mostly because of the nature of the implementation of OOP in both Visual Basic .NET and Visual Studio .NET.

NBS had a different view on scalability, however. ''Our experience is that this doesn't scale well beyond a few projects,'' explained the firm's Green. ''Compilation to start debugging then becomes intrusive, and the copying around of versions has some counter-intuitive results. For our larger projects, we had better results with command-line compilation and attaching Visual Studio .NET as a debugger to a running process.''

Meta Group's Murphy pointed out that Visual Studio .NET is basically the same architecture as Java. ''And the only real scalability issues are design practices for creating apps that scale,'' he explained. ''There are apps in testing now that have worked with very high loads without problems and basic Web services apps with very high transaction figures.'' Time will be the judge of how scalability plays out.

And what about those Web services? How advantageous is the inherent Web services enablement users get with Visual Studio .NET? As with anything, that depends on who you talk to.

''We feel Web services will be one of the most important shifts that will be made over the next few years,'' AEP's Zinn said. ''Being able to share or allow subscription of information not only with other environments in our organization, but outside as well, will be critical to operating and competing in the world of business.''

NBS found Visual Studio .NET's integration with the .NET Framework to be more advantageous than Web services enablement. ''The .NET Framework is, for us, the best single thing about .NET. And Visual Studio .NET is an effective means of building applications that exploit that framework.''

As can be expected, Visual Studio .NET has not reached perfection in its initial release. AEP would like to see a few coding changes. And NBS would have liked a configuration management approach uprated from Visual SourceSafe with support for the accurate management of multiple, parallel versions of a component or Web service.

What Microsoft needs to concentrate on, according to Meta Group's Murphy, is support for collaboration and seamless life-cycle integration. In addition, he said, integrated development environments need to evolve to become development portals that support different personalized views for say, analysts, developers, architects, QA, production and so on. ''No one is good here yet,'' he said, ''but they are all getting closer.''

That is the important thing to remember about Visual Studio .NET. Although it has room for improvement, it is a step in the right direction. As a result of adopting .NET, Xerox Global Services has realized quicker time to market and easier enterprise application integration using fewer resources. And AEP has seen improved productivity.

''We feel we can be between 30% and 50% more productive now than we were with Visual Studio 6.0, which was a great development environment in its day,'' AEP's Zinn said. ''Using Visual Studio .NET will allow us to deliver quicker and cheaper, and be more competitive than we have ever been before.''

Indeed, Visual Studio .NET is living up to the promises it made more than two years ago. ''Visual Studio .NET is as good as advertised and has exceeded our initial expectations,'' Xerox's Gerardi said. ''The development suite provides simpler development, multilanguage development, increased productivity and a low learning curve, among other things. Most developers who have adopted it are very pleased.''

''With a change as major as this one, you can expect some glitches,'' AEP's Zinn stated. ''But the ones we have encountered have all been pretty minor in nature, such as certain desires and how a control reacts. The major items -- such as debugging, implementation of cross-language and cross-project tracing, and the overall implementation of the various languages and project types -- has all been outstanding.''

''I would have to say the .NET Framework itself is a quantum leap ahead of anything on the Microsoft platform before it -- 98% perfect,'' NBS's Green added. ''Visual Studio .NET clearly started later and hasn't had quite the same degree of tuning. They've done a good job of picking up desirable features from predecessor environments -- like Visual Interdev, Visual C++ and Visual Basic -- and dealing with things like cross-language issues, and the stability is fine. They're still short, though, on things like Edit and Continue, which was in some of the Betas. So Visual Studio .NET probably rates, say, 85%.''

However, Green was quick to add that ''none of our developers who have experienced .NET wants to go back.''

See related story, ''.NET finds a home on the range.''