You are on page 1of 66

Tng quan lp trnh mi trng Windows

Lch s Windows
1990 1993 1994 1995 1996
Windows NT Workstatio n Windows NT Windows Server NT Enteprise Server 4.0 Edition

1997

Windows Desktop

Windows 3x

Windows NT

Windows 95

Windows Server

Windows NT Windows Advanced NT Server 3.1 Server 3.5

Windows NT Server 3.51

Windows Cloud
2 Lp trnh mi trng Windows

Lch s Windows
1998 2000 2001 2003 2006 2008 2009 2012
1. Windows ME 2. Windows Windows 2000 98 Professional

Windows Desktop

Windows XP 1. Windows Server 2003 2. Windows Server Systems

Windows Vista

Windows 7 Windows 8

Windows Server

Windows NT Server 4.0 Terminal Server Windows 2000 Edition Server Family

Windows Server 2008

Windows Cloud
3 Lp trnh mi trng Windows

Windows Azure

Lp trnh mi trng Windows

Lp trnh mi trng Windows

Lp trnh mi trng Windows

Lp trnh mi trng Windows

Lp trnh mi trng Windows

Lp trnh mi trng Windows

Mi trng Windows

H iu hnh 32/64 bit Giao din ngi dng kiu ho (GUI) a nhim Qun l b nh

T tng hng i tng


Giao din ha c lp thit b Kin trc hng s kin, da vo thng ip

10

Lp trnh mi trng Windows

Giao din ngi dng kiu ho (GUI)


Visual Interface WYSIWYG Cc ng dng Windows c giao din thng nht vi cng dng v:

mt ca s hnh ch nht thanh tiu menu, hp hi thoi, thanh trt

11

Lp trnh mi trng Windows

a nhim

Nhiu chng trnh c th c kch hot v chy cng mt lc Mi chng trnh chim mt phn ti nguyn ca h thng v c mt phn b nh thng tr Windows 32 bits hot ng theo c ch preemtive. Mi chng trnh c th c tch thnh cc thread thc hin cng lc

12

Lp trnh mi trng Windows

Qun l b nh

M chng trnh v d liu c th dch chuyn trong b nh vt l Kh nng s dng b nh ph Cc th vin lin kt ng (.DLL)

13

Lp trnh mi trng Windows

T tng hng i tng

Ca s ng dng chnh v cc ca s con l cc th hin (i tng) ca lp ca s c ng k trc

14

Lp trnh mi trng Windows

Giao din ho c lp thit b

Giao din ho ca Window cho php to cc i tng ho v nh dng vn bn cho c mn hnh v my in Chng trnh vit cho Windows khng iu khin trc tip thit b xut nh mn hnh hay my in m thng qua mt ngn ng lp trnh ho gi l Giao Din Thit B Ho (Graphics Device Interface: GDI)

15

Lp trnh mi trng Windows

Kin trc hng thng ip (message driven)

Windows v cc ng dng Windows hot ng theo c ch truyn, nhn thng ip Cc hot ng ca chng trnh thay i tu theo thng ip m n nhn c, Thng ip c gi qua li gia ng dng v Windows, gia cc ng dng vi nhau Ca s ng dng t ng c v li mi khi c s thay i kch thc hay vng b che. iu ny c thc hin nh h iu hnh gi thng ip cho chng trnh
16 Lp trnh mi trng Windows

Cc loi ng dng c bn

Windows Application: ng dng 32 bits, giao din ha Win32 DLL: ng dng 32 bits, dng th vin lin kt ng (Dynamic-linked library) Win32 LIB: ng dng 32 bits, dng th vin lin kt tnh (Static-linked library) Console Application: ng dng 32 bits, vi giao din dng DOS command line

17

Lp trnh mi trng Windows

Windows Application dng ngn ng da C


Nm Ngn ng Cng c

1985

1992

C++ C# hoc C++.Net

Windows application programming interface (API) Microsoft Foundation Class (MFC) Library Windows Form (1 phn ca .NET Framework)

2001

18

Lp trnh mi trng Windows

Cc th vin lp trnh

Windows API OWL - Object Windows Library MFC - Microsoft Foundation Classes ATL - Active Template Library WTL - Windows Template Library BCL - .NET Framework Base Class Library

19

Lp trnh mi trng Windows

