Microsoft Opens New Studio
The first time you see a dancing bear, youre likely to be impressed that it can dance at all; you probably wont cavil if it steps on its trainers toes once or twice. Microsoft Corp.s Visual Studio .Net, launched last week after what has sometimes seemed an endless wait, dances fairly welland our feet are merely bruised, thank you, with no broken bones that weve yet noticed. Microsoft has taken on the challenge of making distributed Web services and nonvisual, server-side application elements as accessible to developers as it made the resources of a stand-alone Windows PC with the original Visual Basic. The resulting product is a good deal more than just the next generation of "edit, compile, debug, repeat, release."This review addresses features that are common to the $1,079 Professional Edition and the two Enterprise editions (Developer at $1,799 and Architect at $2,499) but does not examine the Enterprise editions application test and life cycle management tools or the Enterprise Architect visual design tools based on Unified Modeling Language. (Standard editions of Visual Basic .Net, Visual C++ .Net and Visual C# .Net are also available for $109.) The feature matrix certainly doesnt capture the new feel of this product. If the integrated environment of the 1990s was a compiler with tools wrapped around it, the integrated environment of the Web services era might be characterized as an Internet portalwith development tools among the resources it offers. Without the portal elements, the tools for building Web services would be almost as useless as owning the only telephone in the world: No matter how well it might work, on its own, its value is in the conversations it enables. Developers that wish to examine this tool set will want answers to a yin and yang of complementary questions. First, can it do what they want? Second, will it force them to do things that they dont want? Answering those questions requires reviewers to consider some novel issues. Welcome to the New World The Visual Studio .Net environment takes a cue from the browser-style environment of Borland Software Corp.s JBuilder and Oracle Corp.s JDeveloper, with a Start Page as the front door. Starting a new project in Visual Studio .Net will bring up options that range from bleeding-edge C# applications and Web services to the bang-the-rocks-together Console application thats still sometimes the best way to test an idea or solve a simple problem. Were glad to see the latter option included. As in the other above-mentioned tools, the Start page is not just a menu of available local resources but is also a subtle indoctrination tool. OK, forget the "subtle." Why think of yourself as merely a lonely application developer when you can be part of an Online Community, with access to code libraries, newsgroups of like-minded developers, online seminars and (in the true spirit of Windows XP) one-click access to favored commercial providers of .Net components? On a somewhat more dynamic plane are the Start page links labeled XML Web Services and Web Hosting, which enable (respectively) UDDI (Universal Description, Discovery and Integration) registration of new services, and free, "experimental playground" accounts with favored Web hosting providers. Note that UDDI registration through this mechanism requires the use of Passport. Developers can then stress-test their services with the Application Center Test facility in the Enterprise editions of the product (which we did not evaluate). In its new .Net incarnation, Visual Basic becomes a strikingly Java-like language with the ability to overload function names (so that the same function name may be applied to different types of data) and with structured exception handling (Try ... Catch ... Finally) instead of the unlamented On Error GoTo construct. Anyone writing Web services had better be prepared to start using high-level language facilities for detecting and handling other-than-expected conditions. Developers using Visual C++ with .Net will find new 64-bit date and time functions, meaning that dates and times can now be calculated until the end of the year 3000. Unfortunately, the new security and cryptographic wrapper classes in the updated template library in Visual C++ .Net are less successful abstractionsknowledge of Win32 APIs is still required to use them. And then theres C#, solving the problems that didnt seem to matter (ahem) when Java addressed them six years ago. Microsoft hopes that its separately offered Java Language Conversion Assistant will pave the way for a general migration from Java to C#. However, the Java development environments that weve been seeing lately may have spoiled the developers using that language to a degree that Visual Studio .Net will not quickly overcome. Putting the Code Together The Visual Studio .Net environment tried to analyze what we were doing and to offer the relevant resources that we were most likely to need next, but it made some odd choices. For example, when we dragged the icon for an existing graphical control from the Class View inspector into the adjacent source code window for the corresponding form, the source editor generated an identifier for that control that was not accepted by a simple Rebuild command. We had to strip off qualifying prefix elements from the beginning of the generated identifier to produce the intuitively reasonable object reference that one might expect in a drag-and-drop tool. The source code editor in Visual Studio .Net does not dynamically drive the tool sets visual form designer, as does the source editor in Oracles JDeveloper. If we changed the code that defines a push buttons size and shape in JDeveloper code, its form designer took immediate note of that change; in Visual Studio .Net, the Form Designer ignored the change until it next became the foreground tool, sometimes becoming confused by multiple operations carried out while it wasnt paying attention. Its probably for this reason that automatically generated code describing a visual form control in Visual Studio .Net comes marked with a "no trespassing" sign. If we clicked on a graphical control in an active form designer to bring up its information in the Properties inspector and changed the name of the control in the latter tool, the corresponding entry in the Class View inspector did not immediately change. If we then double-clicked on the old (and now invalid) Class View entry, it demurely disappeared, and the controls new name appeared wherever alphabetical ordering would put itbut with none of the entries selected, so it was up to us to figure out what we now wanted to examine. We dont think were being unfair with such deliberately confusing maneuvers: If it cant keep up with us when we can actually see the cues that reveal inconsistencies, were reluctant to rely on the tool sets ability to keep things straight on projects of more than trivial size. In fact, projects of more than trivial size quickly expose the weaknesses of tools that may not stand up to enterprise demands. Visual Studio .Net is supposed to be the workbench of the developer whose world is defined in XML, and its visual XML schema editor ought to be one of its highlights. We applied that visual tool to one of the environments own XML schema files, with rather disconcerting results. Our 1GHz Pentium III development system needed almost 3 minutes to render a visual map of this schemas 4,900-plus lines of XML text; any sustained navigation through the resulting display quickly pegged the CPU at more than 80 percent, while bringing up the complaining whir of the processors cooling fan. Its not often that you can actually hear the sound of a machine being brought to its knees. The XML editors Schema Overview window was completely ineffective in this file, since the visual layout was one long horizontal row of hierarchical trees that the overview map condensed to barely more than a single row of pixels. Ordinary source code editing will look familiar to Visual Studio users, which is to say that the editor still has not caught up with convenience features that have long been present in programmers editors such as Mansfield Software Group Inc.s KEdit or SlickEdit Inc.s Visual SlickEdit. We could find no way, for example, to show only lines containing an arbitrary pattern. It was possible to "Mark All" lines that fit a condition and to move among them with "Next Mark" and "Previous Mark" commands, but this is not nearly as fast as seeing all such lines in a single view. Were also concerned as to whether Visual Studio .Net can meet the rock-solid reliability requirement of an enterprise development tool. We tried to install the product from a non-Administrator account on our Windows 2000 workstation and were told that we must grant Administrator privileges. When this was done, however, we still encountered a reproducible Blue Screen of Death during the component update phase. We were able to avoid this only by logging in as Administrator to complete the job. On one occasion, an attempt to load a sample code project failed with an error message, only to succeed on our next attempt. We get nervous when these things happen with an application; we get downright jittery when something as vital as a development tool shows such rough edges. And yet, this bear does dance. In earlier reviews, we discussed in greater detail some of the leading-edge features that Microsoft is offeringnamely, mobile client development, visual server-side development, and the integrated modeling aids for applications and database design. (See eWeek Labs June 25, 2001, review of the Mobile Internet Tool- kit beta; and Sept. 10, 2001, Visual Studio .Net Enterprise Architect Beta 2 review, at www.eweek.com/links.) Many developers, and every competing maker of application development tools, will want to study Visual Studio .Net to understand the ambitious agenda of Web services developmentwith the added incentive that Microsoft has left some room for improvement, creating a space that other toolmakers will do well to fill. eWeek Technology Editor Peter Coffee can be reached at email@example.com.
Visual Studio .Net comes in several editions, with a feature matrix that can be reached via www.eweek.com/links.