At launch events for Microsoft's Visual Studio .net (VS.net), which took place around the world last week, a number of current users were wheeled out in front of potential future users to sing the praises of the Web services development suite.
They emphasised that the new software developers' toolkit is radically different from previous versions of Visual Studio, but the reality is that VS.net merely introduces developers to the notion of XML Web services and distributed applications. For many, it will be business as usual, producing monolithic code that executes on a single machine.
However, there is much to learn about VS.net before it can be used. It is unlike the bunch of programming environments that was Visual Studio, VS.net is far more integrated, even though C# and JScript have been added to the old faithfuls C++ and Visual Basic.
Tying these languages together in a neat little framework is an impressive array of class libraries that are shared across all languages. These are defined by the Common Type System (CTS), which specifies the different features of each class, such as member functions or methods, member variables, fields and properties.
Whether these classes are written in C# or Visual Basic, the output is the same compiled code. In theory, this will allow a team of developers to individually program in whatever language they choose, knowing that it will all come together in the end.
The key is that, whatever the originating language, the individual compilers will render it as what Microsoft calls the Intermediate Language (MSIL). The end-user gets Common Language Runtime (CLR), which provides the environment to run IL.
This opens up interesting, Java-like possibilities of running the code not only on Windows platforms but on any other platform - Solaris, HP-UX, AIX or even Linux. All that is required is the relevant CLR, operating in a similar role to the the Java Virtual Machine.
What comes out is managed code where the runtime environment handles some of the common areas for programming errors and oversights by managing cross-language integration, debugging, exception handling, version control and even security.
This is a brave new world for Microsoft and, despite the massive beta test and prolonged gestation period, it will be surprising if everything works perfectly first time. But it is sure to be a vast improvement on what went before.
For programmers in a hurry, Microsoft has taken the forms-based programming which debuted in Visual Basic 6 and extended it to all languages. This is true object-oriented programming, where interfaces can be assembled using a set of reusable components.
Windows applications can be built like Lego mansions using ActiveX controls, push buttons, radio buttons, pop-up menus and check boxes - all of the visual elements that users have grown used to.
VS.net will, without doubt, be a big success and other suppliers are rushing to offer their support.
Borland has announced that later this year the company will be releasing versions of its Rapid Application Development products Delphi, C++ Builder, Kylix and JBuilder to support the creation of managed-code applications for the .net framework by adding support for MSIL. Through this integration, Borland promises seamless interoperability between Microsoft .net, Windows, Java and Linux platforms through Web services.
Rational Software is also queuing up to apply its life-cycle management products to VS.net and France's ILOG has ported its C++ business rules, optimisation and visualisation software components to the .net platform.
What is in Visual Studio .net?
Visual C++ is an object-oriented language with advanced template features, low-level platform access and an optimising compiler. It enables developers to build programs, including Web applications and thin-client and smart-client applications for mobile devices.
With its roots in Microsoft's original version of the Basic language, Visual Basic offers a simple programming environment for application development. The object-oriented additions will mean developers will need to be trained to work in a slightly different way.
Visual C# is Microsoft's competitor for Java. It is specifically aimed at distributed Web services applications. Although it is not Java, the common C++ heritage gives both languages a similar feel and architecture.
Formerly called ASP+, ASP .net is a successor to Active Server Pages (ASP). The language started life as extensions to HTML, and pages can still be created using any text editor. ASP .net can produce compiled code and incorporate applications written in any of the other .net languages.