47
1 Im Überblick Bearbeitet von Nicola Almukarker 03.02.2004

Im Überblick

Embed Size (px)

DESCRIPTION

Im Überblick. Bearbeitet von Nicola Almukarker 03.02.2004. Table of contents (1). „What is .NET?“ .Net Framework Common Language Runtime (CLR) Base Class Library (BCL) what does .net bring?. Table of contents (2). .Net Architecture virtual machine Common Type System (CTS) - PowerPoint PPT Presentation

Citation preview

Page 1: Im Überblick

1

Im Überblick

Bearbeitet von Nicola Almukarker

03.02.2004

Page 2: Im Überblick

2

Table of contents (1)

• „What is .NET?“– .Net Framework

• Common Language Runtime (CLR)

• Base Class Library (BCL)

– what does .net bring?

Page 3: Im Überblick

3

Table of contents (2)

• .Net Architecture– virtual machine – Common Type System (CTS)– Common Language Specification (CLS)– Common Intermediate Language (CIL)– Codemanagement– Assemblies and modules– Security

Page 4: Im Überblick

4

Table of contents (3)

• ASP.NET– Production of dynamic web sites

• Web-Services– Overlook

• Summary

Page 5: Im Überblick

5

What is .NET? (1)

• Operating System?

• Server?

• Software product, Compiler?

• Programming Language?

• Protocols and technologies for the communication between server and clients?

Page 6: Im Überblick

6

What is .NET? (2)Anwendung

Operating system

Base Class Library

ASP.NET ADO.NET Web-Services ...

Common Language Runtime

Garbage Collection

Security Just-in-TimeCompilation ...

Page 7: Im Überblick

7

What is .NET? (3) Base Class Library

Page 8: Im Überblick

8

What is .NET? (4)

• what does .net bring?– Robust software and Security

• Verification of the CIL-Code

• Security through Garbage Collector

– Simple installation and deinstallation • Assemblies in own Directory or GAC

• No need to register in the Windows-Registry

– Uniform software for desktop and web

Page 9: Im Überblick

9

What is .NET? (5)

Windows API

ASPMFC & ATLVB Forms

.NET Framework

Page 10: Im Überblick

10

Agenda

• „What is .NET?“• .Net Architecture

– virtual machine

– Common Type System (CTS)

– Common Language Specification (CLS)

– Common Intermediate Language (CIL)

– Meta data

– Assemblies and modules

– Security

Page 11: Im Überblick

11

Virtual machine (1)

• A virtual machine for what?– SW-Procssor (Stackmachine)

• reading and saving Operands & Operations

• It works on IL-code and not native code

– Platform and language independence

C# VB.NET Oberon Eiffel

Windows Linux PalmOS MacOS

n*m

Page 12: Im Überblick

12

Virtual machine (2)

– Compactness by IL-code instructions– Optimized code by analyze the Operating

system’s configuration

C# VB.NET Oberon Eiffel

IL-Code

MacOSPalmOSLinuxWindows

Frontends

Backends

n+m

Page 13: Im Überblick

13

Virtual machine (3)

• CLR is the successor of COM

Typesystem

Services for Distributedapplications

Loader Remoting

Laguage-layer

COM Runtime

MicrosoftTransaction

Server

Laguage-layer

COM+Runtime

CommonLanguage Runtime

Page 14: Im Überblick

14

Common Type System (CTS) (1)

Integers

Bool values

Floating point num.

Typed Reference

Strings

Arrays

Methods-

unmanaged

Managed

Pointers

Value Types Reference Types

Structs

Enumerations

Interfaces

Classes

Delegates

Boxing

Page 15: Im Überblick

15

Common Type System (CTS) (2)

x

y

y

x

x

MethodState

MethodState

Heap

Heap

.y VPoint

RPoint

Method execute

End of Method

Page 16: Im Überblick

16

Common Type System (CTS) (3)

