28
.NET tehnologije .NET tehnologije (2) (2) .NET Framework .NET Framework Zoran Veli Zoran Veli č č kovi kovi ć ć Oktobar, 2010. Oktobar, 2010.

2 2010 NET Tehnologije Predavanja

Embed Size (px)

Citation preview

Page 1: 2 2010 NET Tehnologije Predavanja

.NET tehnologije.NET tehnologije

(2)(2)

.NET Framework.NET FrameworkZoran VeliZoran Veliččkovikovićć

Oktobar, 2010.Oktobar, 2010.

Page 2: 2 2010 NET Tehnologije Predavanja

Osnove .NET tehnologijeOsnove .NET tehnologije

Savremene aplikacije se zasnivaju na korišćenju više XML servisa iz različitih izvora

koji rade zajedno bez obzira na njihovu

lokalizaciju i način implementacije.

.NET kombinuje dve važne osobine:

Prezentacione mogućnosti HML-a

Veliki potencijal XML-a za rad sa metapodacima.

Ove tehnologije smo već

proučili u predmetu Internet tehnologije i postale su standard koje je preporučio Konzorcijum W3C

(Word

Wide Web Consocium).

Tri tehnološke oblasti

koje obuhvata .NET su:

.NET Framework

.NET Server Platforms

.NET My Services

Page 3: 2 2010 NET Tehnologije Predavanja

.NET Framework (1).NET Framework (1)

Osnova za razvoj Windows aplikacija

.NET Framework obezbeđuje skup alata

potrebnih za izgradnju XML Web servisa

i aplikacija

korišćenjem

.NET Frameworka i uobičajenih objektno-orijentisanih programskih modela.

Osnovni ciljevi .NET Framework-a su:

Pojednostavljenje razvoja Web servisa i aplikacija.

Obezbeđivanje skupa razvojnih alata

i biblioteka

za različite

programske jezike i platforme.

Pravljenje jednostavnijih

i pouzdanijih

aplikacija za MS Windows.

Page 4: 2 2010 NET Tehnologije Predavanja

.NET Framework (2).NET Framework (2)

.NET Framework je upravljivo

razvojno

i izvršno okruženje.

Upravlja se svim aspektima programa:

Rezerviše memoriju

za smeštanje podataka i instrukcija

Dodeljuje

ili ne odgovarajuće dozvole

aplikaciji

Pokreće

i upravlja izvršavanjem

aplikacije i relocira memorijske resurse koji više nisu potrebni!

Page 5: 2 2010 NET Tehnologije Predavanja

.NET Framework (3).NET Framework (3)

Razvojno okruženje MS .NET Framework obuhvata pet tehnologija:

Razvojno okruženje

-

Visual Studio .NET

CLR

(Common Language Runtime), zajednički izvršni podsistem koji opslužuje aplikacije u trenutku izvršavanja.

F(B)CL

-

Biblioteke klasa (Framework (Base) Class Library)

Programski jezici

koji koriste izvršni podsistem CLR-a i biblioteke klasa.

MS ASP.NET

za razvoj Web aplikacija i Web servisa

Page 6: 2 2010 NET Tehnologije Predavanja

Struktura .NET FrameworkStruktura .NET Framework--a (1)a (1)

.NET Framework = NET Framework Class Library+CLR.

Page 7: 2 2010 NET Tehnologije Predavanja

Struktura .NET FrameworkStruktura .NET Framework--a (2)a (2)

.NET Framework-Serverski pogled.

Page 8: 2 2010 NET Tehnologije Predavanja

Komparacija .NETKomparacija .NET--Java okruJava okružženjaenja

Osnove objektno orijentisanih jezika biće obrađene na kursu iz Internet programiranja

u okviru Jave!

Java

i C#

su jezici naclednici C++/C-a!

Koje strukturne razlike uočavate?

Page 9: 2 2010 NET Tehnologije Predavanja

.NET Framework (4).NET Framework (4)

CLR obezbeđuje osnovne servise:

Prevođenje

koda

Alokacija

memorije

Upravljanje nitima

Sakupljanje

otpadaka

Sistem zajedničkih tipova

CTS (Common Type System) obezbeđuje strogu bezbednost tipova. (O CTS-u CLS-u nešto kasnije)

Sprovodi bezbednost

pristupa koda.

Page 10: 2 2010 NET Tehnologije Predavanja

.NET Framework (5).NET Framework (5)

Biblioteka klasa Framework-a obezbeđuje kolekciju korisnih i ponovo upotrebljivih

