Lập trình phần mềm là một nghề đòi hỏi sự tư duy logic và sự sáng tạo tinh tế. Ngôn ngữ lập trình thì rất đa dạng, nhưng trong xu thế phát triển của ngành phần mềm hiện đại, đòi hỏi phải có một ngôn ngữ lập trình hiện đại, mạnh về xử lý, đơn giản về cấu trúc lệnh, dễ học, hướng đối tượng... Và ngôn ngữ lập trình C (C Sharp) đã ra đời và nhanh chóng được phổ biến, và trở thành ngôn ngữ tiên phong trong cuộc cách mạng phần mềm.
TRNG I HC KHOA HC T NHIÊN KHOA CÔNG NGH THÔNG TIN B MÔN CÔNG NGH PHN MM PHM VN VIT - TRNG LP V TÌM HIU NGÔN NG C# VÀ VIT MT NG DNG MINH HA ÁN TT NGIP GIÁO VIÊN HNG DN NGUYN TN TRN MINH KHANG TP. HCM 2002 TRNG I HC KHOA HC T NHIÊN KHOA CÔNG NGH THÔNG TIN B MÔN CÔNG NGH PHN MM PHM VN VIT - TRNG LP V TÌM HIU NGÔN NG C# VÀ VIT MT NG DNG MINH HA GIÁO VIÊN HNG DN NGUYN TN TRN MINH KHANG TP. HCM 2002 Li cám n có th hoàn tt đc bài đ án này, trc tiên phi k đn công sc ca thy Nguyn Tn Trn Minh Khang. Chúng em kính li cm n đn thy đã tn tình hng dn và giúp đ trong thi gian thc hin đ án này. Chúng em xin t lòng bit n sâu sc đi vi gia đình đã đng viên, to điu kin đ thc hin tt bài đ án. Xin cám n cha, m, anh, ch, em! Chúng em cng xin chân thành cm n đn các thy cô khoa Công ngh thông tin trng i hc Khoa hc T nhiên Thành ph H Chí Minh đã truyn đt nhng kin thc, kinh nghim quí báu cho chúng em trong quá trình hc tp ti trng. Chúng em cng xin chân thành cm n đn các bn bè đã giúp đ tài liu, trao đi hc thut mi có th thc hin đ án này. Xin gi li cm n đn các bn H Ngc Huy, Trn Th Anh, Bùi Thanh Tun Thành ph H Chí Minh, ngày 03 tháng 8 nm 2002 Sinh viên Phm Vn Vit Trng Lp V Mc lc Li cám n 3 Mc lc 4 Tóm tt 1 Phn 1 Tìm hiu ngôn ng C# 1 Chng 1 C# và .Net Framework 2 1.1 Nn tng ca .NET 2 1.2 .NET Framework 3 1.3 Biên dch và ngôn ng trung gian (MSIL) 4 1.4 Ngôn ng C# 5 Chng 2 Khi đu 6 2.1 Lp, đi tng và kiu 6 2.2 Phát trin “Hello World” 8 Chng 3 Nhng c s ca ngôn ng C# 12 3.1 Các kiu 12 3.2 Bin và hng 14 3.3 Biu thc 16 3.4 Khong trng 16 3.5 Câu lnh 16 3.6 Toán t 19 3.7 To vùng tên 21 3.8 Ch th tin x lý 22 Chng 4 Lp và đi tng 24 4.1 nh ngha lp 24 4.2 To đi tng 25 4.3 S dng các thành viên tnh 27 4.4 Hy đi tng 29 4.5 Truyn tham s 30 4.6 Np chng phng thc và hàm dng 32 4.7 óng gói d liu vi property 33 Chng 5 Tha k và a hình 35 5.1 c bit hoá và tng quát hoá 35 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, … [...]... 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. .. 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 tn theo Ví d , m i th trong Net u là i t ng, th a k t l p g c System.Object Ngồ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 u c u t i thi u c a ngơn ng h tr Net Trình biên d ch... C ch khai báo vùng tên th nh t ch ti n n u c c vùng tên n m trên c ng m t t p tin C ch th hai ti n l i h n khi c c vùng tên n m trên nhi u t p tin kh c nhau 3.8 Ch th ti n x lý Khơng ph i m i c u l nh u c biên d ch c ng l c mà c m t s trong chúng c biên d ch tr c m t s kh c C c câu l nh nh th này g i là c c ch th ti n x lý C c ch th ti n x lý c t sau d u # 3.8.1 nh ngh a c c nh danh #define DEBUG nh ngh... …) v i c c ki u do ng i dùng nh ngh a Ngồi ra, ch ng này c ng s trình bày c ch t o và dùng bi n, h ng; gi i thi u ki u li t kê, chu i, ki u nh danh, bi u th c, và c u l nh Ph n hai c a ch ng trình bày v c c c u tr c i u ki n và c c tốn t logic, quan h , tốn h c, … 3.1 C c ki u C# bu c ph i khai báo ki u c a i t ng c t o Khi ki u c khai báo rõ ràng, trình biên d ch s giúp ng n ng a l i b ng c ch ki m... c i u ki n C c t khóa if-else, while, do-while, for, switch-case, dùng i u khi n dòng ch y ch ng trình C# gi l i t t c c c cú pháp c a C+ +, ngo i tr switch c vài c i ti n 3.5.2.1 L nh If else … C pháp: if ( bi u th c logic ) kh i l nh; ho c if ( bi u th c logic ) kh i l nh 1; else kh i l nh 2; Ghi chú: Kh i l nh là m t t p c c câu l n trong c p d u “{…}” B t k n i âu c c u l nh thì ó c th vi t... protected Truy xu t trong n i b l p ho c trong c c l p con internal Truy xu t n i trong ch ng trình (assembly) protected internal Truy xu t n i trong ch c c l p con ng trình (assembly) và trong private (m c Ch nh) c truy xu t trong n i b l p 4.1.2 C c tham s c a ph ng th c M i ph ng th c có th khơng c tham s mà c ng c th c nhi u tham s C c tham s theo sau tên ph ng th c và t trong c p ngo c n Ví... 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 tồ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 5 Kh i Ch u Gvhd: Nguy... c y vùng tên MyApplication Presentation vùng tên con Vùng tên con C c lớp Bussiness vùng tên con C c lớp Data vùng tên con C c lớp c truy xu t thơng qua tên vùng tên cha c ch nhau b ng d u ch m khai báo vùng tên ta s d ng t khóa namespace Ví d d báo c c vùng tên trong ví d trên 21 i ây là 2 c ch khai Nh ng c s c a ngơn ng C# Gvhd: Nguy n T n Tr n Minh Khang C ch 1 namespace MyApplication { namespace... 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 hồn tồn v i Java và C+ + Trong ví d trên c m t... 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 Ngồ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 . 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. 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. 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