.NET Client-Server Technology
Client-server technology developed as applications were decentralized from PCs and mainframe computers. Desktop computers were connected through a network or LANs (Local Area Networks) and WANs (Wide Area Networks). In this equation, ‘clients’ are the machines or programs that request services from another machine or server on the network. The server is linked to databases or the Web and performs the processing of the request and the delivery of the response.
The client provides the interface with which users communicate and make requests. The server programs and data function much like a remote disk drive. The Web is a natural client-server environment. In multi-tier Web servers, the database servers, application servers, and cache servers are all linked. Clients and servers communicate through scripts embedded in Web pages, insuring the intelligibility of requests and responses. The Internet’s main program, TCP/IP (Transmission Control Protocol/Internet Protocol), is written as a client-server program. In a typical client-server communication on the Web, the web browser sends a request for web pages or processing functions from a web or HTTP server located remotely on the Internet. In another configuration, user/client computers use TCP/IP to request files through FTP (File Transfer Protocol) servers locate on the Internet.
.NET is a suite of programs developed by Microsoft that support web services or the ability for personal computers to use the web. This is an alternative to using installed applications to perform services. Web or application services combine human resources, applications, and data. These services are made available through the organization’s web server to respond to a variety of client requests. These requests include broad services like database management or customer relationship management (CRM). However, it can include much smaller detailed services between clients and the Web, such as providing updated bid information in an on-line auction to providing stock or weather quotes. .NET servers support web services by providing clients with interfaces and seamless applications that make the execution of services more centered on the web browser. However, .NET platforms also contribute to the server-side of the equation by providing foundational services for building servers such as web-based data storage and services like Passport, in which users fill in a form once and it is stored for future identity verification.
Development of .NET
.NET developed as a framework in which to build and develop Windows applications. In a traditional Windows application, APIs (Application Program Interfaces) provide the basic tool for building applications. It offers the building blocks for software applications. For example, APIs allowed programmers to write specific functions into programs such as dialog boxes, buttons, etc. However, each new function required a new API to be called upon. Also, APIs required heavy code writing on the part of programmers. Using visual tools products and languages like Visual C++ or Visual Basic simplified, Windows programming developed more sophisticated GUIs (Graphic User Interfaces).
However, Windows APIs needed to be ‘wrapped’ in ‘wrapper classes’. Wrappers are software or data that contain or wrap around other software so that the contained software can exist in another operating environment to insure compatibility. Wrapping is used to make wrapped software behave like an object. OLE (Object Linking and Embedding) was the original technology that allowed applications to communicate with each other in Windows. This technology was upgraded to COM (Common Object Model), Microsoft’s object-oriented programming model. This model defined object interaction within single applications or between different applications.
COM launched ActiveX controls to compete with Java applets. ActiveX controls contain sets of rules defining how applications share information. Microsoft’s ActiveX technology proved more powerful than Java applets because they have access to the entire Windows operating system.
As client-server technology, distributed object-oriented programming (OOP), and the explosion of web services came together, standards like CORBA (Common Object Request Broker Architecture) were developed that specified protocols for transmitting objects over a network. However, this required tight client-server coupling, which meant that these protocols had to be very specific. The client needed to know how to communicate with the server precisely. This required a large deployment effort because of the need for detailed and exact communication.
.NET is Microsoft’s response to the issues described above. Upgrading existing technologies was not enough to compete with Java-based technologies that produced distributed enterprise applications. COM was upgraded to COM+ and DCOM (Distributed Common Object Model). While this addressed distributed programming, it still didn’t address the gaping holes in web services development and distributed application building. .NET did.
.NET Structure and Components
The .NET framework can be described in three layers. The top layer contains two modules. One is responsible for containing .NET compliant languages like VC (Visual C++), VB.NET (VisualBasic.NET), ASP.NET (Active Server Page.NET), C#, J#, etc. The module located next to compliant languages contains Windows forms, web forms, and web services. Any .NET-compliant languages can use these features to create dynamic GUIs (Graphic User Interfaces).
The next layer contains base classes. Base classes are used to derive other classes. In .NET languages, classes are templates for defining new categories of variables, and it is also responsible for describing the properties and behaviors of objects. Properties are the characteristics of objects. They are used to describe data structure attributes. Behaviors describe how an object functions, and they are defined by methods. This combination of properties and behaviors come together to create object interfaces. It is important to remember that classes are idealized objects, and when an object is instantiated or exists in a real-life instance; they are mobilized to participate in client-server communication.
The .NET framework base classes offer class packages to be used by .NET-compliant languages. This offers a high degree of functionality. Base class libraries are the building blocks of application building, and they function as the point of interaction with the run-time. ADO.NET (ActiveX Data Object.NET) is the Microsoft version of ADO. ADO is Microsoft’s standard programming interface for data access. ADO.NET is different from ADO in its ability to support XML (Extensible Markup Language) documents. XML is important because of its increased use. XML is a specification designed for web documents, and it is standardized by W3C to make web application development more sophisticated. XML allows designers to create customized tags and facilitates the “definition, transmission, validation, and interpretation of data between applications and organizations.” ADO.NET also includes an interface layer created by .NET data providers between the application and databases.
The bottom layer is the Common Language Runtime (CLR). This is the layer responsible for managing the execution of programs written in any of the languages it supports. This allows them to have common base class libraries and instantiate objects, regardless of what language they are written in as long as they share the same class. A program compiled for CLR doesn’t need a specific language environment to be executed in the .NET framework, but can run on any system with Windows. CLR is the runtime environment that translates MSIL (Microsoft Intermediate Language) into executable code. .NET programming languages are complied through MSIL, but the programmer doesn’t need to worry about syntax since the source code of the programming languages is automatically converted to MSIL. The CLR converts the MSIL into host machine language. This is run on the host machine where the request is received, executed, and sent back to the client.
General Contributions of .NET Framework
One of the major contributions made by .NET technology is interoperability. For example, it allows a wide range of devices to work together and automatically update and synchronize user information on an entire network. It also offers increase interactive potential for web sites through its ability to support XML documents, which are quickly replacing HTML (Hypertext Markup Language) as the markup language for writing web sites. The .NET revolution also promises premium on-line subscription services that will offer a central interface from which to customize access and manage various applications, from messaging applications like e-mail to software applications like Office.NET. Centralized data storage enables the synchronization of information across devices and users. It also facilitates efficient access to information. .Net also offers the ability to integrate communications media from e-mails to telephones. Finally, developers can create reusable modules, which reduce the possibility of programming errors.
Ultimately, .NET provides benefits for three types of users: organizations, individual users, and developers. .NET technology helps organizations by providing a way to integrate widely disparate technologies. This allows organizations to take the best advantage of the technology they’ve already invested in .NET also offers increased flexibility by allowing organizations to choose software modules from a variety of vendors to best suit their needs and then integrate it through a .NET framework. It also improves scalability by allowing organizations to use their existing resources to the fullest integrated capacity while laying the foundation for the incorporation of future technologies. .NET benefits individual users by providing integrated data that allows for more customized user interactions with computing devices regardless of location. Finally, .NET provides developers with an integrated set of tools for building web services. .NET was in many way designed for creating web services in multi-language environments. It provides all the translation and conversion mechanisms to make requests independent of language.