Thứ Hai, 3 tháng 3, 2014

Tài liệu Đồ án tốt nghiệp: Tìm hiểu ngôn ngữ C # và viết một ứng dụng minh họa pptx

5.2 S k tha 35
5.3 a hình 37
5.4 Lp tru tng 38
5.5 Lp gc ca tt c các lp: Object 39
5.6 Kiu Boxing và Unboxing 40
5.7 Lp lng 42
Chng 6 Np chng 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 hu ích ca 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 bng 45
6.6 Toán t chuyn đi kiu (ép kiu) 45
Chng 7 Cu trúc 48
7.1 nh ngha cu trúc 48
7.2 Cách to cu trúc 49
Chng 8 Giao din 50
8.1 Cài đt mt giao din 50
8.2 Truy xut phng thc ca giao din 52
8.3 Np chng phn cài đt giao din 54
8.4 Thc hin giao din mt cách tng minh 55
Chng 9 Array, Indexer, and Collection 58
9.1 Mng (Array) 58
9.2 Câu lnh foreach 59
9.3 Indexers 62

9.4 Các giao din túi cha 65
9.5 Array Lists 65
9.6 Hàng đi 65
9.7 Stacks 66
9.8 Dictionary 66
Chng 10 Chui 67
10.1 To chui mi 67
10.2 Phng thc ToString() 67
10.3 Thao tác chui 68
10.4 Thao tác chui đng 70
Chng 11 Qun lý li 72
11.1 Ném và bt bit l 73
11.2 i tng Exception 80
11.3 Các bit l t to 82
11.4 Ném bit l ln na. 83
Chng 12 Delegate và Event 87
12.1 Delegate (y thác, y quyn) 87
12.2 Event (S kin) 101
Chng 13 Lp trình vi C# 109
13.1 ng dng Windows vi Windows Form 109
Chng 14 Truy cp d liu vi ADO.NET 144
14.1 C s d liu và ngôn ng truy vn SQL 144
14.2 Mt s loi kt ni hin đang s dng 144
14.3 Kin trúc ADO.NET 145
14.4 Mô hình đi tng ADO.NET 146
14.5 Trình cung cp d liu (.NET Data Providers) 148
14.6 Khi s vi ADO.NET 148
14.7 S dng trình cung cp d liu đc qun lý 151
14.8 Làm vic vi các điu khin kt buc d liu 152

14.9 Thay đi các bn ghi ca c s d liu 161
Chng 15 ng dng Web vi Web Forms 173
1.1 Tìm hiu v Web Forms 173
15.1 Các s kin ca Web Forms 174
15.2 Hin th chui lên trang 175
15.3 iu khin xác nhn hp 178
15.4 Mt s ví d mu minh ha 179
Chng 16 Các dch v Web 192
Chng 17 Assemblies và Versioning 196
17.1 Tp tin PE 196
17.2 Metadata 196
17.3 Ranh gii an ninh 196
17.4 S hiu phiên bn (Versioning) 196
17.5 Manifest 196
17.6 a Module Assembly 197
17.7 Assembly ni b (private assembly) 198
17.8 Assembly chia s (shared assembly) 198
Chng 18 Attributes và Reflection 200
18.1 Attributes 200
18.2 Attribute mc đnh (intrinsic attributes) 200
18.3 Attribute do lp trình viên to ra 201
18.4 Reflection 203
Chng 19 Marshaling và Remoting 204
19.1 Min ng Dng (Application Domains) 204
19.2 Context 206
19.3 Remoting 208
Chng 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
Chng 21 Lung d liu 223
21.1 Tp tin và th mc 223
21.2 c và ghi d liu 230
21.3 Bt đng b nhp xut 235
21.4 Serialization 238
21.5 Isolate Storage 244
Chng 22 Lp trình .NET và COM 246
22.1 P/Invoke 246
22.2 Con tr 248
Phn 2 Xây dng mt ng dng minh ha 250

Chng 23 Website dy hc ngôn ng C# 251
23.1 Hin trng và yêu cu 251
23.2 Phân tích hng đi tng 258
23.3 Thit k hng đi tng 262




Tóm tt

 tài này tp trung tìm hiu toàn b các khái nim liên quan đn ngôn ng C#.
