Upload
randall-miller
View
23
Download
3
Embed Size (px)
Citation preview
.NET tehnologije.NET tehnologije
(2)(2)
.NET Framework.NET FrameworkZoran VeliZoran Veliččkovikovićć
Oktobar, 2010.Oktobar, 2010.
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
.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.
.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!
.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
Struktura .NET FrameworkStruktura .NET Framework--a (1)a (1)
.NET Framework = NET Framework Class Library+CLR.
Struktura .NET FrameworkStruktura .NET Framework--a (2)a (2)
.NET Framework-Serverski pogled.
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?
.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.
.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.
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!
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.
Prog. jezici .NETProg. jezici .NET--a i kompajlera i kompajler
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.
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
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.
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.
JIT Kompajler (1)JIT Kompajler (1)
JIT Kompajler (2)JIT Kompajler (2)
Rad CLRRad CLR--bazirane aplikacijebazirane aplikacije
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.
Format .NET PE fajlaFormat .NET PE fajla
Virtualni izvrVirtualni izvrššni sistem CLRni sistem CLR--aa
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.
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
Dekleracija sklopa i metapodaciDekleracija sklopa i metapodaci
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}
}
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.