header image
Home arrow .NET Vs J2EE arrow The .NET Platform Architecture
The .NET Platform Architecture PDF Print E-mail
User Rating: / 5
PoorBest 
Written by Administrator   
Jun 16, 2007 at 06:04 PM

The overall .NET platform architecture can be divided into four main areas:
•.NET Infrastructure and Tools: The infrastructure and tools to build and operate eBusiness systems, including Visual Studio.NET, the .NET Enterprise Servers, the .NET Framework.

•.NET Foundation Services: The .NET services are a set of information sharing services for the Internet, such as Passport.NET (for user authentication) and services for file storage, user preference management, calendar management. These services will be offered by both Microsoft and Microsoft partners.

•.NET User Experience: This will be a broader, more adaptive user experience, where information is delivered in a variety of ways on a variety of different devices.

•.NET Devices: This device software enables a new breed of smart Internet devices that can leverage Web services.

.NET Framework and Visual Studio.NET
Perhaps the most important part of the .NET platform is the .NET Framework. This is a general runtime environment closely associated with the operating system. It includes the component-oriented middle-tier infrastructure (COM+), the Common Language Runtime (CLR) environment, a just-in-time compiler, and a set of operating system libraries packaged using the .NET component model. Each of the server-side tiers in a .NET system (with the possible exception of the data tier, which I will discuss under interoperability) will be running an operating system supporting the .NET Framework.
Closely associated with the .NET Framework is the main programmer development tool, Visual Studio.NET. Programmers of the presentation tier use Visual Studio.NET to define the logic that delivers HTML pages to thin client systems. Programmers of the business tier use Visual Studio.NET to implement business logic in a wide variety of languages and then to package that business logic as COM+ components.
Visual Studio.NET is language neutral. It is best thought of as an open programming platform into which a variety of languages can be plugged. The "standard" Microsoft languages that will come with Visual Studio.NET are VisualBasic, VisualC++, and VisualC#. Other languages will be available through third parties, including COBOL from Fujitsu and Eiffel from Interactive Software Engineering. Many other Visual Studio compatible languages including Haskell, Mercury, Oberon, and Perl are being investigated by university research groups.
The language neutrality of Visual Studio.NET (and in fact, the whole .NET platform) is critical to the .NET platform strategy. It is achieved by translating all Visual Studio.NET languages into a common language called Intermediary Language (IL). In fact, it is through the creation of an IL translator that language vendors make their languages compatible with Visual Studio.NET. Such a language is referred to as a .NET enabled language.
IL files are typically packaged together in deployable units called assemblies. These assemblies are loaded into the common language runtime (part of the .NET Framework), compiled by the just-in-time IL compiler, and executed within the Common Language Runtime (CLR). The CLR provides many features we usually associate with a particular language, including garbage collection, type definitions, polymorphic method resolution, error handling, and the deployment model.
The incorporation of "language" features into a common language runtime, rather than a particular language, allows languages to freely interoperate within the overall .NET platform. Garbage collection, type definitions, and error handling are all handled in a unified fashion, giving a unparalleled degree of language interoperability. Perhaps the most impressive example of cross language interoperability is the ability to define a base class in one language (say, C#) and override methods in a completely unrelated language (say, COBOL). I gave an example of this in a recent article.
The use of the .NET Framework on the presentation tier means that any .NET enabled language (in other words, any language that has an IL interpreter) can be used as a scripting language for presentation logic. And because the .NET Framework includes the just-in-time compiler, it also means that the presentation tier scripts are compiled rather than interpreted, providing a significant performance boost.
We are seeing the beginning of a rapid increase in the types of thin clients (browsers, cell phones, electronic tablets, etc.), each supporting its own subset of HTML. Today's presentation tier scripts must first determine the type of client and then create HTML tailored for that client. This is very time consuming, error prone, and difficult to maintain as new clients systems become available.
Visual Studio.NET includes a new presentation-tier programming model designed to simplify programming for the proliferation of thin client systems. This new programming model is called ASP.NET. ASP.NET allows presentation tier logic to be client neutral. This programming model is based on today's very successful VisualBasic programming model.
Programming an ASP.NET application is a matter of dragging and dropping GUI controls (such as menus or pull down boxes) from a palette onto a canvas. The programmer then writes code in any Visual Studio.NET enabled language that responds to control events (such as a particular button being pushed). The control, not the programmer, is responsible for determining the best way to render itself based on the client's actual device. The ASP.NET framework is responsible for figuring out that a client took a particular action (pushed a button). Since all of this happens on the presentation-tier, the same code base can work correctly regardless of whether or not the actual client device supports any of the .NET technologies.
This control/event programming model, with device awareness built into the presentation controls rather than the presentation logic, greatly reduces work in both the development and the maintenance phases. The development work is reduced because a single simplified block of code can both decipher client requests and process the HTML needs of any ultimate client device. The maintenance work is reduced because we can incorporate support for new client devices just by downloading the latest versions of the controls we are using.

.NET Enterprise Servers
The .NET Enterprise Servers are a collection of add-on server products designed to provide specialized, enterprise level services. Each is priced independently, giving maximum financial flexibility in configuring an overall solution. One only pays for those services one needs.
The best known of the Enterprise Servers is Microsoft's SQL Server. This is Microsoft's high-end database product with a host of capabilities that are far beyond the scope of this article to cover. Suffice it to say that SQL Server is a high performance, high availability, and highly scalable relational database that is a formidable competitor for the enterprise market.
There is nothing, however, about the .NET platform that ties you to SQL Server. Many organizations will use the overall .NET platform to build their eCommerce systems with alternative data storage technologies such as Oracle or DB2. Every popular database can be used as a .NET data tier. Oracle, for example, can be accessed through the database neutral ADO.NET interface. The mainframe databases, CICS and IMS, can be accessed through the Host Integration Service (HIS).
The newest of the .NET Enterprise Servers is Application Center Server. This product is designed for companies that need either 24X7 availability and/or low cost scaleout. The Application Center Server is both a cluster coordinator and a cluster manager.
The Internet Security and Acceleration Server (ISA Server) is focused on the needs of the presentation tier. ISA Server provides two important functions: HTML page caching, a significant performance enhancement for many sites, and firewall functionality. Firewall functionality is, of course, critical for the security any serious eCommerce site. ISA Server provides a low-cost software solution to hardware-based firewall products. At the risk of being redundant, ISA can be used with the other pieces of .NET, but is not required. 
BizTalk Server is an orchestration and integration product, used primarily to tie together the various pieces of an organization's operation and to allow that organization to interoperate with partner operations.
Commerce Server is a framework for building an eCommerce site. It primarily focuses on the needs of eCommerce retail operations. Such sites can build web sites very quickly using and specializing the components provided as part of Commerce Server.

 The UDDI Collaborative Infrastructure
Collaboration is the future of eBusiness. The set of industry standards being defined to enable eCollaboration is grouped under the umbrella term Universal Description, Discovery, and Integration (UDDI).
While UDDI is independent of the .NET platform, most of the UDDI related activity was pioneered by Microsoft. Therefore it seems appropriate to describe UDDI in the .NET platform section.

 

Next>