Bi vì C# đc Microsoft phát trin nh là mt thành phn ca khung ng dng
.NET Framework và hng Internet nên đ tài này bao gm hai phn sau:
Phn 1: Tìm hiu v ngôn ng C#
Vic tìm hiu bao gm c các kin thc nn tng v công ngh .NET Framework,
chun b cho các khái nim liên quan gia C# và .NET Framework. Sau đó tìm
hiu v b cú pháp ca ngôn ng này, bao gm toàn b tp lnh, t khóa, khái
nim v lp trình hng đi tng theo C#, các h tr lp trình hng
component Sau cùng là cách lp trình C# vi ng dng Window cho máy đ
bàn và C# vi các công ngh hin đi nh ASP.NET. ADO.NET, XML cho lp
trình Web.

Phn 2: Xây dng mt ng dng
Phn này là báo cáo v ng dng minh ha cho vic tìm hiu  trên. Tên ng
dng là Xây dng mt Website dy hc C#. ây là ng dng Web cài đt bng
ngôn ng C# và ASP.NET. Trong đó ASP.NET đc dùng đ xây dng giao
din tng tác vi ngi dùng; còn C# là ngôn ng lp trình bên di. ng dng
có thao tác c s d liu (Microsoft SQL Server) thông quan mô hình
ADO.NET.


1




Phn 1
Tìm hiu ngôn ng C#
C# và .Net Framework Gvhd: Nguyn Tn Trn Minh Khang
2


Chng 1 C# và .Net Framework
Mc tiêu ca C# là cung cp mt ngôn ng lp trình đn gin, an toàn, hin đi,
hng đi tng, đt trng tâm vào Internet, có kh nng thc thi cao cho môi
trng .NET. C# là mt ngôn ng mi, nhng tích hp trong nó nhng tinh hoa ca
ba thp k phát trin ca ngôn ng lp trình. Ta có th d dàng thy trong C# có
nhng đc trng quen thuc ca Java, C++, Visual Basic, …
 tài này đt trng tâm gii thiu ngôn ng C# và cách dùng nó nh là mt công
c lp trình trên nn tng .NET. Vi ngôn ng C++, khi hc nó ta không cn quan
tâm đn môi trng thc thi. Vi ngôn ng C#, ta hc đ to mt ng dng .NET,
nu l là ý này có th b l quan đim chính ca ngôn ng này. Do đó, trong đ tài
này xét C# tp trung trong ng cnh c th là nn tng .NET ca Microsoft và trong
các ng dng máy tính đ bàn và ng dng Internet.
Chng này trình bày chung v hai phn là ngôn ng C# và nn tng .NET, bao
gm c khung ng dng .NET (.NET Framework)
1.1 Nn tng ca .NET
Khi Microsoft công b C# vào tháng 7 nm 2000, vic khánh thành nó ch là mt
phn trong s rt nhiu s kin mà nn tng .Net đc công công b. Nn tng .Net
là bô khung phát trin ng dng mi, nó cung cp mt giao din lp trình ng dng
(Application Programming Interface - API) mi m cho các dch v và h điu hành
Windows, c th là Windows 2000, nó cng mang li nhiu k thut khác ni bt
ca Microsoft sut t nhng nm 90. Trong s đó có các dch v COM+, công ngh
ASP, XML và thit k hng đi tng, h tr các giao thc dch v web mi nh
SOAP, WSDL và UDDL vi trng tâm là Internet, tt c đc tích hp trong kin
trúc DNA.
Nn tng .NET bao gm bn nhóm sau:
1. Mt tp các ngôn ng, bao gm C# và Visual Basic .Net; mt tp các công c
phát trin bao gm Visual Studio .Net; mt tp đy đ các th vin phc v
cho vic xây dng các ng dng web, các dch v web và các ng dng
Windows; còn có CLR - Common Language Runtime: (ngôn ng thc thi
dùng chung) đ thc thi các đi tng đc xây dng trên bô khung này.
2. Mt tp các Server Xí nghip .Net nh SQL Server 2000. Exchange 2000,
BizTalk 2000, … chúng cung cp các chc nng cho vic lu tr d liu quan
h, th đin t, thng mi đin t B2B, …
C# và .Net Framework Gvhd: Nguyn Tn Trn Minh Khang
3
3. Các dch v web thng mi min phí, va đc công b gn đy nh là d
án Hailstorm; nhà phát trin có th dùng các dch v này đ xây dng các ng
dng đòi hi tri thc v đnh danh ngi dùng…
4. .NET cho các thit b không phi PC nh đin thoi (cell phone), thit b game
1.2 .NET Framework
.Net h tr tích hp ngôn ng, tc là ta có th k tha các lp, bt các bit l, đa
hình thông qua nhiu ngôn ng. .NET Framework thc hin đc vic này nh vào
đc t Common Type System - CTS (h thng kiu chung) mà tt c các thành phn
.Net đu tuân theo. Ví d, mi th trong .Net đu là đi tng, tha k t lp gc
System.Object.
Ngoài ra .Net còn bao gm Common Language Specification - CLS (đc t ngôn
ng chung). Nó cung cp các qui tc c bn mà ngôn ng mun tích hp phi tha
mãn. CLS ch ra các yêu cu ti thiu ca ngôn ng h tr .Net. Trình biên dch
tuân theo CLS s to các đi tng có th tng hp vi các đi tng khác. B th
vin lp ca khung ng dng (Framework Class Library - FCL) có th đc dùng
bi bt k ngôn ng nào tuân theo CLS.
.NET Framework nm  tng trên ca h điu hành (bt k h điu hành nào không
ch là Windows). .NET Framework bao bao gm:

