0% found this document useful (0 votes)
43 views

Framework

The document discusses the .NET Framework. It is the foundation for building and running distributed applications and services. It provides a programming model, runtime environment, and development tools to make the process of developing software easier. The .NET Framework includes a common language runtime (CLR) that manages memory, execution, security, and other system services for any .NET programming language like C# and Visual Basic .NET. It also includes class libraries called Framework Class Libraries that contain reusable types for tasks like data access, file input/output, graphics rendering, and more.

Uploaded by

Diego Perez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

Framework

The document discusses the .NET Framework. It is the foundation for building and running distributed applications and services. It provides a programming model, runtime environment, and development tools to make the process of developing software easier. The .NET Framework includes a common language runtime (CLR) that manages memory, execution, security, and other system services for any .NET programming language like C# and Visual Basic .NET. It also includes class libraries called Framework Class Libraries that contain reusable types for tasks like data access, file input/output, graphics rendering, and more.

Uploaded by

Diego Perez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

.

NET Framework

Dr Milica Vučković ([email protected])


Marko Petrović ([email protected])

Beograd, 2005.
.NET

Šta je .NET ?

2
Šta je .NET ?
™ .NET nije operativni sistem.

™ .NET je softver koji povezuje informacije, ljude, sisteme i


uređaje.

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

™ .NET Enterprise Servers


¾ SQL Server 2000, BizTalk 2000, Commerce Server 2000, ...
¾ koriste ih .NET Framework aplikacije

4
.NET platforma

Visual Studio .NET

.NET Building Block


.NET Enterprise Servers .NET Framework
Services

Operativni sistem

Hardver

5
.NET platforma

Visual Studio .NET

.NET Building Block


.NET Enterprise Servers .NET Framework
Services

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

Visual Studio .NET

.NET Building Block


.NET Enterprise Servers .NET Framework
Services

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

Visual Studio .NET

.NET Building Block


.NET Enterprise Servers .NET Framework
Services

Operativni sistem
(Windows XP, Windows 2000, Windows CE, BSD Unix, Linux, ...)

Hardver
(serveri, radne stanice, mobilni telefoni, ...)

™ .NET Enterprise Servers


¾ Application Center,BizTalk Server 2000, Commerce Server 2000, Exchange
Server 2000, Host Integration Server 2000, Internet Securitz and Acceleration
Server 2000, SQL Server 2000

8
.NET platforma

Visual Studio .NET

.NET Building Block


.NET Enterprise Servers .NET Framework
Services

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

Visual Studio .NET

.NET Building Block


.NET Enterprise Servers .NET Framework
Services

Operativni sistem
(Windows XP, Windows 2000, Windows CE, BSD Unix, Linux, ...)

Hardver
(serveri, radne stanice, mobilni telefoni, ...)

™ .NET Building Block Services


¾ paradigma “softver kao servis”
¾ XML Web Services (Internet servisi)
• komponente koje su dostupne na Internetu i koje se mogu koristiti prilikom razvijanja
sopstvenih aplikacija
¾ .NET My Services (HailStorm)
• skup Microsoft-ovih korisnički orijentisanih Internet servisa kao što su pasoš,
podsetnik, skladište, eMail, ...

10
.NET platforma

Visual Studio .NET

.NET Building Block


.NET Enterprise Servers .NET Framework
Services

Operativni sistem
(Windows XP, Windows 2000, Windows CE, BSD Unix, Linux, ...)

Hardver
(serveri, radne stanice, mobilni telefoni, ...)

™ Visual Studio .NET


¾ alat za razvoj softvera
¾ integrisano okruženje za kreiranje distribuiranih aplikacija (IDE for RAD)

11
Microsoft Visual Studio .NET

12
.NET platforma
™ Najvažniji deo .NET platforme je .NET Framework

Visual Studio .NET

.NET Building Block


.NET Enterprise Servers .NET Framework
Services

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.

™ Sistemska aplikacija koja omogućava


¾ razvoj (projektovanje, kodiranje, uklanjanje grešaka,
instalacija, održavanje) i
¾ izvršenje distribuiranih aplikacija

™ 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

C#.NET VB.NET C++.NET JScript.NET ...

Common Type System - CTS Common Language Specification - CLS

Tehnologije za razvoj aplikacija

Class Libraries – Data and XML classes

Base Class Libraries

Common Language Runtime - CLR

16
Arhitektura .NET Framework-a

C#.NET VB.NET C++.NET JScript.NET ...

Common Type System - CTS Common Language Specification - CLS

Tehnologije za razvoj aplikacija

Class Libraries – Data and XML classes

Base Class Libraries

Common Language Runtime - CLR

™ Common Language Runtime - CLR

¾ najvažniji deo .NET Framework-a.


¾ nadležan za aktiviranje objekata, izvršavanje bezbednosnih provera nad
njima, njihovo smeštanje u memoriju, izvršavanje i uklanjanje iz memorije.

17
Arhitektura .NET Framework-a

C#.NET VB.NET C++.NET JScript.NET ...

Common Type System - CTS Common Language Specification - CLS

Tehnologije za razvoj aplikacija

