C
C
C
#
#
#
P
P
P
r
r
r
o
o
o
g
g
g
r
r
r
a
a
a
m
m
m
m
m
m
i
i
i
n
n
n
g
g
g
– Phn 1: Lp
trì
trì
nh
h
ng
đi
t
ng
www.bodua.com
L
L
p
p trì
n
n
h
h
h
h
n
n
g
g
đ
đ
i
i
t
t
n
n
g
g
w
w
w
w
w
w
.
.
b
b
o
o
d
d
u
u
a
a
.
.
c
c
o
o
m
m
1
N
N
N
g
g
g
u
u
u
y
y
y
n
n
n
M
M
M
a
a
a
i
i
i
H
H
H
u
u
u
y
y
y
C Sharp và .NET framework
M đu
Vào nhng thp nhiên 80, 90 ca th k trc, C ri C++ là nhng ngôn ng lp trình truyn thng
khá ni ting giúp cho lp trình viên phát trin ng dng ca mình rt hiu qu. Tuy nhiên nhng
ngôn ng này có mt s nhc đim thng đc nhc ti nh sau:
- Rt kh
ó khn đ tip cn (
Nht là đi vi nhng ngi mi chp chng bc vào lnh vc lp
trình
)
- Tn kém nhiu thi
gian và chi phí đ phát trin đi vi 1 phn mm c th
- Vic h tr cho
Debug chng trình không tt dn đn vic gp nhiu khó khn khi cn kim
tra thut toán ca chng trình vào thi đim thc thi ca chng trình (
đây thut ng
Debug dùng đ ch 1 k thut giúp cho lp trình viên có th kim tra tin trình hot đng
trong b nhó đi vi chng trình ca mình, k thut này rt hiu qu khi lp trình viên cn
phi xác đnh tính đúng đn đi vi thut toán đã s dng
)
- Vic kt ni gia chn
g trình chính vi c s d liu khá phc tp.
- …
Microsoft gii thiu C
# (
C Sharp
) nh mt ngôn ng lp trình mi đ gii quyt nhng nhc đim
ca các ngôn ng lp trình truyn thng. C# đc phát trin vi nhng mc đích chính nh :
- Cho phép lp
trình viên có th xây dng các chng trình ca mình mt cách đn gin mà
hiu qu, có th phát trin và m rng trong tng lai vi kh nng tng thích cao trong
nhng h thng có kin trúc phn cng khác nhau.
- Xây dng
và phát trin ng dng da trên kit trúc ca lp trình hng đi tng (
pure
object-oriented architecture
). Vì th C# h tr các thành phn hng đi tng trong
chng trình rt mnh.
- Cho phép s dng li nhiu tính nng ch có
trong C++ trc đây trong khi vn đm bo tính
d dùng (
easy-of-use
) khi xây dng ng dng
- …
Gii thiu .NET framework & các thành phn chính
.NET Framework ca Microsoft là mt “
môi trng lp trình
” tp hp các th vin, các công c phc
v cho vic lp trình trên h điu hành Windows. .NET Framework cung cp nhng gii pháp thit
yu cho nhng yêu cu thông thng ca các chng trình điu khin máy tính nh các gii thut s
hc (
Arithmetic algorithms
), h tr cho lp trình giao din ngi dùng (GUI –
Graphical User
Interface
), truy cp d liu, kt ni c s d liu (
connectivity and database access
), trin khai ng
dng trên trình duyt (
web application
), giao tip thông qua mng máy tính (
networking access
)….
.NET framework đc gii thiu vi 2 thành phn chính nh sau:
- Common Language Runtime (CLR): đ
c xem nh là “
xng sng
” ca .NET
Framework đ thc hin các chc nng nh:
o Qun lý
b nh
o Thc thi mã
lnh
o X lý
li xy ra trong quá trình biên dch và thi hành chng trình
o Thu gom “rác” sinh ra trong quá trình thc t
hi ng dng
o …
C
C
C
#
#
#
P
P
P
r
r
r
o
o
o
g
g
g
r
r
r
a
a
a
m
m
m
m
m
m
i
i
i
n
n
n
g
g
g
– Phn 1: Lp
trì
trì
nh
h
ng
đi
t
ng
www.bodua.com
L
L
p
p trì
n
n
h
h
h
h
n
n
g
g
đ
đ
i
i
t
t
n
n
g
g
w
w
w
w
w
w
.
.
b
b
o
o
d
d
u
u
a
a
.
.
c
c
o
o
m
m
- .NET Framework Class Library (FCL): là mt th vin các lp hng đi tng có kh
nng tái s dng h tr cho vic phát trin ng dng theo nhng hình thc khác nhau, t ng
dng đc gi thi hành thông qua dng lnh trong môi trng textmode cho đn ng dng
thc thi trong môi trng đ ha, các ng dng hot đng trên nn Web.
Kin trúc ca .NET Framework
.NET Framework là 1 môi trng “multi-lingual” và “multi-platform”, mt môi trng cho
phép xây dng, trin khai và thc thi ng dng. Trong .NET Framework, lp trình viên có th
phát trin ng dng ca mình trên các nn tng khác nhau nh: trin khai ng dng chy trên
thit b di đng, máy tính đ bàn, Smartphone, … (
iu này ng vi thut ng
“multi-
platform”). H tr cho lp trình viên có th phát trin ng dng ca mình bng các ngông ng
lp trình ni ting : Visual Basic .NET, C #, J # (“
multi-lingual
”). Kin trúc ca .NET Framework
da trên 3 thành phn chính nh sau
- Các ngôn ng lp trình đ
c h tr bi .NET Framework
- Th vic cá
c lp cho phép lp trình đnh hng đi tng vi kh nng tái s dng mã lnh
(.NET Framework Class Library: FCL)
- Và Common Language Runtime (CLR)
Các thành phn
khác trong kin trúc .NET Framework
• Web form: cung cp các lp phc v cho vic xây dng giao din Web
• Web services : bao
gm các lp cho phép xây dng các ng dng dng “Web
Service”, đây ta tm hiu Web Service nh là nhng ng dng cho phép truy xut và
khai thác thông tin qua mng Internet. (VD:
các ng dng cung cp thông tin v thi
tit, xác minh tính hp l ca th tín dng khi giao dch qua Internet, tra cu thông tin
nhà đt, tin t, …
)
• Windows forms: Tp hp cá
c lp phc v cho vic xây dng ng dng chy trên h
điu hành Windows ti máy tính cá nhân
• ASP.NET: H tr phá
t trin các ng dng Web chy trên trình duyt, có mã lnh đt
ti phía Server
• ADO.NET: Giao din cá
c lp cho phép giao tip vi các ngun d liu dng ADO (VD:
dùng cho các ng dng có nhu cu đc thông tin t tp tin xls ca Excel, mdb ca
Access, doc ca Ms Word, …)
• XML Classes : H tr thao tá
c vi d liu dng XML nh tìm kim, chuyn đi và các
thao tác trc tip trên các “node” ca d liu dng này
2
N
N
N
g
g
g
u
u
u
y
y
y
n
n
n
M
M
M
a
a
a
i
i
i
H
H
H
u
u
u
y
y
y
C
C
C
#
#
#
P
P
P
r
r
r
o
o
o
g
g
g
r
r
r
a
a
a
m
m
m
m
m
m
i
i
i
n
n
n
g
g
g
– Phn 1: Lp
trì
trì
nh
h
ng
đi
t
ng
www.bodua.com
L
L
p
p trì
n
n
h
h
h
h
n
n
g
g
đ
đ
i
i
t
t
n
n
g
g
w
w
w
w
w
w
.
.
b
b
o
o
d
d
u
u
a
a
.
.
c
c
o
o
m
m
• Base Framework Classes: cung cp các chc nng c bn h tr cho vic xut nhp
thông tin, x lý d liu dng chui, các giao thc cho vic truyn thông trên mng
cng nh c ch bo mt, …
• Common Language Specification (CLS):
là 1 tp các quy tc dành cho các ngôn
ng lp trình đc .NET framework h tr, CLS cho phép to ra s tng thích ca
chng trình gia các loi ngôn ng khách nhau trên nn tng ca .NET
• Common Type System (CTS):
đc xem nh h thng đnh kiu ca .NET
Framework, CTS có nhim v mô t nhng d liu đc khai báo trong chng trình,
cách s dng và qun lý chúng trong quá trình mà ng dng thc thi, to ra s thun
li cho vic nhn dng cng nh s dng các kiu d liu trên các ngôn ng khác
nhau mà .NET h tr.
Microsoft Intermediate Language (MSIL)
Mi ngôn ng lp trình đc h tr trong .NET Framework đu có 1 trình biên dch và 1 môi
trng cho phép thc thi ng dng ng vi mã lnh đc vit bi ngôn ng tng ng. Trình biên
dch có nhim v chuyn đi mã ngun (
Source code
) thành mã thc thi (executable code) đ cho
phép ngi dùng có th gi thc thi ng dng khi cn.
Mt trong
nhng mc tiêu chính ca .NET Framework là tích hp các môi trng thc thi ng dng
(
runtime environment
) ca các ngôn ng lp trình khác nhau thành 1 môi trng duy nht. ó
chính là MSIL, MSIL đc xem nh mt ngôn ng trung gian cho vic chuyn đi và thc thi mã
lnh đã đc biên dch t các trình biên dch ca các ngôn ng lp trình đc .NET Framework h
tr trc khi thc thi ng dng trên nn ca .NET Framework.
Hãy xem hình mô t di đây, chng trình có
mã ngun đc vit bi mt trong các ngôn ng
lp trình nh VB, C# trong môi trng .NET, sau khi biên dch bi mi trình biên dch ca ngôn
ng tng ng thì phn mã lnh s đc MSIL biên dch li và sau đó ng dng có th thi hành
trên nn ca .NET Framework
Common Language Runtime(CLR)
Common Language Runtime là mt thành phn ct lõi ca .NET Framework, nó chu trách nhim
biên dch mã MSIL ca các chng trình đc xây dng trên .NET Framework thành mã máy,
qun lý vic thc thi các chng trình này nh: np chng trình, to các tiu trình, cp phát và
thu hi vùng nh cng nh tài nguyên cho các chng trình thi trong môi trng .NET.
Nói cách khác CLR đc xem nh là “
máy o
” ca .NET Framework, nó đc s dng đ
chuyn đi các mã MSIL thành ngôn ng máy đ có th điu khin CPU thi hành.
Các tính nng c bn ca C#
C# là 1 ngôn ng lp trình, đc thit kt đ cho phép xây dng các chng trình ng dng thc
thi trên môi trng .NET. Mt s tính nng chính ca C# có th k đn nh:
3
N
N
N
g
g
g
u
u
u
y
y
y
n
n
n
M
M
M
a
a
a
i
i
i
H
H
H
u
u
u
y
y
y
C
C
C
#
#
#
P
P
P
r
r
r
o
o
o
g
g
g
r
r
r
a
a
a
m
m
m
m
m
m
i
i
i
n
n
n
g
g
g
– Phn 1: Lp
trì
trì
nh
h
ng
đi
t
ng
www.bodua.com
L
L
p
p trì
n
n
h
h
h
h
n
n
g
g
đ
đ
i
i
t
t
n
n
g
g
w
w
w
w
w
w
.
.
b
b
o
o
d
d
u
u
a
a
.
.
c
c
o
o
m
m
4
N
N
N
g
g
g
u
u
u
y
y
y
n
n
n
M
M
M
a
a
a
i
i
i
H
H
H
u
u
u
y
y
y
- C# là ngôn ng lp trình hng đi tng, ly đi tng làm tâm đim cho vic thit k và
xây dng ng dng cng nh trin khai mã lnh. Chính vì th kh nng tái s dng mã ngun
rt cao, gim thi gian đáng k cho vic phát trin và bo trì ng dng.
- H tr c ch an toà
n đi vi kiu d liu đc s dng trong chng trình(
Type-savety
checking
)
- Cung cp c ch “
dn rác t đng
” (Garbage collection) thc hin qun lý b nh t đng
theo tin trình thi gian và phm vi hot đng ca chng trình đ loi b nhng vùng nh đã
cp phát quá lâu mà không còn dùng đn hoc nhng vùng nh đã cp phát bi nhng tiu
trình trc đó, không còn phù hp vi thi đim hin ti
- Generic types and methods (
đây tôi không dch đc cm t này nên gi nguyên
), nh
chúng ta đã bit k thut Generic trong Java (
Nu bn đã bit Java
), C# cng th, đ có
th
đa hình hóa
và s dng hiu qu các hàm, các kiu d liu trong nhiu tình hung c th
khác nhau, C# cung cp k thut Generic đi vi các kiu d liu cng nh đi vi phng
thc, ta có th hiu nôm na nh vic đnh ngha 1 kiu d liu chung chung (
Hoc 1 hàm
chung
) đ tùy theo tình hung c th mà s dng, điu này làm tng kh nng tái s dng
các kiu d liu, hàm. Lp trình viên không phi vit quá nhiu hàm khác nhau cho nhng tình
hung cùng dng.
Cho đn
nay, C# là ngôn ng lp trình đc đa s lp trình viên a thích, so vi C++ thì C# đn
gin hn rt nhiu và khá thân thin đi vi ngi s dng (
Lp trình viên
). C# có 1 s li đim
nh sau:
- Có th s dng mã
lnh đc vit bng ngôn ng khác (
nhng ngôn ng đc .NET h tr
)
trong các chng trình vit bng C# mà không cn phi vit li.
- Tích hp sn các giao
thc Internet thông dng do đó có th xây dng các ng dng có kh
nng giao tip thông qua mng máy tính mt cách thun li
- n gin khi trin khai ng dng, có
th chia chng trình thành nhiu b phn nh đ phát
trin bi nhiu nhóm khác nhau sau đó lp ghép li thành 1 chng trình thng nht
- H tr cho
vic xây dng các tài liu k thut dng XML thông qua vic to chú thích XML
trong phn mã lnh ca chng trình, điu này khá thun tin cho vic bo trì chng trình
sau này.
- …
Gii thiu Visual Studio 2008
Visual tudio 2008 là 1 b công c hoàn chnh cho vic phát trin các ng dng thi hành trên nn
tng ca .NET Framework 3.5 dành cho máy tính cá nhân, các dch v dng XML Web, các ng
dng dành cho thit b di đng, smartphone và các ng dng web xây dng phía server nh
ASP.NET. Hn na, Visual studio 2008 cho phép đn gin hóa vic thit k chng trình theo
nhóm đ phát trin các ng dng cho doanh nghip vi quy mô ln mt cách thun tin.
Visual studio phiên bn 2008
là mt môi trng phát trin tích hp (IDE -
intergrated development
environment
) vi 4 bn chính nh sau:
- Visual Studio Team system 2008 edition
- Microsoft Visual Studio 2008 Professional Edition
- Visual Studio 2008 Standard Edition
- Visual Studio 2008 Express Edition
Các ngôn ng lp trình đ
c h tr trong Visual Studio 2008
- Visual C++
- Visual C#
C
C
C
#
#
#
P
P
P
r
r
r
o
o
o
g
g
g
r
r
r
a
a
a
m
m
m
m
m
m
i
i
i
n
n
n
g
g
g
– Phn 1: Lp
trì
trì
nh
h
ng
đi
t
ng
www.bodua.com
L
L
p
p trì
n
n
h
h
h
h
n
n
g
g
đ
đ
i
i
t
t
n
n
g
g
w
w
w
w
w
w
.
.
b
b
o
o
d
d
u
u
a
a
.
.
c
c
o
o
m
m
- Visual Basic
- Visual J#
Các thành phn
chính trên giao din ca Visual Studio 2008
Solution Explorer: Mô t cu trúc chng trình ca bn di dng cu trúc File-Folder, thông
qua ca s này, bn có th chn các tp tin trong chng trình ca mình đ m
ra và làm vic trc tip vi nó. (Class file, aspx file, css file, …)
Code Editor :
vùng son tho mã lnh nm chính gia màn hình, cho phép bn vit Code cho
chng trình ca mình
Properties Windows: T
h hin danh sách các thuc tính ca đi tng mà bn đang chn. Rt
hu ích khi bn lp trình giao din, có th điu chnh các thuc tính ca đi
tng mt cách trc quan, d dàng
Dynamic Help: H tr cho
bn đ gii quyt nhng thc mc v cú pháp, cách dùng các đi
tng mà .NET Framework cung cp
Biên dch và thc thi chng trình trong Visual Studio
Sau khi đã vit xong 1 chng trình, điu đu tiên mà chúng ta quan tâm đn chính là làm sao đ
biên dch nó và thi hành sn phm ca mình, đ t đó thy đc quá trình hot đng ca chng
trình mà mình va xây dng.
Trong visual studio (
i vi hu ht các phiên bn
), bn s thc hin nh sau
5
N
N
N
g
g
g
u
u
u
y
y
y
n
n
n
M
M
M
a
a
a
i
i
i
H
H
H
u
u
u
y
y
y
C
C
C
#
#
#
P
P
P
r
r
r
o
o
o
g
g
g
r
r
r
a
a
a
m
m
m
m
m
m
i
i
i
n
n
n
g
g
g
– Phn 1: Lp
trì
trì
nh
h
ng
đi
t
ng
www.bodua.com
L
L
p
p trì
n
n
h
h
h
h
n
n
g
g
đ
đ
i
i
t
t
n
n
g
g
w
w
w
w
w
w
.
.
b
b
o
o
d
d
u
u
a
a
.
.
c
c
o
o
m
m
- Biên dch chng trình bng cách chn lnh “Build <tên ng dng ca bn>” (Hoc
Build
solution
) trong menu Build. Lúc này Visual studio s tin hành biên dch chng trình ca
bn thành file thi hành trong môi trng Windows (.exe)
-
thi hành chng trình ca mình, bn ch vic chn lnh “Start without debugging” có
trong menu Debug hoc nhn t hp phím Ctrl+F5, hoc nhn nút
có trên thanh công c.
a c
www.bodua.com
Tài liu tha
m kho : Giáo trình Aptech
Microsoft Development Network
6
N
N
N
g
g
g
u
u
u
y
y
y
n
n
n
M
M
M
a
a
a
i
i
i
H
H
H
u
u
u
y
y
y