Bn ngôn ng chính thc: C#, VB.Net, C++, và Jscript.NET
• Common Language Runtime - CLR, nn tng hng đi tng cho phát trin
ng dng Windows và web mà các ngôn ng có th chia s s dng.

B th vin Framework Class Library - FCL.
Hình 1-1 Kin trúc khung ng dng .Net

C# và .Net Framework Gvhd: Nguyn Tn Trn Minh Khang
4
Thành phn quan trng nht ca .NET Framework là CLR, nó cung cp môi trng
cho ng dng thc thi, CLR là mt máy o, tng t máy o Java. CLR kích hot
đi tng, thc hin kim tra bo mt, cp phát b nh, thc thi và thu dn chúng.
Trong Hình 1-1 tng trên ca CLR bao gm:
• Các lp c s

Các lp d liu và XML
• Các lp cho dch v web, web form, và Windows form.
Các lp này đc gi chung là FCL, Framework Class Library, cung cp API
hng đi tng cho tt c các chc nng ca .NET Framework (hn 5000 lp).
Các lp c s tng t vi các lp trong Java. Các lp này h tr các thao tác nhp
xut, thao tác chui, vn bn, qun lý bo mt, truyn thông mng, qun lý tiu trình
và các chc nng tng hp khác …
Trên mc này là lp d liu và XML. Lp d liu h tr vic thao tác các d liu
trên c s d liu. Các lp này bao gm các lp SQL (Structure Query Language:
ngôn ng truy vn có cu trúc) cho phép ta thao tác d liu thông qua mt giao tip
SQL chun. Ngoài ra còn mt tp các lp gi là ADO.Net cng cho phép thao tác
d liu. Lp XML h tr thao tác d liu XML, tìm kim và din dch XML.
Trên lp d liu và XML là lp h tr xây dng các ng dng Windows (Windows
forms), ng dng Web (Web forms) và dch v Web (Web services).
1.3 Biên dch và ngôn ng trung gian (MSIL)
Vi .NET chng trình không biên dch thành tp tin thc thi, mà biên dch thành
ngôn ng trung gian (MSIL - Microsoft Intermediate Language, vit tt là IL), sau
đó chúng đc CLR thc thi. Các tp tin IL biên dch t C# đng nht vi các tp
tin IL biên dch t ngôn ng .Net khác.
Khi biên dch d án, mã ngun C# đc chuyn thành tp tin IL lu trên đa. Khi
chy chng trình thì IL đc biên dch (hay thông dch) mt ln na bng trình
Just In Time - JIT, khi này kt qu là mã máy và b x lý s thc thi.
Trình biên dch JIT ch chy khi có yêu cu. Khi mt phng thc đc gi, JIT
phân tích IL và sinh ra mã máy ti u cho tng loi máy. JIT có th nhn bit mã
ngun đã đc biên dch cha, đ có th chy ngay ng dng hay phi biên dch li.
CLS có ngha là các ngôn ng .Net cùng sinh ra mã IL. Các đi tng đc to theo
mt ngôn ng nào đó s đc truy cp và tha k bi các đi tng ca ngôn ng
khác. Vì vy ta có th to đc mt lp c s trong VB.Net và tha k nó t C#.
C# và .Net Framework Gvhd: Nguyn Tn Trn Minh Khang
5
1.4 Ngôn ng C#
C# là mt ngôn ng rt đn gin, vi khong 80 t khoá và hn mi kiu d liu
dng sn, nhng C# có tính din đt cao. C# h tr lp trình có cu trúc, hng đi
tng, hng thành phn (component oriented).
Trng tâm ca ngôn ng hng đi tng là lp. Lp đnh ngha kiu d liu mi,
cho phép m rng ngôn ng theo hng cn gii quyt. C# có nhng t khoá dành
cho vic khai báo lp, phng thc, thuc tính (property) mi. C# h tr đy đ
khái nim tr ct trong lp trình hng đi tng: đóng gói, tha k, đa hình.
nh ngha lp trong C# không đòi hi tách ri tp tin tiêu đ vi tp tin cài đt nh
C++. Hn th, C# h tr kiu su liu mi, cho phép su liu trc tip trong tp tin
mã ngun. n khi biên dch s to tp tin su liu theo đnh dng XML.
C# h tr khái nim giao din, interfaces (tng t Java). Mt lp ch có th k
tha duy nht mt lp cha nhng có th cài đt nhiu giao din.
C# có kiu cu trúc, struct (không ging C++). Cu trúc là kiu hng nh và b gii
hn.Cu trúc không th tha k lp hay đc k tha nhng có th cài đt giao din.
C# cung cp nhng đc trng lp trình hng thành phn nh property, s kin và
dn hng khai báo (đc gi là attribute). Lp trình hng component đc h tr
bi CLR thông qua siêu d liu (metadata). Siêu d liu mô t các lp bao gm các
phng thc và thuc tính, các thông tin bo mt ….
Assembly là mt tp hp các tp tin mà theo cách nhìn ca lp trình viên là các th
vin liên kt đng (DLL) hay tp tin thc thi (EXE). Trong .NET mt assembly là
mt đon v ca vic tái s dng, xác đnh phiên bn, bo mt, và phân phi. CLR
cung cp mt s các lp đ thao tác vi assembly.
C# cng cho truy cp trc tip b nh dùng con tr kiu C++, nhng vùng mã đó
đc xem nh không an toàn. CLR s không thc thi vic thu dn rác t đng các
đi tng đc tham chiu bi con tr cho đn khi lp trình viên t gii phóng.

