uvod u programiranje programiranje 1 (450) - …. semestar/programiranje... · uvod u programiranje...
TRANSCRIPT
Uvod u programiranjeUvod u programiranjeProgramiranje 1 (450)Programiranje 1 (450)
Poglavlje 1Poglavlje 1
Uvod u računala, Microsoft.NET i VB.NETUvod u računala, Microsoft.NET i VB.NET ((diodio 22 od 2od 2):):
Pregled .NET platformePregled .NET platforme
1
Pregled .NET platformePregled .NET platforme
drdrdrdrdrdrdrdr. . . . . . . . scscscscscscscsc. Josip Musić. Josip Musić. Josip Musić. Josip Musić. Josip Musić. Josip Musić. Josip Musić. Josip Musićjmusicjmusic@@fesb.hrfesb.hr
Originalne Originalne Originalne Originalne Originalne Originalne Originalne Originalne slideoveslideoveslideoveslideoveslideoveslideoveslideoveslideove izradio:izradio:izradio:izradio:izradio:izradio:izradio:izradio:Teo Teo Teo Teo Teo Teo Teo Teo ŽuljevićŽuljevićŽuljevićŽuljevićŽuljevićŽuljevićŽuljevićŽuljević, , , , , , , , dipldipldipldipldipldipldipldipl. ing.. ing.. ing.. ing.. ing.. ing.. ing.. ing.teo.zuljevicteo.zuljevic@@fesb.hrfesb.hr
Uvod u računala, Microsoft.NET i Uvod u računala, Microsoft.NET i VB.NETVB.NET
Trajanje (h) Trajanje (h) Trajanje (h) Trajanje (h) Trajanje (h) Trajanje (h) Trajanje (h) Trajanje (h) (okvirno)(okvirno)(okvirno)(okvirno)(okvirno)(okvirno)(okvirno)(okvirno)
NaslovNaslovNaslovNaslovNaslovNaslovNaslovNaslov
22 Računalni programi i programski jeziciRačunalni programi i programski jezici
11111111 Pregled .NET platformePregled .NET platformePregled .NET platformePregled .NET platformePregled .NET platformePregled .NET platformePregled .NET platformePregled .NET platforme
2
11 Visual Studio .NET IDEVisual Studio .NET IDE
UvodUvod
“Microsoft .NET is an object“Microsoft .NET is an object“Microsoft .NET is an object“Microsoft .NET is an object“Microsoft .NET is an object“Microsoft .NET is an object“Microsoft .NET is an object“Microsoft .NET is an object--------oriented, multioriented, multioriented, multioriented, multioriented, multioriented, multioriented, multioriented, multi--------language, crosslanguage, crosslanguage, crosslanguage, crosslanguage, crosslanguage, crosslanguage, crosslanguage, cross--------platform development environment. It is based on the platform development environment. It is based on the platform development environment. It is based on the platform development environment. It is based on the platform development environment. It is based on the platform development environment. It is based on the platform development environment. It is based on the platform development environment. It is based on the .NET .NET .NET .NET .NET .NET .NET .NET FrameworkFrameworkFrameworkFrameworkFrameworkFrameworkFrameworkFramework, which consists of two major components: an , which consists of two major components: an , which consists of two major components: an , which consists of two major components: an , which consists of two major components: an , which consists of two major components: an , which consists of two major components: an , which consists of two major components: an execution engine called the execution engine called the execution engine called the execution engine called the execution engine called the execution engine called the execution engine called the execution engine called the Common Language RuntimeCommon Language RuntimeCommon Language RuntimeCommon Language RuntimeCommon Language RuntimeCommon Language RuntimeCommon Language RuntimeCommon Language Runtime (CLR) (CLR) (CLR) (CLR) (CLR) (CLR) (CLR) (CLR) and an extensive set of classes known as the and an extensive set of classes known as the and an extensive set of classes known as the and an extensive set of classes known as the and an extensive set of classes known as the and an extensive set of classes known as the and an extensive set of classes known as the and an extensive set of classes known as the Framework Framework Framework Framework Framework Framework Framework Framework Class LibraryClass LibraryClass LibraryClass LibraryClass LibraryClass LibraryClass LibraryClass Library (FCL)…”(FCL)…”(FCL)…”(FCL)…”(FCL)…”(FCL)…”(FCL)…”(FCL)…”
3
Class LibraryClass LibraryClass LibraryClass LibraryClass LibraryClass LibraryClass LibraryClass Library (FCL)…”(FCL)…”(FCL)…”(FCL)…”(FCL)…”(FCL)…”(FCL)…”(FCL)…”
Upravljano izvođenje Upravljano izvođenje (managed execution)(managed execution)
Komponentno baziranKomponentno baziranee aplikacije aplikacije (component(component--based)based)
Upravljano izvoñenjeUpravljano izvoñenje
Ideja:Ideja:Moderna programska podrška se izvodi unutar okoline Moderna programska podrška se izvodi unutar okoline izvođenja izvođenja (run(run--time environment)time environment)..
Zašto? Prenosivije i sigurnije izvođenje.Zašto? Prenosivije i sigurnije izvođenje.
4
HardwareHardware
Operating SystemOperating System
RunRun--time Environmenttime Environment
Your ApplicationYour Application
UtjecajUtjecaj
.NET .NET je rezultat mnogih utjecajaje rezultat mnogih utjecaja……
OOP JVM
5
.NETGUI
Web
komponentno
bazirano
oblikovanjen-slojno
oblikovanje
JavaJava
Bazirana na okolini izvođenja Bazirana na okolini izvođenja JVMJVMJVM = Java Virtual MachineJVM = Java Virtual Machine
JCL = Java Class LibraryJCL = Java Class Library
6
x86x86
WindowsWindows
JVMJVM
PPCPPC
Mac OSMac OS
JVMJVM
ARMARM
Palm OSPalm OS
JVMJVM
Java ApplicationJava Application
--
--
JVMJVM
JCLJCL
.NET.NET
BBaziran naaziran na CLRCLR ii FFCCLLCLR = Common Language RuntimeCLR = Common Language Runtime
FFCCL = Framework Class LibraryL = Framework Class Library
7
HardwareHardware
Operating SystemOperating System
Common Language RuntimeCommon Language Runtime
.NET Application.NET Application.NET Framework.NET Framework
Class LibraryClass Library
.NET.NET
.NET .NET aplikacija nije samostalnaaplikacija nije samostalna ((standstand--alonealone))
zahtjeva prisutnostzahtjeva prisutnost .NET Framework.NET Framework--aa = CLR + FCL= CLR + FCL
Proces
.DLL.DLL.EXE
• CLR = Common Language Runtime
• FCL = Framework Class Library
• JIT = Just in Time
8
druge FCL
komponebte
CLR (MSCOREE.dll)
JIT Compiler
Proces
Underlying OS and HW
Core
FCL
(MSCOR
LIB.dll)
obj kod
Odabrati jezik i platformu...Odabrati jezik i platformu...
Razvoj programske podrške u Razvoj programske podrške u .NET.NET--uu
VBVB C#C# C++C++ J#J# -- CLSCLS
• CLR = Common Language Runtime
• FCL = Framework Class Library
• CLS = Common Language Specification
9
x86x86
WindowsWindows
CLRCLR
ARMARM
Pocket PCPocket PC
CLRCLR
PPCPPC
FreeBSDFreeBSD
CLRCLR
x86x86
LinuxLinux
CLRCLR
--
--
CLRCLR
.NET Application.NET Application FCLFCL
.NET .NET je višejezičanje višejezičan ((multimulti--languagelanguage))
VišejeziVišejeziččan razvoj programaan razvoj programa“bešavna” “bešavna” ssuradnja različitih programskih jezikauradnja različitih programskih jezika
.NET .NET podržavapodržava VB, C#, C++, J# (Java), Eiffel, …VB, C#, C++, J# (Java), Eiffel, …
10
code.vb code.cs code.cpp ...
Visual Studio .NET
CLS?CLS?
CCTSTS
Osigurava dostupnost upravljanog koda ostalim .NET Osigurava dostupnost upravljanog koda ostalim .NET programskim jezicima. programskim jezicima.
CLS = “Common Language specification”CLS = “Common Language specification”
omogućuje međujezičnu suradnju (language interoperability)omogućuje međujezičnu suradnju (language interoperability)
opisuje minimalni skup jezičnih mogućnostiopisuje minimalni skup jezičnih mogućnosti
definira pravila za njihovo korištenje definira pravila za njihovo korištenje
• CTS = Common Type System
• CLS = Common Language Specification
11
VB.NETVB.NET CC##
CLS
Pyth
on
Pyth
on
AsembliAsembli
.NET .NET pakira komponente u pakira komponente u asemblijeasemblije ((assembliesassemblies))
1 as1 asembliembli = 1 = 1 ili više kompajliranih datoteka ili više kompajliranih datoteka izvornog koda izvornog koda (source code)(source code)
.EXE .EXE = izvršna datoteka= izvršna datoteka, .DLL , .DLL = dinamička biblioteka= dinamička biblioteka
12
VB.NET kompajler
.EXE / .DLL
code.vbcode.vbcode.vb
asembli
Komponento bazirane aplikacijeKomponento bazirane aplikacije
.NET ap.NET aplikacije se sastoje od 1 ili više komponentilikacije se sastoje od 1 ili više komponenti
PrimjerPrimjer::ttipičanipičan nn--slojnislojni dizajndizajn
object object
13
Front-end
object object
object
DB
GUI.exe
business.dll data.dll
IL?IL?IL IL je asemblerski jezik je asemblerski jezik .NET platform.NET platforme (CLRe (CLR--a)a)
IL = “Intermediate Language“IL = “Intermediate Language“
IL==MSIL==CIL; IL==MSIL==CIL; MS=Microsoft; C=CommonMS=Microsoft; C=Common
upravljani kod upravljani kod (managed c(managed codeode)) == IL == IL kodkod
CPU ne može direktno izvesti IL kod; IL neovisan o CPUCPU ne može direktno izvesti IL kod; IL neovisan o CPU
JITJIT (Just(Just--inin--Time)Time) prevodilac prevodilac ((compilercompiler)) pretvarapretvara IIL L u binarni jeziku binarni jezik““underlying HWunderlying HW””
14
““underlying HWunderlying HW””
'** zbraja 2 cjela broja i vraća rezultat…
Public Function Add(ByVal x As Integer, ByVal y As Integer) As Integer
Add = x + y
End Function
C:\> ildasm app.exe
VB.NET/C# VB.NET/C# -->> IL >> IL -->> 100101010>> 100101010
vbc.execsc.exe
15
vbc.execsc.exe
Prevoñenje i izvoñenjePrevoñenje i izvoñenje
Izvorni Izvorni
kodkod
Jezični Jezični
kompajlerkompajlerAssemblyAssemblyKodKodKodKodKodKodKodKod (IL)(IL)(IL)(IL)(IL)(IL)(IL)(IL)
MetaMetaMetaMetaMetaMetaMetaMetapodacipodacipodacipodacipodacipodacipodacipodaci
16
IzvođenjeIzvođenje
JIT JIT
kompajlerkompajler
Binarni Binarni
kodkod
za vrijeme
instalacije ili pri
prvom pozivanju
procedure
Managed execution revisited…Managed execution revisited…
CLR CLR mora moći locirati sve asemblijemora moći locirati sve asemblijevlastitevlastite ii FCLFCL
Proces
.DLL.DLL.EXE
• CLR = Common
Language Runtime
• FCL = Framework
Class Library
17
druge FCL
komponente
CLR (MSCOREE.dll)
JIT Compiler
Proces
Core
FCL
(MSCOR
LIB.dll)
obj kod
UtjecajUtjecaj .NET ar.NET arhitekturehitekture
Klijent zahtjevaKlijent zahtjeva .NET Framework.NET Frameworkraspoloživ prekoraspoloživ preko Redistributable .NET FrameworkRedistributable .NET Framework ((20MB)20MB)
44 ververzijezije, v1.0 (2002), v1.0 (2002),, v1.1 (2003)v1.1 (2003), v2.0(11/2005) i v3.0 (2006, Vista)., v2.0(11/2005) i v3.0 (2006, Vista).
izvodi se naizvodi se na 98, NT (6a), 2000, XP, 200398, NT (6a), 2000, XP, 2003
Windows 2003 se isporučuje sa v1.1Windows 2003 se isporučuje sa v1.1
Prednosti i nedostaciPrednosti i nedostaci::
18
Prednosti i nedostaciPrednosti i nedostaci::�� pprenosivostrenosivost
�� sigurnije izvođenjesigurnije izvođenje ((upravljanje memorijomupravljanje memorijom, , sigurnostsigurnost, …), …)
�� ssporije izvođenje (10%)porije izvođenje (10%)??JIT JIT kompajler ima potencijal premoštenja performansnog nedostatkakompajler ima potencijal premoštenja performansnog nedostatka
SažetakSažetak
.NET .NET arhitektura jearhitektura je::viševiše--jezičnajezična
viševiše--platformskaplatformska
bazirana na upravljanom izvođenju prekobazirana na upravljanom izvođenju preko CLRCLR--aa
bazirana na bazirana na bbogatoj biblioteci klasa nazvanojogatoj biblioteci klasa nazvanoj FCLFCL
19
bazirana na bazirana na bbogatoj biblioteci klasa nazvanojogatoj biblioteci klasa nazvanoj FCLFCL
komponentnokomponentno--baziranabazirana
Sljedeći naslovSljedeći naslov
Trajanje Trajanje (h)(h) NaslovNaslovNaslovNaslovNaslovNaslovNaslovNaslov
22 Računalni programi i programski jeziciRačunalni programi i programski jezici
11 Pregled .NET platformePregled .NET platforme
20
11111111 Visual Studio .NET IDE (demo)Visual Studio .NET IDE (demo)Visual Studio .NET IDE (demo)Visual Studio .NET IDE (demo)Visual Studio .NET IDE (demo)Visual Studio .NET IDE (demo)Visual Studio .NET IDE (demo)Visual Studio .NET IDE (demo)
Pitanja?Pitanja?
21
Za više informacijaZa više informacija……
Odgovaram na mailOdgovaram na mail--oveove ((uglavnom uvijekuglavnom uvijek ::--))jmusicjmusic@@fesb.hrfesb.hr
Web site Web site za slajdoveza slajdove, , kodkod::__
LiteraturaLiteratura::
22
LiteraturaLiteratura::T.ŽuljevićT.Žuljević, “, “Uvod u programiranje krozUvod u programiranje kroz Microsoft VB .NET"Microsoft VB .NET"