tipova koji su

dizajnirani da se integrišu sa CLR-om.

Tipovi koji se obezbeđuju su objektno orijentisani

i samim tim potpuno proširivi.

Na taj način se jednostavno povezuju

aplikacije sa .NET Framework-om.

Page 11: 2 2010 NET Tehnologije Predavanja

Prog. jezici i .NET FW (1)Prog. jezici i .NET FW (1)

.NET Framework je dizajniran da podrži međujezičku kompatibilnost.

Programske komponente mogu međusobno da deluju bez obzira

u kom podržanom jeziku su

napisane.

Tako, aplikacija napisana u VB NET-u

može da poziva biblioteku sa dinamičkim povezivanjem (DLL) napisanu u C#!

Takođe, iz C#-a može se pristupiti resursima napisanim u C++-u ili svakom drugom jeziku

koji

podržava .NET.

Ovo se čak odnosi i na nasleđivanje klasa!

Page 12: 2 2010 NET Tehnologije Predavanja

Prog. jezici i .NET FW (2)Prog. jezici i .NET FW (2)

Visoki nivo međujezičke kompatibilnosti obezbeđuje CLR.

Aplikacija .NET-a se prevodi u Mikrosoftov posrednički jezik

MSIL/IL

(Microsoft Intermediate Language).

MSIL/IL je jezik niskog nivoa

koji CLR može da pročita i da razume (prevede i izvrši).

Zato što svi

.NET izvršni programi i datoteke DLL-a postoje kao MSIL, mogu slobodno da rade zajedno.

Zajednička specifikacija za jezike CSL

(Common Specification Language) definiše minimalne standarde

koje moraju da zadovolje prevodioci .NET-a.

Tako, CSL obezbeđuje da svaki izvorni kod koji je uspešno preveden

.NET prevodiocem može da radi u drugom

okruženju sa .NET FW.

Page 13: 2 2010 NET Tehnologije Predavanja

Prog. jezici .NETProg. jezici .NET--a i kompajlera i kompajler

Page 14: 2 2010 NET Tehnologije Predavanja

Prog. jezici i .NET FW (3)Prog. jezici i .NET FW (3)

CTS obezbeđuje i kompatibilnost tipova na .NET nivou.

Ovo se ostvaruje prevođenjem u MSIL koji sve tipove

predstavlja kao .NET tipove.

Tako, tip Ineger

u VB-u i int

u C#

su predstavljeni na isti način u MSIL kodu i to kao System.Int32.

Oba jezika koriste zajedničke sistemske tipove, te se na taj način omogućava prebacivanje podataka između komponenti bez vremenski zahtevne

konverzije, a greške su izbegnute.

Inače, otklanjanje grešaka prevođenja

(konverzije) tipova su veoma teško uočljive.

Page 15: 2 2010 NET Tehnologije Predavanja

Prog. jezici i .NET FW (4)Prog. jezici i .NET FW (4)

Visual Studio se isporučuje sa:

Visual Basic .NET-om

Visual C#

Visual C++

Uz dodatak serverskog skript jezika Jscript

(u VS 2008 nije prisutan!)

Drugi proizvođači nude prevodioce za ostale programske jezike:

Fortran

Cobol

Perl

Page 16: 2 2010 NET Tehnologije Predavanja

Prevođenje i izvrPrevođenje i izvršš. u .NET (1). u .NET (1)

Rezultat prevođenja aplikacije nije

binarni mašinski kod, već

IL

kod.

Bar jedan od sklopova mora posedovati izvršnu datoteku koja je bila određena kao ulazna taulazna taččkaka

za

aplikaciju.

Kada započne izvršavanje

prvi

sklop se učitava u memoriju.

CLR ispituje objavu sklopa i utvrđuje zahteve

za neophodne za izvršenje (o sklopu nešto kasnije).

CLR ispituje bezbednost

dozvole

zatražene od sklopa i poredi ih sa sistemskim

bezbedonsonim merama.

Page 17: 2 2010 NET Tehnologije Predavanja

Prevođenje i izvrPrevođenje i izvršš. u .NET (2). u .NET (2)

Ukoliko sistemska bezbedonosna politika

ne dozvoljava zahtevane dozvole –

aplikacija se neće ivršiti, u suprotnom CLR

će izvršiti kod.

CLR pravi proces za aplikaciju

u kome će se ona izvršiti i započinje njeno izvršenje.

Prvi delovi koda se učitavaju u memoriju i prevode u prirodni binarni kod

iz IL-a pomoću prevodioca CLR-a koji se zove Just-

