.NET Framework Overview.NET and the.NET Framework
Objectives Learn basic principles and concepts of.NET and the.NET framework Contents Looking Back.NET and.NET Framework Overview Summary Questions
Section 1: Looking Back Challenges for the development organization Challenges for the corporate customer Missing ????
Challenges for Development Organization Development Language and operating system choices Delivery CD-ROM: production, packaging, transport Stability DLL compatibility issues Operating system—pollution leads to instability Compatibility tests with “popular” solutions Maintenance Customer involvement, even for critical updates Packaging, production, and delivery of medium
Challenges for the Corporate Customer Deployment Installation often requires time and personnel Testing for compatibility with existing applications and OS License management Stability and security Requires (even more!) testing Can lead to inadvertent breaches of security Can destabilize the system or other solutions [ Registry] Maintenance All the problems of deployment and security revisited!
Missing ???? We need all system features to be available to programmers in any language. We’d like our code to be able to run on a variety of platforms. We need help with managing different versions of the same software package. We’d like object-oriented programming features to be available in and between all programming languages. For safety, we want to be able to restrict the operations of pieces of code we don’t fully trust.
The.NET Framework Design Goals What were missing are goals !!!! "Cross-Language Development” Inheritance, Debugging, Exception handling Reliability and Security Simple Development and Deployment Device-agnostic
Java Code Byte Code Native Code Concept of Platform independence & Language Independence C# Code MS-IL Code Native Code Java Compiler IL Compiler JRE CLR VB.NET Code IL Compiler
Managed code Code running under control of the CLR is called Managed code Platform Independence : Mono - Linux Mono - Mac.NET framework - windows Performance Improvement [JIT] Language interpretability [ IL1 + SC2 = IL2 ]
Strong Data typing IL – No ambiguous data type VB variant (NO) VB.NET Integer - C# no Integer CTS – COMMON TYPE SPECIFICATION Predefined data types that are in IL.NET languages targets code depends on these types VB.NET Integer & C# int – IL’s Int32 CTS defines rich hierarchy of types.
What is. NET?.Net = Library + Environment Library : like extension of API Environment : Layer between OS and Application.
.NET Framework Architecture Visual Studio.NET Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NETWindows Forms Common Language Specification C#VBC++Scheme… Base Framework Data Connectivity XML Services User Interfaces
Common Language Runtime Class Loader MSIL to Native Compilers (JIT) Code Manager Garbage Collector (GC) Security EngineDebug EngineType CheckerException ManagerThread SupportCOM Marshaler Base Class Library Support
JIT – Just In Time IL is always JIT compiled where java byte code was interpreted IL never compiled to native code in one go, JIT compiler simply each portion of code as it is called (Just In Time) Then resultant native code is stored until the application exits. So no need to recompile Since final stage JIT Compiler know exactly what processor type the program will run on. Take advantage of particular machine code instruction.
Garbage Collector Before GC Make the application code do it manually [ C++ ] Resources never occupied for longer than unnecessary. Code that request memory should explicitly inform the system when it no longer requires that memory. Make objects maintain reference counts [ COM ] COM component maintain a count of how many clients are currently maintaining reference to it. When reference count reaches to zero, component can destroy itself and free up memory and resources.
GC – Clean up memory Dynamically requested memory allocated on heap. When heap gets full and needs tidying up, it calls garbage collector. GC examining references to objects stored on the heap to identify which one are accessible from your code. Objects that are not referred to are deemed to be no longer accessible from your code and therefore be removed. The garbage collector has access to the list of active roots that the just-in-time (JIT) compiler and the runtime maintain. (Strong references)just-in-time (JIT) compiler
Languages lcc (MS Research Redmond) Mondrian (Utrecht) ML (MS Research Cambridge) Mercury (Melbourne U.) Oberon (Zurich University) Oz (Univ of Saarlandes) Perl Python Scheme (Northwestern U.) SmallTalk Ada APL Basic (Visual Basic) C# C C++ J# COBOL Component Pascal (Queensland Univ of Tech) ECMAScript (JScript) Eiffel (Monash University) Haskell (Utrecht University)
Key Benefits of.NET Ease of Use Object-oriented model Everything is an object Namespace and Framework structure Easier to comprehend and use Naming scheme of namespaces reflects the underlying functionality Freedom to Choose: The language that meets your needs The development tool that is best for you The “features and functionality” to “plug in to”
Key Benefits of.NET Stability Say “goodbye” to memory leaks Garbage collection manages memory Assembly eliminates DLL compatibility issues Deliverables are restricted to an assembly Security Restricting or containing the illegal memory reference Comprehensive security model Assembly specific System wide Code inspection through MSIL
Key Benefits of.NET Deployment and Management Deployment: Code is “Assembled” and Run “Securely” Maintenance: Version Maintenance Simplified The Web the Way You Want It Anywhere Anytime On any device
The Framework Microsoft ®.NET Base Class Libraries File IO Networking Database Access XML Security Cryptography Threading Enterprise Services Graphics COM Interoperability Registry Monitoring System Events Windows ® Management Interface Globalization Configuration Diagnostics Reflection Sample of what’s in the framework
IL Compilers CSC & vbc out target:exe winexe library o warn: 0-4 nowarn unsafe checked nologo main reference lib
Configuration and Deployment Tools Type Library Exporter (Tlbexp.exe) Type Library Importer (Tlbimp.exe) Web Services Description Language Tool (Wsdl.exe) Web Services Discovery Tool (Disco.exe) XML Schema Definition Tool (Xsd.exe) ASP.NET Install (aspnet_regiis.exe) Global Assembly Cache tool (gacutil.exe).NET Framework Configuration Tool (mscorcfg.msc) Installer tool (installutil.exe)