Tools Advance Web Services - Page 2


Visual Studio .Net

Microsoft clouds the air around .Net by using the term as a technology designation and a brand. Lets be clear: The parts of .Net that are actually new are .Net Framework (the .Net run-time and class libraries) and C#, both of which ship when Visual Studio .Net does.

Microsofts server applications have all been given .Net suffixes, but this is marketing fluff—the servers make no use of .Net Framework. The first real .Net server will be the next version of Microsoft SQL Server, which is not expected until 2003.

Wed also like to make it clear that Microsoft developers will find .Net a huge transition. In fact, Windows development could hardly change more. At its core, .Net is a whole new API for Windows and Web programming. After roughly a decade of use, the mature Win32, Windows COM (Component Object Model) and Microsoft Foundation Classes APIs are being shuffled off into retirement.

All these APIs are still supported, and native Windows programs can still be built with Visual Studio .Net. However, Microsofts direction is now toward .Net development.

.Net provides great benefits when developing component-based applications, especially those using Web and XML technologies, because it has a boatload of enhancements for just that purpose: a new run-time environment and shared-type system that allows mixing and matching components written in any .Net language, a new class library, Web forms interface and database access technologies, XML-based wire protocols, file-based deployment (this is the start of the end of the Windows registry), and a new security model.

Transition costs will correspond to how many of these platform changes IT departments decide to use.

Microsofts C# is an elegant successor to C and C++ and, by no accident, is quite similar to Java. However, C# requires developers to learn yet another language.

Both Visual Basic and VBScript have been changed, so mandatory source-code modifications will be needed before old code will run under .Net.

"Were 96 percent compatible, which means nothing will work out of the box," said Microsofts Scott Guthrie, lead architect for ASP .Net, in Redmond, Wash., of ASP VBScript code compatibility.

Indeed. We converted a VBScript-based bookstore we wrote in ASP to ASP .Net and had to make numerous syntactic changes to add needed parentheses, remote set statements and change links to point to .aspx files instead of .asp files.

However, in our tests of Visual Studio .Net, we found Web services support completely integrated with the product. We could turn an existing subroutine into a SOAP-based Web service callable over HTTP simply by adding the keyword "WebMethod" in front of a normal language subroutine, and Visual Studio recognizes SOAP-based Web services as first-class citizens, along with native Windows objects.

A "Transaction" keyword allows routines to automatically participate in transactions, and a cool "XMLAttribute" keyword let us do simple XML transformations, such as renaming elements without having to use an XSL (Extensible Stylesheet Language) style sheet (although we could have if we had wanted to).

Visual Studio .Net Enterprise Architect offers new modeling features, including conceptual, logical and physical database modeling tools, as well as full UML (Unified Modeling Language) 1.2 diagramming, code generation and reverse engineering. Visual Studio .Net includes tools for writing PDA (personal digital assistant) and cell phone applications.

Many IT managers will also appreciate new coding policy rules (settable in an XML configuration file) that warned us in Visual Studio .Nets new Task List window when we werent following the coding or HTML style guidelines we had applied.

For Web services creation, ASP gets our most-improved-technology award. As weve said before, ASP is a fair-tending-toward-poor Web scripting language and has been over its head for some time. ASP .Net, part of .Net and intrinsic to Web application development in Visual Studio .Net, was rewritten from scratch (in C#, actually). Like its JSP (JavaServer Pages) competitor, ASP .Net is now a compiled language.

If developers give all their variables type definitions, writing in ASP will be as fast as writing in C#—much faster than before.

In what will also be a huge performance boost, ASP .Net adds a new parameter-aware caching subsystem that can cache entire pages, fragments of pages or individual Web services, with cache expiry based on a timeout, a file system change or an application event. This is an area of catch-up for ASP .Net; Oracle Corp., IBM and Macromedia Inc. already ship application servers with various forms of caching.

ASP .Net has a modern state handling architecture; the current ASPs Session object is unusable in clusters because it has no ability to store state remotely. We could now store state information out-of-process locally or on another server or to a Microsoft SQL Server 7.0 or SQL Server 2000 database.

Cookies are no longer required, either; by setting a "cookieless" option in the ASP .Net application configuration file web.config, ASP .Net automatically adds a session identifier to URLs.

ASP and ASP .Net use different file extensions and can run side by side on the same server, although they wont share session information.