PROGRAMOWANIE WIZUALNE

17
PROGRAMOWANIE WIZUALNE metoda tworzenia programu za pomocą narzędzi umożliwiających wybór standardowych elementów z menu z automatyczną generacją dużej części kodu źródłowego Przycisk Przycis k

description

Przycisk. Przycisk. PROGRAMOWANIE WIZUALNE ● metoda tworzenia programu za pomoc ą narz ę dzi umo ż liwiaj ą cych wybór standardowych elementów z menu z automatyczn ą generacj ą du ż ej cz ę ś ci kodu ź ród ł owego. MS Windows wieloprocesowy system operacyjny - PowerPoint PPT Presentation

Transcript of PROGRAMOWANIE WIZUALNE

Page 1: PROGRAMOWANIE    WIZUALNE

PROGRAMOWANIE WIZUALNE

● metoda tworzenia programu za pomocą narzędzi umożliwiających wybór standardowych elementów z menu z automatyczną generacją dużej części kodu źródłowego

PrzyciskPrzycisk

PrzyciskPrzycisk

Page 2: PROGRAMOWANIE    WIZUALNE

MS Windows•  wieloprocesowy system operacyjny

• sprzęg użytkowy C kilka tysięcy funkcji

• programowanie współbieżne

START

czy jest komunikat

czy kom. zakończenia

STOP

TAK

NIE

TAK

NIEobsługa komunikatu

Page 3: PROGRAMOWANIE    WIZUALNE

Tworzenie Programów dla Środowiska MSWs

   Application Programming Interface (API)

   Software Development Kit (SDK)

   biblioteki klas : OWL (Borland),

MFC (Microsoft), ATL (Microsoft)

przekład programu (.exe) zawiera :

— treść binarną (rozkazy, dane)

— zasoby : ikony, kursory, mapy bitowe, menu, akceleratory, dialogi, teksty

Page 4: PROGRAMOWANIE    WIZUALNE

MSWs

MFC

API

API

Aplikacja Źródłowa

Aplikacja

Page 5: PROGRAMOWANIE    WIZUALNE

class Baza

{ public : int x; }

//

class Potomek : public Baza

{ public: int y; }

//

Baza* ob = new Potomek;

ob -> x; // ok

ob -> y; // błąd

(( Potomek* ) ob ) -> y ; // ok

Page 6: PROGRAMOWANIE    WIZUALNE

VB C# C++ L......

CVB CC# CC++ CL......

PAKIET ( CIL .exe , .dll )

Środowisko .NET

Page 7: PROGRAMOWANIE    WIZUALNE

P1 P2 Pn..... CLASS LIBRARY

LOADER

JITC

BIN EXEC

N

E

T

.

F

r

a

m

e

w

o

r

k

Page 8: PROGRAMOWANIE    WIZUALNE

pakiet ( assembly )

a - manifest

b - metadane opisujące typy

c - przekład w CIL

d - zasoby

mogą być

w wielu plikach

PE Header a + b + c + d

Start

pakiet.exe

Page 9: PROGRAMOWANIE    WIZUALNE

wspólny system typów CTS

wspólna specyfikacja języka CLS

biblioteka klas platformy FCL

przestrzenie nazw

zbieranie śmieci

wspólne środowisko wykonawcze CLR

kod zarządzany i nie zarządzany

Page 10: PROGRAMOWANIE    WIZUALNE

CIL (MSIL)

class Program

{ static int Main(string[] args)

{

int a = 5, b, c;

c = a + 3;

b = c + 2;

return b;

}

}

IL_0000: ldc.i4.5

IL_0001: stloc.0

IL_0002: ldloc.0

IL_0003: ldc.i4.3

IL_0004: add

IL_0005: stloc.2

IL_0006: ldloc.2

IL_0007: ldc.i4.2

IL_0008: add

IL_0009: stloc.1

IL_000a: ldloc.1

IL_000b: ret

Page 11: PROGRAMOWANIE    WIZUALNE

ILDASMC:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin

.method private hidebysig static int32 Main(string[] args) cil managed

{

.entrypoint

// Code size 12 (0xc)

.maxstack 2

.locals init ([0] int32 a,

[1] int32 b,

[2] int32 c)

// MSIL instructions

} // end of method Program::Main

Page 12: PROGRAMOWANIE    WIZUALNE

Plik .exe ( Release )

File size : 16384

PE header size : 4096 (496 used) (25.00%)

PE additional info : 1075 ( 6.56%)

Num.of PE sections : 3

CLR header size : 72 ( 0.44%)

CLR meta-data size : 1404 ( 8.57%)

CLR additional info : 0 ( 0.00%)

CLR method headers : 13 ( 0.08%)

Managed code : 19 ( 0.12%) !!!!!

Data : 8192 (50.00%)

Unaccounted : 1513 ( 9.23%)

Page 13: PROGRAMOWANIE    WIZUALNE

Asembler

int a = 5, b, c;

00000015 xor edi,edi // a

00000017 xor esi,esi // b

00000019 xor ebx,ebx // c

0000001b mov edi,5 // a

c = a + 3;

00000020 lea eax,[edi+3]

00000023 mov ebx,eax

b = c + 2;

00000025 lea eax,[ebx+2]

00000028 mov esi,eax

Page 14: PROGRAMOWANIE    WIZUALNE

class Program

{

static int Main(string[] args)

{

double a = 5, b, c;

 

c = a + 3;

b = c + 2;

return 0;

  }

}

Page 15: PROGRAMOWANIE    WIZUALNE

double a = 5, b, c;

0000001a fldz

0000001c fstp qword ptr [esp+8] // a = 0

00000020 fldz

00000022 fstp qword ptr [esp+10h] // b = 0

00000026 fldz

00000028 fstp qword ptr [esp+18h] // c = 0

0000002c fld dword ptr ds:[03731140h] // 5

00000032 fstp qword ptr [esp+8] // a = 5

c = a + 3;

00000036 fld qword ptr [esp+8]

0000003a fadd dword ptr ds:[03731148h] // a + 3

00000040 fstp qword ptr [esp+18h]

b = c + 2;

00000044 fld qword ptr [esp+18h]

00000048 fadd dword ptr ds:[03731150h] // b + 2

0000004e fstp qword ptr [esp+10h]

Page 16: PROGRAMOWANIE    WIZUALNE

MS Visual Studio ( MFC, C++ )

1.0 , ..... , 6.0

MS Visual Studio.NET ( FCL, C# )

2002 , 2003 , 2005 , 2008, 2010, 2012, 2013

NET . Framework , NET . Compact Framework

1.0 , 2.0 , 3.0 , 3.5, 4.0, 4.5, 5.0

Page 17: PROGRAMOWANIE    WIZUALNE

C++ Kod Zarządzany

słowo kluczowe opis

__abstract klasa abstrakcyjna__box opakowanie (stos sterta)__delegate zamiana wsk. funkcji na delegację__event zgłoszenie zdarzenia__finally blok końcowy obsługi wyjątków__gc typ podlega zbieraniu śmieci__identifier odróżnia identyfikatory od słów kluczowych C++__interface wszystkie funkcje składowe są czystymi funkcjami wirtualnymi__nogc nie podlega zbieraniu śmieci__pin zabrania przesuwania przez gc__property tworzy właściwość__sealed nie może być klasą bazową__try_cast rzutowanie z ew. wyjątkiem__typeof typ obiektu zarządzanego__value utworzenie wartości (stos)