YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

.NET Framework&C#

Page 2: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

.NET FrameworkProblem backgroundSolutionCommon Language Runtime (CLR)

MS Intermediate LanguageMSIL StructureMSIL and Java bytecode

Introduction to C# languageC# StructureC# Features

Page 3: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Problems Background Good code is hard to write All system features in any language COM problems Platform Interoperability Automatic memory management Object-Oriented features in and between all PLs Safety & Security Better Access to OS functions Interoperate with COM (both as client & server)

Page 4: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Solution (Common Language Runtime) Managed Code in Common Language Runtime

Requests for existing feature New CLR-Only Feature

Common Language Runtime

Managed Code

Win 32 OS

Page 5: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Solution (Microsoft Intermediate Language)Different Languages are Compiled into MSIL

Source code :Any languages

MS IntermediateLanguage

Platform specificcode

Development tools

Just-In-Time

compiler

Page 6: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

.Net platform features

Automatic memory management Explicit Versioning OO features in any languages Accessing system functionality throw a

hierarchical namespace Code security Interoperability with COM

Page 7: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Costs:

OS got harder to write More memory and CPU time

Page 8: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

CLR structure

Page 9: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Compare with traditional waysC# VB C++ J-script other

Compiler

Intermediate Language

JIT econoJIT PreJIT

Executables

.NET CLR

Compiler

C++

Executable

Existing OS

Machine hardware

Page 10: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

A simple example

Page 11: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Imports Microsoft.VisualBasic

' Declare the namespace that clients will use to access ' the classes in this component

Namespace TimeComponentNS

Public Class TimeComponent

Public Function GetTime(ByVal ShowSeconds As Boolean) As StringIf (ShowSeconds = True) Then

Return Now.ToLongTimeString Else Return Now.ToShortTimeString End If End Function End ClassEnd Namespace

TimeComponent.vb

Page 12: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

using System ;using TimeComponentNS ;

class MainApp { public static void Main()

{

// Declare and create a new component of the class // provided by the VB server we wrote

TimeComponent tc = new TimeComponent ( ) ;

// Call the server's GetTime method. Write its // resulting string to a console window.

Console.Write (tc.GetTime (true)) ; }}

Timeclient.cs

Page 13: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Assembly

A logical collection of one or more exe and dll file containing an application’s code and resources

It contains

1-Codes in MSIL

2-Manifest

A metadata description of the code and resources

Page 14: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Metadata

What classes and method it contains What external objects it requires What version of code it represents

Page 15: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Manifest example (TimeComponent.dll).assembly extern mscorlib{ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 1:0:2411:0}.assembly extern Microsoft.VisualBasic{ .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: .ver 7:0:0:0}.assembly TimeComponent{ .hash algorithm 0x00008004 .ver 0:0:0:0}.module TimeComponent.dll// MVID: {144ACC38-E825-45C4-83A6-C2A9E5A901DD}.imagebase 0x00400000.subsystem 0x00000002.file alignment 512.corflags 0x00000001// Image base: 0x032a0000

Page 16: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Private or Public

Private

In client directory Public (shared)

In Global Assembly Cache (GAC)

\\winnt\assembly

Page 17: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Namespaces

A logical division within which a name need to be unique

The best way to handle a large list of system objects and functions

System namespace (implemented in several separated DLLs

We can import a namespace Your code can have its own namespace

Page 18: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Versioning

DLL Hell

Replacing a DLL used by an existing client, with a newer version (or vice versa)

.NET provides a standard way to specify

version Each client assembly uses its own

specified versions of related assemblies

Page 19: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Object oriented programming

Whether to smarten up non-object oriented languages or dump down OO languages

.NET provides all languages with inheritance and constructors features

Virtual Object Model

Page 20: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

All .NET classes inherit from the base class System.Object Equals GetHashCode GetType ToString

Page 21: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Cross-language inheritance

Because of the standardized IL architecture

you can inherit form a class in another

language

For example:

System.Object

Page 22: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

.NET memory management

.NET CLR provides all languages with automatic memory management.

Garbage collector automatically removesunreferenced objects

You can force a garbage collection manually

Page 23: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Interoperability with COM objects

.NET Supports interoperation with COM object as client or server via a runtime callable wrapper or a COM Callable Wrapper

Page 24: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Using COM objects from .NET objects

Page 25: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Using .NET objects from COM objects

Page 26: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Transaction in .NET

Transaction ensure the integrity of databases during complex operations

Native .NET objects can also participate in transactions with a simple attribute

Page 27: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Structured exception handling .NET provides structured exception

handling as a fundamental feature available in and between all languages

The exception handler can tell exactly where the exception originated by using a stack trace

Page 28: .NET Framework & C#. .NET Framework  Problem background  Solution  Common Language Runtime (CLR) MS Intermediate Language  MSIL Structure  MSIL and.

Code access security Most software comes from web A user doesn’t know whether a Web code is safe

or not .NET allows an administrator to specify

privileges that each managed code has. You can specify these privileges in three level

by modifying XML-based files Enterprise Machine User

\\winnt\microsoft.net\framework\[c.v.]\config\


Related Documents