Professional Documents
Culture Documents
INTERNA OBUKA
Sadraj
1. .NET framework, Visual Studio, C# - osnove ................................................................................................................. 2
1.1. Osnovni pojmovi ....................................................................................................................................................... 2
1.2. .NET Framework ...................................................................................................................................................... 3
1.2.1. CLR Common Language Runtime ................................................................................................................. 4
1.2.2. CTS Common Type System ......................................................................................................................... 11
1.2.3. CLS - Common Language Specification ......................................................................................................... 11
1.2.4 CLI Common Language Infrastructure .......................................................................................................... 11
U daljem nastvaku u koristiti naziv framework, da bih oznaio softverski okvir o kojem u govoriti u nastavku, u ovom
sluaju .NET framework.
Podrka za vei broj programskih jezika .NET aplikacije mogu da se kreiraju sa veim brojem programskih
jezika (C#, Visual Basic, F# i td.).
Zajednika maina za izvravanje koda koju dele svi .NET-aware jezici Jedan aspekt ove maine (eng.
engine) je dobro definisan skup tipova koju svaki .NET-aware jezik razume
Integracija jezika .NET podrava nasleivanje (eng. inheritance) , rukovanje izuzecim (eng. exception
handling) i debagovanje (eng. debugging) koda. Npr., moete da definiete osnovnu klasu u C# - u, a zatim
da nasledite ovaj tip u Visual Basic-u.
Obimna biblioteka osnovnih klasa (eng. base class library) Ova biblioteka omoguava kao neki zaklon od
sloenosti API poziva niskog nivoa i nudi konzistentan objektni model koji koriste .NET-aware jezici.
Uproeni deployment model Za razliku od COM, .NET biblioteke nisu registrovane u sistemski registar
(system registry). .NET platforma dozvoljava viestruke verzije istog .dll a da postoji na istoj maini.
3
VB 6
ne .NET aplikacija
VB6 kompajler
Ovaj assembly u sebi sadri prirodni (eng. native code) ili mainski kod (eng. machine code), koji operativni sistem
moe da razume, jer razume samo nule (0) i jedinice (1). Problem ovog tipa aplikacija, jeste u tome to njihovi sklopovi
(eng. assembly) sadre mainski kod, koji je podeen za taj operativni sistem nad kojim je aplikacija kompajlirana.
Ukoliko bih uzeo sada taj assembly i pokuao da ga pokrenem nad drugim operativnim sistemom, npr. Linux-u on se
nee pokrenuti, jer taj assembly sadri prirodan kod za operativni sistem na kojem je inicijalno kompajliran. Dakle,
aplikacije nisu portabilne.
Pogledajmo sada kako se izvravaju .NET aplikacije. U .NET-u moete programirati u nekoliko programkih jezika C#,
Visual Basic, C++, J#, ali postoje i drugi jezici. Kada koristimo neki od pomenutih jezika i razvijemo .NET aplikaciju i
nakon toga kompajliramo, mi takoe dobijemo sklop (eng. assembly), ali ovaj sklop ne sadri mainski tj. nativni kod,
ve sadri IL (eng. Intermediate Language), koji se jo u literaturi naziva MSIL (eng. Microsoft Intermediate
Language) ili CIL (eng. Common Intermediate Language) ili upravljivi kod (eng. Managed Code). Tu je razlika izmeu
sklopova u aplikacijama pre .NET-a i sklopova .NET-a. Sklopovi pre .NET-a sadre nule (0) i jedinica (1). Ukoliko sada
pokrenete sklop (eng. assembly) koji je dobijen u .NET-u, operativni sistem ga nee razumeti i nee uspeti da ga
pokrene. To znai da je potrebno da bude neko izmeu koji e konvertovati IL (eng. Intermediate Language) u mainski
kod. To radi izvrno okruenje CLR - Common Language Runtime. Pogledajmo sliku 2.
C#
VB
C++
J#
drugi
.NET Aplikacija
kompajliranje upotrebom odgovarajuih
kompajlera (C#, VB, C++, J#)
C
L
R
IL (Intermediate
Language)
JIT kompajler
Native code
Operativni sistem
slika 2. izvravanje .NET programa
5
Napravimo sada novu konzolnu aplikaciju: File -> New -> Project, kao na slici 4.
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}
Dodajmo sada jednu liniju koda unutar Main() metode da odtampamo poruku na ekranu.
Console.WriteLine("Zdravo");
Tako da sada Main() metoda izgleda:
static void Main(string[] args)
{
Console.WriteLine("Zdravo");
}
Sada emo da Build-ujemo kod tako to emo desnim dugmetom mia kliknuti na Solution i odabrati opciju Build Solution,
kao na slici 7., na taj nain smo formirali sklop (eng. assembly). Nakon toga emo otvoriti folder gde se nalazi aplikacija
8
tako to emo kliknuti desnim dugmetom mia na ConsoleApplication1 i odabrati opciju Open Folder in FileExplorer.
I nakon toga odaberemo jezik Visual Basic i tip projekta biblioteka klasa (eng. Class Library) i pritisnemo OK.
Prikazae nam se konzolna aplikacija, sa ispisom. Dakle, sproveli smo JIT kompajliranje iz IL u assembly-u u native
code upotrebom CLR-a.
11