With the expected release of VisualStudio.Net by year-end, it's important for network executives to understand how Microsoft's .Net strategy will affect the development of Web-based applications and Web services.
So what is .Net?
The idea dates to 1999, when it was talked about as Next Generation Windows Services. Before the arrival of .Net, the Microsoft acronym of choice was DNA, which stands for Distributed iNternet Architecture.
.Net supplants DNA and elevates the Microsoft development environment and tools to a new level of sophistication, power and ease of use, compared with previous versions of Microsoft development tools.
At its core .Net is XML. Microsoft product managers like to say, "XML is baked into everything," but it would be more accurate to say that XML some day will be baked into everything.
For example, BizTalk Server 2000 has XML fully baked in, as Microsoft states. SQL Server 2000 has XML baked in to the point that you can move XML documents into and out of an SQL Server database without coding. Other .Net servers, such as Exchange Server 2000, still need another release to be able to really take advantage of XML.
If you were to define .Net as solely the new .Net runtime environment that is built on the .Net Framework and the Common Language Runtime (CLR), then none of these .Net servers are really .Net. You will have to wait until the next release of any .Net server for it to utilise the new .Net runtime environment.
How does it work?
In a .Net application, on top of the XML layer, there's Simple Object Access Protocol (SOAP), an emerging standard for sending messages across the Internet that enable application-to-application interoperation.
SOAP uses XML to describe messages and HTTP to transport them. Web Services Description Language (WDSL) is a new specification to describe networked XML-based services called Web services.
WDSL offers a simple way to describe the basic format of requests regardless of the underlying protocol (such as SOAP or XML) or encoding (such as Multi-purpose Internet Mail Extensions). WDSL is a key part of the effort of the Universal Description, Discovery and Integration initiative to provide directories and descriptions of online services for e-commerce.
Visual Studio.Net makes creating Web service client or server applications intuitive and easy. To build a Web service server, you use a Visual Studio.Net wizard to create your initial application. To expose a class method in the Visual Basic application you created as a Web service, you add the attribute "
Once the XML Web service has been built, it can be invoked via HTTP using XML to pass data to and from the service. To use an XML Web service from Visual Studio.Net, all developers need to do is add a Web reference to the exposed Web service.
.Net vs. J2EE
Despite what the marketers at Sun Microsystems and Microsoft might want you to believe, .Net and Java 2 Platform Enterprise Edition (J2EE) are surprisingly similar. At a platform level, the two technologies are based on a virtual machine architecture aimed at portability.
The most significant difference between the two technologies is that, generally speaking, Java/J2EE is language-specific and platform-independent, while .Net is language-independent and platform-specific.
This doesn't apply in all cases because numerous J2EE implementations are not completely cross-platform. Microsoft has also made some overtures toward making .Net cross-platform, such as submitting the CLR and the C# language to the European Computer Manufacturers Association for public standardization.
Microsoft's .Net framework is based on its CLR, which is composed of a specification for Microsoft Intermediate Language code and a runtime environment that provides memory management (including automatic garbage collection), security and threading. Although this is analogous to the Java Virtual Machine architecture, the difference is that code targeted for the CLR can be written in any language that supports the CLR's component model.
Visual Studio.Net comes with the Microsoft languages Visual Basic, Visual C++ and Visual C# (pronounced C sharp). C# is an object-oriented language that is a fundamental piece in Microsoft's new .Net strategy. C# builds on the syntax and object-oriented features of C++ and adds functionality to make it more Web services friendly.
Although C# is similar to Java, it is also different. Both languages share many of the same benefits, such as being fully object-oriented, but the languages diverge on features such as operator overloading and enumerations.
The .Net development framework can be subdivided into three parts:
-- A CLR run-time engine.
-- A set of extensive class libraries, written from the ground up, that comprise practically any functionality you could ask for.
-- Two top-level development "arenas" for Web applications (ASP.Net) and regular Windows applications.
Compared with .Net, J2EE has some catching up to do in XML thought leadership, because .Net is making it easy for developers to take advantage of XML in many innovative ways.
However, Sun is not far behind. Last December, Sun announced the Java API for XML, messaging and the Java API for XML data binding. And two weeks ago, Sun and Microsoft made major Web services announcements.
This competition is good for everyone. Microsoft is rebuilding its Web application environment to make it a peer to J2EE. And when .Net arrives, we'll have two capable development frameworks to choose from.
Microsoft has also pushed the envelope in terms of application services across the Web, and the company has put a new spin on portability with the language-independent CLR. These efforts have prodded Sun to expand its support for XML. The competition gives software architects considering new perspectives on enterprise development two attractive choices -- .Net and J2EE, or maybe both, for some heterogeneous environments.
English is a research director of technology and architecture, global industries, at Unisys Corp. He has worked with .Net since 1999. He can be reached at Art.English@unisys.com.