Class Libraries – Data and XML classes

Base Class Libraries

Common Language Runtime – CLR


(compiling, debbuging, type checking, JIT compilers, execution, exception)

™ Base Class Libraries - BCL

¾ biblioteke tipova koje nudi .NET Framework.


¾ sastoji se iz klasa, interfejsa i vrednosnih tipova koji omogućavaju korišćenje
funkcija sistema.

18
Arhitektura .NET Framework-a

C#.NET VB.NET C++.NET JScript.NET ...

Common Type System - CTS Common Language Specification - CLS

Tehnologije za razvoj aplikacija

Class Libraries – Data and XML classes

Base Class Libraries


(IO, string, net, security, threading, text, reflection, collection, ...)

Common Language Runtime – CLR


(compiling, debbuging, type checking, JIT compilers, execution, exception)

™ Class Libraries – Data and XML classes

¾ Specijalizovane biblioteke tipova.


¾ Zasniva se na tipovima datim u BCL-u.

19
Arhitektura .NET Framework-a

C#.NET VB.NET C++.NET JScript.NET ...

Common Type System - CTS Common Language Specification - CLS

Tehnologije za razvoj aplikacija

Class Libraries – Data and XML classes


(ADO.NET, XML, XSLT, Xpath, ...)

Base Class Libraries


(IO, string, net, security, threading, text, reflection, collection, ...)

Common Language Runtime – CLR


(compiling, debbuging, type checking, JIT compilers, execution, exception)

™ Tehnologije za razvoj aplikacija

¾ Web Service, Web Forms, Windows Forms, Console Applications.


¾ interfejsne i neinterfejsne aplikacije.

20
Arhitektura .NET Framework-a

C#.NET VB.NET C++.NET JScript.NET ...

Common Type System - CTS Common Language Specification - CLS

Tehnologije za razvoj aplikacija


(Web Services, Web Forms, Windows Forms, Console Applications)

Class Libraries – Data and XML classes


(ADO.NET, XML, XSLT, Xpath, ...)

Base Class Libraries


(IO, string, net, security, threading, text, reflection, collection, ...)

Common Language Runtime – CLR


(compiling, debbuging, type checking, JIT compilers, execution, exception)

™ Common Type System - CTS

¾ skup pravila koje prevodioci .NET jezika moraju da poštuju.


¾ njime su dati predefinisani tipovi podataka.

21
Arhitektura .NET Framework-a

C#.NET VB.NET C++.NET JScript.NET ...

Common Type System - CTS Common Language Specification - CLS

Tehnologije za razvoj aplikacija


(Web Services, Web Forms, Windows Forms, Console Applications)

Class Libraries – Data and XML classes


(ADO.NET, XML, XSLT, Xpath, ...)

Base Class Libraries


(IO, string, net, security, threading, text, reflection, collection, ...)

Common Language Runtime – CLR


(compiling, debbuging, type checking, JIT compilers, execution, exception)

™ Common Language Specification - CLS

¾ specifikacija minimalnih zahteva koje svaki .NET jezik mora da podrži u cilju
postizanja integracije jezika.

22
Arhitektura .NET Framework-a

C#.NET VB.NET C++.NET JScript.NET ...

Common Type System - CTS Common Language Specification - CLS

Tehnologije za razvoj aplikacija


(Web Services, Web Forms, Windows Forms, Console Applications)

Class Libraries – Data and XML classes


(ADO.NET, XML, XSLT, Xpath, ...)

Base Class Libraries


(IO, string, net, security, threading, text, reflection, collection, ...)

Common Language Runtime – CLR


(compiling, debbuging, type checking, JIT compilers, execution, exception)

™ .NET jezici

¾ C# (C Sharp) – nov jezik razvijen posebno za .NET Framework.


¾ postojeći jezici su ili redizajnirani ili prošireni (VB.NET, managed C++, ...)

23
Arhitektura .NET Framework-a

C#.NET VB.NET C++.NET JScript.NET ...

Common Type System - CTS Common Language Specification - CLS

Tehnologije za razvoj aplikacija


(Web Services, Web Forms, Windows Forms, Console Applications)

Class Libraries – Data and XML classes


(ADO.NET, XML, XSLT, Xpath, ...)

Base Class Libraries


(IO, string, net, security, threading, text, reflection, collection, ...)

Common Language Runtime – CLR


(compiling, debbuging, type checking, JIT compilers, execution, exception)

24
Common Language Runtime (CLR)
™ Common Language Runtime = .NET

™ najvažniji deo .NET Framework-a


™ predstavlja izvršno okruženje .NET Framework-a
™ nadležan je za aktiviranje objekata, izvršavanje bezbednosnih provera
nad njima. njihovo smeštanje u memoriju, izvršavanje i uklanjanje iz
memorije

™ 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, ...

™ CLR podržava sve programske jezike koji se mogu prevesti u Microsoft


Intermediate Language (MSIL)

25
Common Language Runtime (CLR)
™ proces prevođenja izvornog u mašinski kod odvija se u dva koraka

¾ izvorni kod se prevodi u Microsoft Intermediate Language MSIL

