C Sharp và NET framework
M đ u
Vào nh ng th p nhiên 80, 90 c a th k tr c, C r i C++ là nh ng ngôn ng l p trình truy n th ng khá n i ti ng giúp cho l p trình viên phát tri n ng d ng c a mình r t hi u qu Tuy nhiên nh ng ngôn ng này có m t s nh c đi m th ng đ c nh c t i nh sau:
- R t khó kh n đ ti p c n (Nh t là đ i v i nh ng ng i m i ch p ch ng b c vào l nh v c l p trình)
- T n kém nhi u th i gian và chi phí đ phát tri n đ i v i 1 ph n m m c th
- Vi c h tr cho Debug ch ng trình không t t d n đ n vi c g p nhi u khó kh n khi c n ki m tra thu t toán c a ch ng trình vào th i đi m th c thi c a ch ng trình ( đây thu t ng
Debug dùng đ ch 1 k thu t giúp cho l p trình viên có th ki m tra ti n trình ho t đ ng trong b nhó đ i v i ch ng trình c a mình, k thu t này r t hi u qu khi l p trình viên c n
ph i xác đ nh tính đúng đ n đ i v i thu t toán đã s d ng)
- Vi c k t n i gi a ch ng trình chính v i c s d li u khá ph c t p
- …
Microsoft gi i thi u C# (C Sharp) nh m t ngôn ng l p trình m i đ gi i quy t nh ng nh c đi m
c a các ngôn ng l p trình truy n th ng C# đ c phát tri n v i nh ng m c đích chính nh :
- Cho phép l p trình viên có th xây d ng các ch ng trình c a mình m t cách đ n gi n mà
hi u qu , có th phát tri n và m r ng trong t ng lai v i kh n ng t ng thích cao trong
nh ng h th ng có ki n trúc ph n c ng khác nhau
- Xây d ng và phát tri n ng d ng d a trên ki t trúc c a l p trình h ng đ i t ng (pure
ch ng trình r t m nh
- Cho phép s d ng l i nhi u tính n ng ch có trong C++ tr c đây trong khi v n đ m b o tính
d dùng (easy-of-use) khi xây d ng ng d ng
- …
Gi i thi u NET framework & các thành ph n chính
.NET Framework c a Microsoft là m t “môi tr ng l p trình” t p h p các th vi n, các công c ph c
v cho vi c l p trình trên h đi u hành Windows .NET Framework cung c p nh ng gi i pháp thi t
y u cho nh ng yêu c u thông th ng c a các ch ng trình đi u khi n máy tính nh các gi i thu t s
h c (Arithmetic algorithms), h tr cho l p trình giao di n ng i dùng (GUI – Graphical User Interface), truy c p d li u, k t n i c s d li u (connectivity and database access), tri n khai ng
d ng trên trình duy t (web application), giao ti p thông qua m ng máy tính (networking access)…
.NET framework đ c gi i thi u v i 2 thành ph n chính nh sau:
- Common Language Runtime (CLR): đ c xem nh là “x ng s ng” c a NET
Framework đ th c hi n các ch c n ng nh :
o Qu n lý b nh
o Th c thi mã l nh
o X lý l i x y ra trong quá trình biên d ch và thi hành ch ng trình
o Thu gom “rác” sinh ra trong quá trình th c thi ng d ng
o …
Trang 2- .NET Framework Class Library (FCL): là m t th vi n các l p h ng đ i t ng có kh
n ng tái s d ng h tr cho vi c phát tri n ng d ng theo nh ng hình th c khác nhau, t ng
d ng đ c g i thi hành thông qua d ng l nh trong môi tr ng textmode cho đ n ng d ng
th c thi trong môi tr ng đ h a, các ng d ng ho t đ ng trên n n Web
Ki n trúc c a NET Framework
.NET Framework là 1 môi tr ng “multi-lingual” và “multi-platform”, m t môi tr ng cho
phép xây d ng, tri n khai và th c thi ng d ng Trong NET Framework, l p trình viên có th
phát tri n ng d ng c a mình trên các n n t ng khác nhau nh : tri n khai ng d ng ch y trên thi t b di đ ng, máy tính đ bàn, Smartphone, … ( i u này ng v i thu t ng
“multi-platform”) H tr cho l p trình viên có th phát tri n ng d ng c a mình b ng các ngông ng
l p trình n i ti ng : Visual Basic NET, C #, J # (“multi-lingual”) Ki n trúc c a NET Framework
d a trên 3 thành ph n chính nh sau
- Các ngôn ng l p trình đ c h tr b i NET Framework
- Th vi c các l p cho phép l p trình đ nh h ng đ i t ng v i kh n ng tái s d ng mã l nh (.NET Framework Class Library: FCL)
- Và Common Language Runtime (CLR)
Các thành ph n khác trong ki n trúc NET Framework
• Web form: cung c p các l p ph c v cho vi c xây d ng giao di n Web
• Web services : bao g m các l p cho phép xây d ng các ng d ng d ng “Web
Service”, đây ta t m hi u Web Service nh là nh ng ng d ng cho phép truy xu t và khai thác thông tin qua m ng Internet (VD: các ng d ng cung c p thông tin v th i
ti t, xác minh tính h p l c a th tín d ng khi giao d ch qua Internet, tra c u thông tin nhà đ t, ti n t , …)
• Windows forms: T p h p các l p ph c v cho vi c xây d ng ng d ng ch y trên h
đi u hành Windows t i máy tính cá nhân
• ASP.NET: H tr phát tri n các ng d ng Web ch y trên trình duy t, có mã l nh đ t
t i phía Server
• ADO.NET: Giao di n các l p cho phép giao ti p v i các ngu n d li u d ng ADO (VD:
dùng cho các ng d ng có nhu c u đ c thông tin t t p tin xls c a Excel, mdb c a
Access, doc c a Ms Word, …)
• XML Classes : H tr thao tác v i d li u d ng XML nh tìm ki m, chuy n đ i và các thao tác tr c ti p trên các “node” c a d li u d ng này
Trang 3• Base Framework Classes: cung c p các ch c n ng c b n h tr cho vi c xu t nh p
thông tin, x lý d li u d ng chu i, các giao th c cho vi c truy n thông trên m ng
c ng nh c ch b o m t, …
• Common Language Specification (CLS): là 1 t p các quy t c dành cho các ngôn
ng l p trình đ c NET framework h tr , CLS cho phép t o ra s t ng thích c a
ch ng trình gi a các lo i ngôn ng khách nhau trên n n t ng c a NET
• Common Type System (CTS): đ c xem nh h th ng đ nh ki u c a NET Framework, CTS có nhi m v mô t nh ng d li u đ c khai báo trong ch ng trình, cách s d ng và qu n lý chúng trong quá trình mà ng d ng th c thi, t o ra s thu n
l i cho vi c nh n d ng c ng nh s d ng các ki u d li u trên các ngôn ng khác nhau mà NET h tr
Microsoft Intermediate Language (MSIL)
M i ngôn ng l p trình đ c h tr trong NET Framework đ u có 1 trình biên d ch và 1 môi
tr ng cho phép th c thi ng d ng ng v i mã l nh đ c vi t b i ngôn ng t ng ng Trình biên
d ch có nhi m v chuy n đ i mã ngu n (Source code) thành mã th c thi (executable code) đ cho phép ng i dùng có th g i th c thi ng d ng khi c n
M t trong nh ng m c tiêu chính c a NET Framework là tích h p các môi tr ng th c thi ng d ng
chính là MSIL, MSIL đ c xem nh m t ngôn ng trung gian cho vi c chuy n đ i và th c thi mã
l nh đã đ c biên d ch t các trình biên d ch c a các ngôn ng l p trình đ c NET Framework h
tr tr c khi th c thi ng d ng trên n n c a NET Framework
Hãy xem hình mô t d i đây, ch ng trình có mã ngu n đ c vi t b i m t trong các ngôn ng
l p trình nh VB, C# trong môi tr ng NET, sau khi biên d ch b i m i trình biên d ch c a ngôn
ng t ng ng thì ph n mã l nh s đ c MSIL biên d ch l i và sau đó ng d ng có th thi hành trên n n c a NET Framework
Common Language Runtime(CLR)
Common Language Runtime là m t thành ph n c t lõi c a NET Framework, nó ch u trách nhi m biên d ch mã MSIL c a các ch ng trình đ c xây d ng trên NET Framework thành mã máy,
qu n lý vi c th c thi các ch ng trình này nh : n p ch ng trình, t o các ti u trình, c p phát và thu h i vùng nh c ng nh tài nguyên cho các ch ng trình thi trong môi tr ng NET.
Nói cách khác CLR đ c xem nh là “máy o” c a NET Framework, nó đ c s d ng đ
chuy n đ i các mã MSIL thành ngôn ng máy đ có th đi u khi n CPU thi hành
Các tính n ng c b n c a C#
C# là 1 ngôn ng l p trình, đ c thi t k t đ cho phép xây d ng các ch ng trình ng d ng th c thi trên môi tr ng NET M t s tính n ng chính c a C# có th k đ n nh :
Trang 4- C# là ngôn ng l p trình h ng đ i t ng, l y đ i t ng làm tâm đi m cho vi c thi t k và xây d ng ng d ng c ng nh tri n khai mã l nh Chính vì th kh n ng tái s d ng mã ngu n
r t cao, gi m th i gian đáng k cho vi c phát tri n và b o trì ng d ng
- H tr c ch an toàn đ i v i ki u d li u đ c s d ng trong ch ng trình(Type-savety checking)
- Cung c p c ch “d n rác t đ ng” (Garbage collection) th c hi n qu n lý b nh t đ ng
theo ti n trình th i gian và ph m vi ho t đ ng c a ch ng trình đ lo i b nh ng vùng nh đã
c p phát quá lâu mà không còn dùng đ n ho c nh ng vùng nh đã c p phát b i nh ng ti u trình tr c đó, không còn phù h p v i th i đi m hi n t i
- Generic types and methods ( đây tôi không d ch đ c c m t này nên gi nguyên), nh chúng ta đã bi t k thu t Generic trong Java (N u b n đã bi t Java), C# c ng th , đ có
th đa hình hóa và s d ng hi u qu các hàm, các ki u d li u trong nhi u tình hu ng c th
khác nhau, C# cung c p k thu t Generic đ i v i các ki u d li u c ng nh đ i v i ph ng
th c, ta có th hi u nôm na nh vi c đ nh ngh a 1 ki u d li u chung chung (Ho c 1 hàm chung) đ tùy theo tình hu ng c th mà s d ng, đi u này làm t ng kh n ng tái s d ng các ki u d li u, hàm L p trình viên không ph i vi t quá nhi u hàm khác nhau cho nh ng tình
hu ng cùng d ng
Cho đ n nay, C# là ngôn ng l p trình đ c đa s l p trình viên a thích, so v i C++ thì C# đ n
gi n h n r t nhi u và khá thân thi n đ i v i ng i s d ng (L p trình viên) C# có 1 s l i đi m
nh sau:
- Có th s d ng mã l nh đ c vi t b ng ngôn ng khác (nh ng ngôn ng đ c NET h tr ) trong các ch ng trình vi t b ng C# mà không c n ph i vi t l i
- Tích h p s n các giao th c Internet thông d ng do đó có th xây d ng các ng d ng có kh
n ng giao ti p thông qua m ng máy tính m t cách thu n l i
- n gi n khi tri n khai ng d ng, có th chia ch ng trình thành nhi u b ph n nh đ phát tri n b i nhi u nhóm khác nhau sau đó l p ghép l i thành 1 ch ng trình th ng nh t
- H tr cho vi c xây d ng các tài li u k thu t d ng XML thông qua vi c t o chú thích XML trong ph n mã l nh c a ch ng trình, đi u này khá thu n ti n cho vi c b o trì ch ng trình sau này
- …
Gi i thi u Visual Studio 2008
Visual tudio 2008 là 1 b công c hoàn ch nh cho vi c phát tri n các ng d ng thi hành trên n n
t ng c a NET Framework 3.5 dành cho máy tính cá nhân, các d ch v d ng XML Web, các ng
d ng dành cho thi t b di đ ng, smartphone và các ng d ng web xây d ng phía server nh ASP.NET H n n a, Visual studio 2008 cho phép đ n gi n hóa vi c thi t k ch ng trình theo nhóm đ phát tri n các ng d ng cho doanh nghi p v i quy mô l n m t cách thu n ti n
Visual studio phiên b n 2008 là m t môi tr ng phát tri n tích h p (IDE - intergrated development environment) v i 4 b n chính nh sau:
- Visual Studio Team system 2008 edition
- Microsoft Visual Studio 2008 Professional Edition
- Visual Studio 2008 Express Edition
Các ngôn ng l p trình đ c h tr trong Visual Studio 2008
Trang 5- Visual Basic
- Visual J#
Các thành ph n chính trên giao di n c a Visual Studio 2008
Solution Explorer: Mô t c u trúc ch ng trình c a b n d i d ng c u trúc File-Folder, thông
qua c a s này, b n có th ch n các t p tin trong ch ng trình c a mình đ m
ra và làm vi c tr c ti p v i nó (Class file, aspx file, css file, …)
Code Editor : vùng so n th o mã l nh n m chính gi a màn hình, cho phép b n vi t Code cho
ch ng trình c a mình
Properties Windows: Th hi n danh sách các thu c tính c a đ i t ng mà b n đang ch n R t
h u ích khi b n l p trình giao di n, có th đi u ch nh các thu c tính c a đ i
t ng m t cách tr c quan, d dàng
Dynamic Help: H tr cho b n đ gi i quy t nh ng th c m c v cú pháp, cách dùng các đ i
t ng mà NET Framework cung c p
Sau khi đã vi t xong 1 ch ng trình, đi u đ u tiên mà chúng ta quan tâm đ n chính là làm sao đ biên d ch nó và thi hành s n ph m c a mình, đ t đó th y đ c quá trình ho t đ ng c a ch ng trình mà mình v a xây d ng
Trong visual studio ( i v i h u h t các phiên b n), b n s th c hi n nh sau
Trang 6- Biên d ch ch ng trình b ng cách ch n l nh “Build <tên ng d ng c a b n>” (Ho c Build solution ) trong menu Build Lúc này Visual studio s ti n hành biên d ch ch ng trình c a
b n thành file thi hành trong môi tr ng Windows (.exe)
- thi hành ch ng trình c a mình, b n ch vi c ch n l nh “Start without debugging” có
trong menu Debug ho c nh n t h p phím Ctrl+F5, ho c nh n nút có trên thanh công c
a c
www.bodua.com Tài li u tham kh o : Giáo trình Aptech Microsoft Development Network