uvod u programiranje programiranje 1 (450) - …. semestar/programiranje... · uvod u programiranje...

22
Uvod u programiranje Uvod u programiranje Programiranje 1 (450) Programiranje 1 (450) Poglavlje 1 Poglavlje 1 Uvod u računala, Microsoft.NET i VB.NET Uvod u računala, Microsoft.NET i VB.NET (dio dio 2 od 2 od 2): ): Pregled .NET platforme Pregled .NET platforme 1 Pregled .NET platforme Pregled .NET platforme dr dr dr dr dr dr dr dr. . . . . . . . sc sc sc sc sc sc sc sc. Josip Musić . Josip Musić . Josip Musić . Josip Musić . Josip Musić . Josip Musić . Josip Musić . Josip Musić jmusic [email protected] fesb.hr Originalne Originalne Originalne Originalne Originalne Originalne Originalne Originalne slideove slideove slideove slideove slideove slideove slideove slideove izradio: izradio: izradio: izradio: izradio: izradio: izradio: izradio: Teo Teo Teo Teo Teo Teo Teo Teo Žuljević Žuljević Žuljević Žuljević Žuljević Žuljević Žuljević Žuljević, , , , , , , , dipl dipl dipl dipl dipl dipl dipl dipl. ing. . ing. . ing. . ing. . ing. . ing. . ing. . ing. teo.zuljevic [email protected] fesb.hr

Upload: vuphuc

Post on 06-Feb-2018

410 views

Category:

Documents


18 download

TRANSCRIPT

Page 1: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 2: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 3: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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)

Page 4: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 5: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

UtjecajUtjecaj

.NET .NET je rezultat mnogih utjecajaje rezultat mnogih utjecaja……

OOP JVM

5

.NETGUI

Web

komponentno

bazirano

oblikovanjen-slojno

oblikovanje

Page 6: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 7: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

.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

Page 8: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

.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

Page 9: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 10: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

.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

Page 11: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 12: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 13: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 14: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 15: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

VB.NET/C# VB.NET/C# -->> IL >> IL -->> 100101010>> 100101010

vbc.execsc.exe

15

vbc.execsc.exe

Page 16: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 17: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 18: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 19: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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

Page 20: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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)

Page 21: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

Pitanja?Pitanja?

21

Page 22: Uvod u programiranje Programiranje 1 (450) - …. semestar/Programiranje... · Uvod u programiranje Programiranje 1 (450) ... 22 Računalni programi i programski jeziciRačunalni

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"