• Boxing & Unboxing (Example in C#)object obj = 3 ; // Boxing

int x = (int) obj ; // Unboxing

.locals ( object obj, int32 x )

// object obj = 3 ;

1 ldc.i4.3

2 box System.Int32

3 stloc obj

// int x = (int) obj ;4 ldloc obj5 unbox System.Int326 ldind.i47 stloc x

Page 17: Im Überblick

17

Common Type System (CTS) (4)

Boxing & Unboxing

3

Heap MethodState

Obj

xStack

Obj

xStack

Obj

xStack

Obj

xStack

Obj

xStack

Obj

xStack

Obj

xStack

3 3

33

33

..

.

.. .

33

.

1

74

32

65

Page 18: Im Überblick

18

Common Type System (CTS) (5)• Predefined data types of the CLR

IL-Assembler CLR-name Descriptionbool System.Boolean 1 Byte: 1-255 (true)char System.Char 16-Bit-Unicode-signstring System.String Unicode-Stringobject System.Object managed Pointer on obj. typedref System.Typed- value type (Pointer and

Reference type-Info for vararg)float32 System.Single 32 Bit numbers float64 System.Double 64 Bit numbersint8 System.Sbyte 8 Bit: [-128..127]int16 System.Int16 16 Bit: [-32768..32767]

Page 19: Im Überblick

19

Common Type System (CTS) (6)• Call of a method with variable number of

parameters .method static vararg void VarArgMethod(int32 x) {...}

Call vararg void A::VarArgMethod(int32, ..., int32, string)

ldc.i4.1ldc.i4.2Ldstr“Hello!“

- the Iterator system is effective on the further Parameteren in the trunk of the method

Page 20: Im Überblick

20

Common Type System (CTS) (7).locals init (valuetype System.ArgIterator iter)

//The Iterator is laid out to this in a local variable on the stackldloca iterarglistcall instance void System.ArgIterator::.ctor(valuetype

System.RuntimeArgumentHandle)

// arglist produces a reference on the list of the optional //parameters which is submitted with the constructor of the Iteratorsldloca itercall instance typedref System.ArgIterator::GetNextArg()call object System.TypedReference::ToObject(typedref)

Page 21: Im Überblick

21

Common Language Specification (CLS) (1)

CLS

CTS

Language B

Language A

Language C

Page 22: Im Überblick

22

Common Language Specification (CLS) (2)

• CLSCompliant: Attribute checks the CLS-conformity of the Assemblies

• an Assembly must explicitly be conformed

Error CS3002: Return type of 'VisibleType.Accessible()' is not CLS-compliant

Using System;[assembly: CLSCompliant(true)]Public class VisibleType{

public sbyte Accessible(){...}}

[CLSCompliant(false)]public sbyte Accessible(){...}

Page 23: Im Überblick

23

Common Intermediate Language (CLS) (3)

• Operand’s Type-infromation in Java-Bytecode & CIL (Example) Save the sum of the first 2 local variables in a

third one

J-Bytecode (Integer) J-Bytecode (Float) CIL (Integer or Float)

iload_0 fload_0 ldloc.0iload_1 fload_1 ldloc.1iadd fadd addistore_2 fstore_2 stloc.2

Page 24: Im Überblick

24

Just in time Compilation (1)

VB.Net C++C#

Compiler Compiler Compiler

IL-Code

ASM Code

JIT CompilerCLR

Operating system

Page 25: Im Überblick

25

Just in time Compilation (2)

Class A

Method 1 (ASM)

Method 2 (IL)

Method 3 (IL)

Method 4 (IL)

(1) Method call

Class B

Methode 1 (IL)

Method 2 (IL)

JIT Compiler(2) Replacing IL

code by native code

Method 1 (ASM)

Page 26: Im Überblick

26

Codemanagement (1)• Memory administration

Execution Engine (EE) Thread 1 Thread 2 Thread 3 ...

List the method conditions

HeapList the method conditions

.

.

.

Page 27: Im Überblick

27

Codemanagement (2)

– Method conditions

Safety featuresMethod description

arguments

Local variables

Local allocations

Previouscondition

Instructionpointer

Operands stack and output parameters

Page 28: Im Überblick

28

Codemanagement (3)• Garbage Collector

Laying out objects onthe Heap

NextObjPtr

newobj A::.ctor() newobj B::.ctor()

Obj A Obj A

Obj B

NextObjPtr

Roo

ts

Roo

ts

Obj A

Obj B

Obj C

Obj D

Obj FObj E

Obj A

Obj D

Obj E

NextObjPtr

GC

Heap and Indicatorbefore and after a GC

Page 29: Im Überblick

29

Assemblies and modules (1)

• Meta data in PE-Files

PE/COFFHeaders

CLRHeader

CLR DataMeta data IL-Code.Net-PE-File

1. a program which informs the user that this file isn't executable under DOS2. CLR header saves version number of the CLR for which the program was written

Page 30: Im Überblick

30

Assemblies and modules (2)

• Module (managed module): .net-PE file is a module which contains the definition of types with Metadaten, the CIL code of the defined methods and a Manifest.

• Manifest is in an exe file and has all information which is necessary to find all definitions of an Assembly.

• Assembly manifest references files

Page 31: Im Überblick

31

Assemblies and modules (3)• Assembly is a .Net-Component that Capsules,

secures and versions modules

Manifest.assembly OtherApp

Meta data.assmbly extern mscorlib.assmbly extern MFAApp

.class public App

CIL-Code

.module AnotherAppManifest

.module MFAApp

.assemblyMFAApp

.file pub.mod

.class extern public PublicType

