Robert Heusser
Professor C. D. Girard
CSC 434
October 27, 2004
Heusser 1
This paper is intended to explain and clarify exactly what ‘.NET’ is and was developed to do. Hopefully by the end of this paper, it will be clear that .NET is obviously a revolutionary technology, which enables users of the Internet to integrate and synchronize all of their computing devices and allows them to be updated automatically (“What is .NET?”).
So what is the definition of .NET? Well the Microsoft .NET Framework Developer
Center has it defined as:
“Microsoft .NET is software that connects information, people, systems, and devices. It spans clients, servers, and developer tools, and consists of:
The .NET Framework 1.1, used for building and running all kinds of software, including Web-based applications, smart client applications, and XML Web services—components that facilitate integration by sharing data and functionality over a network through standard, platform-independent protocols such as XML
(Extensible Markup Language), SOAP, and HTTP.
Developer tools, such as Microsoft Visual Studio® .NET
2003 which provides an integrated development environment
(IDE) for maximizing developer productivity with the .NET
Framework.
A set of servers, including Microsoft Windows® Server
2003, Microsoft SQL Server™, and Microsoft BizTalk® Server, that integrates, runs, operates, and manages Web services and
Web-based applications.
Client software, such as Windows XP, Windows CE, and
Microsoft Office XP, that helps developers deliver a deep and
Heusser 2 compelling user experience across a family of devices and existing products (MSDN).”
Although this is pretty in-depth and exhaustive, it will be further explained within the main body of this paper. A better and more understandable definition is simply that .NET is “a
Microsoft operating system platform that incorporates applications, a suite of tools and services, and a change in the infrastructure of the company’s Web strategy (“What is .NET?”).”
Microsoft also took a look at the entire development structure when it began working on
.NET. They came up with a radical new approach to the development of software. .NET would be the first development platform that was designed with Internet functionality and interoperability made easier and more transparent as the focus (Conard, Page2).
Heusser 3
The innovation of .NET is sort of an interesting story, which dates back to 1998 when a development team from Microsoft finished a Internet Information Server version 4.0 (Conard,
Page3). Ideas for improvement on the capabilities of the Internet on Windows NT were the beginning of a project known as Next Generation Windows Servers that implemented a new architecture (Conard, Page3). During July 2000, Microsoft held its Professional Developers
Conference in Orlando, Florida and introduced its solution for the next-generation of software strategy (Bornstein, Chapter1). That new key strategy for Microsoft was Next Generation
Windows Servers, which was renamed and introduced to the public as .NET (Conard, Page3).
To this point, Microsoft’s game plan was for .NET to function around the .NET Framework, which is the actual language and execution platform, and sets of wide-ranging library classes that had built-in functionality (Conard, Page2). Even today, Microsoft has held to that basic game plan of having .NET revolve around the class libraries and .NET Framework.
Bill Gates, speaking at the Professional Develops Conference, declared the introduction of .NET was the next big changeover and on a ‘magnitude that only comes along once every five to six years’ (Conard, Page2). He made some bold and daring statements about the .NET platform. He even went as far to say: “the last comparable shifts were the switch from DOS to
Heusser 4
Windows in 1990 and the migration from 16-bit to 32-bit development (Windows 3.x to
Windows 95/NT) in the mid-nineties (Conard, Page2).”
.NET had many sources of inspiration for its architecture, including p-code in UCSD
Pascal up though Java Virtual Machine (Conard, Page3). Since the uses of numerous approaches were taken for the improvement of the architecture, multiple software languages can be used
(Bornstein, Chapter1.1). Microsoft took their ideas along with the best ideas in the industry and packaged it altogether in .NET (Conard, Page3).
Heusser 5
Now that we know a little about where .NET came from; it’s time to find out what it exactly is in-depth. The definition described earlier is very detailed, so let’s look at a little simpler definition right from the Microsoft .NET homepage:
“Microsoft® .NET is a set of Microsoft software technologies for connecting information, people, systems, and devices. It enables a high level of software integration through the use of Web services—small, discrete, building-block applications that connect to each other as well as to other, larger applications over the
Internet (“Defining the Basic Elements of .NET’).”
They also provide an illustration to help better visualize this overall integration of .NET.
-Image taken from “Defining the Basic Elements of .NET”.
Heusser 6
First and foremost, .NET is a structured platform that covers all the stages in software development starting with the operating system (Conard, Page3). It is a software platform that permits developers to create programs whose natural environment is the Internet or an intranet
(Bornstein, Chapter1.1). Because the natural environment is the Internet, there has to be some universal standard for it. Therefore, .NET depends on four Internet standards to function properly: HyperText Transfer Protocol (HTTP), Extensible Markup Language (XML), Simple
Object Access Protocol (SOAP), and Universal Description, Discovery and Integration (UDDI)
(“What is .NET?”).
From the perspective of the user, there are four main principles: first, it erases the boundaries between the Internet and applications (“What is .NET?”). Because the whole architecture was designed around the Internet, it makes the Internet applications easy to develop and use (Conard, Page3). Second, software can be rented as a hosted service over the Internet which will allow the Internet to accommodate for all the possible programs and data of a user
(“What is .NET?”). In a sense, the Internet will be the entire system that is accessible to everyone, anytime. Third, users will have their information, programs, and data available to them from the Internet at a touch of a button from any device, twenty-four hour a day, seven days a week (“What is .NET?”). This idea is still well off in the future due to the major security issues of having all personal information so readily available. Fourth and finally, there will be new methods of interacting with programs and applications (“What is .NET?”).
Identifying .NET as a ‘platform’ does not nearly begin to express how extensive and broad it really is (Conard, Page2). Let’s first describe the difference between .Net and .Net
Heusser 7
Framework. .NET is comprised of a group of components, each of which provides a piece of the total .NET structure; and .NET Framework is the particular set of tools that a developer can use to produce .NET applications and services (Bornstein, Chapter1.1).
These components of .NET include the ability for it to enables componentization of software, which allows programmers to create small units, called assemblies in .NET (Bornstein,
Chapter1.1). These assemblies exist on a local machine or somewhere else on the Internet and can be recycled by other programmers (Bornstein, Chapter1.1). Another element, which is an important factor in the componentization of software, is language integration. Language integration means that those languages are already supported by .NET (Bornstein, Chapter1.1).
Since it was created in a development environment that spans multiple languages, using any language within .NET is just like using the native language (Conard, Page2).
Along with these basic components, .NET also allows programmers to build enterprise services in their programs (Bornstein, Chapter1.1). The .NET Framework along with the enterprise services tackles common tasks such as messaging with the use of Microsoft Message
Queuing (MSMQ), transaction monitoring with Microsoft SQL Server, and security with
Windows Authentication (Bornstein, Chapter1.1). And finally, .NET permits software developers to improve the program by the delivery of software components via web services over the Internet (Bornstein, Chapter1.1). Each one of these elements builds on and relies on the others in order to function properly. For example, an enterprise service may be delivered by a web service, which in turn relies upon the Internet for the data and components (Bornstein,
Chapter1.1).
Heusser 8
Some diagrams are pictured below to help visualize how they are broken down. The first figure shows just the .NET Framework.
-Figure 1 shows the .NET Framework architecture (Bornstein, Chapter1.1).
The second figure shows both .NET and how the .NET Framework is integrated into it.
-Figure 2. Overview of .NET highlighting the components of the .NET Framework (DePetrillo).
Above the operating system is the Common Language Runtime, which is where .NET programs actually are executed and ran (Bornstein, Chapter1.1). The Common Language
Heusser 9
Runtime is written mostly in a new language called C# (C-sharp), which was specially designed for .NET (Conard, Page2).
The strengths of .NET are within its robust developmental tool sets and support services
(Rubens). It also solves some of the several core problems which underlie today’s software development by:
Software Development Concern
Interoperability, integration, and application extensibility are difficult and expensive.
.NET Solution
The use of XML—an open standard managed by the World Wide Web
Consortium (W3C)—removes barriers to data sharing and software integration.
Competing proprietary software technologies make integration difficult.
Microsoft .NET is built on open standards and embraces all programming languages.
The end user experience isn't simple or compelling. End users can't easily share data among their applications or act on that information.
XML makes it easy to exchange data, and .NET software gives users the ability to work with the data once it's received.
End users don't control their personal information and data when working on the
Web, leading to privacy and security concerns that cripple the acceptance of Webbased software.
Microsoft .NET provides a set of central services that helps users manage their personal information and protect against unauthorized access to that information.
-Table taken from “Frequently Asked Questions”.
The only limitations that are found are the typical problems that plague Microsoft: reliability and security. Jay Williams, vice president of Concours Group, a Kingwood, Texasbased consultants; says that in terms of reliability, Microsoft still has some way to go (Rubens).
Security will always be a concern because there will always be people out there that want to hack into other peoples information and/or attack Microsoft because of their dislike of the giant.
Heusser 10
.NET is the new platform that Microsoft is betting the bank on. It consists of numerous sets of products, which fulfill several goals Microsoft has declared critical to its success and dominance over the next decade or so (Bornstein, Chapter1). The system as a whole is very complex and detailed with many integrated parts; but with the solid foundation that it is built on and the popularity of the Internet, Microsoft is setting the benchmark with .NET.
The system is very functional within a web environment due to the fact that it is structured on the Internet. The user knows its running because they can access the web and get required updates. Since the system is setup around the Internet, the user is most likely familiar with it and therefore it is easy to use.
Heusser 11
Bornstein, Niel M. .NET and XML: Chapter 1. Introduction to .NET and XML. Sebastopol, CA:
O'Reilly & Associates, Inc., 2003. ProQuest Information and Learning. Safari Tech
Books Online. Shippensburg University Library, Shippensburg. 25 Oct. 2004
<http://proquest.safaribooksonline.com/0596003978/netxml-CHP-1>.
Bornstein, Niel M. .NET and XML: 1.1 The .NET Framework. Sebastopol, CA: O'Reilly &
Associates, Inc., 2003. ProQuest Information and Learning. Safari Tech Books Online.
Shippensburg University Library, Shippensburg. 25 Oct. 2004
<http://proquest.safaribooksonline.com/0596003978/netxml-CHP-1-SECT-1 >.
Conard, James and et al. Introducing .NET: .NET Overview – Page 2. Wrox Press Inc., 2001.
Web Developers Virtual Library. 25 Oct. 2004
<http://wdvl.internet.com/Authoring/Tools/NET/net1_2.html>.
Conard, James and et al. Introducing .NET: Avoiding Confusion – the Role of the .NET
Enterprise Servers – Page 3. Wrox Press Inc., 2001. Web Developers Virtual Library.
25 Oct. 2004 <http://wdvl.internet.com/Authoring/Tools/NET/net1_3.html>.
“Defining the Basic Elements of .NET.” 2003. Microsoft Corporation. 25 Oct. 2004.
<http://www.microsoft.com/net/basics/whatis.asp>.
Heusser 12
DePetrillo, Bart A. Think Microsoft® .NET. Que Publishing, 2001. ProQuest Information and
Learning. Safari Tech Books Online. Shippensburg University Library, Shippensburg.
25 Oct. 2004 <http://proquest.safaribooksonline.com/0789725959/ch04>.
“Frequently Asked Questions.” 2003. Microsoft Corporation. 25 Oct. 2004.
<http://www.microsoft.com/net/basics/faq.asp>.
“MSDN .NET Framework Developer Center: Technology Overview.” 2004. Microsoft
Corporation. 25 Oct. 2004
<http://msdn.microsoft.com/netframework/technologyinfo/overview/default.aspx>.
Rubens, Paul. “How DO J2EE and .NET Measure Up?.” 2 May 2003. ASPnews.com.
25 Oct. 2004 <http://www.aspnews.com/trends/article.php/2200571>.
“What is .NET?.” 02 Aug. 2004. Webopedia: Online Computer Dictionary. 25 Oct. 2004
<http://www.webopedia.com/TERM/D/dot_NET.html>.