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

Post on 06-Feb-2018

410 Views

Category:

Documents

18 Downloads

Preview:

Click to see full reader

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"

top related