Unit -1 Chapter -1 REVIEW OF .NET FRAME WORK Topics to be covered 1. 2. 3. 4. 5. 6. Introduction to .NET framework the Microsoft .NET strategy. Why is .NET? .NET product. .NET services. The origin of .NET technology. Brief history of .NET. The .NET framework application. The core feature of .NET framework. Benefits of the .NET approach: .NET framework 4.0 architecture(introduction and feature). Feature of .NET framework and asp.net 4.0 6. Execution environment of .NET framework application. (1). Common language runtime(CLR). Source code Compiler. Metadata. Microsoft Intermediate language(MSIL). Managed code. Class loader. Base class library or.net framework class library. Just in time compiler(JIT). Native machine code. Runtime manager. NET Assembly a. Kinds of assemblies-private and shared. b. Component of assemblies- manifest, module, type c. Function of assemblies. (2). Common language specification(CLS). (3). Common type system(CTS). (4). Garbage collector(GC). (5). How the garbage collector works. (6). Namespace The Microsoft .NET strategy. • Microsoft wanted to make the www more vibrant by enabling individual devices, computers and web services to work together intelligently to provide richer solution to the users. • By the intelligent ,integration of website on the internet, user can create a wide variety of value based applications such as unified banking services, electronic bill payment etc. • Microsoft calls this “web services” and the software strategy for implementing and delivering those services as “.NET” Contd…. • .NET is a software framework that includes everything required for developing software for web services. It integrates presentation technologies,componet technologies and data technologies on a single platform so as to enable users to develop internet application as easily as they do desktop system. Why .NET? • The world of computing till date has been chaotic. We have had various languages struggling to interoperate with each other, developers undergoing huge learning curves to shift from one language to another or from one application type to another, non-standard ways of modeling applications and designing solutions and huge syntactic differences between languages. The list goes on.... • Basically,microsoft introduce the .NET framework with the intention of bridging the gap in interoperability between application. Contd…. • This framework aim at integrating various programming languages and services. • It is designed to make significant improvement in code reuse, code specification, resource management,multilanguage development, security deployment and administration. • It consist of all the technologies that help in creating and running robust scalable and distributed applications. • The .NET offers a complete suite for developing and deploying applications. Contd…. The Microsoft .NET software solution strategy(suit) includes three key approaches: MS.NET STRATEGY MS .NET PLATFORM MS.NET PRODUCT AND SERVICES THIRD PARTY .NET SERVICES • Contd…. • MS .NET platform includes the following component that would help developing a new generation of smart internet services, and they are:.NET infrastructure and tools .NET framework. .NET user experience console application, windows application, libraries etc. .NET building blocks CLR,CTS,base class etc. .NET device software embedded system. • contd.. • Microsoft .NET product and services consist of the following:Windows .NET. MSN .NET. Office .NET. Visual studio .NET. Personal subscription services. bCentral for .NET. Contd… • Third-party .NET services: Third-party .NET services will provide opportunities to vast range of developers and users to produce corporate and vertical services using .NET platform. • The third-party languages are: COBAL Smalltalk Mercury Perl Python • Native languages are: VB C++ C# Brief history of .NET • The Microsoft .Net is a new internet technology or rather strategy introduced by Microsoft. .Net was originally known as the NGWS (Next Generation Windows Services) which was said to be an Internet based platform of Next Generation Windows Services. Before the official announcement of .Net, NGWS was the term used to describe the above phrase. • The .NET Framework was first released in in November 2000 and development continues today. Each version of the framework has betas, final versions, service packs, and patches associated with it. Version Version Number Release Date 1.0 1.0.3705.0 02/13/2002 1.1 1.1.4322.573 04/24/2003 2.0 2.0.50727.42 11/07/2005 Visual Studio Default in Windows VisualStudio.NET Visual Studio .NET 2003 Visual Studio 2005 3.0 3.0.4506.30 11/06/2006 3.5 3.5.21022.8 11/19/2007 Visual Studio 2008 4.0 4.0.30319.1 04/12/2010 Visual Studio 2010 Windows Server 2003 Windows Vista, Windows Server 2008 Windows 7, Windows Server 2008 R2 The origin of .NET technology Note: Before going into the detail of .NET feature further, we shall see how the concept of .NET was evolved over the past 10 years by Microsoft corp. • The current technology of .NET has gone through three significant phases of development. and they are:Interprocess communication Intermodule communication Intersite communication OLE TECHNOLOGY COM TECHNOLOGY .NET TECHNOLOGY Object linking and embedding (early phase-I 1990s) Component object module or model (phase-II 1995) Phase-III 1990’s later years • Contd… • Interprocess communication more than one independent process communicate with each other. Ex: crystal report with VB or VB.NET. • Intermodule communication integration of independent component or module developed in a particular language with each one is offering a particular service: VB 6.0 module ,java classes or packages etc. • Intersite communication cross language compatibility i.e. module developed in any language included in .NET package can be merged together to create an application. .NET Technology • .NET technology is a third generation component model. • This provides a new level of interoperability compare to COM technology. • COM provides a standard binary mechanism for intermodal communication. This mechanism is replaced by an intermediate language called Microsoft Language (MSIL) or simple IL in the .NET technology. • Various .NET language compiler enforce interoperability by compiling code into ILs which is automatically compatible with other IL modules. • An inherent characteristics of IL code is metadata. Monolithic approach vs .NET platform compile Source code Object code linking execution .NET TECHNOLOGY csc Source code Manage code IL CLR (loading, running and checking Exe/dll code JIT Native code The .NET framework • The .NET framework is one of the tools provided by the .NET infrastructure and tool component of .NET platform. • .NET platform provides a new environment for creating and running robust, scalable and distributed applications over the web. • C# derives much of the power from the .NET framework on which it runs. • The .NET framework provides an environment for building, deploying and running web services(ASP.NET) and other application (windows application). • It is an important component that supports building and running the advanced application and XML services. .NET PLATFORM • .NET .NE BUILDING .NET DEVICE BLOCK SERVICES SOFTWARE .NET USER EXPERENCE .NET INFRASTRUCTURE AND TOOLS It consist of three distinct technologies: CLR, framework base class and the top layer consist contains a set of classes for developing web services and to deal with the user interface. .NET FRAMEWORK ARCHITECTURE. NET INFRASTRUCTURE AND TOOLS VISUAL STUDIO .NET WINDOWS .NET .NET EXPERINCE SERVICES .NET FRAMEWORK .NET FRAMEWORK WEB SERVICES WINDOWS FORM WEB FORMS DATA & XML CLASSES (ADO.NET,SQL) WINDOWA FRAMEWORK BASE CLASS (I/O, STRONG SECURITY, COLLECTION ETC) COMMON LANGUAGE RUNTIME (DEBUG,EXCEPTION HANDLING,TYPE CHECKING,JIT,COMPILEER) WINDOWS PLATFORM .NET Framework C# VB.NET C++.NET Other Common Language Specification Framework Class Library ASP.NET Web Services Windows Forms Web Forms ASP.NET Application Services Controls Drawing Windows Application Services ADO.NET XML Threading IO Network Security Diagnostics Etc. Common Language Runtime Memory Management Common Type System Operating System Lifecycle Monitoring Visual Studio .NET . The core feature/objectives of .NET framework Provide a better execution environment for reducing versioning conflicts and saving the deploying time. Provide a safe execution environment. Provide an object- oriented programming environment. Provide a consistent API as well as consistent experience to developer across widely varying types of applications such as windows-based applications and web based applications. Provide integrity with different type of code. Elimination of the performance problems of scripted or interpreted environment. it is a complete set of tools for building ASP web application,xml web services, desktop application and mobile application. VB .NET,VB C++ .NET, VB C#.NET and VB J# .NET all uses the same integrated development environment (IDE),which allows them to share tools and facilities in the creation of mixed-language or cross language solution. .NET framework 4.0 architecture (feature). Enhanced globalization. Garbage collector. Code contracts. Design-time-only interop(interoperability) assemblies. Memory –mapped files. Feature of .NET framework and asp.net 4.0 • The main feature are:Enhanced syntax for Html encode. Enhanced on Microsoft Ajax library. Session state compression. Output cache extensibility. View sate mode for individual controls. Auto start asp.net application. Jquery integration. Execution environment of .NET framework application. 1. ). Common language runtime(CLR). Source code Compiler. Metadata. Microsoft Intermediate language(MSIL). Managed code. Class loader. Base class library or.net framework class library. Just in time compiler(JIT). Native machine code. Runtime manager. NET Assembly a. Kinds of assemblies-private and shared. b. Component of assemblies- manifest, module, type c. Function of assemblies. Common language runtime(CLR). • The common language runtime(CLR) is one of the most essential component of the .NET framework. • CLR is a runtime environment in which all the programs using .NET technologies are executed. • It also support cross language compatibility. COMPONENTS OF COMMON LANGUAGE RUNTIME(CLR) COMMON TYPE SYSTEM(CTS) INTEMIDIATE LANGUAGE(IL) EXECUTION SUPPORT FUNCTION SECURITY GARBAGE COLLECTION CLASS LOADER MEMORY LAYOUT • Contd.. • The CLR provides services such as: Loading and execution of programs. Memory allocation and memory isolation for application. Verification of type safety. Compilation of IL into native executable code. Providing metadata. Memory management(automatic garbage collection) Enforcement of security. Interoperability with other systems. Managing exceptions and errors Support for tasks such as debugging and profiling. Source code Assembly Managed code compiler IL and Metadata Metadata Engine linkers Other native code Exe code Class loader Verifier test Basic class library For type safety JIT compiler Native machine code Runtime manager output Contd… Flowchart of CLR activities for executing a program Contd… • While executing the program CLR plays an important role: The source code is compiled to IL while the metadata engine creates metadata information. IL and Metadata are linked with other native code if required and the resultant IL code is saved. During execution, the IL code and any requirement from the base class library are brought together in the class loader. The combined code is tested for type-safety and then compiled by the JIT compiler to produce native machine code, which is sent to runtime manager for execution. • Contd… • Source code:• Initially, a programmer writes a program in a particular programming language. This form of the program is called the source code or source program. • Compiler: A compiler is a special program that processes statements written in a particular programming language and turns them into machine language or "code" that a computer's processor uses. When we compile a program developed in a language that targeted the CLR instead of compiling the source code into machine-level code, at that time the compiler translates the source code into Microsoft intermediate language(MSIL) This ensure language interoperability. Microsoft intermediate language(MSIL) • MSIL or simple IL, is an instruction set into which all the .NET programs are compiled. • It contains instructions for loading,storing,initializing and calling methods. • It is low level language that the CLR understands. • When we compile any program written in a CLScompliant language, the source code is complied into MSIL. • In addition to IL,.NET includes a host of other technologies and tools that will enable us to develop and implement web-based application easily. Metadata • Metadata is data about data and it contains the description of code such as data types, classes and interface dependencies, location and the versions of the components used in the application. • It also defines the properites,methods and events associated with each member type. • It allows for true cross language integration. • It is always the job of the compiler not the programmer to produce the latest type metadata. • Metadata is used by the CLR complaint compilers to read many aspects of the application in .NET runtime environment. IL and metadata constitute as assembly. IL SOURCE CODE + METADATA COMPILER ASSEMBLY Assemblies contain metadata ,which describe the assembly’s internal version number and details of all the data and object type they contain. When we compile a an V.S complaint application, visual studio .NET create an assembly that is a single file with the extension .exe or .dll. • • • • • • .NET Assembly The net assembly is the standard for components developed with the Microsoft .NET . The .NET assemblies may or may not be excutable,i.e they might exist as the executable (.exe) file or dynamic link library (dll) file. All the .NET assemblies contain the definition of types, versioning information for the type,meta-deta and manifest. The assemblies can be used by single or multiple applications. An assembly can be a single file or it may consist of the multiple files. in case of multi file, there is one master module containing the manifest while other assemblies exist as non manifest modules. A module in .NET is a sub part of a multi file .NET assembly. Assembly is one of the most interesting and extremely useful areas of .NET architecture along with reflections and attributes. Component of assemblies- manifest, module, type Manifest module Metadata IL code type Properties , field, method • Manifest: describe the assembly ,it contains information like name and version number of the assembly, security permission required by the assembly. • Module: is either a dll or exe file. It contains IL and metadata. • Type : is a class that contains data and logic affecting the data. These class contains information like propreties,fields and methods. Kinds of assemblies-private and shared. • There are two kinds of assemblies in .NET described below; • 1. private assemblies: private assemblies are simple and normally used by a single application, and are stored in the application’s directory. These assemblies are often used to deploy language-specific assemblies work in side-by-side execution because the application has a separate product id for each language and installs satellite assemblies in a language specific subdirectory for each language. • 2. shared assemblies: a shared assembly is normally stored in the global assembly cache, which is a repository of assemblies maintained by the .NET runtime. for all calling assemblies within the application, the same copy of the shared assembly is used from its original location. Hence shared assemblies are not copied in the private folders of each calling assembly. Each shared assembly has a four part name including its face name, version ,public key token and culture information. the public key token and version information makes it almost impossible for two different assemblies with the same name or for two similar assemblies with different version to mix with each other. Function of assemblies. Supports execution. Provides security Support deployment. Provide unique identification. Tracks version. Managed code • As we know that CLR is responsible for managing the execution of code compiled for .NET platform. • The code that satisfies the CLR ,the foundation of the .NET Framework at runtime in order to execute is referred to as managed code. • Managed code supplies the metadata necessary for the CLR to provide services such as memory management, cross-language integration, code access security, and automatic lifetime control of objects. All code based on IL executes as managed code. • Compiler that are compatible to .NET platform generates managed code • The managed code generated by compiler is called IL code. Class loader • When we execute the .exe or .dll file, the code which is converted into IL and all the other relevant information from the base class library is sent to class loader. • The class loader loads the code into the memory. Base class library or.net framework class library. • The .NET framework class library is a collection of reusable types that tightly integrated with the CLR. • These are inbuilt classes which makes development very easy. • The .NET class library is unique for framework that means we have to study it once and we use it for any .NET language based application development. • These are object oriented class from which our own manage code can derived functionality. • It enable us to accomplished range of common programming task such as data collection,database connectivity, string management etc. • We can use class library for development of console application,windows application,ASP.NET application,XML web services etc. JIT-manage code execution • Before the code can be executed, the .NET framework needs to convert the IL into native or CPU-specific code. • The just-in-time complier translates the code from IL into managed native code. • During the process of compliation,the JIT compiler compiles the code that is required during execution instead of compiling the complete IL code. • When an uncompiled method is invoked during execution, the JIT compiler converts the IL for that method into native code. • During JIT compilation, the code is also checked for type safe. Type-safe • This feature ensures that the objects are always accessed in compatible way. Therefore, the CLR will prohibit a code from assigning a 10-byte value to an object that occupies 8byte. • Type safety also ensures that objects are safely isolated from each other and therefore safe from any malicious corruption. Native machine code • Native code is computer programming (code) that is compiled to run with a particular processor and its set of instructions. Runtime manager • After translating the IL into native code,the converted code is sent to the .NET runtime manager. • The .NET runtime manager executes the code. • While executing the code, a security check is performed to ensure that the code has the appropriate permission for accessing the available resources. .NET platform-Security management • In case of .NET platform, security is achieved through the code access security(CAS) model. • In this model, the CLR enforces restriction on managed code through the use of object called permission. • The CLR allow the code to perform only those tasks for which it has permission. • In other words, the CAS model specifies what the code can access instead of specifying who can access resources. 6. Execution environment of .NET framework application…CONTD… (2). Common language specification(CLS). (3). Common type system(CTS). (4). Garbage collector(GC). (5). How the garbage collector works. (6). Namespace Common type system(CTS) • The .NET framework provides multiple language support using the features known as common type system(CTS) that is built into CLR. • CTS support a variety of type and operation found in most programming languages and therefore does not required type conversion. • CTS defines how data types are declared, used and managed in the code at runtime. • The CTS also defines the rules that ensure that the data types of objects written in various languages are able to interact with each other. Common language specification(CLS) • CLR consists of a set of common rules followed by all the languages of the .NET framework. This set of rules is known as common language specification(CLS). • CLs defines a set of rules that enables interoperability on the .NET platform. • These rules serves as a guide to the third-party compiler, designers and library builders. • CLS enable an object or application to interact with the object or application of other language. • The class that follow the rules specified by CLS are termed as CLS compliant class. • The classes defined in the .NET framework class library are CLS compliant. Garbage collector(GC). • The garbage collector is a tool for memory management provided by .NET framework. • The garbage collector(GC) runs in a low-priority thread and checks for un-reference dynamically allocated memory space. • If it finds some data that is no more referenced by any variable/reference, it re-claims it and returns the occupied memory back to the operating system so that it can be used by other programs as necessary. • The presence of standard garbage collector free the programmer from keeping track of slack data. How the garbage collector works. • The garbage collector examines how objects are arranged in memory and identify all those objects that can be used by the running programme by using some references. When a garbage collection starts ,it looks at a set of references called the ‘gc roots’. These are memory locations that are designated to be always reachable for some reason, and which contain references to objects created by the program. It marks these objects as ‘live’ and then looks at any objects that they refrence;it marks these as being ‘live’ too. It continues in this manner, iterating through all of the object it knows are ‘live'. it marks anything that they reference are also being used until it can find no other objects. • An object is identified, by the garbage collector, as referencing another object if it, or one of its super classes that contains the other object. once all of these live objects are known, any remaining objects can be discarded and the space can be re-used for new objects. the net reduces memory so that there will be no gap which means that free memory is always located at the end of a heap and makes allocating new objects very fast. If an object has a finalizer,it is not immediately removed when the garbage collector decides it is no longer ‘live'. these objects usually require more than one garbage collection to be removed from memory, as they will survive the first time they are found to be unused. Benefits of the .NET approach: • Microsoft has advanced the .NET strategy in order to provide a number of benefits to developer and user. • Some of the benefits are: Simple and faster system development. Rice object model. Enhanced builting-in functionality. Many different ways to communicate with the outside world. Integration of different languages into one platform. Easy deployment and execution. Wide range of scalability. Interoperability with existing applications. Simple and easy-to-build sophisticated development tools. Fewer bugs. Potentially better performance. Application that are supported by the .NET platform • • • • • • • Console application. Windows application. Developing windows control. Developing ASP.NET project. Creating web controls. Providing web services. Developing .NET component library.