In-Time

(JIT).

Svaki deo koda se prevodi samo jednom

kada se aplikacija izvrši.

Grananje programa

na deo koda koji nije preveden

direktno izaziva njegovo učitavanje i prevođenje.

Na ovaj način se performanse aplikacije maksimizuju

jer se prevodi samo onaj deo koda

koji će se izvršiti.

Page 18: 2 2010 NET Tehnologije Predavanja

JIT Kompajler (1)JIT Kompajler (1)

Page 19: 2 2010 NET Tehnologije Predavanja

JIT Kompajler (2)JIT Kompajler (2)

Page 20: 2 2010 NET Tehnologije Predavanja

Rad CLRRad CLR--bazirane aplikacijebazirane aplikacije

Page 21: 2 2010 NET Tehnologije Predavanja

Programski sklopovi (1)Programski sklopovi (1)

Programski sklopsklop

(assembly) je osnovna jedinica programiranja u .NET okruženju.

Programski sklop je skup datotekaskup datoteka

koji izgleda kao jedinstvena .dll ili .exe datoteka.

Programski sklopovi pored objektnog koda sadrže i resurseresurse

primer .gif datoteke, definicije tipova za svaku

klasu i druge metapodatke.

Na disku, programski sklopovi su prenosive izvrprenosive izvrššnene (Portable Executable -

PEPE) datoteke.

Programski sklopovi se sastoje od jednogjednog

ili više modulamodula.

Moduli se ne mogu izvršavati nezavisno već

se moraju kombinovati u sklopovekombinovati u sklopove.

Page 22: 2 2010 NET Tehnologije Predavanja

Format .NET PE fajlaFormat .NET PE fajla

Page 23: 2 2010 NET Tehnologije Predavanja

Virtualni izvrVirtualni izvrššni sistem CLRni sistem CLR--aa

Page 24: 2 2010 NET Tehnologije Predavanja

Programski sklopovi (2)Programski sklopovi (2)

Osnovna jedinica aplikacije u .NET-u je sklop.

Sklop je samoopisujuća kolekcija koda, resursa i podataka.

Dekleracija sklopa

sadrži informacije o tome od čega je sazdan sklop.

Dekleracija sklopa poseduje sledeće podatke:

Podatke o identitetu, kao što je ime i broj verzije sklopa

Listu svih tipova

koje sklop sadrži

Listu svih sklopova

koje zahteva dati sklop

Listu uputstva za bezbednost pristupa

koda za sklop, što podrazumeva dozvole

koje sklop zahteva i dozvole će se

odbiti za sklop.

Page 25: 2 2010 NET Tehnologije Predavanja

Metapodaci sklopaMetapodaci sklopa

Metapodaci su informacije koje se čuvaju u programskom sklopu i opisuju tipove i metode opisuju tipove i metode programskogprogramskog

sklopa.

Prog. sklopovi su samodokumentujusamodokumentujuććii (samoopisujući), jer potpuno opisuju sadržaj svakog

modula.

ManifestManifest

opisuje sadržaj programskog sklopa:

Identifikacione informacije (ime, verzija,..)

Spisak sadržanih tipova i resursa

Spisak modula

Mapa povezivanja javnih tipova

Spiask prog. sklopova koje referncira dati prog. sklop

Page 26: 2 2010 NET Tehnologije Predavanja

Dekleracija sklopa i metapodaciDekleracija sklopa i metapodaci

Page 27: 2 2010 NET Tehnologije Predavanja

MSIL kod za HelloWord apl.MSIL kod za HelloWord apl.

.assembly HelloWorld {}

.assembly extern mscorlib {}

.class Program extends [mscorlib]System.Object{

.method static void Main() cil managed {

.entrypoint

.maxstack 1 ldstr "Hello, World!“call void mscorlib]System.Console::WriteLine(string)

ret}

}

Page 28: 2 2010 NET Tehnologije Predavanja

Umesto rezimeaUmesto rezimea

Koje osnovne servise obezbeđuje CLR?

Objasnite pojam sistem zajedničkih tipova CTS

Biblioteka klasa Framework-a.

Objasnite pojam međujezičke kompatibilnosti.

MISIL/IL kao programski jezik.

Šta je to zajednička specifikacija za jezike CSL?

Šta su to tipovi u .NET-u?

Programski jezici .NET-a.

Objasnite pojam Just-In-Time (JIT) prevodioca.

Šta je osnovna jedinica aplikacije u .NET-u?

Objasniti pojam metapodataka.