You are on page 1of 618

"_r ...

Phuong Lan «u: bien) W



Tim. hU~u ki~n trite .NETquaC#

Tao ting d1;1Dg Windows Forms, ADO.NET, Web Service, ASP.NET

GDI+~ COM~ AsselDbly (rong.NET

I I

I

I . I

i

Phuong Lan (Chu bien) Hoang DUe Hii

LAp TRiNH WINDOWS



, .

val



,. -'? ..... --

NHA XUAT BAN LAO f>QNG - XA HQI

... ?

LOINGO

Kinh thua quy Ban doc gan xa, Ban xuAt bin MKPUB trutrc het xin bay to long biet an va niem vinh hanh trudc nhiet tlnh cua dong dao Ban doc d6i voi tu sach MKPUB trong thoi gian qua.

Kh.lu hieu cua chung tOi Ia:

* Lao dong khoa hoc nghiern tuc,

* Cha.'t hrong va ngay cang chAt luong' han. * TAt ca vi Ban doc,

RAt nhieu Ban doc da gai mail cho chung tOi d6ng g6p rihieu y kien quy bau cho tu SIkh.

Ban xuat ban MKPUB xin dliqc kinh moi quy Ban doc tham gia cung nang cao chili luong tu sach cua chung ta:

Trong qua trinh doc, xin cac Ban ghi chu lai cac sai s6t (du nho, Ian) cua cuon sach hoac cac nhan xet cua rieng Ban, Sau d6 xin giii v~ dia chi:

E-mail: mk.book@cinet.vnnews.com;mk.pub@cinet.vnnews.com Hoac gm v~: Nha sach Minh Khai

249 Nguyen Thi Minh Khai, Q.I, Tp. H& Chi Minh Neu Ban ghi chu t.ruc tiep len cuon sach, r5i gm cuon sach d6 cho chung toi thi chung toi se xin holm Iai circe phi buu dien va gm lai cho Ban cunn sach khac,

Chung toi xin giii ti.\ng m9t cuon sach cua til sach MKPUB tuy chon lua cua Ban theo m9t danh muc thich hop se duoc gai tci Ban.

Vdi muc dich ngay cang nang cao chat hrong cua tu sach MK.PUB, chung toi rat mong nhan duoc sl! hop tac cua quy Ban doc gan xa.

" MK.PUB va Ban. doc cung lam l"

MK.PUB

MVCLVC

LOI NOO 3

Ml,JC Ll,JC 5

PhAn I M{$ DAU 13

MfJ DAU 15

Chtidng 1-1: BQ khung .NET (.NET Famework) 15

1. Giai thieu nhanh v~ .NET 15

. 2. Xoa bo huy~n thoai v~ mOt may ao .net 15

3. Ngon ngii" trung gian Microsoft (MSIL) 17

4. Quan ly bO nho .NET 18

5. Ht\\ thong kiii'u dulit\\u eua·.NET 18

6. Cac d6i tugng trong ht\\ th6ng eua khung .NET 19

7. C# - mot ngon ngil' l~p trinh maio 19

8. Cac doi tuong W rna ta nhu the nao? 20

9. Tuong tac vdi the gidi COM 20

10. Windows Forms, Web Controls.va GDI+ 20

Chu'dng 1.2: BQ thttc thi ngon ngU' Mng quat 21

1. T6ng quan 21

1.1. Dan gian hoa vit\\c phat trign 21

1.2. Cong cu h5 trg 21

1.3. Hli trg da ngon ngif : 22

1.4. Vit\\c triii'n khai dugc thuc hien d~ han 22

1.5. SI! tach bit\\t cac phan mern 22

1.6. Tinh an toan kiii'u va sl! kiii'm tra 23

1.7. Tinh bao ~t 23

2. Quan M cua CLR vdi .NET 23

2.1.' Chi tiet v~ CLR. 23

2.2. CLR vao hie thuc thi 25

2.3. Cac kiii'u du)i~u duqc cung cap bi1i CLR. 27

2.4. Dtr Iieu va rna lo\\nh cua .NET 28

2.5. Ma l~nh cua COM va viec truy xuat dil' lieu 29

2.6. Cac thanh phan rna r{\ng cua .NET d6i vdi C++ 32

2.7. Cac ngoai 10\\ (Exception) 35

2.8. H6 trg vi~c giJ r6i.. 36

3. Ket chuong 36

!J6

MVC LVC

ChUdng 1.3 : Ngon ngii' trung gian IL : 37

1. Lien tac (INTER·OP) .ngon ng(1 38

2. HELLO IL 39

3. Ham (FUNCTIONS) : 41

4. Lap (CLASSES) 43

5. ILDASM < 45

6. METADATA : 48

7. REFLECTION API .49

8. Ket chuang 52

Chudng 1.4 : Lam vii;c vdib';' quan Iy C++ 53

1. Cac W khoa rna rong cua C++ 54

2. Sa dung trinh bien dich C++ cho Managed C++ 55

3. Cac lap thu gom rae (Garbage Collected) 56

4. ChI dan (Directive) #using 56

5. Chuni (String) " 58

6. Tron cac rna I(\nh diroc quan Iy (Managed) va khorig diroc quan ly

(Unmanaged) 59

7. Ch6t chat (Pinning) cac rna l~nh Managed .

.. ..... 59

8. Cac giao tiep duoc quan Iy (Managed Interface) 60

9. Tao ra cac killu gia tri 62

10. 'I'ao va sLt dung cac mo hinh uy thac (Delegate) 65

11. G9i cac DLL .NET tuy bien W ma h~.uh Managed C++ cua ban 68

12. Sa dung DLL C++ dircc quan Iy va .khong duqe quan ly trong chuong trtnh

.NET cua ban ,'., 70

13 .. Dung cac thuQc ttnh (Properties) tr~ng cac Lap cua ban 74

14. BaD dam viec sAp xep va dong gci cac cau true C++ cua ban 76

15. Ket chuang 84

Chucng 1.5: Gi8i thii;u VISUAL STUDIO, .NET 85

1. Tich hop moi truong phat tri~n (IDE) 85

2. DI! an (Projects) 88

3. Nhieu du an trorig m¢t Solution dan:', 88

4. Cac file phu thuoc cua du an (ProjectDependencies) 90

5. Class View . 90

6. Resource View 91

7. Macro Explorer 91

8. Trinh giup do (HelpL " " 91

9. Server Explorer " 93

10. Cu-a s6 ket xuat thong tin (Output). : 94

CHUONG 1-1: BO khung .NET

71!J

11. Tim kiem cac ky hieu Mc trung 96

12. Chi rnuc va ke't qua tim kiern 97

13. Cua s5g6 loi (Debug) 97

14. Trinh trq giup dQng (Dynamic Help) 100

15. Clia s6 Favorite . : 101

16. Chuong trinh ga loi (Debugging) 101

17. Cai dat breakpoint nang cao 102

17.1. Conditional Breakpoints 103

17.2. Hit Counts . 104

18. Lam gl khi rna chuang trinh bi tarn ngung 104

19. GAn trlnh ga loi (Debugger) vao mot tien trmh (Process) 104

20. JIT Debugging..... . 105

21. Ke't chuong 106

Phdn II: Ngon.Nga CI : 107

Chuong 2.1 : Cac vdn dE! eo' ban cua C# 109

1. H~ thong killu trong C#........................... . l10

1.1. Cac kiii'u gia tr] trong lap trmh : 111

1.2. Cac kieu tham chieu 114

1.3. Bao va kh6ng bao (Box va Unbox) 116

2. Cac khai niem lap trinh.....................................117

2.1. Kh6ng gian t€m (Namespace) 117

2.2. Cac phat bieu l~nh (Statements) 120

2.3. 'I'oan tu- di~u kien ?: .. .. 123

2.4. 'I'oan tu- (Operators i.. ..

2.5. Arrays (Mang) .

. .... 134

. 137

2.6. Struct (Ca'u trucr.i..; . 140

3. Lap (Class) 143

3.1. Doi tinrng (Object)........... .. 145

3.2. Phuong thirc (Method) :.......................... 145

3.3. Truyen tham 80 147

3.4. Thuoc tinh (Properties) 151

3.5. Toan tlt (Operator) 153

4. Ke'thua (Inheritance) 160

5. Da hlnh (Polymorphism) 162

6. Giao dian (Interfaces) 165

7. M6 hinh chuyen giao (Delegates) 168

8. Ke't chuang 170

Ml)C LT,JC

Chtidng 2.2 : C# nang cao 171

1. T~p hop (Collection) cua .NET 171

1.1. Stack 171

1.2. Hang doi (Queue) .. 172

1.3. Bang bam Hashtable 173

2. Danh sach lien k€t (Link List) 174

3. Attributes (dac tinh) 178

4. XML Serialization 179

5. C# hi} tro XML Serialization 180

6. K€t chirong 192

Phiin III : WINDOWS FORMS 193

Chtidng 3.1: Windows Forms 195

1. Giai thieu vii Windows Forms coo kie'n true .NET 195

2. Windows Forms va U'ng dung Hello World 196

3. Tao va sli dung cac be) xu ly su kien (Event Handler). 198

4. Dinh nghta cac ki~u duong vien (Broder Style) cho Forms 201

S. Tao va them vao trlnh dan menu 202

6. Tao va them vao cac muc chon tiit (Shortcut Menu) 204

7. Xli Iy sl! kien phat sinh til Menu 20S

7.1. SI! kisn dieu khien giao dien ngirci dung cua MenuItems 206

7.2. Dinh nghia Menultems la thanh phan each (Seporator) 207

7.3. Xli Iy sl! kien Select.. 209

7.4. Thi€t k€ khung Menu 212

7.5. Hien thi Menu tU phai qua trai................................................. 214

7 .6. T~iO va sil' dung cac Menu ngu canh (ContextMenu) 214

7.7. Thay the, sao chep lai va trOn cac muc cua Menu 215

7.8. Tao va them vao cac Menu con (sub-Menu) 222

8. K€t chuang 224

Chtidng 3.2 : Xii' ly giao dil,;n db hoa (GUI) 225

1. Giffi thieu v~ thanh phan giao dien d6 hoa (GUI) 225

2. HOp thoai (Dialog) 225

2.1. Sil' dung cac hop thoai thong dung (Common Dialog) 226

2.2. HQP thoai Print va Print Preview 236

3. Tao hOp thoai : 244

3.1. HQP thoai Model va Modeless 244

3.2. Chuyen du Iieu giua cac thanh phan trong hQp thoai . 247

3.3. Ki~m tra hrrp l~ (Validation) 249

ClludNG 1·1: BQ khung .NET

4. Sa dung cac dieu khien 252

4.1. Checkbox va nut Radio 252

4.2.6 soan thao Edit 257

4.3. ListBox 257

4.4. TreeView 257

4.5. Bang c1i~u khien Tab 258

4.6. Quan If cac thanh phan di~u khien dQng 258

5. Kilt chuong , 284

Chlidng 3.3 : Rang buoc dii' lieu 285

1. Chien hroc rang buoc duli$u............................... . 285

2. Cac ngu6n du lieu rang buoc 285

2.1. Giao tiep IList............................................ . 285

2.2. Cac dIli nnmg .NET cai d$t IList 286

3. Rang buoc gian don 286

4. Rang buoc du li~u gian dan 291

5. Rang buoc duli~u phirc hop . 297

6. Rang buoc thanh phan dieu khien veii Co' sci du WiU su dung ADO.NET .. 301

7. Tao ra mot khung nhin Co' sd du lieu (Databse Viewer) vo-i Visual Studio va

ADO.NET........ . 302

8. Kilt chuong 304

Chlidng 3.4 : xay d\l'llg Ung d~ng Windows Forms (Scribble .NET) 305

L Cac tai nguyen trong .NET 305

2. Dia phirong h6a san pharn mot each d~ dang 306

3. Cac lrip quan Iy tai nguyen cua .Net 306

3.1. TIm mot van hoa 307

4. Tao lap cac tal nguyen van ban 308

4.1. Chu6i tai nguyen van ban 309

4,2. MQt chuang trlnh mAu dira tren tai nguyen 311

4.3. Tao li;tp va stl' dung goi ket hop :......................... . 312

5. Dung Visual Studio. NET M qu6c te hoa 315

6. Tai nguyen hlnh anh 317

7. Sil dung danh sach hinh anh........................................................ . 318

8. Phuong each li).p trlnh truy xuat den cac tai nguyen. . 323

9. El9C va viet ti;tp tin XML RESX 329

10. KElt chirong 338

Chlidng 3.5: GDI+: Giao dien d6 hoa cua .NET 339

1. Cac nguyen If Co' ban ella GDI+ 339

Ml,JC Ll,JC

2. Hoi tuong Graphics 340

3. Cac h~ tea dQ do hoa 340

4. Ve duong thiing va cac hlnh don gian 341

5. Sa dung but ve (Pen) va co ve (Brush) chuyen mau gam mau 344

6. But ve va C9 ve c6 cha't lieu 346

7. Lam trrrn cac dau milt cua dUCrng thi'lng 347

8. DUCrng cong va cac durrng do thi 349

9. D6i tuong GraphicsPath 357

9.1. Them van ban <Text) va cRC duong do thi khac 359

to. Ky thuat Cl'it bing duo-ng duo-ng do thi va vung (Region) 360

11. Cac phep bien d6i (Transformations) 365

12. Sv phoi mau voi gia tri Alpha (Alpha Blending).......... 374

13. Sv phoi mau vci gia tri Alpha cho hinh anh 376

14. Nhung thao tac xu ly khac trong khorig gian rnau 380

15. Kat chl1ang......................................................... . 384

ChuO'ng 3.6: Th1!c hanh dng dv.ng Windows Forms 385

1. Stl' dung thuoc tinh.................................... . 385

2. Nang cap thuec tinh Experience 390

3. Giai thich ling dung : Formpaint.exe . 393

4. Ket chuang 432

Phiin IV : Ky thu~t Web 433

Chirong 4.1 ; ASP.NET 435

1. Web mot hoi th6 mrii 435

2. Yeu d.u can thiet cho ASP.NET...... . 435

3. Hello ASP.NET 436

4. Them chut huong vi 441

4.1. Kiem tra y tl1ang 441

5. Ket chuang...... ..__ __ 450

Chudng 4.2 : Truy xua't dll li~u tren .NET 451

1. Tang da lieu (Datal.ayer) .451

2. Lap Employee va lap Departrneut.. .462

3. Stored Procedures 462

4. Cai dat lap 463

5. Ki~m tra (Testing) , , 470

6. Hi) trg tim kiem gian dan .472

7. KetchLlang , 478

Chudng 4.3: WebForms 479

CHudNG 1·1: Bi) khung ,NET

1. Gi6i thieu ASP,NET WebForms ."......" " , "

, .479

1.1. Cac UserControl , .479

1.2. HeaderControl " , ",," " .. .479

1.3. EmployeeViewPagelet: Mi)t each tie'p can khac , ,485

2. Cac trang ASPX" 492

21. EmployeeEdit................................ .. '" .492

2.2. EmployeeListing .. , " , .. "........ . .. ".,,, 498

2.3. Trang tim kiem: Noi b<'!t Mu tim thong tin" ..

. " 507

.3. Ket chuang " " " .. " ".

.., " 514

Chrrong 4.4 : Cac dich vu Web (Webserviees) 515

1. Dich V1,l Echo (Echo Service) " " , 515

2. Xay dung lrrp Proxy " " , 520

3. Proxyfactory " " , " , .

. ....... 525

4. Cac chuang trinh Windows forms sLi dung WebService " 527

5. Tra v€' kieu do nginri dung dinh nghia , 530

6. T~o Service " .. , 530

7. Tao ra cac rang buoc cho Client " 533

8. Cac thuoc tinh XML , " .. " ,. . 536

9. Ket chuang , " , ,' 542

Philn V : GOI RET HOP 543

Chtidng 5.1 : Cac g6i ke't hQ'p (Assembly) 545

1. Goi ket hop (Assembly) la gt? " , ,...... " 545

1.1. NQi dung goi ket hop "... "" , .. " , 545

1.2. Oinh vi goi ket hop .,........... , ""............ 546

2, G6i ket hqp 100 trong mot t<j.p tin dan , " ".".547

3. G6i ket hop [00 trong nhieu t~p tin " " 547

4. Cac thuoc tinh cua goi ket hop " .. "" .. " "" " 549

5. Tai nap goi ket hop khi chuang tri nh dang thuc thi. ,.................. ",551

5.1. DI,f an FormHost " " 551

5.2. Trinh duyet g6i (Assembly Viewer) dan gian " 560

6. Ket chirong , , " " 568

Chuong 5.2: Chit ky s6 va phien ban 569

1. DlI hell................ , ,.............. . " ""."".569

2. BQ d~m (Cache) toan cue danh cho grii ket hop (Global Assembly Cache)

......................................................................... , , , , 569

3. Phien ban (Version) cua component. .

4. Cac g6i Assembly sU" dung nhieu phien ban ..

. 570

. 573

You might also like