1 / 23

.NET’s CLR

.NET’s CLR. How does it really work?. Overview. CLR : Common Language Runtime Platform for software development that provides services by consuming metadata Standards based, Component oriented What is CLR Benefits Inside CLR. CLR BASICS. Core of .NET vision.

zoey
Download Presentation

.NET’s CLR

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET’s CLR How does it really work? Bhavani Sankar Ikkurthi CS 795 Presentation

  2. Overview • CLR : Common Language Runtime • Platform for software development that provides services by consuming metadata • Standards based, Component oriented • What is CLR • Benefits • Inside CLR Bhavani Sankar Ikkurthi CS 795 Presentation

  3. CLR BASICS • Core of .NET vision Bhavani Sankar Ikkurthi CS 795 Presentation

  4. CLR as a development platform • It provides Bhavani Sankar Ikkurthi CS 795 Presentation

  5. Runtime • A piece of code written by platform vendor • Provides services to the software that you write • Visual Basic Runtime, the SQL Server Engine and the COM+/MTS runtime. Bhavani Sankar Ikkurthi CS 795 Presentation

  6. Runtime Bhavani Sankar Ikkurthi CS 795 Presentation

  7. Libraries • CLR's Base Class Library allow us to interact with the runtime, and provide additional useful functionality. • How do you take advantage of runtime? • BCL includes ASP.NET, XML Parser and other thousands of classes Bhavani Sankar Ikkurthi CS 795 Presentation

  8. Languages • How do I take advantage of libraries and runtime • C#, Visual Basic.NET, IL, C++, and JScript.NET • How is CLR different then?? Bhavani Sankar Ikkurthi CS 795 Presentation

  9. Components • Component oriented programming from Hardware • Software systems can be built from software components • Organizing components can ease maintenance • Every piece of CLR functionality that we run must belong to a component Bhavani Sankar Ikkurthi CS 795 Presentation

  10. Standards • A standard is a document that describes a convention or protocol that everyone agrees to follow • HTTP standard • Explicit support for XML and SOAP • CLI Bhavani Sankar Ikkurthi CS 795 Presentation

  11. .NET is cross-platform • Compiled .NET apps run on any supported platform: APP.exe ? Win32 (XP,2K,98) Win64 WinCE Bhavani Sankar Ikkurthi CS 795 Presentation

  12. How is cross-platform achieved? • Cross-platform execution realized in two ways: • Apps are written against Framework Class Library (FCL), not underlying OS • Compilers generate generic assembly language which must be executed by the Common Language Runtime (CLR) • Framework Class Library • 1000's of predefined classes • common subset across all platforms & languages • networking, database access, XML processing, GUI, Web, etc. • Goal? FCL is a portable operating system Bhavani Sankar Ikkurthi CS 795 Presentation

  13. The Common Language Runtime (CLR) • The CLR defines a common programming model and a standard type system for cross-platform, multi-language development.” • All .NET-aware compilers generate Intermediate Language (IL) instructions and metadata. • The runtime's Just-in-Time (JIT) compiler convert the IL to a machine-specific (native) code when an application actually runs. • Because the CLR is responsible for managing this IL, the code is known as managed code. Bhavani Sankar Ikkurthi CS 795 Presentation

  14. Intermediate Language (IL) • All .NET-aware compilers generate Intermediate Language (IL) instructions and metadata. Bhavani Sankar Ikkurthi CS 795 Presentation

  15. Assemblies • 1 assembly = 1 or more compiled classes • .EXE represents an assembly with classes + Main program • .DLL represents an assembly with classes code.vb code.vb code.cs Development Tools .EXE / .DLL assembly Bhavani Sankar Ikkurthi CS 795 Presentation

  16. .NET Application Design • Monolithic app: all source code compiled into one .EXE • not the norm on Windows… APP.exe • Component-based app: .EXE + one or more .DLLs • standard practice on Windows… compute.dll GUI.exe data.dll • team programming • multi-language development (I like C#, you like C++, he/she likes VB) • code reuse (e.g. across different .EXEs) • independent updating (update just component X) • FCL ships as a set of components! Bhavani Sankar Ikkurthi CS 795 Presentation

  17. JIT Compiler CLR-based execution • Common Language Runtime must be present to execute code: APP.exe OS Process CLR other FCL components Core FCL obj code Underlying OS and HW Bhavani Sankar Ikkurthi CS 795 Presentation

  18. JIT Compiler CLR-based execution revisited • CLR must be able to locate all assemblies: .DLL .DLL .EXE .DLL OS Process CLR other FCL assemblies Core FCL assembly obj code obj code obj code obj code Underlying OS and HW Bhavani Sankar Ikkurthi CS 795 Presentation

  19. mscoree.dll - Common Object Runtime Execution Engine Bhavani Sankar Ikkurthi CS 795 Presentation

  20. Memory Management Bhavani Sankar Ikkurthi CS 795 Presentation

  21. Memory Management Bhavani Sankar Ikkurthi CS 795 Presentation

  22. References • http://www.theserverside.net/tt/articles/showarticle.tss?id=DM_CLR • http://msdn.microsoft.com/en-us/library/8bs2ecf4(VS.71).aspx • C# and the .NET Platform, Second Edition by Andrew Troelsen Bhavani Sankar Ikkurthi CS 795 Presentation

  23. Thank you Bhavani Sankar Ikkurthi CS 795 Presentation

More Related