Meta data.assmbly extern mscorlib.modul extern pub.mod.class public App

CIL-Code

.module pub.mod

Meta data.assmbly extern mscorlib.class public PublicType

OtherApp.exe

MFAApp.exepub.mod

CIL-Code

Aim: PublicType

Page 32: Im Überblick

32

Assemblies and modules (4)

• Version– Private Assemblies (in Application‘s directory)– Shared Assemblies (Global Assembly Cache)

• StrongName: name of the Manifest module

• Version: Major.Minor.Build.Revision

• Culture

• Public key 128 Byte to identify the producer

Page 33: Im Überblick

33

Assemblies and modules (5)

• Producing of version– In source code with the attribute

System.Reflection.AssemblyVersionAttribute– By Assembly-Linker(al.exe) at the production of the

Assembly – Examples

Input value result1. 1.2.3.4 1.2.3.4 2. - 0.0.0.03. 1.2.* 1.2.745.18000 (on 15.1.2002 at 10:00:00 h)

Page 34: Im Überblick

34

Assemblies and modules (6)• Roll based security

• code based security– fixing the access rights of an assembley to the

load time – Security stack walk

Assembly A

Security Manager

Assembly A

EvidenceZone

Hash

StrongName

Site...

EnterpriseMachine

UserApplication Domain

Policy Levels

PermissionSet

FileIO

ReflectionIsolatedStorage

Registry

...

Page 35: Im Überblick

35

Assemblies and modules (7)

– Security stack walk

Assembly A

Assembly B

Assembly C

Assembly D

Ressource

p.Demand()

Page 36: Im Überblick

36

ASP.NET (1)

• Technology for web applications – Web Forms and dynamic web pages by servers

scripts– object orientation (aspx-page)– Web controls: GUI-objects– separation from layout and application logic

(.aspx and source code .cs)

Page 37: Im Überblick

37

ASP.NET (2)

– component orientation (events)– Interactive lay-out of web pages– Compilation instead of interpretation– Improve administration of the page condition,

• Dynamic ASPX Page– Simple example: a page with visitor counter

Page 38: Im Überblick

38

Using System.IO;Public class CounterPage : System.Web.UI.Page{ int CounterValue(){ FileStream s; s=new FileStream("c:\\Data\\Counter.dat", FileMode.OpenOrCreate); int n; try{

BinaryReader r = new BinaryReader(s);n = r.ReadInt32();

} catch { n = 0;}n++;s.Seek(0,SeekOrigin.Begin);BinaryWriter w = new BinaryWriter(s);w.Write(n);s.Close(); return n;

}}

CounterPage.cs

ASP.NET (3)

Page 39: Im Überblick

39

<% @ Page Language="C#" Inherits="CounterPage" Src="CounterPage.cs" %>

<html> <head> <title>Besucherz&auml;hler</title></head> <body> <h1>Willkommen</h1> Sie sind der <%=CounterValue()%>. Besucher Dieser Seite! </body></html>

Counter.aspx

ASP.NET (4)

Page 40: Im Überblick

40

ASP.NET (5)

Client(Web-Browser)

Server(IIS)

ASP.NET Counter.aspx

Counter.dat

.NET Framework

RequestCounter.aspx

Response*.html

Page 41: Im Überblick

41

Web-Sevices (1)

• heterogeneous distributed services• they are independent of the operating system,

Programming language and binary transfer protocol

• XML based protocol [SOAP]• [WSDL] earlier IDL of DCOM• IIS passes on soap calls to the corresponding web-

service-implementation, produces objects and/or deletes them

Page 42: Im Überblick

42

Web-Sevices (2)

BookParadise

Web-Service A

Web-Service B

UDDI2. search

3. Connection

4. Get data

1. Registering

Page 43: Im Überblick

43

Web-Sevices (3)

• My Services: Address book, calendar, mailbox, ...

• Microsoft .Net Alerts-Services for PC, Smart devices etc...

• Transfer via Binary protokol with sockets or .Net Remoting and not TCP/IP (limited)

Page 44: Im Überblick

44

Web-Sevices (4)

• Namespaces for Web-Services– System.Web.Services (creates web services)– System.Web.Services.Configuration

(configures xml description)– System.Web.Services.Description (classes

for WSDL)– System.Web.Services.Discovery– System.Web.Services.Protokols

Page 45: Im Überblick

45

Summary (1)

• „What is .NET?“

• virtual machine

• Common Type System (CTS)

• Common Language Specification (CLS)

• Common Intermediate Language (CIL)

• Codemanagement

Page 46: Im Überblick

46

Summary (2)

• Assemblies and modules

• Security

• ASP.NET– Production of dynamic web sites

• Web-Services– heterogeneous distributed services

Page 47: Im Überblick

47

Danke für die Aufmerksamkeit!