Welcome to the new world
The Visual Studio .Net environment takes a cue from the browser-style environment of Borland Software Corp.s JBuilder or 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 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? All these resources are just a few clicks away from the Visual Studio .Net opening screen.
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. We are (with apologies to Claude Rains in "Casablanca") shocked, shocked to find this linkage.
With services published in a playground (where data is subject to removal without warning--production services play at their own risk), developers can then stress-test their services with the Application Center Test facility (which we did not evaluate) in the Enterprise editions of the product.
When the Visual Studio .Net developer finally starts to cut code, the language-level innovations in this release of Microsofts tool set will become key concerns. 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.
At the risk of seeming gloomy, well note that anyone writing Web services had better be prepared to start using high-level language facilities for detecting and handling other-than-expected conditions. As an aspiring programming platform, the Internet makes even Windows look rock-solid by comparison.
Developers using Visual C++ with .Net will find new 64-bit date and time functions, meaning that dates and times can now be calculated beyond the infamous horizon of January, 2038, that has long been lurking as the next Y2K-style crisis. Were now safe, said Microsoft, 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 abstractions--knowledge of Win32 APIs is still required to use them, Microsoft said.
And then theres C#. The most entertaining thing about reading Microsofts C# documentation is the degree to which it rebuts so many of the nice things that Microsoft has had to say about C++ for lo, these many years. Poor error handling, lack of type safety, complex and brittle object emulation, and nearly impossible debugging at anything above the level of machine language: All of these are problems with C++ that didnt matter, according to Microsoft, when Java was fixing them, but all of them are apparently worthy of concern now that C# is here.
Microsoft also hopes that its separately offered JLCA, for Java Language Conversion Assistant, will pave the way for a general migration from Java to C#–but 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. When we evaluate Microsofts effort as an integrated development environment, rather than as a portal to the .Net way, we find it merely competitive with other current tools--not the leap beyond that it needs to be, if its to become the obvious path of least resistance that past generations of Microsoft tools have been.