Windows v DOS
Windows Lp trnh s kin, da vo thng ip (message) Multi-tasking DOS Thc hin tun t theo ch nh Single task

Multi-CPU Tch hp sn Multimedia


H tr 32 bits hay hn na DLL, OLE, DDE, COM, OpenGL, DirectX

Single CPU Phi dng cc th vin Multimedia ring


ng dng 16 bits Khng c

20

Lp trnh mi trng Windows

Giao din ha

Cc dng ng dng giao din ha

SDI - Single Document Interface MDI - Multiple Document Interface Dialog

21

Lp trnh mi trng Windows

SDI - Single Document Interface


Mt ca s lm vic Cho php thay i kch thc ca s (Resizeable) Khng c cc ca s con V d: Notepad, Paint,

22

Lp trnh mi trng Windows

MDI - Multiple Document Interface


Mt ca s lm vic chnh v nhiu ca s con Cho php thay i kch thc ca s (Resizeable) Cho php Maximize/Minimize/Close cc ca s con V d: Word, Excel, VC++,

23

Lp trnh mi trng Windows

Dialog

Mt ca s lm vic Thng kch thc c nh Thng c cc button, edit box, list box, V d: Calculator, CD Player,..

24

Lp trnh mi trng Windows

Ca s - Window

L mt vng ch nht trn mn hnh dng hin th kt qu output v nhn cc input t ngi dng Cng vic u tin ca 1 ng dng GUI l to mt ca s lm vic Mi ca s u c 1 ca s cha (parent window), ngoi tr ca s nn Desktop Ti mi thi im, ch c mt ca s nhn input t ngi dng (Active/Focused window)

25

Lp trnh mi trng Windows

Cc thnh phn ca mt ca s

26

Lp trnh mi trng Windows

Cc control thng dng


Tab Control

Edit box Listbox Combobox Check box Static text

Button
27 Lp trnh mi trng Windows

Cc control thng dng

28

Lp trnh mi trng Windows

Lp trnh hng s kin


Qui trnh x l thng ip Cc loi thng ip thng gp Vng lp x l thng ip

29

Lp trnh mi trng Windows

Pht sinh cc s kin v thng ip

30

Lp trnh mi trng Windows

Lp trnh hng s kin

Lung iu khin ca chng trnh c xc nh da vo hnh ng ca ngi dng khi s dng chng trnh

31

Lp trnh mi trng Windows

Th tc ca s

H iu hnh ra lnh cho ng dng nh th tc ca s (Window Procedure) Hm ca s cho bit phn ng ca chng trnh vi cc tc ng bn ngoi nh user input... H iu hnh Windows gi thng ip cho mt chng trnh ng dng bng cch gi hm ca s ca ng dng , vi tham s l thng ip

32

Lp trnh mi trng Windows

33

Lp trnh mi trng Windows

Windows Application trn C


LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT (") ; HWND MSG hwnd ; msg ;

WNDCLASS
wndclass.style

wndclass ;
= CS_HREDRAW | CS_VREDRAW ; = WndProc ;

wndclass.lpfnWndProc ...

Khai bo ca s

wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass)) { MessageBox (NULL, TEXT ("), ) ; return 0 ; } hwnd = CreateWindow (szAppName,...,NULL) ; ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; }

ng k ca s

Vng lp bt thng ip
Lp trnh mi trng Windows

34
}

return msg.wParam ;

Windows Application trn C (Hm x l thng ip)


LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc ; PAINTSTRUCT ps ; RECT rect ; switch (message) { case WM_CREATE: ... return 0 ; case WM_PAINT: ... return 0 ; case WM_DESTROY: ... return 0 ; .... } return DefWindowProc (hwnd, message, wParam, lParam) ; }

Thng ip nhn c X l thng ip

35

Lp trnh mi trng Windows

Mt s thng ip thng gp
Thng ip WM_CHAR WM_COMMAND WM_CREATE WM_DESTROY WM_LBUTTONDOWN WM_LBUTTONUP c gi khi C mt k t c nhp t bn phm Ngi s dng click mt mc trn menu, button Mt ca s c to ra Mt ca s b hu. Phm tri chut c nhn Phm tri chut c th ra

WM_MOUSEMOVE
WM_PAINT WM_QUIT WM_SIZE
36

Con tr chut di chuyn trn mn hnh


Ca s cn v li ng dng sp kt thc Ca s c thay i kch thc
Lp trnh mi trng Windows

Windows Application trn C# (Chng trnh chnh)


using System; using System.Windows.Forms;

namespace NotepadForms
{ public class Program { [STAThread] static void Main() { Form myForm = new MyForm(); Khai bo ca s

Application.Run(new MyForm());
} }

Khi ng vng lp thng ip

37

Lp trnh mi trng Windows

Windows Application trn C# (X l thng ip)


public class MyForm : System.Windows.Forms.Form { public MyForm() Gn s kin { this.Paint += new System.Windows.Forms.PaintEventHandler (this.MainForm_Paint); }

}
}

private void MainForm_Paint (object sender, System.Windows.Forms.PaintEventArgs evt) { } X l s kin

38

Lp trnh mi trng Windows

Ti nguyn - Resource

Ti nguyn (Menu bar, dialog, bitmap, icon, cursor,) ca ng dng c nh ngha bn ngoi v c thm vo trong file thc thi ca ng dng khi bin dch
Cc loi ti nguyn ca ng dng Accelerator table: bng m t phm tt (hot-key) Bitmap: nh bitmap Caret: con tr vn bn Cursor: con tr chut Dialog box: khung hp thoi (Dialogbox Template) Font: font ch
Lp trnh mi trng Windows

39

Ti nguyn - Resource

Cc loi ti nguyn ca ng dng Icon: biu tng Menu: menu String-table entry: bng m t cc chui k t Version information: bng m t thng tin phin bn

40

Lp trnh mi trng Windows

41

Lp trnh mi trng Windows

Gii thiu .NET

.NET bao gm mt b y cc cng c gip to v ci t cc ng dng, .NET bao gm:

Sn phm ca .NET

Visual studio.NET IDE Ngn ng lp trnh: C#, VB.NET

Dch v web ca .NET .NET Framework

42

Lp trnh mi trng Windows

.NET Framework

Tng tc gia cc thnh phn trong v ngoi .NET Framework Common Language Runtime Engine c lp ngn ng Th vin lp c s Qun l phin bn Bo mt

Tnh di ng (portable)

43

Lp trnh mi trng Windows

Kin trc .NET Framework

.NET framework bao gm 4 thnh phn ch yu

Common Language Runtime (CLR) Cc lp c s ca .NET Framework Data Management Giao din ngi dng

44

Lp trnh mi trng Windows

.NET Framework
VB C++ C# VJ# Visual Studio.NET

Common Language Specification ASP.NET: Web Services and Web Forms Windows Forms

ADO.NET: Data and XML Base Class Library Common Language Runtime
45 Lp trnh mi trng Windows

CLR

Common Language Runtime l mi trng cho tt c cc ng dng vit trn .NET chy CLR h tr nhiu ngn ng v cung cp cc cng c dng chung cho cc ngn ng lp trnh khc nhau, gip cho vic tng tc qua li gia cc ngn ng lp trnh khc nhau d dng hn

46

Lp trnh mi trng Windows

Cc c im ca CLR

T ng qun l b nh H thng kiu d liu dng chung gia cc ngn ng lp trnh Tnh tng tc gia cc ngn ng c lp vi cu trc phn cng bn di C ch bo mt h thng An ton kiu d liu

47

Lp trnh mi trng Windows

CLR
VB .NET Visual C#

VB .NET Compiler

VC# Compiler

Microsoft Intermediate Language (MSIL)

Common Language Runtime (CLR) Just in Time (JIT) Compilers

Native Code
Lp trnh mi trng Windows

48

Qu trnh bin dch

49

Lp trnh mi trng Windows

CLR Execution Model


Source code
VB C# C++

Compiler

Compiler
Assembly IL Code

Compiler
Assembly IL Code

Unmanaged Component

Managed code

Assembly IL Code

Common Language Runtime


JIT Compiler

Class Loading and Layout Execution support Garbage Collection Security

Native Code

Operating System Services - Windows


50 Lp trnh mi trng Windows

Cc lp c s ca .NET framework

c xy dng theo phng php hng i tng Cung cp cc lp dng x l cc vn thng gp phi khi pht trin ng dng c dng chung cho nhiu ngn ng lp trnh khc nhau c t chc thnh nhng namespace c lu tr trong assembly.

51

Lp trnh mi trng Windows

Cc lp c s ca .NET framework

Namespace dng nhm cc lp v cc interface c mi quan h lun l vi nhau. Cc namespace c th c dng trong bt c ngn ng no tng thch vi .NET. Namespace c s dng hn ch vic dng cng mt tn cho 2 hay nhiu lp c mc ch s dng khc nhau

52

Lp trnh mi trng Windows

Cc lp c s ca .NET framework

Assembly l mt n v phn mm c cha y cc thng tin v cc lp hin thc, cc cu trc v cc interface hin thc ng dng Assembly lu tr cc thng tin m t chnh n, thng tin ny gi l meta data

53

Lp trnh mi trng Windows

Cc lp c s ca .NET framework

System System.Net System.Reflection System.IO

System.Security System.Text System.Threading System.Diagnostics

System.Runtime. InteropServices System.Globalization System.Configuration System.Collections

54

Lp trnh mi trng Windows

Cc lp c s ca .NET framework

System System.Collections System.Drawing System.IO System.Data System.Windows.Forms System.Web.UI System.Web.Services ..


55 Lp trnh mi trng Windows

ADO.NET

L cc lp truy cp d liu cho .NET Framework c thit k cho trp cp d liu hiu qu cao H tr XML v disconnected record sets

56

Lp trnh mi trng Windows

Giao din ngi dng

Window form: dng to ng dng cc b c giao din ca s. Web form: dng to ng dng web Console: Dng to ng dng c tng tc bng lnh ging nh giao din Ms Dos

57

Lp trnh mi trng Windows

Common Language Specification


H thng kiu d liu chung (Common Type System CTS) Metadata c t ngn ng chung (Common Language Specification CLS) H thng thi hnh o (Virtual Execution System VLS)

58

Lp trnh mi trng Windows

Common Language Specification

Common Type System: Tch hp cross-language, s dng kiu an ton v thi hnh code hiu nng cao M hnh hng i tng cho nhiu ngn ng Cc lut gip s dng cc i tng nhng ngn ng khc nhau Cc lut gip cc i tng vit bi cc ngn ng khc nhau tng tc vi nhau Cc lut cho phm vi ca cc kiu Cc lut qun l tha k kiu, phng thc o v thi gian sng ca i tng
Lp trnh mi trng Windows

59

u im ca .NET Framework

Dng chung cho nhiu ngn ng lp trnh To ng dng c lp vi mi trng phn cng bn di Cho php vit ng dng bng nhiu ngn ng tng thch vi .NET T ng qun l ti nguyn D dng trin khai ng dng

60

Lp trnh mi trng Windows

Visual studio.NET IDE

Visual Studio .NET Integrated Development Environment (IDE) cung cp mt giao din dng chung pht trin nhiu loi d n khc nhau. Cung cp mi trng thit k, vit code, kim tra v sa li khi pht trin ng dng Cc thnh phn ca Visual Studio .NET IDE

D n v gii php Giao din ca cc thnh phn

61

Lp trnh mi trng Windows

Khung son tho Qun l solution

Qun l tin trnh


62

Xut kt qu
Lp trnh mi trng Windows

Lch s Visual Studio


1997

Visual Studio 97 Visual Studio 6.0 Visual Studio .NET Visual Studio 2005 Visual Studio 2008 Visual Studio 2010 | .NET 1.0

1998

2002

2003

Visual Studio .NET 2003 | .NET 1.1


| .NET 2.0 | .NET 3.0 | .NET 3.5 | .NET 4.0

.NET Framework

2005

2006

2008

2010

2012

Visual Studio 2012 |.NET 4.5

63

Lp trnh mi trng Windows

D n v gii php

Trong visual studio .NET ng dng c to thnh t nhiu phn t v d nh file, th mc t chc cc phn t trn .NET cung cp d n v gii php D n (project): cho php xy dng, dch v sa li cc thnh phn to nn ng dng. D n c dch ra thnh file exe hoc dll Gii php (Solution): Bao gm mt hay nhiu project

64

Lp trnh mi trng Windows

D n v project
Solution Project 1

Project 1 Items

Project 2

Project 2 Items

Miscellaneous Files

65

Lp trnh mi trng Windows

Q/A

66

Lp trnh mi trng Windows

You might also like