5.2 S k tha 35
5.3 a hình 37
5.4 Lp tru tng 38
5.5 Lp gc ca tt c các lp: Object 39
5.6 Kiu Boxing và Unboxing 40
5.7 Lp lng 42
Chng 6 Np chng toán t 44
6.1 Cách dùng t khoá operator 44
6.2 Cách h tr các ngôn ng .Net khác 44
6.3 S hu ích ca các toán t 44
6.4 Các toán t logic hai ngôi 45
6.5 Toán t so sánh bng 45
6.6 Toán t chuyn đi kiu (ép kiu) 45
Chng 7 Cu trúc 48
7.1 nh ngha cu trúc 48
7.2 Cách to cu trúc 49
Chng 8 Giao din 50
8.1 Cài đt mt giao din 50
8.2 Truy xut phng thc ca giao din 52
8.3 Np chng phn cài đt giao din 54
8.4 Thc hin giao din mt cách tng minh 55
Chng 9 Array, Indexer, and Collection 58
9.1 Mng (Array) 58
9.2 Câu lnh foreach 59
9.3 Indexers 62
9.4 Các giao din túi cha 65
9.5 Array Lists 65
9.6 Hàng đi 65
9.7 Stacks 66
9.8 Dictionary 66
Chng 10 Chui 67
10.1 To chui mi 67
10.2 Phng thc ToString() 67
10.3 Thao tác chui 68
10.4 Thao tác chui đng 70
Chng 11 Qun lý li 72
11.1 Ném và bt bit l 73
11.2 i tng Exception 80
11.3 Các bit l t to 82
11.4 Ném bit l ln na. 83
Chng 12 Delegate và Event 87
12.1 Delegate (y thác, y quyn) 87
12.2 Event (S kin) 101
Chng 13 Lp trình vi C# 109
13.1 ng dng Windows vi Windows Form 109
Chng 14 Truy cp d liu vi ADO.NET 144
14.1 C s d liu và ngôn ng truy vn SQL 144
14.2 Mt s loi kt ni hin đang s dng 144
14.3 Kin trúc ADO.NET 145
14.4 Mô hình đi tng ADO.NET 146
14.5 Trình cung cp d liu (.NET Data Providers) 148
14.6 Khi s vi ADO.NET 148
14.7 S dng trình cung cp d liu đc qun lý 151
14.8 Làm vic vi các điu khin kt buc d liu 152
14.9 Thay đi các bn ghi ca c s d liu 161
Chng 15 ng dng Web vi Web Forms 173
1.1 Tìm hiu v Web Forms 173
15.1 Các s kin ca Web Forms 174
15.2 Hin th chui lên trang 175
15.3 iu khin xác nhn hp 178
15.4 Mt s ví d mu minh ha 179
Chng 16 Các dch v Web 192
Chng 17 Assemblies và Versioning 196
17.1 Tp tin PE 196
17.2 Metadata 196
17.3 Ranh gii an ninh 196
17.4 S hiu phiên bn (Versioning) 196
17.5 Manifest 196
17.6 a Module Assembly 197
17.7 Assembly ni b (private assembly) 198
17.8 Assembly chia s (shared assembly) 198
Chng 18 Attributes và Reflection 200
18.1 Attributes 200
18.2 Attribute mc đnh (intrinsic attributes) 200
18.3 Attribute do lp trình viên to ra 201
18.4 Reflection 203
Chng 19 Marshaling và Remoting 204
19.1 Min ng Dng (Application Domains) 204
19.2 Context 206
19.3 Remoting 208
Chng 20 Thread và S ng B 215
20.1 Thread 215
20.2 ng b hóa (Synchronization) 216
20.3 Race condition và DeadLock 221
Chng 21 Lung d liu 223
21.1 Tp tin và th mc 223
21.2 c và ghi d liu 230
21.3 Bt đng b nhp xut 235
21.4 Serialization 238
21.5 Isolate Storage 244
Chng 22 Lp trình .NET và COM 246
22.1 P/Invoke 246
22.2 Con tr 248
Phn 2 Xây dng mt ng dng minh ha 250
Chng 23 Website dy hc ngôn ng C# 251
23.1 Hin trng và yêu cu 251
23.2 Phân tích hng đi tng 258
23.3 Thit k hng đi tng 262
Tóm tt
tài này tp trung tìm hiu toàn b các khái nim liên quan đn ngôn ng C#.
Bi vì C# đc Microsoft phát trin nh là mt thành phn ca khung ng dng
.NET Framework và hng Internet nên đ tài này bao gm hai phn sau:
Phn 1: Tìm hiu v ngôn ng C#
Vic tìm hiu bao gm c các kin thc nn tng v công ngh .NET Framework,
chun b cho các khái nim liên quan gia C# và .NET Framework. Sau đó tìm
hiu v b cú pháp ca ngôn ng này, bao gm toàn b tp lnh, t khóa, khái
nim v lp trình hng đi tng theo C#, các h tr lp trình hng
component Sau cùng là cách lp trình C# vi ng dng Window cho máy đ
bàn và C# vi các công ngh hin đi nh ASP.NET. ADO.NET, XML cho lp
trình Web.
Phn 2: Xây dng mt ng dng
Phn này là báo cáo v ng dng minh ha cho vic tìm hiu trên. Tên ng
dng là Xây dng mt Website dy hc C#. ây là ng dng Web cài đt bng
ngôn ng C# và ASP.NET. Trong đó ASP.NET đc dùng đ xây dng giao
din tng tác vi ngi dùng; còn C# là ngôn ng lp trình bên di. ng dng
có thao tác c s d liu (Microsoft SQL Server) thông quan mô hình
ADO.NET.
1
Phn 1
Tìm hiu ngôn ng C#
C# và .Net Framework Gvhd: Nguyn Tn Trn Minh Khang
2
Chng 1 C# và .Net Framework
Mc tiêu ca C# là cung cp mt ngôn ng lp trình đn gin, an toàn, hin đi,
hng đi tng, đt trng tâm vào Internet, có kh nng thc thi cao cho môi
trng .NET. C# là mt ngôn ng mi, nhng tích hp trong nó nhng tinh hoa ca
ba thp k phát trin ca ngôn ng lp trình. Ta có th d dàng thy trong C# có
nhng đc trng quen thuc ca Java, C++, Visual Basic, …
tài này đt trng tâm gii thiu ngôn ng C# và cách dùng nó nh là mt công
c lp trình trên nn tng .NET. Vi ngôn ng C++, khi hc nó ta không cn quan
tâm đn môi trng thc thi. Vi ngôn ng C#, ta hc đ to mt ng dng .NET,
nu l là ý này có th b l quan đim chính ca ngôn ng này. Do đó, trong đ tài
này xét C# tp trung trong ng cnh c th là nn tng .NET ca Microsoft và trong
các ng dng máy tính đ bàn và ng dng Internet.
Chng này trình bày chung v hai phn là ngôn ng C# và nn tng .NET, bao
gm c khung ng dng .NET (.NET Framework)
1.1 Nn tng ca .NET
Khi Microsoft công b C# vào tháng 7 nm 2000, vic khánh thành nó ch là mt
phn trong s rt nhiu s kin mà nn tng .Net đc công công b. Nn tng .Net
là bô khung phát trin ng dng mi, nó cung cp mt giao din lp trình ng dng
(Application Programming Interface - API) mi m cho các dch v và h điu hành
Windows, c th là Windows 2000, nó cng mang li nhiu k thut khác ni bt
ca Microsoft sut t nhng nm 90. Trong s đó có các dch v COM+, công ngh
ASP, XML và thit k hng đi tng, h tr các giao thc dch v web mi nh
SOAP, WSDL và UDDL vi trng tâm là Internet, tt c đc tích hp trong kin
trúc DNA.
Nn tng .NET bao gm bn nhóm sau:
1. Mt tp các ngôn ng, bao gm C# và Visual Basic .Net; mt tp các công c
phát trin bao gm Visual Studio .Net; mt tp đy đ các th vin phc v
cho vic xây dng các ng dng web, các dch v web và các ng dng
Windows; còn có CLR - Common Language Runtime: (ngôn ng thc thi
dùng chung) đ thc thi các đi tng đc xây dng trên bô khung này.
2. Mt tp các Server Xí nghip .Net nh SQL Server 2000. Exchange 2000,
BizTalk 2000, … chúng cung cp các chc nng cho vic lu tr d liu quan
h, th đin t, thng mi đin t B2B, …
C# và .Net Framework Gvhd: Nguyn Tn Trn Minh Khang
3
3. Các dch v web thng mi min phí, va đc công b gn đy nh là d
án Hailstorm; nhà phát trin có th dùng các dch v này đ xây dng các ng
dng đòi hi tri thc v đnh danh ngi dùng…
4. .NET cho các thit b không phi PC nh đin thoi (cell phone), thit b game
1.2 .NET Framework
.Net h tr tích hp ngôn ng, tc là ta có th k tha các lp, bt các bit l, đa
hình thông qua nhiu ngôn ng. .NET Framework thc hin đc vic này nh vào
đc t Common Type System - CTS (h thng kiu chung) mà tt c các thành phn
.Net đu tuân theo. Ví d, mi th trong .Net đu là đi tng, tha k t lp gc
System.Object.
Ngoài ra .Net còn bao gm Common Language Specification - CLS (đc t ngôn
ng chung). Nó cung cp các qui tc c bn mà ngôn ng mun tích hp phi tha
mãn. CLS ch ra các yêu cu ti thiu ca ngôn ng h tr .Net. Trình biên dch
tuân theo CLS s to các đi tng có th tng hp vi các đi tng khác. B th
vin lp ca khung ng dng (Framework Class Library - FCL) có th đc dùng
bi bt k ngôn ng nào tuân theo CLS.
.NET Framework nm tng trên ca h điu hành (bt k h điu hành nào không
ch là Windows). .NET Framework bao bao gm:
•
Bn ngôn ng chính thc: C#, VB.Net, C++, và Jscript.NET
• Common Language Runtime - CLR, nn tng hng đi tng cho phát trin
ng dng Windows và web mà các ngôn ng có th chia s s dng.
•
B th vin Framework Class Library - FCL.
Hình 1-1 Kin trúc khung ng dng .Net
C# và .Net Framework Gvhd: Nguyn Tn Trn Minh Khang
4
Thành phn quan trng nht ca .NET Framework là CLR, nó cung cp môi trng
cho ng dng thc thi, CLR là mt máy o, tng t máy o Java. CLR kích hot
đi tng, thc hin kim tra bo mt, cp phát b nh, thc thi và thu dn chúng.
Trong Hình 1-1 tng trên ca CLR bao gm:
• Các lp c s
•
Các lp d liu và XML
• Các lp cho dch v web, web form, và Windows form.
Các lp này đc gi chung là FCL, Framework Class Library, cung cp API
hng đi tng cho tt c các chc nng ca .NET Framework (hn 5000 lp).
Các lp c s tng t vi các lp trong Java. Các lp này h tr các thao tác nhp
xut, thao tác chui, vn bn, qun lý bo mt, truyn thông mng, qun lý tiu trình
và các chc nng tng hp khác …
Trên mc này là lp d liu và XML. Lp d liu h tr vic thao tác các d liu
trên c s d liu. Các lp này bao gm các lp SQL (Structure Query Language:
ngôn ng truy vn có cu trúc) cho phép ta thao tác d liu thông qua mt giao tip
SQL chun. Ngoài ra còn mt tp các lp gi là ADO.Net cng cho phép thao tác
d liu. Lp XML h tr thao tác d liu XML, tìm kim và din dch XML.
Trên lp d liu và XML là lp h tr xây dng các ng dng Windows (Windows
forms), ng dng Web (Web forms) và dch v Web (Web services).
1.3 Biên dch và ngôn ng trung gian (MSIL)
Vi .NET chng trình không biên dch thành tp tin thc thi, mà biên dch thành
ngôn ng trung gian (MSIL - Microsoft Intermediate Language, vit tt là IL), sau
đó chúng đc CLR thc thi. Các tp tin IL biên dch t C# đng nht vi các tp
tin IL biên dch t ngôn ng .Net khác.
Khi biên dch d án, mã ngun C# đc chuyn thành tp tin IL lu trên đa. Khi
chy chng trình thì IL đc biên dch (hay thông dch) mt ln na bng trình
Just In Time - JIT, khi này kt qu là mã máy và b x lý s thc thi.
Trình biên dch JIT ch chy khi có yêu cu. Khi mt phng thc đc gi, JIT
phân tích IL và sinh ra mã máy ti u cho tng loi máy. JIT có th nhn bit mã
ngun đã đc biên dch cha, đ có th chy ngay ng dng hay phi biên dch li.
CLS có ngha là các ngôn ng .Net cùng sinh ra mã IL. Các đi tng đc to theo
mt ngôn ng nào đó s đc truy cp và tha k bi các đi tng ca ngôn ng
khác. Vì vy ta có th to đc mt lp c s trong VB.Net và tha k nó t C#.
C# và .Net Framework Gvhd: Nguyn Tn Trn Minh Khang
5
1.4 Ngôn ng C#
C# là mt ngôn ng rt đn gin, vi khong 80 t khoá và hn mi kiu d liu
dng sn, nhng C# có tính din đt cao. C# h tr lp trình có cu trúc, hng đi
tng, hng thành phn (component oriented).
Trng tâm ca ngôn ng hng đi tng là lp. Lp đnh ngha kiu d liu mi,
cho phép m rng ngôn ng theo hng cn gii quyt. C# có nhng t khoá dành
cho vic khai báo lp, phng thc, thuc tính (property) mi. C# h tr đy đ
khái nim tr ct trong lp trình hng đi tng: đóng gói, tha k, đa hình.
nh ngha lp trong C# không đòi hi tách ri tp tin tiêu đ vi tp tin cài đt nh
C++. Hn th, C# h tr kiu su liu mi, cho phép su liu trc tip trong tp tin
mã ngun. n khi biên dch s to tp tin su liu theo đnh dng XML.
C# h tr khái nim giao din, interfaces (tng t Java). Mt lp ch có th k
tha duy nht mt lp cha nhng có th cài đt nhiu giao din.
C# có kiu cu trúc, struct (không ging C++). Cu trúc là kiu hng nh và b gii
hn.Cu trúc không th tha k lp hay đc k tha nhng có th cài đt giao din.
C# cung cp nhng đc trng lp trình hng thành phn nh property, s kin và
dn hng khai báo (đc gi là attribute). Lp trình hng component đc h tr
bi CLR thông qua siêu d liu (metadata). Siêu d liu mô t các lp bao gm các
phng thc và thuc tính, các thông tin bo mt ….
Assembly là mt tp hp các tp tin mà theo cách nhìn ca lp trình viên là các th
vin liên kt đng (DLL) hay tp tin thc thi (EXE). Trong .NET mt assembly là
mt đon v ca vic tái s dng, xác đnh phiên bn, bo mt, và phân phi. CLR
cung cp mt s các lp đ thao tác vi assembly.
C# cng cho truy cp trc tip b nh dùng con tr kiu C++, nhng vùng mã đó
đc xem nh không an toàn. CLR s không thc thi vic thu dn rác t đng các
đi tng đc tham chiu bi con tr cho đn khi lp trình viên t gii phóng.
Khi đu Gvhd: Nguyn Tn Trn Minh Khang
6
Chng 2 Khi đu
Chng này ta s to, biên dch và chy chng trình “Hello World” bng ngôn ng
C#. Phân tích ngn gn chng trình đ gii thiu các đc trng chính yu trong
ngôn ng C#.
Ví d 2-1 Chng trình Hello World
class HelloWorld
{
static void Main( )
{
// s dng đi tng console ca h thng
System.Console.WriteLine("Hello World");
}
}
Sau khi biên dch và chy HelloWorld, kt qu là dòng ch “Hello World” hin th
trên màn hình.
2.1 Lp, đi tng và kiu
Bn cht ca lp trình hng đi tng là to ra các kiu mi. Mt kiu biu din
mt vt gì đó. Ging vi các ngôn ng lp trình hng đi tng khác, mt kiu
trong C# cng đnh ngha bng t khoá class (và đc gi là lp) còn th hin ca
lp đc gi là đi tng.
Xem Ví d 2-1 ta thy cách khai báo mt lp
HelloWorld. Ta thy ngay là cách
khai báo và ni dung ca mt lp hoàn toàn ging vi ngôn ng Java và C++, ch
có khác là cui khai báo lp không cn du “;”
2.1.1 Phng thc
Các hành vi ca mt lp đc gi là các phng thc thành viên (gi tt là phng
thc) ca lp đó. Mt phng thc là mt hàm (phng thc thành viên còn gi là
hàm thành viên). Các phng thc đnh ngha nhng gì mà mt lp có th làm.
Cách khai báo, ni dung và cách s dng các phng thc ging hoàn toàn vi Java
và C++. Trong ví d trên có mt phng thc đc bit là phng thc Main() (nh
hàm
main() trong C++) là phng thc bt đu ca mt ng dng C#, có th tr v
kiu
void hay int. Mi mt chng trình (assembly) có th có nhiu phng thc
Main nhng khi đó phi ch đnh phng thc
Main() nào s bt đu chng trình.
Không có nhận xét nào:
Đăng nhận xét