.NET overview.Microsoft announced the NET initiative in July 2000. The NET platform is a new development framework with a new programming interface to Windows services and APIS Apis (ā`pĭs), in Egyptian religion, sacred bull of Memphis, said to be the incarnation of Osiris or of Ptah. His worship spread throughout the Mediterranean world and was particularly important during the time of the Roman Empire. , integrating a number of technologies that emerged from Microsoft during the late 1990s. Incorporated into .NET are COM (1) (Computer Output Microfilm) Creating microfilm or microfiche from the computer. A COM machine receives print-image output from the computer either online or via tape or disk and creates a film image of each page. + component services; the ASP web development framework; a commitment to XML XML in full Extensible Markup Language. Markup language developed to be a simplified and more structural version of SGML. It incorporates features of HTML (e.g., hypertext linking), but is designed to overcome some of HTML's limitations. and object-oriented design; support for new web services protocols Following is an outline of most of the protocols used to deliver Web services. The services prefixed with the "WS-" are often called the "WS protocols" or "WS* protocols." See Web services. such as SOAP, WSDL (Web Services Description Language) An XML-based language for defining Web services. Developed by Microsoft and IBM, WSDL describes the protocols and formats used by the service. , and UDDI (Universal Description, Discovery and Integration) An industry initiative for a universal business registry (catalog) of Web services turned over to the stewardship of OASIS in 2002 as the version 3 specification of UDDI was released. ; and a focus on the Internet. The platform consists of four separate product groups: Development tools A set of languages, including C# and VB.NET (Visual Basic .NET) An object-oriented programming language from Microsoft. It is the .NET version of the Visual Basic (VB) programming language. Like all .NET languages, VB.NET uses the Common Language Runtime (CLR) for program execution. VB. ; a set of development tools, including Visual Studio.NET; a comprehensive class library for building web services and web and Windows applications; as well as the Common Language Runtime See CLR. to execute objects built within this framework. Specialized servers A set of NET Enterprise Servers, formerly known as SQL Server 2000, Exchange 2000, BizTalk 2000, and so on, that provide specialized functionality for relational data storage, email, and B2B (Business to Business) Refers to one business communicating with or selling to another. See B2B e-commerce, B2C and B2G. B2B - business to business commerce. Web services An offering of commercial web services, specifically the .NET My Services initiative (formerly called HailStorm See .NET My Services. ); for a fee, developers can use these services in building applications that require knowledge of user identity. Devices New.NET-enabled non-PC devices, from cell phones to game boxes. Microsoft is devoting considerable resources to the development and success of .NET and related technologies: their bets are on .NET as the next big thing in computing. Microsoft.NET Microsoft has spent the last four years creating Microsoft NET, which was publicly launched at PDC (1) (Primary Domain Controller) A Windows NT/2000 service that manages security for its local domain. Every domain has one PDC, which contains a database of usernames, passwords and permissions. 2000 in Orlando, Florida. While the main strategy of NET is to enable software as a service, NET is much more than that. Aside from embracing the Web, Microsoft NET acknowledges and responds to the following trends within the software industry today: Distributed computing Simplifies the development of robust client/server applications. Current distributed technologies require high vendor-affinity and lack interoperation with the Web. Microsoft NET provides a remoting architecture that exploits open Internet standards, including the Hypertext Transfer Protocol See HTTP. (protocol) Hypertext Transfer Protocol - (HTTP) The client-server TCP/IP protocol used on the World-Wide Web for the exchange of HTML documents. It conventionally uses port 80. Latest version: HTTP 1.1, defined in RFC 2068, as of May 1997. (HTTP HTTP in full HyperText Transfer Protocol Standard application-level protocol used for exchanging files on the World Wide Web. HTTP runs on top of the TCP/IP protocol. ), Extensible Markup Language See XML. (language, text) Extensible Markup Language - (XML) An initiative from the W3C defining an "extremely simple" dialect of SGML suitable for use on the World-Wide Web. http://w3.org/XML/. (XML), and Simple Object Access Protocol (protocol) Simple Object Access Protocol - (SOAP) A minimal set of conventions for invoking code using XML over HTTP. DevelopMentor, Microsoft Corporation, and UserLand Software submitted SOAP to the IETF as an internal draft in December 1999. Latest version: SOAP 1. (SOAP). Componentization Simplifies the integration of software components developed by different vendors. The Component Object Model (COM) has brought reality to software plug-and-play, but COM component development and deployment are too complex. Microsoft NET provides a simpler way to build and deploy components. Enterprise services Allow the development of scalable enterprise applications without writing code to manage transactions, security, or pooling. Microsoft NET continues to support enterprise services, since these services greatly reduce the development time and effort involved in building large-scale applications. Web paradigm shifts Represents changes in web technologies to simplify the development of web applications. Over the last few years, web application development has shifted from connectivity (TCP/IP TCP/IP in full Transmission Control Protocol/Internet Protocol Standard Internet communications protocols that allow digital computers to communicate over long distances. ), to presentation (HTML HTML in full HyperText Markup Language Markup language derived from SGML that is used to prepare hypertext documents. Relatively easy for nonprogrammers to master, HTML is the language used for documents on the World Wide Web. ), to programmability (XML and SOAP). A key goal of Microsoft NET is to enable software to be sold and distributed as a service. Maturity factors Represents lessons that the software industry has learned from developing large-scale enterprise and web applications. A commercial web application must support interoperability, scalability, availability, and manageability. Microsoft NET facilitates all these goals. Although these are the main concepts that Microsoft NET incorporates, what's 'more notable is that Microsoft NET uses open Internet standards (HTTP, XML, and SOAP) at its core to transmit an object from one machine to another across the Internet. In fact, there is bidirectional mapping between XML and objects in NET. For example, a class can be expressed as an XML Schema Definition (XSD (XML Schema Definition) The informal name for the XML schema from the W3C. See W3C XML Schema. XSD - XML Schema Definition ); an object can be converted to and from an XML buffer; a method can be specified using an XML format called Web Services Description Language “WSDL” redirects here. For other uses, see WSDL (disambiguation). The Web Services Description Language (WSDL, pronounced 'wiz-dəl' or spelled out, 'W-S-D-L') is an XML-based language that provides a model for describing Web services. (WSDL); and an invocation (method call) can be expressed using an XML format called SOAP. The.NET Platform The Microsoft NET Platform consists of five main components, as shown in Figure 1. At the lowest layer lies the operating system (OS), which can be one of a variety of Windows platforms, including Windows XP, Windows 2000, Windows Me, and Windows CE. As part of the NET strategy, Microsoft has promised to deliver more NET device software to facilitate a new generation of smart devices. On top of the operating system is a series of NET Enterprise Server products that shortens the time required to develop large-scale business systems. These server products include Application Center 2000, BizTalk Server 2000, Commerce Server 2000, Exchange Server 2000, Host Integration Server 2000, Internet Security and Acceleration Server 2000, and SQL Server 2000. Since Web Services are highly reusable across the Web, Microsoft plans to provide a number of building-block services that applications developers can use, for a fee. An example of building-block service is Microsoft Passport, which allows you to use a single username and password at all web sites that support Passport authentication. In March 2001, Microsoft announced another set of Web Services with the codename HailStorm, now called NET My Services. This product encompasses a set of building-block services that support personalization, centered entirely on consistent user experiences.' Microsoft plans to add newer services, such as calendar, directory, and search services. Third-party vendors are also creating new Web Services of their own. At the top layer of the .NET architecture is a development tool called Visual Studio.NET (VS.NET), which makes possible the rapid development of Web Services and other applications. A successor of Microsoft Visual Studio Microsoft Visual Studio is Microsoft's flagship software development product for computer programmers. It centers on an integrated development environment which lets programmers create standalone applications, web sites, web applications, and web services that run on any platforms 6.0, VS.NET is an Integrated Development Environment See IDE. integrated development environment - interactive development environment (IDE) that supports four different languages and features such as cross-language debugging and the XML Schema Editor. And at the center of .NET is the Microsoft .NET Framework The .NET Framework is a new development and runtime infrastructure that will change the development of business applications on the Windows platform. It includes the Common Language Runtime (CLR (Common Language Runtime) The runtime engine in Microsoft's .NET platform. The CLR compiles and executes programs in Microsoft Intermediate Language (MSIL). The counterpart to the CLR for the Common Language Infrastructure (CLI), ECMA's standard version of . ) and a common framework of classes that can be used by all NET languages. .NET Framework Design Goals Inherent within the Microsoft .NET Framework are many design goals that are practical yet extremely ambitious. In this section, we discuss the main design goals of the Microsoft NET Framework, including better support for components, language integration, application interoperation across cyber-space, simple development and deployment, better reliability, and greater security. Component Infrastructure Prior to the existence of COM technology, Microsoft developers had no simple way to integrate binary libraries without referring to or altering their source code. With the advent of COM, programmers were able to integrate binary components into their applications, similar to the way we plug-and- play hardware components into our desktop PCs. Although COM was great, the grungy grun·gy adj. grun·gi·er, grun·gi·est Slang In a dirty, rundown, or inferior condition: grungy old jeans. [Origin unknown. details of COM gave developers and administrators many headaches. While COM permits you to integrate binary components developed using any language, it does require you to obey the COM identity, lifetime, and binary layout rules. You must also write the plumbing code that is required to create a COM component, such as DIlGetClassObject, CoRegister- ClassObject, and others. Realizing that these requirements result in frequent rewrites of similar code, .NET sets out to remove them. In the .NET world, all classes are ready to be reused at the binary level. You don't have to write extra plumbing code to support componentization in the .NET Framework. You simply write a .NET class, which then becomes a part of an assembly and supports plug-and-play. In addition to providing a framework to make development easier, .NET removes the pain of developing COM components. Specifically, .NET removes the use of the registry for component registration and eliminates the requirements for extraneous plumbing code found in all COM components, including code to support IlUnknown, class factories, component lifetime, registration, dynamic binding, and others. Language Integration COM supports language independence, which means that you can develop a COM component in any language you want. As long as your component meets all the rules spelled out in the COM specification, it can be instantiated and used by your applications. While this supports binary reuse, it doesn't support language integration. In other words Adv. 1. in other words - otherwise stated; "in other words, we are broke" put differently , you can't reuse the code in the COM components written by someone else; you can't extend a class hosted in the COM component; you can't catch exceptions thrown by code in the COM component; and so forth. Microsoft .NET supports not only language independence, but also language integration. This means that you can inherit from classes, catch exceptions, and take advantage of polymorphism across different languages. The .NET Framework makes this possible with a specification called the Common Type System (CTS (1) (Clear To Send) The RS-232 signal sent from the receiving station to the transmitting station that indicates it is ready to accept data. Contrast with RTS. (2) (Common Type System) The data typing used in . ), which all NET components must support. For example, everything in NET is an object of a specific class that derives from the root class called System. Object. The CTS supports the general concepts of classes, interfaces, delegates (which support callbacks), reference types, and value types. The .NET base classes provide most of the base system types, such as ones that support integer, string, and file manipulation. Because every language compiler must meet a minimum set of rules stipulated by the Common Language Specification (CLS (Common Language Specification) The structure and syntax of .NET and CLI programming languages. See .NET. ) and generate code to conform to the CTS, different. NET languages can intermingle in·ter·min·gle tr. & intr.v. in·ter·min·gled, in·ter·min·gling, in·ter·min·gles To mix or become mixed together. intermingle Verb [-gling, with one another. Internet Interoperation COM supports distributed computing through its Distributed COM (DCOM (Distributed Component Object Model) Formerly Network OLE, it is Microsoft's technology for distributed objects. DCOM is based on COM, Microsoft's component software architecture, which defines the object interfaces. ) wire protocol. A problem with DCOM is that it embeds the host TCP/IP address inside the Network Data Representation (NDR NDR Norddeutscher Rundfunk NDR non-delivery report (email) NDR Network Data Representation NDR National Driver Register NDR Non-Delivery Receipt (email) NDR Negative Differential Resistance ) buffer, such that it will not work through firewalls and Network Address Translation (NAT (Network Address Translation) An IETF standard that allows an organization to present itself to the Internet with far fewer IP addresses than there are nodes on its internal network. ) software. In addition, the DCOM dynamic activation, protocol negotiation, and garbage-collection facilities are proprietary, complex, and expensive. The solution is an open, simple, and lightweight protocol for distributed computing. The .NET Framework uses the new industry-supported SOAP protocol, which is based on the widely accepted XML and HTTP standards. Simple Development If you have developed software for the Windows platforms since their appearance, you have seen everything from the Windows APIs to the Microsoft Foundation Classes (programming) Microsoft Foundation Classes - (MFC) Software structures in C++, the Windows base classes which can respond to messages, make windows, and from which application specific classes can be derived. (MFC (Microsoft Foundation Class) An application framework for writing Microsoft C/C++ and Visual C++ applications. See application framework. MFC - Microsoft Foundation Class ), the Active Template Library See ATL. (ATL (Active Template Library) A set of software routines from Microsoft that provide the basic framework for creating ActiveX and COM objects. Stemming from the standard template library (STL) that comes with C++ compilers, ATL includes an object wizard that sets up ), the system COM interfaces, and the countless other environments, such as Visual Interdev, Visual Basic, Jscript, and other scripting languages. Each time you set out to develop something in a different compiler, you had to learn a new API or a class library, because there is no consistency or commonality among these different libraries or interfaces. The .NET solution provides a set of framework classes and lets every language use it. Such a framework removes the need for learning a new API each time you switch languages. Put differently, it's certainly easier to go through ten methods of a particular class than to go through a thousand API functions. Simple Deployments Imagine this scenario: your Windows application, which uses three shared DLLS DLLS Distance Learning Library Services , works just fine for months, but stops working one day after you've installed another software package that overwrites the first DLL (1) See data link layer. (2) (Dynamic Link Library) An executable program module in Windows that performs one or more functions at runtime. DLLs are not launched by the user; they are called for by an executable program or by other DLLs. , does nothing to the second DLL, and adds an additional copy of the third DLL into a different directory. If you have ever encountered such a brutal-yet entirely possible-problem, you have entered DLL Hell. And if you ask a group of seasoned developers whether they have experienced DLL Hell, they will grimace at you in disgust, not because of the question you've posed, but because they have indeed experienced the pain and suffering. To avoid DLL Hell on Windows 2000 (at least for system DLLS), Windows 2000 stores system DLLs in a cache. If you install an application that overwrites system DLLS, Windows 2000 will overwrite (1) A data entry mode that writes over existing characters on screen when new characters are typed in. Contrast with insert mode. (2) To record new data on top of existing data such as when a disk record or file is updated. the added system DLLs with the original versions from the cache. Microsoft .NET further diminishes DLL Hell. In the .NET environment, your executable will use the shared DLL with which it was built. This is guaranteed, because a shared DLL must be registered against something similar to the Windows 2000 cache, called the Global Assembly Cache The Global Assembly Cache or GAC is a machine-wide .NET assemblies cache for Microsoft's CLR platform. The approach of having a specially controlled central repository, addresses the shared library concept while helping to avoid pitfalls of other solutions that lead to (GAC GAC Great American Country GAC Global Assembly Cache (Microsoft .NET) GAC Global Assembly Cache GAC Granular Activated Carbon GAC Gustavus Adolphus College (St. ). In addition to this requirement, a shared DLL must have a unique hash value, public key, locale, and version number. Once you've met these requirements and registered your shared DLL in the GAC, its physical filename is no longer important. In other words, if you have two versions of a DLL that are both called MyDll.dll, both of them can live and execute on the same system without causing DLL Hell. Again, this is possible because the executable that uses one of these DLLs is tightly bound to the DLL during compilation. In addition to eradicating DLL Hell, .NET also removes the need for component-related registry settings. A COM developer will tell you that half the challenge of leaming COM is understanding the COM-specific registry entries for which the developer is responsible. Microsoft NET stores all references and dependencies of NET assemblies within a special section called a manifest In addition, assemblies can be either private or shared. Private assemblies are found using logical paths or XML-based application configuration files, and public assemblies are registered in the GAC; in both cases the system will find your dependencies at runtime. If they are missing, you get an exception telling you exactly what happened. Finally, .NET brings back the concept of zero-impact installation and removal. This concept is the opposite of what you have to deal with in the world of COM. To set up a COM application, you have to register all your components after you have copied them over to your machine. If you fail to perform this step correctly, nothing will work and you'll end up pulling your hair out. Likewise, to uninstall the application, you should unregister your components (to remove the registry entries) prior to deleting your files. Again, if you fail to perform this step correctly, you will leave remnants in the registry that will be forever extant. (to remove the registry entries) prior to deleting your files. Again, if you fail to perform this step correctly, you will leave remnants in the registry that will be forever extant. Unlike COM, but like DOS, to set up an application in NET, you simply xcopy your files from one directory on a CD to another directory on your machine, and the application will run automatically. Similarly, you can just delete the directory to uninstall the application from your machine. Reliability There are many programming languages and platforms in the commercial software industry, but few of them attempt to provide both a reliable language and a robust runtime or infrastructure. The most successful language that we have seen in the commercial software industry is the java language and the Java Virtual Machine A Java interpreter. The Java Virtual Machine (JVM) is software that converts the Java intermediate language (bytecode) into machine language and executes it. The original JVM came from the JavaSoft division of Sun. , which have brought the software development community much satisfaction. Microsoft is positioning .NET as the next big thing. Microsoft .NET requires type safety. Unlike C++, every class in .NET is derived from the mother of all classes, Object, which supports runtime type- identification features, content-dumping features, and so on. The CLR must recognize and verify types before they can be loaded and executed. This decreases the chances for rudimentary programming errors and prevents buffer overruns, which can be a security weakness. Traditional programming languages don't provide a common error-handling mechanism. C++ and Java support exception handling, but many others leave you in the dust, forcing to invent your own error-handling facilities. Microsoft .NET supports exceptions in the CLR, providing a consistent error- handling mechanism. Put another way: exceptions work across all .NET compatible languages. When you program in C++, you must deallocate all heap-based objects that you have previously allocated. If you fail to do this, the allocated resources on your system will never be reclaimed even though they are no longer needed. Also if this is a server application, it won't be robust because the accumulation of unused resources in memory will eventually bring down the system. Similar to Java, the .NET runtime tracks and garbage-collects all allocated objects that are no longer needed. Security When developing applications in the old days of DOS, Microsoft developers cared little about security because their applications ran on a single desktop with a single thread of execution. As soon as developers started developing client and server applications, things got a bit complicated: multiple users might then have accessed the servers, and sensitive data might be exchanged between the client and the server. The problem became even more complex in the web environment, since you could unknowingly download and execute malicious applets on your machine. To mitigate these problems, .NET provides a number of security features. Windows NT and Windows 2000 protect resources using access-control lists and security identities, but don't provide a security infrastructure to verify access to parts of an executable's code. Unlike traditional security support in which only access to the executable is protected, .NET goes further to protect access to specific parts of the executable code. For example, to take advantage of declarative security checks, you can prefix your method implementations with security attributes without having to write any code. To take advantage of imperative security checks, you write the code in your method to explicitly cause a security check. There are many other security facilities that .NET provides in an attempt to make it harder to penetrate your applications and system. .NET Framework Now that you are familiar with the major goals of the .NET Framework, let's briefly examine its architecture. As you can see in Figure 2, the NET Framework sits on top of the operating system, which can be a few different flavors of Windows, and consists of a number of components. .NET is essentially a system application that runs on Windows. The most important component of the Framework is something called the CLR. If, you are a Java programmer, think of the CLR as the NET equivalent of the Java Virtual Machine (JVM See Java Virtual Machine. JVM - Java Virtual Machine ). If you don't know Java, think of the CLR as the heart and soul of the. NET architecture. At a high level, the CLR activates objects, performs security checks on them, lays them out in memory, executes them, and garbage-collects them. Conceptually, the CLR and the JVM are similar in that they are both runtime infrastructures that abstract the underlying platform differences. However, while the JVM currently supports only the Java language, the CLR supports all languages that can be represented in the Common Intermediate Language (CIL (Common Intermediate Language) The ECMA version of the Microsoft Intermediate Language (MSIL). See CLI. 1. (project) CIL - Component Integration Laboratories. 2. (language) CIL - Common Intermediate Language. ). The JVM executes bytecode, so it could technically support many different languages, too. Unlike Java's bytecode, IL is never interpreted. Another conceptual difference between the two infrastructures that Java code runs on multiple platforms with a JVM, whereas .NET code runs only on the Windows platforms with the CLR (at the time of this writing). Microsoft has submitted the Common Language Infrastructure (CLI (1) (Call Level Interface) A database programming interface from the SQL Access Group (SAG), an SQL membership organization. SAG's CLI is an attempt to standardize the SQL language for database access. ), which is functional a subset of the CLR, to ECMA (European Computer Manufacturers Association, Geneva, Switzerland, www.ecma-international.org) An international association founded in 1961 that is dedicated to establishing standards in the information and communications fields. , so a third-party vendor could theoretically implement a CLR for a platform other than Windows. In Figure 2, the layer on top of the CLR is a set of framework base classes. This set of classes is similar to the set of classes in STL (STereoLithography) A 3D printing file format created by 3D Systems for its stereolithography system. Also supported by many numerical control, rapid prototyping and rapid manufacturing machines, STL provides the surface geometry of the item in triangles. , MFC, ATL, or Java. These classes support rudimentary input and output functionality, string manipulation, security management, network communications, thread management, text management, reflection functionality, and collections functionality, as well as other functions. On top of the framework base classes is a set of classes that extend the base classes to support data management and XML manipulation. The data classes support persistent data management-data that is stored on backend databases. These classes include the Structured Query Language See SQL. Structured Query Language - SQL (SQL SQL in full Structured Query Language. Computer programming language used for retrieving records or parts of records in databases and performing various calculations before displaying the results. ) classes to let you manipulate persistent data stores through a standard SQL interface. Similar to the SQL classes, the set of classes called ADO.NET allow you to manipulate persistent data. Alongside of the data classes, the NET Framework supports a number of classes to let you manipulate XML data, perform XML searching, and perform XML translations. Classes in three different technologies (including Web Services, Web Forms, and Windows Forms) extend the framework base classes and the data and XML classes. Web Services include a number of classes that support the development of lightweight distributed components, which will work even in the face of firewalls and NAT software. These components support plug-and-play across cyberspace, because Web Services employ standard HTTP and SOAP. Web Forms, and Windows Forms) extend the framework base classes and the data and XML classes. Web Services include a number of classes that support the development of lightweight distributed components, which will work even in the face of firewalls and NAT software. These components support plug- and-play across cyberspace, because Web Services employ standard HTTP and SOAP. Web Forms include a number of classes that allow you to rapidly develop web Graphical User Interface graphical user interface (GUI) Computer display format that allows the user to select commands, call up files, start programs, and do other routine tasks by using a mouse to point to pictorial symbols (icons) or lists of menu choices on the screen as opposed to having to (GUI) applications. If you're currently developing web applications with Visual Interdev, you can think of Web Forms as a facility that allows you to develop web GUIs using the same drag-and-drop approach as if you were developing the GUIs in Visual Basic. Simply drag and drop A graphical user interface (GUI) capability that lets you perform operations by moving the icon of an object with the mouse into another window or onto another icon. For example, files can be copied or moved by dragging them from one folder to another. controls onto your Web Form, double-click on a control, and write the code to respond to the associated event. Windows Forms support a set of classes that allow you to develop native Windows GUI applications. You can think of these classes collectively as a much better version of MFC because they support easier GUI development and provide a common, consistent interface that can be used in all languages. From .Net Framework Essentials O'Reilly Publishing ISBN ISBN abbr. International Standard Book Number ISBN International Standard Book Number ISBN n abbr (= International Standard Book Number) → ISBN m 0-596-00302-1 www.o'reilly.com |
|
||||||||||||||||||||

Printer friendly
Cite/link
Email
Feedback
Reader Opinion