.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 Challenges Missing
for the development organization for the corporate customer
????
Challenges for Development Organization Development
Language and operating system choices CD-ROM: production, packaging, transport DLL compatibility issues
Delivery
Stability
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. like our code to be able to run on a variety of platforms. need help with managing different versions of the same software package. like object-oriented programming features to be available in and between all programming languages. safety, we want to be able to restrict the operations of pieces of code we don’t fully trust.
We’d
We
We’d
For
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
Section 2: .NET Framework Overview
What
Is .NET? Paths—from Anywhere to .NET
Migration Key
Benefits of .NET
Concept of Platform independence & Language Independence
Java Code Java Compiler Byte Code JRE Native Code
C# Code
IL Compiler
MS-IL Code CLR
Native Code
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
data types that are in IL
Predefined .NET
languages targets code depends on these types
VB.NET
CTS
Integer & C# int – IL’s Int32
defines rich hierarchy of types.
What is . NET?
.Net
= Library + Environment : like extension of API : Layer between OS and Application.
Library
Environment
.NET Framework Architecture
C# VB C++ Scheme … Visual Studio.NET
Common Language Specification
ASP .NET XML Services Windows Forms User Interfaces
ADO .NET and XML Data Connectivity Base Class Library Base Framework Common Language Runtime Operating System
Common Language Runtime
Base Class Library Support Thread Support Type Checker Security Engine MSIL to Native Compilers (JIT) Code Manager COM Marshaler Exception Manager Debug Engine Garbage Collector (GC)
Class Loader
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++ ]
never occupied for longer than unnecessary.
Resources 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. reference count reaches to zero, component can destroy itself and free up memory and resources.
When
GC – Clean up memory
Dynamically requested memory allocated
on heap.
When heap gets full and
needs tidying up, it calls garbage collector. to objects stored on the heap to identify which one are accessible from your code. not referred to are deemed to be no longer accessible from your code and therefore be removed. list of active roots that the just-in-time (JIT) compiler and the runtime maintain.
GC examining references
Objects that are
The garbage collector has access to the
Languages
Ada APL Basic (Visual Basic)
lcc (MS Research Redmond) Mondrian (Utrecht)
C#
C C++ J# COBOL Component Pascal (Queensland Univ of Tech) ECMAScript (JScript)
ML (MS Research Cambridge)
Mercury (Melbourne U.) Oberon (Zurich University) Oz (Univ of Saarlandes) Perl Python
Eiffel (Monash University)
Haskell (Utrecht University)
Scheme (Northwestern U.)
SmallTalk
Key Benefits of .NET
Ease
of Use
Everything is an object Easier to comprehend and use Naming scheme of namespaces reflects the underlying functionality
Object-oriented model
Namespace and Framework structure
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
Sample of what’s in 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
The .NET Framework Namespaces
System.Web
Services Description Discovery Protocols Caching Configuration Security SessionState UI HtmlControls WebControls Design
System.WinForms
ComponentModel
System.Drawing
Drawing2D Imaging Printing Text
System.Data
ADO Design SQL SQLTypes XSLT XPath
System.Xml
Serialization
System
Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security ServiceProcess Text Threading Runtime InteropServices Remoting Serialization
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)
Security Tools
Code Access Security Policy Tool (Caspol.exe) File Signing Tool (Signcode.exe) Permissions View Tool (Permview.exe) PEVerify Tool (PEverify.exe) Secutil Tool (Secutil.exe) Strong Name Tool (Sn.exe)
General Tools
Common Language Runtime Minidump Tool (Mscordmp.exe)
mscordmp /pid [pid number] /out [output file]
MSIL Assembler (Ilasm.exe) MSIL Disassembler (Ildasm.exe) Resource File Generator Tool (Resgen.exe)
Windows Forms Class Viewer (Wincv.exe)