A Guide to Reviewing the Microsoft .NET Framework:
A Platform for Rapidly Building and Deploying XML Web Services and Applications to Solve Today’s Business Challenges
The Microsoft .NET Framework is a platform for building, deploying, and running XML Web services and applications. It provides a highly productive, standards-based, multiple-language environment for integrating existing investments with next-generation applications and services, as well as the agility to solve the challenges of deployment and operation of Internet-scale applications.
For the latest information on the .NET Framework, visit http://msdn.microsoft.com/net.
This is a preliminary document and may be changed substantially prior to final commercial release of the software described herein.
The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.
2001 Microsoft Corporation. All rights reserved.
Microsoft, the .NET logo, ActiveX, JScript, Visual Basic, Visual C++, Visual FoxPro, Visual InterDev, Visual J++, Visual Studio, Win32, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
Microsoft Corporation • One Microsoft Way • Redmond, WA 98052-6399 • USA
Review criteria ii
.NET FrameWork: Introduction v
Web Development v
Solution: XML Web Services vi
The .NET Framework Design Goals vii
THE XML Web Services Programming Model viii
Core XML Web Services Technologies viii
The .NET Framework: The Microsoft XML Web Services Engine x
.NET FrAmeWork: Overview x
The .NET Framework: Three Parts x
The Common Language Runtime xi
What the Programmer Sees: The Unified Classes xiii
developer productivity xvii
Use Any Programming Language xvii
Take Advantage of Industry-Leading Tools xviii
Developers Write Less Code xviii
Employ Windows 2000 Applications Services xix
Create XML Web Services Easily xix
agility to solve today’s business problems xxii
Deliver on Software as a Service xxii
Supporting ECMA Standards for C# and CLI xxii
Device Support for Broad Reach xxii
Extend All Existing Software Transparently xxiii
Access Databases Easily with Microsoft ADO.NET xxiii
Benefits of ADO.NET xxv
IMPROVED OPERATIONS xxvii
Evidence-based Security xxvii
Internet-Capable Security xxvii
Simplify Application Deployment xxix
Run More Reliable Applications xxx
Improve Performance xxxi
.NET Framework Feature Summary xxxii
XML Web Services Standards Support xxxii
Developer Productivity xxxii
Agility to Solve Today’s Business Challenges xxxiii
Building Next-Generation Web Applications xxxvii
Loosely Coupled Designs Enable Scalability xxxvii
Leverage Operating System Services xxxvii
Multilanguage Support xxxvii
Standards Based xxxvii
FREQUENTLY ASKED QUESTIONS xxxvii
.NET Framework Tools 44
Appendix c Glossary 48
.NET Framework and Microsoft
.NET belong, in the broadest sense, in the software development
category. The leading edge of the category, according to customers and industry analysts, is the distributed application development
segment. The software development category contains all developer tools products
, while the distributed application development segment includes only those tools aimed at server- and client-side application development. Microsoft believes the main contenders in this segment include the .NET Framework and Visual Studio .NET, versus the Java-based product offerings of IBM WebSphere and VisualAge, and Sun iPlanet Application Server and Forte.
If you examine the needs of developers and enterprise organizations, you can create a list of criteria for evaluating how the .NET Framework and Visual Studio .NET enable the rapid development, simple integration, and improved operation of the next generation of XML Web services and applications. These include:
Improved Time-to-Market Criteria
Simple Integration Criteria
The ability to use any programming language. Give developers the ability to use any programming language. Allow applications written with different programming languages to integrate deeply with each other. Leverage current development skills to go forward without retraining. Customers have discovered the exorbitant cost of finding developers skilled in some specialized technologies. Prominent industry analysts recommend using existing skills whenever possible, and avoiding the high cost and high failure rate of relying on the technical skills in shortest supply.
Access to state-of-the-art development tools. Deliver well-designed development tools, such as integrated debugging and profiling.
Improved code design. Provide a component-based, plumbing-free design that enables developers to focus on writing business logic. Eliminate the need to generate IDL or registry code. Provide existing, well-tested controls that encapsulate common programmer tasks.
Support for loosely coupled and tightly coupled architectures. To achieve performance, scalability, and reliability in distributed applications, there are some operations in which components can be tightly coupled, that is, interdependent in real time. Most modern systems have this capability. However, successful platforms must also have complete support for loosely coupled, message-oriented communication, in which the chain of events supporting a distributed transaction is not broken or blocked by any real-time dependencies. Both architectures must be supported completely and naturally so developers create scalable solutions by default.
Improved Operations Criteria
Software as a service. Build and deliver software as a service. Employ standards and protocols built on XML and the Simple Object Access Protocol (SOAP) family of integration standards. Provide the ability for applications to easily to share and gain access to these services.
Approved standards for language and infrastructure. Standards are core to delivering software as a service. Consequently, Microsoft has submitted the specifications for the C# programming language and a subset of the .NET Framework called the common language infrastructure to ECMA, and ECMA is standardizing them. These specifications represent the participation of six other ECMA partners, including Hewlett-Packard and Intel, and are currently on track to be considered by the ECMA General Assembly later this year for formal approval.
Transparent extensions for legacy components and applications. Provide the ability to integrate existing software into a language-independent platform by using proven technology.
Ease of data access. Make available a productive interface to any database—one that is designed to support the use of loosely coupled data access by Web applications. Support XML as its native data format.
Evidence-based security. Provide an evidence-based security model that maintains a fine-grained, method-level control over what applications can and can’t do based on who wrote the code, what the code is trying to do, from where it was installed, and who is trying to run it.
Simplified application deployment. Support a simplified application deployment method that makes installing applications as easy as copying them into a directory. Build in the ability of a framework to detect damaged applications and self-heal to solve the problem.
Increased reliability for applications. Deliver technologies that make applications more reliable, such as high-performance automated memory management and event-driven monitoring of Web applications with automated granular control of restarts.
True performance improvements. At the end of the day, improve the performance of typical XML Web services and applications.
A comprehensive solution that provides all of the services needed to produce an enterprise-class solution. These include application services, such as an object request broker, transaction-processing monitor, complete scripting engine, feature rich Web server, world-class messaging support, monitoring, and management infrastructure. All of these services are integrated, so developers can spend their time building applications, not cobbling together application services.
A consistent and unified programming model for applications running within, and applications running across, Internet firewalls. Related to loosely coupled architectures, this criterion seeks out the solutions that enable organizations to learn, build, and support a simple programming model for intranet- and Internet-based applications in order to reduce training and support costs.
A consistent and unified programming model for broad-reach Web-based clients, as well as rich client interfaces, and emerging smart devices. Customers today are evaluating the full range of client devices, including PCs, browsers, personal digital assistants (PDAs), and cellular telephones. To be successful, complex, distributed systems must have a programming model that elegantly supports all of today’s user experiences, and those that will emerge in the future, and that contains a simple model for maintaining consistent business logic across any client architecture.
A platform embracing the above principles will enable customers to lead in their respective industries—to build, deploy, and maintain better applications
, and to bring new software and new services to market faster and less expensively than competitors. The .NET Framework satisfies these requirements more completely and effectively than any other product available today, and will do so into the foreseeable future. We invite you to examine these new tools carefully, and to make your own comparison.