¾ prevođenje MSIL koda u konkretan platformski kod koji izvršava CLR

izvorni kod MSIL kod mašinski kod

26
Microsoft Intermediate Language (MSIL)
™ jezik nižeg nivoa sa jednostavnom sintaksom, koji se vrlo brzo prevodi u
mašinski kod

™ podržava sve osobine objektno orijentisanih jezika uključujući apstrakciju


podataka, nasleđivanje, polimorfizam i korisne koncepte kao što su izuzeci
i događaji

™ uvođenjem ovog međujezika omogućena je:


¾ platformska nezavisnost
• kod napisan na bilo kom .NET jeziku može se izvršiti na bilo kojoj platformi
• Java Æ bytecode ; .NET Æ MSIL
¾ poboljšanje performansi
• dok se Java kod interpretira, MSIL se uvek prevodi (ne postoji gubitak
performansi koji je neminovan prilikom interpretacije)
• ne prevodi se cela aplikacija odjednom, već samo deo koji se pozove
• prevedeni kod se čuva sve dok se aplikacija ne završi
¾ jezička interoperabilnost
• kod dobijen prevođenjem iz jednog programskog jezika u MSIL, je
interoperabilan sa kodom koji je na isti način dobijen iz nekog sasvim drugog
programskog jezika

27
Microsoft Intermediate Language (MSIL)
™ osnovne karakteristike

9 objektna orijentisanost i korišćenje interfejsa

9 razlikovanje vrednosnih i referentnih tipova

9 stroga tipiziranost podataka

¾ upravljanje greškama putem izuzetaka

¾ korišćenje atributa

28
Karakteristike MSIL-a
™ objektna orijentisanost i korišćenje interfejsa

¾ podržava sve osobine objektno orijentisanih jezika uključujući apstrakciju


podataka, nasleđivanje, polimorfizam i korisne koncepte kao što su izuzeci i
događaji

¾ podržava jednostruko nasleđivanje klasa

¾ klase koje implementiraju dati interfejs moraju da obezbede implementaciju


metoda i svojstava naznačenih konkretnim interfejsom

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

¾ svaka promenljiva pripada određenom, konkretnom tipu podataka

¾ nisu dozvoljene operacije koje ostavljaju mogućnost dvosmislenog


tumačenja na koju vrstu podataka se njihov rezultat odnosi (Variant u VB-u)

¾ š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 napisana u jednom jeziku može da nasledi klasu napisanu u drugom


jeziku
¾ klasa može da sadrži primerke drugih klasa koje su realizovane korišćenjem
različitih jezika
¾ objekat može direktno da pozove metodu drugog objekta koja je napisana u
drugom jeziku
¾ objekti se mogu slobodno prenositi između metoda

• 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-bitni označeni celobrojni tip


B
(C#.NET) • u jeziku VB.NET definisan kao integer
• u jeziku C# definisan kao int

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 definiše predefinisane tipove podataka koji su dostupni u MSIL-u,


tako da svi jezici .NET Framework-a proizvode MSIL kod koji se zasniva
na ovim tipovima. (VB.NET – integer, C# – int, MSIL – System.int32)

™ 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

™ specifikacija zajedničkog jezika predstavlja skup minimalnih zahteva koje


svaki .NET jezik mora da podrži, u cilju postizanja interoperabilnosti.

™ jedan od zahteva koji nameće CLS je da nije dozvoljeno korišćenje


identifikatora koji se razlikuju samo po veličini slova
¾ za razliku od VB.NET-a, C# pravi razliku između velikih i malih slova

™ nisu sve klase .NET Frameworka u saglasnosti sa CLS-om


¾ na primer, uint je definisan u C#-u, a nije u VB.NET-u

™ ova specifikacija se odnosi samo na javne i zaštićene članove klasa i javne


klase (privatni delovi nisu dostupni)

35
CTS & CLS

Sistem zajedničkih tipova


CTS

...

COBOL.NET C++.NET

C# CLS VB.NET

36
Automatsko upravljanje memorijom

™ komponenta za sakupljanje otpadaka (garbage collector)

™ objekti na hipu do kojih ne vodi ni jedna referenca se automatski


oslobađaju

™ sprečava se curenje memorije (memory leak), a isto tako sprečavaju


situacije gde memorija ostaje zauzeta čak i posle završetka procesa

™ napomena: vreme kada će upotrebljena memorija biti oslobođena nije


tačno određena
¾ posledica: oslobađanje resursa ne treba da se radi u destruktoru klase

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

™ IL kod + metapodaci kojima se opisuju tipovi i definisane metode u kodu

™ sklop je u potpunosti samoopisujuća logička jedinica

™ 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

Jednostavan sklop Složen sklop

ЕХЕ / DLL ЕХЕ / DLL DLL


metapodaci sklopa metapodaci sklopa
metapodaci tipova
(manifest) (manifest)

metapodaci tipova metapodaci tipova MSIL kod

MSIL kod MSIL kod

resursi Resursi
(jpg, gif, ...)

Sklop od jedne datoteke Sklop od više datoteka

39
Izvršenje CLR aplikacija

OptIL and Base Class


Metadata Library

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

You might also like