Im Überblick
description
Transcript of Im Überblick
![Page 1: Im Überblick](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/1.jpg)
1
Im Überblick
Bearbeitet von Nicola Almukarker
03.02.2004
![Page 2: Im Überblick](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/2.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/3.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/4.jpg)
4
Table of contents (3)
• ASP.NET– Production of dynamic web sites
• Web-Services– Overlook
• Summary
![Page 5: Im Überblick](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/7.jpg)
7
What is .NET? (3) Base Class Library
![Page 8: Im Überblick](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/9.jpg)
9
What is .NET? (5)
Windows API
ASPMFC & ATLVB Forms
.NET Framework
![Page 10: Im Überblick](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/11.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/12.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/14.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/15.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/16.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/18.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/19.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/20.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/21.jpg)
21
Common Language Specification (CLS) (1)
CLS
CTS
Language B
Language A
Language C
![Page 22: Im Überblick](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/22.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/23.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/24.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/25.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/26.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/27.jpg)
27
Codemanagement (2)
– Method conditions
Safety featuresMethod description
arguments
Local variables
Local allocations
Previouscondition
Instructionpointer
Operands stack and output parameters
![Page 28: Im Überblick](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/28.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/29.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/30.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/31.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/32.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/33.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/34.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/35.jpg)
35
Assemblies and modules (7)
– Security stack walk
Assembly A
Assembly B
Assembly C
Assembly D
Ressource
p.Demand()
![Page 36: Im Überblick](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/36.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/37.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/38.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/39.jpg)
39
<% @ Page Language="C#" Inherits="CounterPage" Src="CounterPage.cs" %>
<html> <head> <title>Besucherzä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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/40.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/41.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/42.jpg)
42
Web-Sevices (2)
BookParadise
Web-Service A
Web-Service B
UDDI2. search
3. Connection
4. Get data
1. Registering
![Page 43: Im Überblick](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/43.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/44.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/45.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/46.jpg)
46
Summary (2)
• Assemblies and modules
• Security
• ASP.NET– Production of dynamic web sites
• Web-Services– heterogeneous distributed services
![Page 47: Im Überblick](https://reader035.fdocuments.in/reader035/viewer/2022062323/5681550a550346895dc2f2e9/html5/thumbnails/47.jpg)
47
Danke für die Aufmerksamkeit!