Cong Nghe NET
-
Upload
hai-thanh-tran -
Category
Documents
-
view
179 -
download
1
Transcript of Cong Nghe NET
Mn hc
Cng ngh .NETGV: Phm Vn Thun B mn K thut My tnh Khoa CNTT- H BKHN email: [email protected]
1
Mc tiu mn hc Sau khi kt thc mn hc ny, sinh vin c th Trnh by c c trng c bn ca cng ngh .NET Trnh by c k thut lp trnh hng i tng s dng ngn ng C#.NET Lp trnh c mt ng dng Windows Form s dng ngn ng C#.NET, kt ni vi c s d liu SQL Server, lp bo co s dng cng c Crystal Report. Lp trnh ng dng Web s dng ASP.NET Tm hiu mt s cng ngh mi trn nn tng .NET2
Lp trnh C#.NET
Ti liu tham kho chnh: Programming C#, 4th Edition, Jesse Liberty Pro .NET 2.0 Windows Forms and Custom Controls in C#, Matthew MacDonald Professional C#, 2nd Edition, Wrox Press Ltd (Bn dch ting Vit)
3
Lp trnh C#.NET
Ni dung mn hcChng 1: Gii thiu C# v .NET Framework Chng 2: Gii thiu mi trng pht trin ng dng Visual Studio .NET 2005 Chng 3: C# cn bn Chng 4: Hng i tng trong C# Chng 5: Lp trnh Windows Form vi C# Chng 6: ASP.NET
4
Lp trnh C#.NET
Ni dung mn hcChng 1: Gii thiu C# v .NET Framework Chng 2: Gii thiu mi trng pht trin ng dng Visual Studio .NET 2005 Chng 3: C# cn bn Chng 4: Hng i tng trong C# Chng 5: Lp trnh Windows Form vi C# Chng 6: ASP.NET
5
Lp trnh C#.NET
Ni dung chng 11.1. Nn tng .NET (.NET Flatform) 1.2. Kin trc .NET (.NET Framework) 1.3. Bin dch trong .NET 1.4. Ngn ng lp trnh C#
6
Lp trnh C#.NET
1.1. Nn tng .NET (.NET Flatform).NET Platform l nn tng pht trin: - Cung cp giao din lp trnh (API) cho cc dch v (services) v cc hm API truyn thng ca h iu hnh Windows - Cung cp mt nn tng pht trin chung cho nhiu ngn ng lp trnh khc nhau ca Microsoft: C#, Visual J#, Visual Basic
7
Lp trnh C#.NET
Nn tng .NET (.NET Flatform).NET Platform bao gm cc nhm sn phm Tp hp cc ngn ng (C#, VB), mt tp hp cc cng c pht trin bao gm Visual Studio .NET, th vin pht trin cc ng dng web (web and web services), cc ng dng Windows cng nh mi trng thc thi chung (Common Language Runtime (CLR)) Nn tng .NET 2.0 khng ch h tr cc ng dng trn my tnh c nhn, my ch m cn h tr cc thit b nhng (Cell phones, game boxes)8
Lp trnh C#.NET
1.2. Kin trc .NET (.NET Framework) Microsoft .NET h tr nhiu ngn ng khc nhau nh h thng - Common Type System (CTS) Quy nh nhng yu cu ti thiu mt ngn ng lp trnh c th tch hp vo .NET Common Language Specification (CLS) Kin trc .NET l tng ngay trn h iu hnh, bao gm: 5 ngn ng lp trnh chnh thc: C#, VB, VC++, Visual J# v Jscript.NET CLR (Common Language Runtime) Cc th vin lp trnh9
Lp trnh C#.NET
.NET Framework
10
Lp trnh C#.NET
1.3. Bin dch trong .NET .NET khng bin dch trc tip cc chng trnh thnh file thc thi. .NET bin dch cc chng trnh thnh cc assembly, cha cc m chng trnh trung gian ca Microsoft (Microsoft Intermediate Language MSIL) CLR s dch mt ln na, s dng chng trnh bin dch Just In Time (JIT) chuyn cc m MSIL sang m my v thc thi11
Lp trnh C#.NET
Bin dch trong .NET
12
Lp trnh C#.NET
1.4. Ngn ng lp trnh C# C# c pht trin bi nhm tc gi iu hnh bi Anders Hejlsberg v Scott Wiltamuth, tc gi ca Turbo Pascal v Borland Delphi. C# l ngn ng lp trnh hng i tng (Object Oriented Language) H tr nh ngha v lm vic vi lp (class) H tr y ba c ch c trng ca lp trnh hng i tng: ng gi (encapsulation), k tha (inheritance) v a hnh (polymorphism)13
Lp trnh C#.NET
Ni dung mn hcChng 1: Gii thiu C# v .NET Framework Chng 2: Gii thiu mi trng pht trin ng dng Visual Studio .NET 2005 Chng 3: C# cn bn Chng 4: Hng i tng trong C# Chng 5: Lp trnh Windows Form vi C# Chng 6: ASP.NET
14
Lp trnh C#.NET
Ni dung chng 22.1. Mi trng pht trin ng dng .NET 2.2. Chng trnh Hello World 2.3. Mi trng pht trin ng dng Visual Studio .NET
15
Lp trnh C#.NET
2.1. Mi trng pht trin ng dng .NET
Mi trng thc thi ng dng .NET: Microsoft .NET Framework http://www.microsoft.com/downloads/
Trnh son tho v bin dch- Visual Studio .NET IDE - Trnh son tho vn bn (Notepad, UltraEdit) & Trnh bin dch bng dng lnh (Command-line compiler)
16
Lp trnh C#.NET
2.2. Chng trnh Hello World1) M chng trnh Visual Studio .NET 2005 2) To mt d n mi vi kiu ng dng console(HelloWorld)
17
Lp trnh C#.NET
Chng trnh Hello WorldChng trnh s t to mt khung d n Thm dng code n gin hin th thng bo helloworld ra mn hnh Bm F6 bin dch, F5 chy18
Lp trnh C#.NET
Chng trnh Hello World
Kt qu khi chy chng trnh Hello World19
Lp trnh C#.NET
Mt s khi nim c bn trong C# Ch thch Ch thch trn mt dng dng // Ch thch trn nhiu dng dng /* */ Trnh bin dch b qua ch thch Ch dng cho ngi c Nhm cc tnh nng c lin quan ca C# vo mt loi Cho php d dng ti s dng m Trong th vin .NET framework c nhiu khng gian tn Phi tham chiu ti s dng20
Namespaces (Khng gian tn)
Lp trnh C#.NET
Mt s khi nim c bn trong C# K t cch trng (White Space) Cha cc khong trng, k t xung dng v tabs T kho (Keywords) Cc t khng c dng lm tn bin,tn lp hay bt k th g khc C cc chc nng c bit khng th thay i trong ngn ng V d : class Tt c cc t kho u c vit thngLp trnh C#.NET21
Mt s khi nim c bn trong C# Lp (class): nh ngha mt kiu d liu, m t mt nhm cc i tng vi cc phng thc v thuc tnh Phng thc (Method) Thuc tnh (Property)
22
Lp trnh C#.NET
Chng trnh Hello WorldUsing statementusing System; using System.Collections.Generic; using System.Text; namespace HelloWorld { class Program { static void Main(string[] args) { Console.WriteLine("Hello World"); } } }23
Namespace
Class
Static function
Code statement
Lp trnh C#.NET
2.3. Visual Studio .NET IDE 2005
Giao din lm vic chnhLp trnh C#.NET
24
G li s dng VS.NET 2005Set breakpoint -Nhn F9 hoc -Click chut tri vo bn l tri ca hng cn t breakpoint
25
Lp trnh C#.NET
G li s dng VS.NET 2005Bt u qu trnh debug: nhn F5 (Debug -> Start Debugging
26
Lp trnh C#.NET
G li s dng VS.NET 2005Xem gi tr ca cc bin, i tng
Xem gi tr cc bin, i tng ti ca s local
27
Lp trnh C#.NET
Ni dung mn hcChng 1: Gii thiu C# v .NET Framework Chng 2: Gii thiu mi trng pht trin ng dng Visual Studio .NET 2005 Chng 3: C# cn bn Chng 4: Hng i tng trong C# Chng 5: Lp trnh Windows Form vi C# Chng 6: ASP.NET
28
Lp trnh C#.NET
Ni dung chng 33.1. Kiu d liu (Types) 3.2. Bin v hng s (Variables and Constants) 3.3. Cc cu lnh v cu trc iu khin (Statements) 3.4. Cc ton t (Operators)
29
Lp trnh C#.NET
3.1. Kiu d liu (Types) C# l ngn ng nh kiu mnh: Phi nh ngha kiu d liu ca mi i tng (V d: integers, floats, strings, buttons) Trnh bin dch s kim tra v m bo ngn chn cc li do cc php gn sai kiu d liu
Phn loi d liu Phn theo phng thc nh ngha: build-in (c sn) v user-defined (ngi dng t nh ngha) Phn theo cch thc lu tr: value (tham tr) v reference (tham chiu)30
Lp trnh C#.NET
Kiu d liu (Types) Kiu tham tr (value type) Lu tr trong vng nh ngn xp (stack)
Kiu tham chiu (reference type) a ch lu tr trong ngn xp (stack) D liu thc c lu tr trong vng nh Heap
Cho php lu tr i tng c kch thc ln
31
Lp trnh C#.NET
Kiu d liu c sn (build-in type) C# h tr mt s kiu d liu c sn, mi kiu d liu ny tng ng vi mt kiu d liu h tr bi .NET CLS (Common Language System). C# c th s dng i tng do cc ngn ng khc trong b .NET to ra v ngc li (V d: VB.NET) Mi kiu d liu c kch thc xc nh
32
Lp trnh C#.NET
Kiu d liu c sn (build-in type)
33
Lp trnh C#.NET
Kiu d liu c sn (build-in type)
34
Lp trnh C#.NET
Escape Character
35
Lp trnh C#.NET
Chuyn i kiu d liu C hai cch chuyn i kiu d liu c sn Chuyn i ngm (implicity): qu trnh chuyn i din ra t ng v m bo khng b mt mt d liuV d: short x=5;int y=x;
Chuyn i tng minh (explicity) s dng ton t chuyn i (cast operator)V d: (char)65 -> chuyn i t s sang k t
36
Lp trnh C#.NET
3.2. Bin v hng s (Variables and Constants)
Bin (variable): Mt vng nh c nh kiu C th gn v thay i c gi tr Cc bin phi c khi gn trc khi s dng, nu khng, trnh bin dch s bo liint myInt; System.Console.WriteLine ("Uninitialized, myInt: {0}", myInt);
37
Lp trnh C#.NET
Hng s Hng s (Constant) L bin s nhng khng th thay i gi tr sau khi khi gn. const int myConst=32; myConst = 30;
38
Lp trnh C#.NET
Kiu lit k Kiu lit k cha mt tp hp cc hng s (enumerator list). Li ch ca enumerator Cho php nhm mt tp hp cc hng s c lin quan vi nhau -> trnh phi khai bo nhiu hng s v tng mi quan h logic gia cc hng s Lm n gin ha m chng trnhenum GoodWeather : uint { temperature=28, moisture=80, wind=5 }Lp trnh C#.NET
39
Chui (string) v cch t tn trong C# Chui l mt mng cc k t Khai bo v khi gn gi tr cho chui string myString=Test String;
Trong C#, chng ta nn t tn cc bin, cc phng thc, cc lptheo khuyn co ca Microsoft Tn bin: bt u bng ch thng (VD: someName) Tn phng thc v cc thnh phn khc: bt u bng ch hoa (VD: SomeOtherMethod)40
Lp trnh C#.NET
3.3. Cc cu lnh (statements) Mt chng trnh C# l mt dy cc cu lnh (statements) Mi cu lnh kt thc bi du ; Cc cu lnh c x l tun t theo chiu t trn xung di (tr cc cu lnh iu khin: lnh nhy, lnh lp)int x; // a statement x = 23; // another statement int y = x; // yet another statement41
Lp trnh C#.NET
Lnh nhy khng iu kin C hai trng hp pht sinh lnh nhy khng iu kin: C li gi mt phng thc: dng phng thc hin ti v chuyn sang (nhy khng iu kin) thc hin phng thc va triu gi, sau khi thc hin xong, tr v phng thc trc . S dng mt trong s cc lnh nhy khng iu kin: goto, break, continue, return hoc throw
42
Lp trnh C#.NET
Lnh nhy c iu kin Cu lnh: ifelse Cu lnh iu kin lng (Nested if) Cu lnh chn: switchcase
43
Lp trnh C#.NET
Cu lnh iu kin ifelseif (Biu thc iu kin) Cng vic 1 [else Cng vic 2]int valueOne = 10; int valueTwo = 15; if(valueOne>=valueTwo) { Console.WriteLine("Max= {0}",valueOne); } else { Console.WriteLine("Max= {0}",valueTwo); }44
Lp trnh C#.NET
Cu lnh iu kin lng (Nested if) C th c s dng trong nhng cu lnh iu kin phc tp, iu kin lng nhau.char charTest = 'z'; if (charTest < 'A') { Console.WriteLine("Khong phai chu cai hoa"); } else { if (charTest > 'Z') { Console.WriteLine("Khong phai chu cai hoa"); } else { Console.WriteLine("La chu cai hoa"); } }
45
Lp trnh C#.NET
Cu lnh chn: switchcaseswitch (biu thc cn kim tra) { case trng_hp: Cc cu lnh Lnh nhy (break, continue) [default: Cc cu lnh cho trng hp mc nh] }
46
Lp trnh C#.NET
Cu lnh chn: switchcasestatic void Main(string[] args) { const int Vietnam = 0; const int Laos = 1; const int Cambodia = 2; const int Thailand = 3; int country=Thailand; switch (country) { case Vietnam: Console.WriteLine("The Capital is Hanoi"); break; case Laos: Console.WriteLine("The Capital is Vientiane"); break; case Cambodia: Console.WriteLine("The Capital is Phnompenh"); break; default: Console.WriteLine("This country isn't belong to The Indochinese Peninsula"); break; }
47
Lp trnh C#.NET
Cu lnh chn: switchcasestatic void Main(string[] args) { string country="Vietnam"; switch (country) { case "Vietnam": Console.WriteLine("The Capital is Hanoi"); break; case "Laos": Console.WriteLine("The Capital is Vientiane"); break; case "Cambodia": Console.WriteLine("The Capital is Phnompenh"); break; default: Console.WriteLine("This country isn't belong to The Indochinese Peninsula"); break; }
48
Lp trnh C#.NET
Cc lnh lp Vng lp for Vng lp while Vng lp dowhile Vng lp foreach : s dng lp qua cc phn t ca mt mng hay mt tp hp
49
Lp trnh C#.NET
Vng lp forfor ( [initializers]; [expression]; [iterators]) statementKhi to Biu thc kim tra Lnh lp Cng vic cn thc thi for (int i=0; i= < false Ton t hoc logic (x==3) || (y==7) -> true Ton t ph nh logic !(x==3) -> true
||
!
Ch thch: d liu kim tra, x=5 v y=758
Lp trnh C#.NET
Ton t ba thnh phnconditional-expression ? expression1 : expression2 Conditional-expression: biu thc kim tra iu kin Expression1: biu thc 1, thc hin khi biu thc kim tra tr v true Expression2: biu thc 2, thc hin khi biu thc kim tra tr v false V d: int valueOne = 10; int valueTwo = 20; int maxValue = valueOne > valueTwo ? valueOne : valueTwo;59
Lp trnh C#.NET
Bi thc hnh s 1
60
Lp trnh C#.NET
Bi thc hnh s 1Bi 1: Vit mt chng trnh cho php ngi dng nhp tn ca h, sau in li tn di dng mt li cho
Bi 2: Vit mt chng trnh gi mt phng thc tnh bnh phng ca mt s
61
Lp trnh C#.NET
Bi thc hnh s 1Bi 3: Vit on chng trnh c vo mt s nguyn dng v kim tra s l chn hay l
Bi 4: Vit on chng trnh hin th bng cu chng ca s bt k (t 1 n 9)
62
Lp trnh C#.NET
Bi thc hnh s 1Bi 5: Vit chng trnh hin th mt tam gic vung cn to thnh t cc k t bt k, c di cnh nhp t bn phm
63
Lp trnh C#.NET
Ni dung mn hcChng 1: Gii thiu C# v .NET Framework Chng 2: Gii thiu mi trng pht trin ng dng Visual Studio .NET 2005 Chng 3: C# cn bn Chng 4: Hng i tng trong C# Chng 5: Lp trnh Windows Form vi C# Chng 6: ASP.NET
64
Lp trnh C#.NET
Ni dung chng 44.1. C bn v lp trnh hng i tng 4.2. Lp v i tng (Class and Object) 4.3. K thut k tha v a hnh (Inheritance and Polymorphism) 4.4. K thut chng ton t (Operator Overloading) 4.5. Cu trc struct 4.6. Interfaces 4.7. Mng, ch s v tp hp (Arrays, Indexers) 4.8. X l chui 4.9. Bt ngoi l (Handling Exception) 4.10. Delegates v EventsLp trnh C#.NET
65
4.1. C bn v lp trnh hng i tng
Quy cc thnh phn ca h thng v cc i tng Mt i tng l mt th hin ca mt lp (class)Class Loi c vng Object Con c vng 1 Con c vng 2 Con c vng 3Lp trnh C#.NET
66
Thuc tnh v phng thcLp v cc i tng thuc lp c chung cc thuc tnh (properties) v phng thc (methods) Thuc tnh (Property): kch thc, mu, gii tnh Phng thc (Method): bi, th, n
67
Lp trnh C#.NET
K tha (Inheritance)
68
Lp trnh C#.NET
Cc quan h (relationships)Cc i tng khng tn ti mt cch c lp, lun tn ti mi quan h gia n v cc i tng khc: tng qut ha (generalization) , cng tc (asscociation) Cc vt nm trong phng L hoa trn bn Bn v gh thuc nhm ni tht69
Lp trnh C#.NET
Tng qut ha (generalization)
Lp cha (fish) tng qut ha cc thuc tnh, phng thc chung ca cc lp con (Goldfish v Shark). Cc lp con cng c nhng thuc tnh, phng thc ring.70
Lp trnh C#.NET
Quan h cng tc (Association) Cc lp c lin kt (connected) hoc lin quan (related) vi nhau
Cd player + Speaker (Collaboration)
Shark eat fish
71
Lp trnh C#.NET
Quan h kt tp (Aggregation)Th hin mi quan h gia tng th (the whole) v b phn (parts) Tng th: n c vng B phn: tng con c vng
72
Lp trnh C#.NET
Quan h cu thnh (Composition) L mt dng ca quan h kt tp, tuy nhin yu cu cht ch hn Mi b phn (part) ch nm trong mt ci tng th (the whole) duy nhtVD: phng ng nh bn phi nm trong nh bn, khng th nm trong nh hng xm hay bt c ngi nh no khc
73
Lp trnh C#.NET
Quan h cu thnh (Composition) Khi ph hy ci tng th th ng thi ci b phn cng b ph hy
Ph nh
Ph phng ng
74
Lp trnh C#.NET
Quan h (relationship) S lng i tng tham gia vo quan h Quan h 1 1Mt lp hc trong mt phng hc
Quan h 1 nhiuMt gio vin c th dy nhiu lp
Quan h nhiu nhiuMt gio vin dy nhiu sinh vin Mt sinh vin hc nhiu gio vin
75
Lp trnh C#.NET
Tnh a hnh (Polymorphism) a hnh: l kh nng c th thc hin cng mt hnh ng (phng thc) vi nhiu cch thc khc nhau khng ph thuc vo i tng c th thuc v lp no
76
Lp trnh C#.NET
4.2. Lp v i tngnh ngha lp (class)[attributes] [access-modifiers] class identifier [:base-class [,interface(s)]] {class-body}
Access-modifiers : quyt nh phm vi truy cp ti cc thuc tnh v phng thc ca lp Identifier : tn lp Base-class : lp c s (lp cha) Class-body : nh ngha cc thuc tnh v phng thc ca lp77
Lp trnh C#.NET
Access-modifiersAccess-modifierpublic
Gii hn truy nhpKhng gii hn. Cc thnh phn public c th c truy xut bi bt c phng thc ca bt k lp no khc Ch c th truy xut bi cc phng thc ca chnh lp C th c truy xut bi cc phng thc ca chnh lp v cc lp dn xut (derived) t n C th c truy xut bi cc phng thc ca cc lp trong cng Assembly C th c truy xut bi cc phng thc ca lp , lp dn xut t lp v cc lp trong cng Assembly vi n78
private
protected
internal
internal protected
Lp trnh C#.NET
V d nh ngha lppublic class Time { // Cc thuc tnh private int Year; int Month; int Date; int Hour; int Minute; int Second; // Cc phng thc public public void DisplayCurrentTime() { Console.WriteLine("Ngay, gio hien tai"); } }Lp trnh C#.NET
Khai bo lp Cc thuc tnh (phng thc truy cp mc nh l private)
Phng thc ca lp
79
Khai bo v s dng i tng ca lppublic class Tester { static void Main() { Time t = new Time(); t.DisplayCurrentTime(); } }
80
Lp trnh C#.NET
To i tng (create object) S dng t kha new Class_name Object_name = new Class_name( ); V d: Time t=new Time( ); i tng l bin kiu tham chiu, khng phi tham tr. Bin t khng cha gi tr ca i tng Bin t cha a ch ca i tng c to trong b nh Heap81
Lp trnh C#.NET
Hm to (constructor) Khi to mt i tng -> gi hm to (constructor) Hm to mc nh: s c CLR cung cp nu ngi lp trnh khng nh ngha Hm to do ngi lp trnh nh ngha
Hm to c chc nng: To mt i tng ca lp v chuyn n sang trng thi xc nh (valid state) Hm to thng c dng khi gn cc thuc tnh ca i tng82
Lp trnh C#.NET
Hm to mc nh (default constructor) Hm to mc nh to i tng ca lp, ngoi ra khng lm g khc Cc thuc tnh c khi gn cc gi tr mc nh Kiu d liu numeric (int, long, ) bool char enum reference 0 false \0 (null) 0 null83
Gi tr mc nh
Lp trnh C#.NET
Xy dng hm to Hm to c tn hm trng tn i tng, khng c kiu d liu tr v v phm vi truy nhp thng l public. Hm to c th c tham s hoc khngpublic Class_name() public Class_name( argument list )
V d:public Time() public Time(System.Datetime t)84
Lp trnh C#.NET
Xy dng hm topublic class Time { // private variables int Year; int Month; int Date; int Hour; int Minute; int Second; // contructor public Time(System.DateTime d) { Year = d.Year; Month = d.Month; Date = d.Day; Hour = d.Hour; Minute = d.Minute; Second = d.Second; } // public methods public void DisplayCurrentTime() { System.Console.WriteLine("{0}/{1}/{2} {3}:{4}:{5}", Date, Month, Year, Hour, Minute, Second); } }
85
Lp trnh C#.NET
Kim tra hm topublic class Tester { static void Main() { System.DateTime currentDate = System.DateTime.Now; Time t = new Time(currentDate); t.DisplayCurrentTime(); } }
86
Lp trnh C#.NET
Hm to sao chp (copy constructor) h tr chc nng hm to sao chp.NET nh ngha mt interface ICloneable Class h tr hm to sao chp phi implement interface ICloneable
public Object Clone() { return MemberwiseClone(); // shallow copy } T xy dng hm to sao chp (hand-copying copy constructor)87
Lp trnh C#.NET
T xy dng hm to//hand-copying contructor public Time(Time previousTime) { Year = previousTime.Year; Month = previousTime.Month; Date = previousTime.Date; Hour = previousTime.Hour; Minute = previousTime.Minute; Second = previousTime.Second; }88
Lp trnh C#.NET
Gi hm to sao chppublic class Tester { static void Main() { System.DateTime currentDate = System.DateTime.Now; Time t = new Time(currentDate); Time t2 = (Time)t.Clone(); t2.DisplayCurrentTime(); Time t3 = new Time(t2); t3.DisplayCurrentTime(); } }
89
Lp trnh C#.NET
T kha this T kha this tr n th hin hin ti (current instance) ca i tng T kha this rt hu ch trong mt s trng hp1) Ch r thnh phn (thuc tnh) ca i tng, trnh nhm ln vi tn bin, trnh s nhp nhng v tnpublic void SomeMethod (int hour) { this.hour = hour; }90
Lp trnh C#.NET
T kha this (tip)2)Dng lm tham s truyn vo cho mt phng thc ca i tng khc, cho php phng thc c th tc ng n cc thnh phn ca i tng hin ti. class myClass{ public void Foo(OtherClass otherObject) { otherObject.Bar(this); } }91
Lp trnh C#.NET
T kha this (tip)3) S dng cng vi indexer (Tm hiu sau) 4) Gi mt hm to t hm to khc ca lpclass myClass { public myClass(int i) { //... } public myClass( ) : this(42) { //... } }
92
Lp trnh C#.NET
T kha this (tip)5) Gi tng minh cc phng thc, thuc tnh ca lppublic void MyMethod(int y) { int x = 0; x = 7; // assign to a local variable y = 8; // assign to a parameter this.z = 5; // assign to a member variable this.Draw( ); // invoke member method }93
Lp trnh C#.NET
S dng cc thnh phn tnh (static memebrs)
Thnh phn tnh l cc thnh phn chung (thuc tnh, phng thc) ca lp Truy xut cc thnh phn tnh thng qua tn lp Class_name.Static_Member C# khng cho php truy xut cc thnh phn tnh thng qua i tng (th hin ca lp) Cc thnh phn tnh c th c truy nhp, triu gi trc khi cc i tng ca lp c to ra Cc phng thc tnh khng th truy xut trc tip cc thuc tnh, phng thc khng tnh (nonstatic) 94Lp trnh C#.NET
V d s dng thnh phn tnhnamespace StaticFields { public class Cat { private static int instances = 0; public Cat() { instances++; } public static void HowManyCats() { Console.WriteLine("{0} cats adopted",instances); } }public class Tester { static void Main() { Cat.HowManyCats(); Cat frisky = new Cat(); Cat.HowManyCats(); Cat whiskers = new Cat(); Cat.HowManyCats(); } } }
95
Lp trnh C#.NET
Hy i tng (Destroying Object) C# h tr c ch t ng thu gom rc (garbage collector) -> ngi lp trnh khng phi hy i tng mt cch tng minh. Nu i tng c s dng cc ti nguyn khc (files) -> ngi lp trnh phi t xy dng hm hy (Destructor) B thu gom rc t ng gi hm hy, cc phng thc khng gi mt cch tng minh.
96
Lp trnh C#.NET
Xy dng hm hy V mt c php, hm hy trong C# ging vi C++~Class_Name( )protected override void Finalize() { try { // do work here. } finally { base.Finalize( ); } } Lp trnh C#.NET
~MyClass() { // do work here }
97
Truyn tham s cho phng thc Mc nh, tham s truyn cho phng thc l kiu tham tr Mt bn sao ca tham s c to ra Bn sao s b hy khi kt thc phng thc Gi tr ca tham s c truyn khng thay i sau khi kt thc phng thc public int AddValue(int value1, int value2) { return value1+value2; }98
Lp trnh C#.NET
Truyn tham chiu C# h tr truyn tham chiu s dng cc t kha ref: truyn tham chiu, bin c tham chiu phi c khi gn trc khi truyn out: truyn tham chiu, bin c tham chiu khng cn khi gn trc khi truyn
99
Lp trnh C#.NET
Truyn tham chiu s dng t kha refnh ngha phng thcpublic void GetTime( ref int h, ref int m, ref int s ) { h = Hour; m = Minute; s = Second; }
Gi phng thcSystem.DateTime currentTime = System.DateTime.Now; Time t = new Time( currentTime ); int theHour = 0; int theMinute = 0; int theSecond = 0; t.GetTime( ref theHour, ref theMinute, ref theSecond ); Lp trnh C#.NET
100
Truyn tham chiu s dng t kha outnh ngha phng thcpublic void GetTime( out int h, out int m, out int s ) { h = Hour; m = Minute; s = Second; }
Gi phng thcSystem.DateTime currentTime = System.DateTime.Now; Time t = new Time( currentTime ); int theHour; int theMinute; int theSecond; t.GetTime( out theHour, out theMinute, out theSecond ); Lp trnh C#.NET
101
Overloading methods and constructors Khi mun c nhiu hm cng tn (VD: nhiu hm to (constructor) hay nhiu phng thc vi tham s u vo khc nhau) -> s dng k thut chng hm (Overloading) phn bit c hai hm vi nhau, phi cn c vo mt trong hai yu t Khc tn Khc s tham s hoc kiu d liu ca tham svoid myMethod(int p1); void myMethod(int p1, int p2); void myMethod(int p1, string s1);102
Lp trnh C#.NET
ng gi d liu thnh cc thuc tnh ng gi d liu thnh cc thuc tnh em li hai li ch Vn m bo mt giao din n gin cho cc i tng khc giao tip. D dng thay i m m khng nh hng ti giao din vi cc i tng khc. Tng tnh an ton d liu, kim tra c d liu khi gn
103
Lp trnh C#.NET
S dng cc thuc tnh (property)private int hour; public int Hour { get { return hour; } set { hour = value; } }
Ly v gi tr ca thuc tnh
Thit lp gi tr ca thuc tnh104
Lp trnh C#.NET
Thuc tnh ch c (readonly)public static readonly int Year; public static readonly int Month; public static readonly int Date; public static readonly int Hour; public static readonly int Minute; public static readonly int Second; -> Ch
c th gn gi tr s dng hm to tnh
(static constructor) hoc khi gn ngay t ban u.105
Lp trnh C#.NET
Bi thc hnh s 2
106
Lp trnh C#.NET
Bi thc hnh s 2
107
Lp trnh C#.NET
Bi thc hnh s 2
108
Lp trnh C#.NET
Bi thc hnh s 2
109
Lp trnh C#.NET
Bi thc hnh s 2
110
Lp trnh C#.NET
4.3. K tha v a hnh Tng qut ha v c th ha (generalization and specialization) K tha (inheritance) a hnh (polymorphism) Lp tru tng (abstract class)
111
Lp trnh C#.NET
Tng qut ha v c th haC th ha Tng qut ha
Tng qut ha: cc lp i tng c nhng thuc tnh, phng thc chung c tng qut thnh cc lp cha C th ha: cc lp con k tha cc phng thc, thuc tnh ca lp cha v b sung thm thuc tnh, phng thc ca ring n 112Lp trnh C#.NET
K tha (inheritance) K tha (inheritance) l k thut th hin quan h c th ha (specialization)public class ListBox : Control public class Button : Control
113
Lp trnh C#.NET
K tha (Inheritance) u im ca k thut k tha Kh nng ti s dng m. VD: lp ListBox c th s dng mt s phng thc, thuc tnh ca lp Control Kh nng s dng k thut a hnh (Polymorphism). VD: lp Control c phng thc Draw(), lp Listbox v Button cng c phng thc Draw().
114
Lp trnh C#.NET
To phng thc h tr a hnhpublic virtual void Draw( ) { //Code statements } public override void Draw( ) { //Code statements }115
Lp trnh C#.NET
V D K thut k tha v a hnh
116
Lp trnh C#.NET
Lp tru tng (abstract class) S dng lp tru tng khi Yu cu tt c cc lp con, k tha t n phi ci t mt hoc mt vi phng thc no .
c im ca lp tru tng Lp tru tng l lp tn ti t nht mt phng thc tru tng Khng th to i tng ca lp tru tng
117
Lp trnh C#.NET
Khai bo lp tru tngabstract public class Control { protected int top; protected int left; // constructor public Control( int top, int left ) { this.top = top; this.left = left; } abstract public void DrawWindow( ); }Lp trnh C#.NET
Khai bo lp tru tng
Khai bo phng thc tru tng118
K tha lp tru tngpublic class Button : Control { public Button(int top,int left ):base(top, left) { } // implement the abstract method public override void DrawWindow( ) { Console.WriteLine( "Drawing a button at {0}, {1}\n",top, left ); } }Lp trnh C#.NET
119
V D Lp tru tng
120
Lp trnh C#.NET
Root class: Object Trong C#, tt c cc lp, thm ch cc kiu d liu c sn u dn xut, k tha t lp Object. Object l lp cao nht trong cy k tha ca C# Lp Object cung cp mt s cc phng thc o m cc lp con c th ci t v thc thi Equals() GetType() ToString()
121
Lp trnh C#.NET
Boxing and Unboxing Boxing v Unboxing l qu trnh cho php kiu gi tr (v d: integer) c th c x l nh l kiu tham chiu (objects) Qu trnh Boxing din ra ngm nh (implicity): chuyn i ngm nh kiu gi tr sang kiu Object Qu trnh Unboxing din ra tng minh (explicity):chuyn ngc t kiu Object v kiu gi tr.
122
Lp trnh C#.NET
Boxingusing System; class Boxing { public static void Main( ) { int i = 123; Console.WriteLine ("The object value = {0}", i); } }
123
Lp trnh C#.NET
Unboxingpublic class UnboxingTest { public static void Main( ) { int i = 123; //Boxing object o = i; // unboxing (must be explicit) int j = ( int ) o; Console.WriteLine( "j: {0}", j ); } }
124
Lp trnh C#.NET
Bi thc hnh s 3Bi 1: Xy dng cc lp Fish, GoldFish v Shark theo thit k di y
125
Lp trnh C#.NET
4.4. Hm chng ton t Mc ch ca hm chng ton t (Overloading Operator) Cho php cc lp do ngi dng nh ngha c th c th c y cc chc nng nh cc kiu do ngn ng nh ngha VD: 1 lp phn s, c th c y cc php tonCng Tr Nhn ChiaLp trnh C#.NET
126
Hm chng ton t
Fraction theSum = firstFraction.Add(secondFraction);
Fraction theSum = firstFraction + secondFraction;
127
Lp trnh C#.NET
S dng t kha operator Khai bopublic static Fraction operator+ (Fraction lhs, Fraction rhs)S dng Fraction theSum = firstFraction + secondFraction;
Fraction.operator+(firstFraction, secondFraction)
128
Lp trnh C#.NET
Bi thc hnh s 3Bi 2: Xy dng lp phn s (Fraction) theo thit k di y. S dng k thut chng ton t (Overloading Operator) xy dng cc ton t +, -, *, /, ==, !=
129
Lp trnh C#.NET
4.5.Cu trc struct Struct l cu trc n gin do ngi dng t nh ngha, kh ging vi class C hm to, thuc tnh, phng thc, ton t, index
Struct khc class Struct khng h tr hm hy v c ch k tha Struct l kiu gi tr, khng phi kiu tham chiu Trong struct, cc thuc tnh khng c khi gn d liu khi khai bo130
Lp trnh C#.NET
nh ngha struct[attributes] [access-modifiers] struct identifier [:interface-list] { struct-members }public struct Location { private int xVal; private int yVal; public Location(int x, int y) { xVal = x; yVal = y; } public override string ToString( ) { return ( String.Format( "{0}, {1}", xVal, yVal ) ); } public int x { get { return xVal; } set { xVal = value; } } }
131
Lp trnh C#.NET
To struct S dng t kha new Location loc1 = new Location(200,300); Khng s dng t kha new (Cc thuc tnh xVal v yVal phi chuyn phm vi truy nhp thnh public) Location loc1; // Khng gi ti hm to loc1.xVal = 75; // Khi gn cc thuc tnh loc1.yVal = 225;132
Lp trnh C#.NET
Interfaces Mt lp hay struct thc thi (implement) interface -> m bo h tr y cc thuc tnh, phng thc, s kin v index c nh ngha trong interface Interface thng c so snh vi lp tru tng (abstract class) Khi mt lp hay cu trc thc thi mt interface, n phi thc thi tt c cc thnh phn ca interface (thuc tnh, phng thc, s kin)133
Lp trnh C#.NET
nh ngha Interface[attributes] [access-modifier] interface interface-name[:base-list] {interface-body}Phm vi truy nhp: public, private, protected, internal, protected internal Interface-name: tn ca interface, nn bt u bng ch I V d: ICloneable, IRunable Base-list: danh sch cc interface m n m rng (extend) Interface-body: m t cc phng thc, cc thuc tnh, m lp thc thi cn ci t (Khng xc nh phm vi truy cp mc nh l public) 134Lp trnh C#.NET
V dinterface IStorable { // no access modifiers, // methods are public // no implementation void Read(); void Write(object obj); int Status { get; set; } }public class Document : IStorable { // store the value for the property private int status = 0; public Document(string s) {//code} public void Read() {//code} // implement the Write method public void Write(object o) {//code} // implement the property public int Status { get { return status; } set { status = value;} } }135
Lp trnh C#.NET
Thc thi nhiu interfaces Cc lp v cu trc c th implement nhiu interfaces khc nhau V d: lp ti liu (Document) va c kh nng lu tr (storable), va c kh nng nn (compressible) public class Document : IStorable, ICompressible
136
Lp trnh C#.NET
M rng Interfaces (extending) C th m rng interface thm cc thuc tnh v phng thc mi interface ILoggedCompressible : ICompressible { void LogSavedBytes(); }
137
Lp trnh C#.NET
Kt hp interfaces C th kt hp cc interfaces li vi nhau v thm cc phng thc, thuc tnh nu cn interface IStorableCompressible : IStorable, ILoggedCompressible { void LogOriginalSize(); }
138
Lp trnh C#.NET
Truy nhp cc thnh phn ca interface
Khng th trc tip to th hin ca interface IStorable isDoc = new IStorable(); Truy xut thnh phn ca Interface theo hai bc (hoc gp c hai bc) To i tng ca mt lp implement interface Document doc = new Document("Test Document"); p kiu i tng ny thnh th hin ca interface IStorable isDoc = doc;139
Lp trnh C#.NET
Casting to an interface Khng bit r mt lp implement nhng interface no -> khi p kiu sang interface c th pht sinh li C# h tr 2 ton t s dng cho vic casting v kim tra Ton t is
expression is type Ton t as
expression as type140
Lp trnh C#.NET
So snh interface v lp tru tng Interface kh ging vi lp tru tng C# s dng interface thc thi k thut a k tha v C# khng h tr a k tha t nhiu lp (C++ c h tr a k tha) public class StorableList : List, IStorable { // List methods here ... public void Read( ) {...} public void Write(object obj) {...} // ... }Lp trnh C#.NET
141
Overriding Interface Implementations Mt lp khi thc thi cc phng thc ca interface c th chuyn i phng thc thnh dng phng thc o Cc lp dn xut t lp override phng thc o -> K THUT A HNH
142
Lp trnh C#.NET
Bi thc hnh s 4Xy dng cc lp phng tin giao thng di y theo thit k
143
Lp trnh C#.NET
4.7. Mng, ch s v tp hp Mng l mt tp hp c nh ch s (indexed Collection) cc i tng cng kiu Bin mng l i tng, cc i tng mng c khai bo thc t l th hin ca lp System.Array i tng mng c thuc tnh: IsReadOnly, Length i tng mng c phng thc: Clear(), Copy(), Sort()144
Lp trnh C#.NET
Khai bo mng
type[ ] array-name; Cp ngoc vung [ ] bo cho trnh dch C# bit l chng ta khai bo mt mng Type xc nh kiu d liu ca cc phn t trong mng V d: int[ ] myIntArray; //Mng integer Employer[ ] myObjectArray; //Mng i tng145
Lp trnh C#.NET
Gi tr mc nh khi khi gn mng Khi khi gn mng cc phn t kiu gi tr (value type), cc phn t c khi gn gi tr mc nh ca n myIntArray=new int[5]; Khi khi gn mng cc phn t kiu tham chiu (reference type), cc phn t mng c khi gn gi tr null -> mun s dng phi to v gn cc i tng c th cho cc phn t ca mng myObjectArray=new Employer[5];146
Lp trnh C#.NET
Truy nhp phn t mng Cc phn t mng trong C# c nh ch s, bt u bng 0 Mng l i tng, c thuc tnh Length cho bit s phn t trong mng -> Cc phn t ca mng c nh ch s t 0 n Length -1 Truy nhp phn t mng (VD phn t th 3 ca mng myInt) thng qua ton t ch s [ ] myInt[2]147
Lp trnh C#.NET
V dpublic class Employee { private int empID; public Employee(int empID) { this.empID = empID; } public override string ToString() { return empID.ToString(); } } public class Tester { static void Main() { Employee[] empArray; empArray = new Employee[3]; // populate the array for (int i = 0; i < empArray.Length; i++) { empArray[i] = new Employee(i + 5); } for (int i = 0; i < empArray.Length; i++) { Console.WriteLine(empArray[i].ToStrin g()); } } }
148
Lp trnh C#.NET
Cu lnh foreach Cu lnh foreach cho php lp qua tt c cc phn t trong trong mt mng hay kiu tp hp bt k no khc foreach (type identifier in expression) statement
Kiu d liu ca phn t trong mng / tp hp
Tn bin lp (tham chiu n phn t mng ti mi vng lp)Lp trnh C#.NET
Tn mng/ Tp hp
149
V dKhi cc phn t mng l kiu gi trforeach ( int i in intArray ) { Console.WriteLine( i.ToString( ) ); }
Khi cc phn t mng l kiu tham chiuforeach ( Employee e in empArray ) { Console.WriteLine( e.ToString( ) ); }150
Lp trnh C#.NET
T kha params T kha params cho php truyn mt lot cc tham s cho phng thc m khng phi nh ngha mng mt cch tng minh.
public void DisplayVals(params int[] intVals)
151
Lp trnh C#.NET
ng dng t kha paramspublic class Tester { static void Main() { Tester t = new Tester(); t.DisplayVals(5, 6, 7, 8); int[] explicitArray = new int[5] { 1, 2, 3, 4, 5 }; t.DisplayVals(explicitArray); } public void DisplayVals(params int[] intVals) { foreach (int i in intVals) { Console.WriteLine("DisplayVals {0}", i); } } }152
Lp trnh C#.NET
Bi thc hnh s 5Bi 1: Vit mt phng thc FindMinMax in ra gi tr s nguyn ln nht v nh nht trong s cc tham s u vo l mt dy cc s nguyn bt k VD: Gi hm FindMinMax(3,1,5,8,0,9,-2) Kt qu in ra mn hnh - S nguyn nh nht l: -2 - S nguyn ln nht l: 9
153
Lp trnh C#.NET
4.8. Stringspublic sealed class String :IComparable, ICloneable, IConvertible, IEnumerable
String l lp ng -> Khng th to lp k tha lp String String implement 4 interfaces IComparable, ICloneable, IConvertible v IEnumerable cho php c th so snh, sao chp, chuyn i v s dng kiu lit k Mi i tng ca lp String l mt chui c nh cc k t Unicode -> cc phng thc lm thay i i tng ca lp thc cht l to ra mt bn sao c sa i, chui nguyn gc vn c gi trong b nh cho n khi b thu gom rc x l.154
Lp trnh C#.NET
To chuiCch thng thngstring literalString = "This is a string literal \n";
To chui ng vi nguyn mu (verbatim string) s dng t kha @string verbatimString=@"\n Pham Van Thuan \t Tel: 0985905253\\";public class Test { public static void Main() { String literalString = "Pham Van Thuan \n"; Console.WriteLine(literalString); String verbatimString = @"\n Pham Van Thuan \t Tel: 0985905253\\"; Console.WriteLine(verbatimString); Console.Read(); } }155
Lp trnh C#.NET
Thao tc chui Lp string h tr cc phng thc cho php so snh, tm kim v x l chui Thuc tnh, phng thcEmpty Compare() Concat() Copy() Equals() Format() Lp trnh C#.NET
M tThuc tnh cho bit chui rng Phng thc so snh hai chui Phng thc ni chui To bn sao ca mt chui Kim tra hai chui c ging nhau khng nh dng mt chui156
V dstatic void Main() { string str1 = "Hanoi"; string str2 = "La thu do cua Viet Nam"; string str3 = "HANOI"; //So sanh chuoi, tra ve 0 neu giong nhau int result = string.Compare(str1, str3); Console.WriteLine("Ket qua so sanh hai chuoi {0} va {1} la {2}", str1, str3, result); Console.ReadLine(); //Noi chuoi string str4 = string.Concat(str1, " ", str2); string str5 = str1 + " " + str2; Console.WriteLine("Ket qua noi chuoi {0} va {1}: \n + Su dung phuong thuc Concat: {2} \n + Su dung ham chong toan tu +: {3}", str1, str2, str4, str5); Console.ReadLine(); //Lay ve chieu dai chuoi Console.WriteLine("Chieu dai cua chuoi \"{0}\" la {1}", str2, str2.Length); Console.ReadLine(); }157
Lp trnh C#.NET
X l chui ng (Dynamic string) Lp System.Text.Stringbuilder c s dng to v chnh sa chui Khng ging nh string, cc i tng ca lp Stringbuilder c th thay i Khi chnh sa, s thay i c thc hin trn chnh i tng ch khng phi trn bn sao ca i tng
158
Lp trnh C#.NET
V d s dng Stringbuilderstatic void Main() { // create some strings to work with string s1 = "Hi, Good morning"; // array of delimiters to split the sentence with char[] delimiters = new char[]{' ',','}; // use a StringBuilder class to build the output string StringBuilder output = new StringBuilder(); int ctr = 1; // split the string and then iterate over the // resulting array of strings foreach (string subString in s1.Split(delimiters)) { // AppendFormat appends a formatted string output.AppendFormat("{0}: {1}\n", ctr++, subString); } Console.WriteLine(output); }
159
Lp trnh C#.NET
4.9. Handling Exceptions C# s dng k thut bt ngoi l (Handling Exception bt v x l li (errror) cng nh cc ngoi l pht sinh trong qu trnh thc thi chng trnh) Phn loi bug, error v exception Bug: li do ngi lp trnh, cn c loi b trc khi hon thnh phn mm Error: li pht sinh do ngi dng, v d ngi dng nhp sai nh dng d liu -> phi kim tra d liu u vo Exception: li bt thng, v d nh ht b nh, li chia cho 0sLp trnh C#.NET
160
Nm (throwing) v bt (catching) ngoi l
bo hiu mt iu kin bt thng xut hin trong qu trnh thc thi, thc hin nm ngoi l throw new System.Exception(); Khi mt ngoi l c tung ra, chng trnh ngay lp tc s dng li v CLR s tm , kim tra chng trnh bt ngoi l, nu khng tm thy n s kt thc chng trnh
161
Lp trnh C#.NET
Ngoi l c bo trong ch debug
162
Lp trnh C#.NET
Li dng chng trnh khi chy thc t
163
Lp trnh C#.NET
V dpublic class Test { public static void Main() { Console.WriteLine("Enter Main..."); Test t = new Test(); t.Func1(); Console.WriteLine("Exit Main..."); } public void Func1() { Console.WriteLine("Enter Func1..."); Func2(); Console.WriteLine("Exit Func1..."); } public void Func2() { Console.WriteLine("Enter Func2...");
throw new System.Exception();Console.WriteLine("Exit Func2..."); } }164
Lp trnh C#.NET
Ngoi l xut hin
165
Lp trnh C#.NET
Chi tit ngoi l
166
Lp trnh C#.NET
Cu lnh trycatch C# s dng cu trc trycatchfinally kim tra, bt v x l ngoi ltry { //Lnh c th pht sinh ngoi l, cn kim tra } catch(Exception e) { //Bt v x l ngoi l nu c } Finally { //on m lun thc thi khi xut hin ngoi l }167
Lp trnh C#.NET
Cu lnh trycatch C th c nhiu on lnh catch trong mt cu lnh trycatch tng ng vi nhiu ngoi l khc nhau on lnh trycatch c th t trong phng thc c th pht sinh ngoi l hoc t cp cao hn, phng thc triu gi on m c th pht sinh ngoi l
168
Lp trnh C#.NET
Bi thc hnh s 5Bi 2: Vit mt phng thc
float Divide(int num1, int num2) Kim tra v bt ngoi l bng cu lnh trycatch trong hai trng hp Bt trong thn hm Bt trong li gi hm
169
Lp trnh C#.NET
Ni dung mn hcChng 1: Gii thiu C# v .NET Framework Chng 2: Gii thiu mi trng pht trin ng dng Visual Studio .NET 2005 Chng 3: C# cn bn Chng 4: Hng i tng trong C# Chng 5: Lp trnh Windows Form vi C# Chng 6: ASP.NET
170
Lp trnh C#.NET
Ni dung chng 55.1. M u v lp trnh Windows Form 5.2. Mt s iu khin thng dng cho Windows Form 5.3. Kt ni c s d liu s dng ADO.NET 5.4. Lp bo co s dng Crystal Report.NET
171
Lp trnh C#.NET
5.1. M u v lp trnh Windows Form Xy dng ng dng Hello World
172
Lp trnh C#.NET
Xy dng ng dng Hello World To d n kiu Windows Application Thit k giao din 1 label 1 textbox 2 button: Hello, Good bye
173
Lp trnh C#.NET
Cc file cu thnhForm1.cs: cha m chng trnh ca ngi dng Form1.Designer.cs: do b VS 2005 t ng sinh trong qu trnh thit k
class frmHello174
Lp trnh C#.NET
Form1.cs
175
Lp trnh C#.NET
Form1.Designer.cs
176
Lp trnh C#.NET
Vit m S kin ngi dng click vo nt Helloprivate void btnHello_Click(object sender, EventArgs e) { MessageBox.Show("Hello "+txtName.Text); } Phng thc Show ca i tng MessageBox -Hin th thng bo -Hin th cc nt bm ty chn, tng tc ngi dng (OK, Cancel, Yes, No)177
Lp trnh C#.NET
Vit m (tip) S kin ngi dng click vo nt Good byeprivate void btnGoodBye_Click(object sender, EventArgs e) { MessageBox.Show("Bye bye!"); Application.Exit(); } Lp Application cung cp cc thuc tnh v phng thc tnh lm vic vi ng dng Application.Exit(); //ng ng dng
178
Lp trnh C#.NET
5.2. Mt s iu khin thng dng trong Windows Form Label v Linklabel Textbox v RichTextBox Button Check box v Radio button Combobox Listbox
179
Lp trnh C#.NET
iu khin Label (nhn) Chc nng: dng cha cc thng tin tnh (tiu , ch thch) Cc thuc tnh thng dng Name: tn ca iu khin Font: thit lp font ch, kch thc ch Text: ni dung hin th trn iu khin180
Lp trnh C#.NET
iu khin Label (nhn) V d:
Name: lblUsername Text: Tn truy cp
Name: lblPassword Text: Mt khu181
Lp trnh C#.NET
iu khin Textbox Chc nng: cho php ngi dng nhp cc on vn bn, h tr kh nng hin th trn nhiu dng v n cc k t trong trng hp nhp mt khu Cc thuc tnh thng dngName: tn iu khin Font: thit lp font ch Text: on vn bn trn iu khin Multiline: cho php hay khng hin th vn bn trn nhiu dng PasswordChar: k t dng che mt khu Visible: n/ hin th iu khin Enabled: cho php/ khng cho php thao tc vi iu khin
Cc phng thc thng dng Focus(): thit lp Textbox lm iu khin hin thi, c th l t con tr chut vo u dng182
Lp trnh C#.NET
iu khin Textbox V d:
Name: txtUserName Text: thuanpv Multiline: false Name: txtPassword Multiline: false PasswordChar: *183
Lp trnh C#.NET
iu khin Button (nt bm) Chc nng: pht sinh s kin khi ngi dng click chut ln iu khin Cc thuc tnh thng dng Name: tn nt bm Text: vn bn m t chc nng ca nt bm Visible: hin th/ n nt bm Enabled: cho php/ khng cho php s dng
Cc s kin thng pht sinh Click: khi ngi dng click chut ln nt bm -> cn bt s kin, lp trnh thc hin cng vic mong mun184
Lp trnh C#.NET
iu khin Button (nt bm) V d:
Name: btnLogin Text: ng nhp Enabled: true Bt s kin ngi dng nhn chutprivate void btnLogin_Click(object sender, EventArgs e)185
Name: btnCancel Text: Thot Enabled: false
Lp trnh C#.NET
Bi tp Vit m cho form ng nhp thc hin cc cng vic sau Kim tra thng tin ng nhp (Khai bo 2 hng s lu tn truy cp v mt khu kim tra) Hin th thng bo tng ng trong trng hp ng nhp hp l/ Khng hp l Nu ng nhp thnh cng, m ra mt form mi, vi mt s thng tin n gin (tn truy cp, thi gian ng nhp)
Khi chy, giao din chng trnh c dng nh sau (xem trang tip theo)186
Lp trnh C#.NET
ng nhp khng thnh cng
187
Lp trnh C#.NET
ng nhp thnh cng
188
Lp trnh C#.NET
List Control List controls (iu khin cha danh sch) gm ba iu khin c bn: Listbox CheckedListBox ComboBox
189
Lp trnh C#.NET
iu khin ComboBox Chc nng: cho php ngi dng chn cc phn t trong danh sch hoc t thm vo textbox. Cc thuc tnh thng dng: Name: tn ca ComboBox Text: vn bn c hin th trn phn TextBox sau khi ngi dng chn Items: danh sch cc phn t cho php ngi dng chn (Cho khi to ban u) DataSource, DisplayMember, ValueMember: thit lp ngun d liu cho iu khin ComboBox (cho php in danh sch phn t mt cch t ng)190
Lp trnh C#.NET
iu khin ComboBox (tip) V d cch dng thuc tnh Items
Chn thuc tnh Items
Sa danh sch phn t
Danh sch hin th trn iu khin ComboBoxLp trnh C#.NET
191
iu khin ComboBox (tip) V d cch dng thuc tnh DataSoure, DisplayMember, ValueMember Bng tblProviders trong CSDL
DataSoure: tblProviders DisplayMember: Provider_NAME ValueMember: Provider_ID192
Lp trnh C#.NET
iu khin ComboBox (tip)Bng tblProviders trong CSDL
Khi ngi dng chn May Vit Tin ComboBox.Text=May Vit Tin ComboBox.SelectedValue=2193
Lp trnh C#.NET
Case study Mc ch To ra mt iu khin mi (thay i giao din, thm thuc tnh, phng thc) To ra mt iu khin kt hp cc iu khin c bn To ra mt iu khin kt hp cho php s dng li nhiu ln
Custom Controls
194
Lp trnh C#.NET
5.3. Kt ni c s d liu s dng ADO.NET
Gii thiu cng ngh ADO.NET M hnh i tng ca ADO.NET Cc iu khin nhng d liu Kt ni c s d liu vi ADO.NET
195
Lp trnh C#.NET
Gii thiu cng ngh ADO.NET ADO.NET kh ging cng ngh ADO ADO.NET l kin trc d liu ngt kt ni (disconnected data architecture) D liu c ly v t c s d liu D liu c lu tr m trn my cc b -> Tng tc x l, gim ti cho server
ADO.NET thc hin hai chc nng Truy xut d liu (Data Access) Th hin d liu (Data Representation)196
Lp trnh C#.NET
M hnh i tng ca ADO.NET Cc i tng truy xut c s d liu (C cc lp dn xut, ti u ha cho tng kiu kt ni) DbConnection DbCommand DataReader DataAdapter
Cc i tng th hin d liu DataTableDataColumn DataRow
DataRelation DatasetLp trnh C#.NET
197
i tng DbConnection Cung cp kt ni ti c s d liu to kt ni ti c s d liu cn cung cp cc thng tin Server cha c s d liu Ti khon ng nhp h qun tr c s d liu Tn c s d liu -> Connection String (chui kt ni)
Tt c cc i tng truy xut d liu (DbCommand, DataReader, DataAdapter) u s dng DbConnection kt ni c s d liu198
Lp trnh C#.NET
i tng DbConnection
199
Lp trnh C#.NET
i tng DbConnection Cc thuc tnh c bn Connectionstring: chui kt ni
Cc phng thc c bn Open() Close()
200
Lp trnh C#.NET
i tng DbCommand i tng DbCommand l phng tin tng tc vi c s d liu Chy truy vn SQL Chy Stored Procedure
201
Lp trnh C#.NET
i tng DbCommand Cc thuc tnh c bn CommandText: cu lnh cn thc thi, c 3 loi cu lnh (CommandType)Text: cu lnh truy vn SQL (mc nh) TableDirect: truyn tn bng trong c s d liu StoredProcedure: truyn tn ca Stored Procedure
Connection: kt ni c s dng
Cc phng thc c bn ExecuteNonQuery: chy cc cu lnh khng cn kt qu tr v ExecuteScalar: chy cc cu lnh nhn 1 kt qu tr v ExecuteReader: chy cc cu lnh tr v nhiu dng d liu202
Lp trnh C#.NET
i tng DbDataReader Cho php c d liu t mt tp kt qu (V d: kt qu sau khi chy mt lnh trong i tng DbCommand) Thng c s dng bi cc i tng khc, khng cn phi s dng trc tip203
Lp trnh C#.NET
i tng DbDataAdapter Cho php lu tr d liu offline trn DataSet v ch kt ni, trao i vi c s d liu gc khi cn thit DataSet l i tng s dng biu din d liu ca c s d liu di dng cc i tng ca .NET (DataTable, DataRelation) DbDataAdapter thc hin cc x l thng qua cc i tng DbCommand v DbDataReader (ng gi trong i tng DbDataAdapter)204
Lp trnh C#.NET
i tng DbDataAdapter
205
Lp trnh C#.NET
i tng DbDataAdapter Cc phng thc c bn Fill(): nhn d liu t c s d liu Update(): cp nht cc thay i ln c s d liu
206
Lp trnh C#.NET
i tng DataTable Lu tr cc bng d liu Ch : cc bng d liu lp DataTable lu tr khng bt buc nh x hon ton cc bng trong c s d liu
207
Lp trnh C#.NET
i tng DataTable Cc thuc tnh c bn Rows: tr v mt tp cc dng Columns: tr v mt tp cc ct
Cc phng thc c bn GetChanges(): ly v cc thay i trn DataTable ApplyChanges(): chp nhn cc thay i trn DataTable -> d liu thc s c cp nht ln c s d liu trung tm. RejectChanges(): hy b mi thay i208
Lp trnh C#.NET
i tng DataSet Lp quan trng nht trong kin trc ADO.NET
209
Lp trnh C#.NET
i tng DataSet Cc thuc tnh c bn Tables: tp hp cc bng d liu Relations: tp hp cc quan h
Cc phng thc c bn GetChanges() ApplyChanges() RejectChanges()
210
Lp trnh C#.NET
iu khin nhng d liu Nhng d liu (Data Binding) l k thut cho php cc iu khin d dng ly d liu t c s d liu v v hin th m khng cn ngi dng vit cc on m lp trnh C ch nhng d liu cn hai thnh phn iu khin nhng d liu (ListBox, ComboBox, DataGridView) Ngun d liu (Data Source)
211
Lp trnh C#.NET
Kt ni c s d liu vi ADO.NET Kt ni bng lp trnh Kt ni s dng Wizard
Demo
212
Lp trnh C#.NET
Case study Mc ch Truy vn linh hotC s d liu quan h (LinQ to SQL) i tng (LinQ to Object) XML file (LinQ to XML)
LinQ (Language Integrated Query)
213
Lp trnh C#.NET
5.4. Lp bo co s dng Crystal Report
Gii thiu Crystal Report To bo co Crystal Report s dng ngun d liu OLE DB (OLE DB Provider for SQL Server) To bo co Crystal Report s dng ngun d liu Dataset
214
Lp trnh C#.NET
Gii thiu Crystal Report Crystal Report l cng c lp bo co H tr nhiu ngun d liu (C s d liu, text, Excel, XML) H tr nhiu kiu bo co H tr tch hp hnh nh, th, biu
215
Lp trnh C#.NET
TimeSheet Report
216
Lp trnh C#.NET
Gantt Chart Report
217
Lp trnh C#.NET
Labor/Cost Report
218
Lp trnh C#.NET
M hnh Push Model
219
Lp trnh C#.NET
Giao din thit k
220
Lp trnh C#.NET
Giao din thit k Report Header: header ca bo co Report Footer: footer ca bo co Page Header: header ca tng trang bo co Page footer: footer ca tng trang bo co Details: Ni dung ca bo co
221
Lp trnh C#.NET
Cc trng d liu cho bo coDatabase fields: cc trng ly t c s d liu Formula Fields: cc trng tnh ton Parameter Fields: cc trng tham s Group Name Fields: cc group Special Fields: cc trng c bit (ngy lp bo co, ngy in bo co, ) Running Total Fields: cc trng tnh ton theo tng nhm (VD: tng sinh vin, tng doanh s)
222
Lp trnh C#.NET
To bo co s dng kt ni OLE DB u im: Quen thuc vi cc lp trnh vin trn mi trng Visual Studio 6 C th xem trc d liu ca bo co
Nhc im Phi kt ni cng vi ngun d liu -> khng linh hot (d liu cung cp trong qu trnh thit k) Phi s dng tn truy nhp/mt khu kt ni c s d liu223
Lp trnh C#.NET
To bo co s dng ngun d liu DataSet
u im: Linh hot trong thit k: ngun d liu linh hot, cung cp trong qu trnh thc thi (Runtime) S dng chung kt ni vi ng dng -> khng cn tn truy nhp/mt khu
Nhc im Khng xem trc c chnh xc d liu ca bo co
224
Lp trnh C#.NET
iu khin CrystalReportViewer
Thuc tnh quan trng: ReportSource: ngun bo co (Lp dn xut ca ReportClass)225
Lp trnh C#.NET
Demo
226
Lp trnh C#.NET
Case study Mc ch Giao din p a nn (WinForm, WebForm) Cng c lp bo co linh hot DevExpress
(www.devexpress.com)
227
Lp trnh C#.NET
Ni dung mn hcChng 1: Gii thiu C# v .NET Framework Chng 2: Gii thiu mi trng pht trin ng dng Visual Studio .NET 2005 Chng 3: C# cn bn Chng 4: Hng i tng trong C# Chng 5: Lp trnh Windows Form vi C# Chng 6: ASP.NET
228
Lp trnh C#.NET
Ni dung chng 66.1. ASP vs ASP.NET 6.2. ASP.NET Web Forms 6.3. ASP.NET Web services
229
Lp trnh C#.NET
Ni dung chng 66.1. ASP vs ASP.NET 6.2. ASP.NET Web Forms 6.3. ASP.NET Web services
230
Lp trnh C#.NET
ASP vs ASP.NET Gii thiu v ASP Qu trnh pht trin t ASP -> ASP.NET Nhc im ca ASP u im ca ASP.NET
231
Lp trnh C#.NET
Gii thiu ASP = #12:00:00 AM# And Time < #12:00:00 PM# Then%> "Now the time is between 12:00 am and 12:00 pm" " Now the time is between 12:00 pm and 12:00 am" Thc thi trn Server
232
Lp trnh C#.NET
M hnh thc thi ASPClient (Browser)
ASP.DLLActiveX Data ActiveX Data Objects Objects (ADO) (ADO)
IIS
VBScript JavaScript
Database
ASP file233
Lp trnh C#.NET
Qu trnh pht trinPhin bn u tin ca ASP
Phin bn i cng IIS 3.0 Phin bn i cng Windows NT 4.0
Phin bn i cng Windows 2000
ASP.NET i cng b .NET frameworkLp trnh C#.NET
234
Nhc im ca ASP Ch h tr hai ngn ng VBScript v JavaScript M x l, m HTML cho giao din trn ln vi nhau -> hn n, kh qun l Kh c kh nng ti s dng m Khng c c ch g li -> kh pht trin
235
Lp trnh C#.NET
u im ca ASP.NETASP.NETH tr cc ngn ng nh kiu mnh C#, VB H tr cc ngn ng nh kiu mnh C#, VB
S dng c ch bin dch
H tr phng thc trace gip d dng trong g li H tr ti s dng code da trn c ch k tha
Cung cp cc iu khin trn server
M x l ASP.NET tch bit vi m giao din236
Lp trnh C#.NET
Ni dung chng 66.1. ASP vs ASP.NET 6.2. ASP.NET Web Forms 6.3. ASP.NET Web services
237
Lp trnh C#.NET
6.2. ASP.NET Web forms Cu trc mt trang ASP.NET S kin v m hnh x l s kin Cc iu khin Kt ni c s d liu Thit k giao din Cng ngh AJAX
238
Lp trnh C#.NET
Cu trc mt trang ASP.NET Hai m hnh Inline codeM giao din v m thc thi trong cng mt file c phn m rng .aspx
Code behindM giao din lu trong file .aspx M thc thi, x l s kin lu trong file .cs
239
Lp trnh C#.NET
Cu trc mt trang ASP.NETPage Directive section Page_Load Event
Event Handler
HTML Control Web Control
240
Lp trnh C#.NET
S kin v m hnh x l s kin Web forms tng tc vi ngi dng thng qua cc s kin: click button, chn phn t trong ComboBox a s cc s kin c x l trn Server Hm x l s kin nhn hai tham s Object: i tng pht sinh s kin EventArgs: danh sch cc tham s
C hai loi s kin Postback Nonpostback241
Lp trnh C#.NET
M hnh x l s kin
242
Lp trnh C#.NET
M hnh x l s kin
243
Lp trnh C#.NET
Cc iu khin Phn loi HTML controls Server control (runat=server)
Cy k tha cc iu khin trn ServerLp trnh C#.NET
244
Server Controls HTML Server Control Web controls Rich controls Validation controls Data controls Login controls
245
Lp trnh C#.NET
HTML Server Controls
246
Lp trnh C#.NET
HTML Server Controls
247
Lp trnh C#.NET
Web Server Controls
248
Lp trnh C#.NET
Web Server Controls
249
Lp trnh C#.NET
Kt ni c s d liu ADO.NET Data binding iu khin DataSource
Demo
250
Lp trnh C#.NET
Thit k giao din CSS vs Themes Master Pages
251
Lp trnh C#.NET
CSS vs Themes CSS Do trnh duyt client x l Ch tc ng ti mt tp cc thuc tnh hu hn c quy nh trc
Themes X l trn server C th tc ng ti cc thuc tnh c trng ca cc iu khin
252
Lp trnh C#.NET
Master Pages Thit k template cho php nhiu trang cng s dng -> m bo tnh thng nht trong b tr giao din Template c chia ra thnh vng c th chnh sa (editable region) v vng khng th chnh sa
253
Lp trnh C#.NET
Cng ngh AJAX Cng ngh AJAX ra i khc phc cc nhc im ca cng ngh web ng (VD: ASP.NET) ASP.NET thc hin mi x l trn server, mi khi mt s kin xy ra, ASP.NET cn thc hinGi d liu ln Server Server x l, tr v mt bn m HTML mi Refresh mn hnh
254
Lp trnh C#.NET
M hnh x l s kin thng thng
255
Lp trnh C#.NET
M hnh x l s kin s dng AJAX
256
Lp trnh C#.NET
Ni dung chng 66.1. ASP vs ASP.NET 6.2. ASP.NET Web Forms 6.3. ASP.NET Web services
257
Lp trnh C#.NET
6.3. ASP.NET Web Services Gii thiu Web services Lp trnh to web services Lp trnh s dng web services
258
Lp trnh C#.NET
Gii thiu L do ra i Cn mt c ch to ra cc i tng cho cc ng dng phn tn s dng. Cn mt k thut to ra cc i tng cho cc ng dng ca cng ty ny c th d dng truy xut, trao i thng tin vi cng ty khc trong mi trng a nn.
Cc cng ngh c DCOM CORBA259
Lp trnh C#.NET
Gii thiu
Web Services can convert your application into a Web-application, which can publish its function or message to the rest of the world. The basic Web Services platform is XML + HTTP.260
Lp trnh C#.NET
Gii thiu Cc thnh phn c bn ca Web Services SOAP (Simple Object Access Protocol) UDDI (Universal Description, Discovery and Integration) WSDL (Web Services Description Language)
261
Lp trnh C#.NET
Gii thiu WSDL: s dng to nh ngha giao din cho mt web service. WSDL cho cc ng dng client bit nhng phng thc no c h tr bi web service (tn phng thc, danh sch tham s, kt qu tr v) v cch thc kt ni vi chng. SOAP: nh dng d liu trc khi gi ti web service HTTP: giao thc s dng truyn d liu UDDI: chun ng k cc thng tin v cng ty, cc dch v web services m cng ty cung cp v cc ng dn URL tng ng c ng k.
262
Lp trnh C#.NET
Gii thiu Web services stack
263
Lp trnh C#.NET
Gii thiu
Tm kim v s dng web servicesLp trnh C#.NET
264
Lp trnh to web service4 bc c bn Bc 1: To lp ng dng Bc 2: Chuyn ng dng thnh dng webservice Bc 3: B sung cc m t Bc 4: Kim tra Web service Ch : Visual Studio t ng thc hin bc 2
265
Lp trnh C#.NET
V d Xy dng webservice qun l thng tin sinh vin (StudentService) h tr cc phng thc GetStudentCount(): tr v tng s sinh vin GetStudentCountByClass(string classID): tr v tng s sinh vin theo lp GetStudentsInfo(): tr v thng tin v tt c cc sinh vin
266
Lp trnh C#.NET
Lp trnh to Web service
Demo
267
Lp trnh C#.NET
Test StudentService (S dng Visual Studio)
268
Lp trnh C#.NET
Lp trnh s dng web service Cc ng dng (trn Windows) c th s dng web service Window form application Web application
Ch : web service c tnh a nn v a ngn ng
269
Lp trnh C#.NET
Web client s dng Web Service Cc cng vic cn x l To, Gi, nhn d liu theo nh dng XML (c h tr bi proxy class)
270
Lp trnh C#.NET
To proxy class to proxy class c hai cch S dng cng c wsdl.exe(C:\Program Files\Microsoft Visual Studio 2005\SDK\v2.0\Bin)
S dng Visual Studio web reference
Proxy class K tha lp SoapHttpClient Mt s thuc tnh chnhCredentials Url Timeout271
Lp trnh C#.NET
To proxy class s dng wsdl.exe Chy trn mi trng command line V d:wsdl http://localhost:4863/DemoWebservice/StudentService.asmx
Mc nh, mt file c tn StudentService.cs s c to ra thay i tn proxy class, thit lp tham s \out V d:wsdl http://localhost:4863/DemoWebservice/StudentService.asmx \out:StudentServiceProxy.cs
272
Lp trnh C#.NET
To proxy class s dng Visual Studio Bc 1: To web reference Bc 2: Nhp a ch webservice, nhn Go
273
Lp trnh C#.NET
To proxy class s dng Visual Studio Bc 3: t tn cho namespace v add web reference
274
Lp trnh C#.NET
To web client Bc 1: To ng dng web Bc 2: To proxy class (1 trong hai cch) Bc 3: S dng lp proxy class v cc phng thc thao tc vi webservice
275
Lp trnh C#.NET
To web client To trang web vi hai iu khin c bn 1 iu khin GridView hin th danh sch sinh vin 1 iu khin Button nhn s kin ca ngi dng
276
Lp trnh C#.NET
To web client
277
Lp trnh C#.NET
Demo
278
Lp trnh C#.NET