Framework
Framework
NET Framework
Beograd, 2005.
.NET
Šta je .NET ?
2
Šta je .NET ?
.NET nije operativni sistem.
3
Delovi .NET-a
.NET Vision
¾ svi urešaji su međusobno povezani na globalnoj mreži
¾ softveri kao usluge dostupni na globalnoj mreži
.NET Framework
¾ osnova za ispunjenje vizije
¾ servisi i nove tehnologije koje omogućavaju razvoj
distribuiranih aplikacija
4
.NET platforma
Operativni sistem
Hardver
5
.NET platforma
Operativni sistem
Hardver
Hardver
¾ Serveri, radne stanice, personalni računari i neračunarski uređaji kao što su
mobilni telefoni, pejdžeri, ...
6
.NET platforma
Operativni sistem
Hardver
(serveri, radne stanice, mobilni telefoni, ...)
Operativni sistem
¾ Windows Server 2003,Windows XP, Windows 2000, Windows CE, BSD Unix,
Linux, ...
7
.NET platforma
Operativni sistem
(Windows XP, Windows 2000, Windows CE, BSD Unix, Linux, ...)
Hardver
(serveri, radne stanice, mobilni telefoni, ...)
8
.NET platforma
Operativni sistem
(Windows XP, Windows 2000, Windows CE, BSD Unix, Linux, ...)
Hardver
(serveri, radne stanice, mobilni telefoni, ...)
.NET Framework
¾ nova razvojno-izvršna infrastruktura za kreiranje distribuiranih aplikacija.
9
.NET platforma
Operativni sistem
(Windows XP, Windows 2000, Windows CE, BSD Unix, Linux, ...)
Hardver
(serveri, radne stanice, mobilni telefoni, ...)
10
.NET platforma
Operativni sistem
(Windows XP, Windows 2000, Windows CE, BSD Unix, Linux, ...)
Hardver
(serveri, radne stanice, mobilni telefoni, ...)
11
Microsoft Visual Studio .NET
12
.NET platforma
Najvažniji deo .NET platforme je .NET Framework
Operativni sistem
(Windows XP, Windows 2000, Windows CE, BSD Unix, Linux, ...)
Hardver
(serveri, radne stanice, mobilni telefoni, ...)
13
.NET
.NET Framework
14
.NET Framework
Nova platforma za razvoj softvera.
Obezbeđuje
¾ komponentnu infrastrukturu (Component infrastructure)
¾ integraciju programskih jezika (Language integration)
¾ internet interoperabilnost (Internet interoperability)
¾ jednostavan razvoj (Simple Development)
¾ jednostavnu instalaciju (Simple Deployment)
¾ pouzdanost (Reliability)
¾ bezbednost (Security)
15
Arhitektura .NET Framework-a
16
Arhitektura .NET Framework-a
17
Arhitektura .NET Framework-a
18
Arhitektura .NET Framework-a
19
Arhitektura .NET Framework-a
20
Arhitektura .NET Framework-a
21
Arhitektura .NET Framework-a
¾ specifikacija minimalnih zahteva koje svaki .NET jezik mora da podrži u cilju
postizanja integracije jezika.
22
Arhitektura .NET Framework-a
.NET jezici
23
Arhitektura .NET Framework-a
24
Common Language Runtime (CLR)
Common Language Runtime = .NET
ono što je Java Virtual Machine (JVM) za Java platformu, to CLR za .NET
Framework. I JVM i CLR omogućavaju izvršavanje aplikacija na različitim
platformama (nezavisno od hardvera i operativnog sistema)
dok JVM podržava jedino programski jezik Java, CLR podržava
¾ MS programski jezici: C#, VB.NET, C++.NET, JScript.NET
¾ programski jezici drugih proizvođača: COBOL, Eiffel, Perl, Pzthon, SmallTalk, ...
25
Common Language Runtime (CLR)
proces prevođenja izvornog u mašinski kod odvija se u dva koraka
26
Microsoft Intermediate Language (MSIL)
jezik nižeg nivoa sa jednostavnom sintaksom, koji se vrlo brzo prevodi u
mašinski kod
27
Microsoft Intermediate Language (MSIL)
osnovne karakteristike
¾ korišćenje atributa
28
Karakteristike MSIL-a
objektna orijentisanost i korišćenje interfejsa
29
Karakteristike MSIL-a
razlikovanje vrednosnih i referentnih tipova
¾ vrednosni tipovi
• promenljiva direktno čuva svoje podatke
• čuvaju se na steku
¾ referentni tipovi
• promenljiva sadrži adresu na kojoj se nalaze odgovarajući podaci
• čuvaju se u delu memorije koji se naziva kontrolisani hip
30
Karakteristike MSIL-a
stroga tipiziranost
¾ šta je omogućeno ?
9 jezička interoperabilnost
9 automatsko upravljanje memorijom
• bezbednost
• aplikacioni domeni
31
Jezička interoperabilnost
klase napisane u jednom jeziku mogu direktno da komuniciraju sa
klasama koje su napisane u drugom jeziku, odnosno:
• klasa “B” mora da razume sve tipove podataka koje klasa “A” koristi
A
(VB.NET)
• različiti jezici – različite ključne reči za iste tipove
32
Common Type System
Zajednički sistem tipova definiše skup pravila, koje prevodioci .NET jezika
moraju da poštuju da bi definisali, referencirali i smestili i referentne i
vrednosne tipove.
CTS tipovi imaju istu semantiku, bez obzira u kojem su jeziku definisani
integer int
(VB.NET) (C#.NET)
mapiranje
int32
(MSIL)
33
Hijerarhijska struktura CTS-a
Tip
(Object)
Vrednosni Referentni
tipovi tipovi
Korisnički
Predefinisani Nabrojivi Samoopisujući Pokazivački Interfejsni
definisani
tipovi tipovi tipovi tipovi tipovi
tipovi
Klase Nizovi
Korisnički Upakovani
definisane vrednosni Delegati
klase tipovi
34
Common Language Specification - CLS
35
CTS & CLS
...
COBOL.NET C++.NET
C# CLS VB.NET
36
Automatsko upravljanje memorijom
37
Sklop (assembly)
Sklop je kolekcija koja se sastoji od jedne ili više datoteka, pri čemu
jedna od njih sadrži metapodatke poznate pod nazivom manifest sklopa
manifest sklopa definiše šta sve ulazi u sastav sklopa, verzije, autora
sklopa, kakve su bezbednosne dozvole potrebne da bi sklop radio
dve vrste
¾ privatni sklopovi
• zero impact installation
• može ih koristiti samo njihov softverski paket
¾ deljeni sklopovi
• instaliraju se u poseban direktorijum – globalni keš sklopa
• deljena biblioteka – može ih koristiti bilo koja druga aplikacija
38
Struktura sklopa
resursi Resursi
(jpg, gif, ...)
39
Izvršenje CLR aplikacija
Back-end
Compiler
Native Code Class
and Loader
Metadata
.NET PE
Files
Verifier
Source (MSIL and
Compiler Linker
Code metadata)
MSIL and EXE or DLL
metadata JIT
Compiler
Metadata
Engine
Managed
CLR’s Virtual Execution Engine Native
Code
Execution
Compilation + Execution
40