Khi đu Gvhd: Nguyn Tn Trn Minh Khang
6


Chng 2 Khi đu
Chng này ta s to, biên dch và chy chng trình “Hello World” bng ngôn ng
C#. Phân tích ngn gn chng trình đ gii thiu các đc trng chính yu trong
ngôn ng C#.
Ví d 2-1 Chng trình Hello World
class HelloWorld
{

static void Main( )
{

// s dng đi tng console ca h thng
System.Console.WriteLine("Hello World");
}
}
Sau khi biên dch và chy HelloWorld, kt qu là dòng ch “Hello World” hin th
trên màn hình.
2.1 Lp, đi tng và kiu
Bn cht ca lp trình hng đi tng là to ra các kiu mi. Mt kiu biu din
mt vt gì đó. Ging vi các ngôn ng lp trình hng đi tng khác, mt kiu
trong C# cng đnh ngha bng t khoá class (và đc gi là lp) còn th hin ca
lp đc gi là đi tng.
Xem Ví d 2-1 ta thy cách khai báo mt lp
HelloWorld. Ta thy ngay là cách
khai báo và ni dung ca mt lp hoàn toàn ging vi ngôn ng Java và C++, ch
có khác là cui khai báo lp không cn du “;”
2.1.1 Phng thc
Các hành vi ca mt lp đc gi là các phng thc thành viên (gi tt là phng
thc) ca lp đó. Mt phng thc là mt hàm (phng thc thành viên còn gi là
hàm thành viên). Các phng thc đnh ngha nhng gì mà mt lp có th làm.
Cách khai báo, ni dung và cách s dng các phng thc ging hoàn toàn vi Java
và C++. Trong ví d trên có mt phng thc đc bit là phng thc Main() (nh
hàm
main() trong C++) là phng thc bt đu ca mt ng dng C#, có th tr v
kiu
void hay int. Mi mt chng trình (assembly) có th có nhiu phng thc
Main nhng khi đó phi ch đnh phng thc
Main() nào s bt đu chng trình.

Không có nhận xét nào:

Đăng nhận xét