Tải bản đầy đủ (.pdf) (99 trang)

Tìm hiểu về ASP Net MVC Framework phát triển ứng dụng với ASP Net MVC Framework.PDF

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.46 MB, 99 trang )

Chuang 1- Tong quan ye ASP.NET
MVC FRAMEWORK
CHIMING 1 - TONG QUAN V ASP.NET
MVC FRAMEWORK
1.1. Gitri thi$u ye m8 hinh MVC
Khi cic phin mem img dung ngay cang phit then km mph vi da clang thi vin de thiit
lei hen tnic cho phin mem cling tr6 n6n phiic tap hon. Nhung ung dung web gig day
cling da phit trien din met tam cao mei, ching kh8ng can la nhOng (mg dung web thing
thirang yeti chirc nang hiin thj thong tin ma la nherng hi dicing thong tin he trq nhung
trang web tucmg tic yeti ngubi ding. Nhieu giai phap thiet lea kien frac hi thong duqc dua
ra vat aux dich lam cho hi tilting linh hog, mem deo, de phit
then vi ton to lau
dii.
Trong de, giai phip this& ke theo m8 hinh
kien
true MVC duqc Trygve Reenskaug de xuAt
vao nhOng am 70 coa the ky 20 to ra rat hieu qua.
Mo hinh MVC (Model - View - Controller) la met kien trite phin mem hay mo hinh
thiitke dirge sir dung trong ky thuat phtm mem. N6 glop cho cic nha phit
then
tech img
dung cila hq ra thanh 3 pill lchic nhau Model, View va Controller.
mOi
thanh phin c6
met nhiim vu ring biit va dije lap vei cic thanh phin khic.
1.1.1. Cac thenh phin ctia MVC
111
1
Controller
Hinh 1.1 Mii hinh MVC
Model


Day la thanh phial chira tit ca cic nghiip vu logic, phuang thee zit 1Y, try mit
database, did tugng mo to de liiu nhu cic Class, ham xfr 19
Trang 11/109
I
Chuang 1- T6ng quan ye ASP.NET
MVC FRAMEWORK
View
Dam nhan viec hien thi thong tin, twang tac veri ngueri dung.
Controller
Gift nhiem vu nhOn (lieu huong cac you clu tit ngubi dimg va goi ding nhftng phuang
thfrc xir ly chung.
1.1.2. Hoot dung cart ma hinh MVC
Day la mist each dan giin de m8 to lei luting su kien duce xit ljr trong MVC:
- User twang tic yeti View, bang each click vim button, user gui yeti
cku
di.
- Controller nhOn va dieu huong chimg den dung phuang thirc zit l5r er Model.
- Model nhan thong tin vi thvc thi cac you au.
- 'Chi Model hoan tat viec zit ljr, View se nhon &I lieu tir Model vi Controller se phin hhi
lai ngtroi dung.
I
Y e
a
r

I

11
User gesture




Invoice action
Notify changes
Ask
for changes
1
1
.
1 Butane the
requested task

Updated Model
New View served
to ithe user
4—


hinh 1.2 Quy trinh hoist dfing cua mo hinh MVC
Trang 12/109
Chtrcmg 1- Togng quan ye ASP.NET
MVC FRAMEWORK
1.1.3. U'u diem va niurqc diem ala MVC
U'u diem:
The hien tinh chuyen nghiep trong lap trinh, phan tich thiet ke. Do avec chia thanh cac
thanh phith (Ric lap nen ginp phat trien img dung nhanh, don gian, de nang cap, bao tri

Nhuot diem:
Din vei du an nheo viec ap dung m8 hinh MVC gay ding kenh, tin then gian tong qua
trinh phat trien. TAn then gian trung chuyen d0 lieu cha cac thanh phin.

1.2. Giafri thieu ye ASP.NET

ASP.NET
Ia mOt nen tang phat trien (mg dung web (web application framework) &roc
phat trien va cung cap ben Microsoft, cho phep nherng ngutii lap trinh to ra nhitng hang web
ding, nhOng img dung web va nhOng dich vu web. Lin diu tien &roc dim ra thj throng vito
thang 2 nAm 2002 cimg v6i phien ban 1.0 ciut .NET framework, la ding nghe nen tiep ctia
Microsoft Active Server Pages(ASP). ASP.NET
ducc bien dich duel clang Common
Language Runtime (CLR), cho phIp nhang win lop trinh vitt ma ASP.NET
yeti bit kk
ngon ng0 nao duqc ho try bei .NET language.
1.3. ASP.NET
WebForm truyen thong
ASP.NET
la mOt buec nhay vot khi lin diu )(Wit hien, nhim thu hop khoang cach gifta
pith trien Window Form Wong di ft:mg (cd thing thai) va phat trien web hueng HTML
(Ichting tang thai) . Hinh duel day munh boa cong nghe ASP.NET
Webform
ASP.NETWeb FOMIII
Ante/IS components (pps, buttamone.) plus
suptsful, obisebodned all programming modsi
ASPNET
A int to hoctitT spolleations In KS Mcnnoles webers
product), Clog you Interact MO IITTINataises and taponses
Att.
A muttiblipearwippdadepbtform
(kaf
tan* thetbas-4
, biasdikt Ns own 0.4)

Hinh 1.3 Cling nghg
ASP.NET
WebForm
Trang 13/109
Chuang 1- Thng quan ASP.NET
MVC FRAMEWORK
V6i Web Forms, Microsoft da c6 in di HTTP vi HTML bang cach me phong giao dien
nguiri ding nhtr la met doi mow dieu lchien (Control) ce cau tnic hoot deng phia Server.
Mill di Wong dieu khien (Control) theo doi tang thai cim no thong qua cac you au (sir
dung tinh ring ViewState), bieu dien bang cric ma HTML !chi can thief. Ngoai ra, no con to
Ong kit not cac so kien phia Client (nhu so kien bem button) ten cac so kien phut Server
duqc xu
ly ttrcrng img. Thoc te, Web Forms 11 met 16p trim tucmg khOng to duqc thiet ke de
cung alp giao clien ce xir ly so kien thong qua Web.

NhOng diem Imut chi cast ASP.NET
Web Forms
ASP.NET
Web Forms truyin thing tong la met y mow rat tit, nhtrng thou te lei phit
sinh nhOng dieu phim tip khic. Theo thin gian, viec sir dung ASP.NET
Web Forms
da
nou
WI
len met so thieu set;
- ViewState: Co the duy tri trang thiti thong qua cac yeti ta
u
(request) thutmg mang
lui
ket qua la nheng IchOi luqng 16n

da lieu
duqc chuyen giao giOa client vi server.
Da
lieu nay c6 the len den hang tram Kbs b met img dung web vira phai, vi n6 di qua lei
v6i bit ky yeu cau nito. Dieu nay lam ch * di died gian ch6 /bin hoi vi lam ding nhu
cau bang thong dm server;
Page life cycle (Chu k9
ton
tai ciut met trang web): Lit co the ket not sjr kien phia
client veil mA xir 19 so kien phia server. NO phfrc tap vi
a
bj pha ver;
thirc sai ve viec tech biet cac thinh phen: M8 hinh code-behind cita ASP.NET
cung
cap met gisi phip cho phep img dung due code ra khei cac clang HTML vio thanh
met 16p code-behind net:1g biet. Dieu nay duqc hoan nghenh reng rai yeti viec tech biet
giao dien veri mA )(Cr ly. Nlumg thou te, nhOng nha phat trier duqc khuyen khich pha
ten mA giao dien veri mA )(Cr 11 img dung (nhu la xir ly CSDL) tong nhfmg 16p code-
behind khOng 16. Neu khong c6 so tech biet gift cac thinh phin, ket qua
cuoi
cling
c6 the nit kh6 hieu;
Limited control over HTML (gidd Mtn kiem spat HTML): Server control to to ra
cat
mA HTML, nhtmg khang phai la mA HTML ma to mong dqi. Ngoii viec mA HTML
min chfing thutmg khong than theo lieu chuin web hoes khong sir dung
tot
CSS ma he
Trang 14/109
Chuang 1- T6ng quan ye ASP.NET

MVC FRAMEWORK
thong
cac server control can tao ra cat gia tri ID phirc tap vi khong down truer duqc,
lim kho khan trong viec sir dung JavaScript;
KM ming lciem thir thap: Cac nhit thiet ke caa ASP.NET
khOng the du down ring Idem
thir to gang se tra thank met phan tat yeu caa xu htrong phat then phan mem. Kh8ng
ngac nhien khi kien tnic chat the ma ho thiet ke la 'thong pha hqp vai viec tich hqp
Ici'em thir.
ASP.NET
van tip tuc phat trien. Phien bin 2.0 them mat thanh phan chuan de giiun bat
se luqng code ma chimg to can phiti to viet. Vai phien ban gan nhit ASP.NET
4.5, mui thir
da duqc ming cep &mg ke. Phien ban ASP.NET
4.5 di ap dung met se tinh ming dm
ASP.NET
MVC vie Web Forms. Tuy vay, van can met han the ten to ben trong no.
1.4. ASP.NET
MVC Framework
Nhu da giai thieu et Olin truck, ma hinh MVC vai uu diem cam minh di duce img dung
trong met se alc framework. Trong do pluii ke den ASP.NET
MVC, met framework ma
nguen ma mai, xay dung tren ASP.NET
.
ASP.NET
MVC Framework
duqc
thvc thi tree me hinh model—view controller (MVC).
NO gun nhg, de Bang kiem thir phan giao dien, tich hqp cat tinh ming cira ASP.NET
. MVC

Framework duqc djnh nghTa trong namespace System.Web.Mvc va la met Olt cim Ichong
gian ten System.Web.
1.4.1. NguBn goc
Tuy ding nghe ASP.NET
MVC mai duqc ph&
trien
nhung no co ljch sir lau deri. Nen
tang MVC duqc phat minh bai Trygve Renskaug, Ong di viet
tang giay dau den
not ve
MVC vio nem 1978. Ban
du
no duqc gui la Thing Model View Editor pattern, nhung sau
de no
ductc
dot ten i i li Model View Controller pattern.
ASP.NET
MVC lan
du lien St
Men d6 la trong du an me
ngtdin
ma MonoRail.
Nguen gac that sir de cho ra deri ding nghe Microsoft ASP.NET
MVC li do Scott Guthrie
(met trong nhOng nha sang tao m ASP.NET
) tren chuyen bay den Austin, Texas de not ve hOi
thao Alt.NET
vao thing 10-2007.
Phien bin ASP.NET
MVC 1.0 duqc m dbi vio nam 2009.

Trang 15/109
Chuang 1- Tong quan ye ASP.NET
MVC
FRAMEWORK
1.4.2. Cic think phan cabin ctia ASP.NET
MVC
ASP.NET
MVC Framework
Binh 1.4 Ceic thank phan ca ban ciia ASP.NET
MVC
Models: Cac

tirgng Models li mOt phan ciia ling dung, cac di tucmg nay thiet 1#p
logic cila pit dO lieu cna ling dung. Meng thuimg, tic

tugng model lay vi luu tang
thai cita model trong CSDL. Vi dp nhu, mOt doi Meng Product (sin pan) se lay MI lieu tit
CSDL, than tic tree dit lieu va se c#p nh#t de lieu ter lin vao bang Products 6 SQL Server.
Views: Views la cac thinh phan ding di hien thj giao dien ngubi dung (UI). Thong
thubng, view duet tio dun vio thong tin dfr lieu Models. Vi dp nhu, view dung di c#3 nh#t
bang Products se hien thj cac hQp van ban, drop-down list, vi cac check box data tren trpg
thai hien nu cua mOt di Wong Product.
Controllers:
Controller la cac thanh phan dung de quan ly Luang the ngubi dung, lam
viec vei model vi chip view di hien thj giao dien ngtrei ding. Trong mOt Ong dung MVC,
view chi dirgc dung cie hien thj thong tin, controller chju trach nhiem quan ly va dap tra nOi
dung do ngtrbi dimg nhop vi tuang tac vai ngubi climg. Vi du, controller se quan ly cac
clu
lieu ngubi dung girl len (query-string values) vi gui cac gia trj de den model, model se lay chl
lieu tit CSDL nhe viz cac gia tri nay.

MO hinh MVC glop Chung to duet cac Ong dung ma chting phan tack rich red cat
khia earth c»a Ong dung (logic ye nh#p lieu, logic xu lY tic vu va logic ye giao dien). MO hinh
MVC chi ra
min loni logic ke teen nen
duet thiep li) 6 dau teen Ong dung. Logic giao dien
(UI logic) thuOc ve views. Logic nhtep lieu (input logic) thuoc ve controller. Va logic the vp
(Business logic — la logic xir ly th8ng tin, muc dick chinh cua ung dung) thuOc ve model. Sir
phan chia nay giim chang to giim bat dugc sir phirc tip cita Ong dung va chi top
twig vac
Trang 16/109
Chuang 1- Tag quan ye ASP.NET
MVC FRAMEWORK
mOi khia canh can duce cai d#t a m8i that diem. Vi du nhtz chting to chi can top trung vito
giao Bien (views) ma khong phai quan tam den logic xer 1S
,
thong tin elm ling dung.
Su phan tach rach reit ba thanh phan cita img dung MVC can gitip cho viec 1#p trinh
dies ra song song. Vi du nhu mQt 1#p trinh vien lam tee vei view, 1#p trinh vien thti hai
lo cii dot logic ciut controller va lop trinh vien thir ba c6 the top trung vio logic the vu cia
model tai cling met thai diem.
1.4.3. Qua trinh host dung ctia mOt (rug Mpg ASP.NET
MVC
Cac giai doan thuc hien dui met ling dung ASP.NET
MVC duce trinh bay duei day:
NhiIn you eau dau den: Trong file Global.asax, cac doi tuqng Route duce them Arlo
RouteTable;
-
Thuc hien viec djnh tuyen: Module UrlRoutingTable sir dung di tuqng Route dau
tien thich hqp trong top RouteTable de tao


tuqng RouteData. DOi ttrong nay sau
do lai tao ra doi tuqng RequestContext (ifittpContext);
-
To ra trinh xir ly yeu eau ling dung: Doi tuqng MvcRouteHandler tao ra met the
hien ctia 16p MvcHandler va truyen vao no the hien RequestContext;
To ra controller. Cie dOi tuqng MvcHandler sir dung the hien cita RequestContext
de Lie djnh dig tuqng IcontrollerFactory qua d6 tao ra the hien controller;
-
Thur hien vai tr6 cis controller: The hien MvcHandler gui phuong thirc Execute
cita controller;
-
Goi action method: DOi tuqng ControllerActionInvoker se xac djnh action method
cur met 16p controller de ggi ra.
1.4.4. MOt so tfnh nang ndl bOt cem ASP.NET
MVC Framework
Tach bath cic tic vu cita ling dung.
-
C6 kha nang ma rQng (extensible) & kha Hong nhimg (pluggable). Cie thanh phan ctia
ASP.NET
MVC duqc thiet ke de chting co the duce thay the hoc thy chink met cach
a
ding.
-
ASP.NET
MVC c6 thanh phan inh xa URL manh me, cho ph6p cluing to may dung
nhang ling dung c6 cac dia chi URL xtic tich va de
tim kiem.
Cac dja chi URL IchOng
Trang 17/109
Chuang 1- Tong quan ye ASP.NET

MVC FRAMEWORK
can phai c6 pan mer rang cita ten tap tin va duqc thiet ki de hO trq cac mau djnh clang
ten phu hqp vei viec toi uu hoa tim kiem (URL).
Hg trq cac tinh 'tang c6 sin ctia ASP.NET
nhu ca the zee thus ngteri dimg, quan
thenh vien, quyen, output caching va data caching, seession va profile, quan ly tinh
tang img dung, he thong cau hinh
-
ASP.NET
MVC 3 con be sung met view engine mei la Razor View Engine cho phep
thiet lap cac view nhanh cheng, de ding va ton it ding sec han so vei vies sir dung
Web Forms View Engine.
1.4.3. U'u diem
-
De ding quan ly su phirc tap cua img dung bang cacti chic img dung thank ba thinh
phan model, view, controller.
-
HO trq tot han cho mo hinh phit then ung dung butt:1g Itiem thin.
-
He thOng djnh tuyen mash me.
HO trq tot cho cac img dung duct ay dung bei nhfrng dill co nhieu lip trinh vien vi
thiet ke ma yin quan ly dime tinh &mg dui img dung.
-
HO trq nhfing tinh nang tat nhat de c6 6 ASP.NET
.
1.4.6. Niurcrc diem
-
Kh8ng Wong den su lden lam cho cac nhi phat trien ASP.NET
webfonn ldt6 khan.
-

Yeu cAu c6 hieu biet ve HTTP, HTML, CSS va JavaScript.
1.4.7. So sal* gigra ASP.NET
webform vi ASP.NET
MVC
Minh 1.5 ASP.NET
WebForm va ASP.NET
MVC
Trang 18/109
Chuang 1- Tong quan vg ASP.NET
MVC FRAMEWORK
.Net Framework: 118 trq clic loo img dung nhu desktop, web va cac img dung console.
ASP.NET
framework la met phin cha .NET framework, duct xay dung nhirn 118 trq
cac Ung dung Web (caching, authentication va authorization).
Trong di, Microsoft co 2 luremg phat trier web ten
nen
ASP.NET
la ASP.NET

Webforms va ASP.NET
MVC. Muc dich ra dbi cita ASP.NET
MVC chi la su thay dei ye
mit to duy, no khetng hoan town thay the cho cO img dung ASP.NET
Web Forms, va viec
chcm huing nao de &Ay dung met website la thy thuk vao cac nha phat
trier.
Su khac bier gifta 2 Wong phat trien nay dirge the hien dual bang sau.
Tinh ring
ASP.NET


ASP.NET
MVC
ICien tnic chuong trinh
Kien frac me hinh
WebFotm > Business >
Database
Kien tnic sir dung viec phin chic
chtrong trinh thanh Controllers,
Models, Views
Cu phap chuang trinh
Sir

dung

cu

phip

cita
webrom,
eat
cac su kien va
controls do server quan 19
Cac str kien duqc dieu khitn b61
controllers, cac controls khong do
server quan 19
Troy cip du lieu
Sir dung hiu het cac tong
nghe fly cip de lieu trong
Ung dung

Phan lin dung LINQ to SQL class
de tao me hinh tray cep dei urging
Debug
Debug chuong trinh phii
thuc hien tit ca bao gom the
lap truy 4p
de
lieu, sum hien
thj, dieu lchien cac controls/
Debug c6 the sti dung cac unit test
kiem tra cac phircmg thirc trong
controller
Ttic de phan tai
TOG de chin MU trong
trang co qui Situ cac
controls vl ViewState qui
lon
Phan tai nhanh han
Tuang tic veri
javascript
KM Idt6 IchAn
Thu*1
1
9i
Trang
19/109
Chuang 1- Tong quan ye ASP.NET
MVC FRAMEWORK
URL
Address

au tine dia chi URL c6
dung <filename>
.aspx?&<cIc tham
s3>
Cau
tnic dia chi Sob much theo
dung Controllers/Action/ID

1.4.8. Lim quen v61 (mg Eking ASP.NET
MVC Framework
IM61
tgo mOt
Gig
dpiw
MVC
Trong bO pan mainVisual Studio 2010 &I co sin ASP.NET
MVC Framework, to tao
mOt du ga mbi then dubng din sau: File > New Project > Visual C# > Web > ASP.NET

MVC Web Application.
Now porn 'a
Slid TOWN=
Puffin Inteffionce
Kul lac
• Vowel Ca
Madam
Office
Cloud
Pffilaffia9
ShrePoit

Sivoight
Tel
VICF
Waal'
Visual C••
Weal Co
a
A9WWe
yofficalion
a
19/ET INC 2 Web Appia

es
a
AMC MI/CiffiliAppla
a
ASPIC INC. Mr
Appicsbee
WIC
Empty WS Application
a
WIC WC
2 brae We Sopfeseen
ASPMET Drente Dab as Web
Anita
ASPIC DynelicDolo
Jails 911. Wayfratan

Typo Veal Ca
A reject Ice aseffiej as appraise Sig

ASPIC WIC 3
was Ca
red Ca
VINSON
Vaud Ca
Veal Oa
was
cc
Keel OP
was Cl




Hinh 1.6 Khoi too sing Ming ASP.NET
MVC
Trang 20/109
Chuang 1- T6ng quan ve ASP.NET
MVC FRAMEWORK
Sau khi bam OK, hOp thooi New ASP.NET
MVC3 hien re.
ASMEM
a
i
Slaillilinallia
h
oject Taupe
Watt
doorplate
Va spins

Osaiplia
Addlult/dP.M7 WC 3 ripest.
am&
apairiltnisfas
Er Um MIMS walk sash.
El
Oen alma praint
Tett project maw
liktklorrw.Tests
Test framework
Votsal Strap Unit Test
- ANOn,l
so

1



sao
, 1





Minh 1.7 If(ip thogi New ASP.NET
MVC3
Chting ta co the chon kieu template la Empty, Internet Application ho$c Intranet Application.
Empty se tao ra nhOng thu mut vi t$p tin tei thieu cho an,g dung MVC3.
Internet Application se tao Ira mot img din co 86 tram; m#c dinh, chiing taco the sirs dei

vi airy dung tren n6.
-
Tay chon Intranet Application tang tuong to nhu Internet Application, nhung &roc can
filth stn de stl dung trong moi truerng
7LiC
than; ngubi clung thong qua ha tang Domain/
Active Directory.
Chung ta tang co the tao project test tong veil Ong dung MVC tir cling mot oh ses.
Ben canh 46, ta tang co the chon chi 40 ViewEngine 11 ASPX ho#c Razor.
(3 day, ta chip Internet Application, Razor ViewEngine vi khong chon unit test project .
Beni OK de hoitn tit.
Trang 21/109
Chuang 1-
Tang quan
ye
ASP.NET
MVC FRAMEWORK
Solution Explorer se hien m
nhu
sau:
g
Solution "Avalcreies
a
m
oo

a
Isfralowle
D


PuMelties
N

ltidesenees
r
APP-Dete
N
CI
Content
N
Modds
SaiMs
al
Views

r.'
a
Globate=
4S
Globatesuccs
A
Imcka9
0
-
03111
9
D.

Web.config
Hinh 1.8 Minh hpa mot Solution Explorer cua ASP.NET

MVC3
Bing duel day me ta nei dung throng dlin mkt met
du
an MVC Internet Apllication.
Duimg din
MO ti
/App Data
LAM tit &it lieu dm (mg dung. Chung ta co the them met
CSDL SQL vio thu mkt nly.
/Content
Li thu mix throng chits nheng de lieu tlnh, nhu 11 hinh
anh, tep tin css,
Visual Web Developer al dOng them thu mac Themes vio
trong Content. Thu nut themes 11 thu num chira cac tep
Jquery vi hinh anh. Trong du an nay ta co the iroa thu mac
themes.
Visual Web Developer rang them 1 file CSS chuim vio du
an ten lit Site.css trong thu mix Content. File CSS la file de
mks khi ta muon they doi style caa (mg dung.
/Controllers
Chita cac lop controller oft chirc Wing nhijn Sc yeu au caa
ngtrbi ding vi phis holi lai.
MVC yen ciu ten cast tit ca cac file controller ket thee
'Prang
22/109
re.


0111•••1
1

*


My MVC Application
Welcome to AWAIT MVO
To Wen Men tout 451
,
,MT MK wok tramaliat
Chuang 1
-
Tong quan ye ASP.NET
MVC FRAMEWORK
bing the "Controller".
/Models
Gam de lop di chin cic mi birth d6i ttryng cia ling dung.
Models quin
1ST
vi thao tic voi di lieu.
/Views
Litu tit cic file HTML lien quan ten viec hien dil cost ting
dung (giao then
Wen
ding).
Thu muc Views chits Wang ting mai thu mqc cho n*
controller.
Mic
djnh trong thu muc View co 1 thu
muc
Shared ding
de chia se Si nguyen gitta Sc controller.

/Scripts
Thu
muc Script hru tilt Sc file Java Script Gila ling ding.
Mic djnh Visual Web Developer
se 4t thu
mpc niy lem
chuitn de chits cic file Jquery. File "modernize' li file
Javascript de ha trq HTML5 vi CSS3.
filch vd chgy
V6i
viec
Iva chip Internet Application fru* de, ling dung eta chting ta di c6 dui
chirc Ming ca bin. Ching ta chtty thfr bing cich bim F5 vi kit qui nhtr sau.
Hinh 1.9 Giao
diets co ban khi chuy
sing dyng ASP.NET
MVC cti san
De dimg chuang trinh, ta
t6
hip phim Shift + F5 ho$c chip Debug Menu vi chip Stop
Debugging.
Neu
muon
thvc hien that' dal trong khi Debug thi ta chin Tools > Option, sau 46:
Trang 23/109
Chuang 1- T6ng quan ye ASP.NET
MVC FRAMEWORK






relt and Coto.


6
a
bale
follt
arikaulimen
Iteiarroq
eplies
This
ineMe ague Et
end
Colima
R] invoked by debug coeraniwids
ri
Ask
find
1•Vam about dale code
EL':
Rank
code chimes
As
debugging
Li)
Now
pecanwiling
r,

,
Enable Stile debugging an appbcation running wider another user account



rrrol


lust-In-Tone
Dugout ilandow
Symbob
butdiToce
> PIPIVIMPPIO
Took
> Outten Took
>
NTeen
>
frTkl Designer
>
Office Teat
>
Wags Mains
>
SQL Sera Tags
Ten Tomblin.





n




Hink 1.10 Giao diet, thy chink May ddt throng Binh tong khi Debug
1.4.8.3. Kit a
1 cash dfr Wu SQL Server bibsti Entity Framework
ADO.NET
Entity Framework II met nen tang dtrqc sar dung de lam viec win CSDL.
Chung ta co the troy win, than tic voi database gain dip thong qua tic dui tircmg trinh.
Chang ta se kit not CSDL bang Entity Framework Database First. No se tin den;
two ra data model va ate lap cho chung ta tit met CSDL co sin. Day la met cich dip can
phO bien vi no thvc hien don giin, nhanh chong.
Trong eaia
so
Solution click chuOt phii chip Add > New Item
I-finh 1.11 Katcosh di? ligu bang Entity Framework — hair 1
Tsang 24/109
Genealetlhe modd ban a abbot Qs
we
paled tea the wadi an
the
pqect• avid
Ibis wield
Slams
nay*,
delalscoameclisa ad diele
aptly
Wok

Mlle rt.

J
Fintsh

Chuang 1- Tong quan ye ASP.NET
MVC FRAMEWORK
Tiep theo, chon ADaNET Entity Data Model
balm
Add
imp lass

rasa
Code
Gated
we
?hides, Come
WI*

apetlieg
e
t
NS. LS Tea
s
ail
left
A
1.111. Sra amps
SQL
San

Caen
nabs
a
"Wire
yfraTRs
Wall OP
%SOP
Vaud Cs
%LS Or
rasa
rasa
ras
a
Veal Cs
Instaled Tenpldes

P
Type vases

piled NMI
is
outing. ADOJET
Lily Da DANK
Weight
SQL Saw
%%Mew
Rink1.12 Kilt nth cash die liOu being Entity Framework— by& 2
Criao diein hien ra tint beln du6i, bilm
Next
1,/

Dia

111.thiCalimb
VIStasold Onsald met
Minh 1.13 left ca sb dit li4u bang Entity Framework— butk 3
Trang 25/109
Chuang 1- T6ng quan ASP.NET
MVC FRAMEWORK
ant
s6
mai hien ra, to chan New Connection vi thy chqn aic thong so. San d6 htun
OK
Enter infommtion to connect to the selected data source or cick "Change to
choose a different data source and/or provider.
Data source
Microsoft SQL Sever
Serve name
(Sq11:tient)

E

rr
bullion
Log on to the sever
© Use Windows Authetiotion
#
Use
SQL
Saw


Authentication
User name

sa
Password

mew
D
Save my
password
Conned
to a database
• Sdect or enter a database name
BookStore

.
C) Atbch a database fib
—I
Browse
Logical name:
wwpwiml
1
Hinh 1.14 Kit ndi cosh d& lieu bling Entity Framework

buor 4
Trang 26/109
OrowYeelbild

OlOns
—. Mobs Ss dam sits

MY* OM"
Noddy
r

Tai
nib nen
DO new iimaiims
Muria
ingubriepreslidaljel alas
g
Include kw, log eigums
Mil Pampa
ininisynuas
Chiron 1- Tang quan ye ASP.NET
MVC FRAMEWORK
Tiep then, ta chtx
Next
so
y
Del•
alp
alma The Dub Canincinn
laid dab amecienalonill par
masts
a In ant Is Ihn
That mosses steins ippon Is contain swim deb for nap% •
swelint
is sap:St
connect WS Sam Amin new deb s Sr eases tire as IN
Ns*

St Doss von
to 'Muds this smiling tign in dis oarencion
ryr
() lb. and into deintsse the mannafi+Isluti in
my
Appicalist ads
indialn the nvailive Sin in M. comndion
liy
fray connedian *Mr
indadnenanirJP/Bonidtannainefiliaren.
ilmaillsedlonnivalnweviiimSysientbabiSICIellreiner conmedisenbingelkla
Sources
mania

Calinioreocenteersint
leanly
benanonibt
Itinsamenia
Pi Sant stay ceemenitin Slip
wlbyr WeinCanfig
loottiternEndlin
I

n


Hinh 1.15 Kit not cosh chi lieu bitng Entity Framework— burk 5
Cuii cone, ta barn
Finish
di boon thanh viec kit not toi CSDL tit SQL Server

invorntsult.e.

Hinh 1.16 Kb nil
CCI
set dfr lieu being Entity Frwnework— buOr 6
'Prang 27/109
Chuang 1- Tong quan ve ASP.NET
MVC FRAMEWORK
1.424. Thim mal mft Controller
Bey gib chimg to se them met controller cho du in.
Trong Solution Explorer, click phiti chuOt tren Toler Controllers vi chon Add >
Controller
Hinh 1.17 Minh hoa thin: tneri :wit Controller -1
Ta at ten Li "HelloWoridController", chun Emty controller trong Template va click OK.
Controller woe


eNoWorldContsollee
Towhee

k
ailItiniauis—sw , ,
«J .a
Model class:
[
Data context class:
r
id
Views:
Norte


I
I
Hinh 1.18 Minh hpa thin; moi mot Controller - 2
Trang 28/109
CI
using System;
using Systas.CoLlections.Cseneric;
using Systen.Linq;
using System.Web;
using System.ideb.14vc;
O
nawespace HvcHovie.Controllers
(
O
public class HelloMorldController : Controller
{
S
//
// GET:
/HelloWorld/
El
return View();
}
}
}
""

"[mansegtsaan
,

Lt
ataidan
Noperfies
D
Weems
4 Amu'
Cal Content

caftans

AccountConboler.cs

HelloWoddConbolbs
HotneCantrolern
Models
Saints
') rj Vim
g
o
l Globs: sax
Web.config
giokeioni-
public ActionResult
Index()
Chuang 1- Tong quan ye ASP.NET
MVC FRAMEWORK
Trong foler Controllers, chting dA co file v(ra duoc to vai ten HelloWorldController.cs.
Noi dung coa file nhu sau:
Solutionhpbeer


"' 4 X
iiMvcMovie.Conuollers.HeloWoo ',Untie)
Hinh 1.19 Mirth boa then miti mot Controller - 3
Ben bong Si public class HelloWorldController, Mo hai phuong thirc có code nhu ben ben
&Mi. Controller se travE mat

HTML.
using System.Web;
using System.Web.Mvc;
namespace Muctiovie.Controllers
public class HelloWorldController : Controller
{
public string Index()
(
return "This is my default action ";
}
public string Welcome()
return "This is the Welcome action method ";
}
'tram
29/109
Chuang 1- Tong quan ve ASP.NET
MVC FRAMEWORK
Ta chay ung dung (nhim F5 hoc Ctrl+F5). Trong trinh duyet them "HelloWorld" vio daring
thin dja chi tree thanh address. Ket qui 11:
Rink 1.20 Minh hpa them
mat mot
Controller - 4
1.4 85
Thim m61 mr View

Thong thubng chting ta khemg muon controller trit ye truc tiep HTML, vi diau nay
lim cho code care clueing ta trb nen roam S. Thay vio d6 thong ta se dung file view
template rieng biet de to HTML.
Ta
se
dieu chink class HelloWorldController de sir dung file view template (ding
de
to HTML tri ve cho client).
Tnrac tien
t
ta thay doi phuong thec Index de tri ve mOt dOi Mang View nhu sau:
public
ActionResult
Index()
{
return Via();
}
Chung ta
se
to mot
view
template sir dung cho phuang thee Index bang tech click
chuOt phai vio phuong thirc Index chon Add View.
Trattg 30/109
Vow
nom
Ifietv
Fri
Onla•tenglrlivelvinv
Maras

SSW. letplels
Erni*
o
Cale a•paielvirso
Una *mut at memes
asornmply
VI
it sel in lias_viessiNted
ontentPlaceboider Iti
MinCartent
Chuang 1- T6ng quan ye ASP.NET
MVC FRAMEWORK
{
public class lioweController : Con;{

Addvers.

public ActionResult Index() /21
GoToinew
Matador
return
View();

Onjpankelliwis


GesteUMTens-
Binh 1.21 Minh hpa them moi tnot View -1
Hop tho?i Add
View

met hien, to de mOc djnh vh click Add
Binh 1.22 Minh hpa thim maxi m(g Hew - 2
Trong Solution Explorer, file Index.cshtml
di
duct tno ra tong duang
dan
Niews/HelloWorld/Index.cshtml

Views
P
ea
Account

fib
HelloWorld
ca
Ideccshtnd
D GI Home
p GI Shared
_ViewStarLcsidnd
wth.confi
g

N

GobeLasor
Web.config
Binh 1.23 Minh hpa them moi mijt View - 3
Trang 31/109
My MVC Application

Home
Index
Hello from our View Template!
Chuang 1- Tong quan ye ASP.NET
MVC FRAMEWORK
Nfii dung ala file Index.cshtml vita duqc tso
VieSag.Title 'Index";
<h2>Index</h2>
Ta sea lsi nqi dung thinh
It
Vieweag.Title • 'Index";
<h2>Index</h2>
<p>Hello from our View Templatelqp
Chu chuang trinh ye duet kit qua
nhu
saw
Huth 1.24 Minh hpa thin Si mot View - 4
Trang 32/109
Chuang 1- Tong quan ye ASP.NET
MVC FRAMEWORK
1.4.8.6. Them mot Model
Trong solution explorer, click phiti chuOt tree thu mac Models, Chan Add, vi sau do
Chan Class.
alkx
AMMIJET
MIS

o
4
b

ow

Cni•C
1
4
1$ Cho—

a
Pa

cbtof
X

oat
flush 1.25 Minh km thins mai moat Model
Sau dd, ta dit ten cho class va him OK de holm tit.
Nhu v$y, chting ta di co ban nim &roc cach tao mOt du in MVC, tech bien djch vi
chay chuong trinh. Ben canh 116, cluing ta rung di tim hieu so qua ve cich them oic
controller, view va model vio tong da an.
Can

to Wd

Antabon
j Maw ben
-
a
biding
ken—
CS

Oho Fat
Cb$.9St+A
Sfult•ANA
AS
.

.
A
Weds Pa Project
Ca
O
tt:
D i Preprints
N a
References
APP-De
D
A
Caren
D Cortrolins
Pa
• Z
ausa

kallacet
mixing
Trang 33/109
Chuang 2 - Cac thanh phan chfnh caa ASP.NET
MVC
CHIMING 2 - CAC THANH PHAN CHINH CiJA ASP.NET

MVC
2.1. Controller
Trong MVC, controller la cac lap C# (thubng dirge bat nguen tir lop
System.Web.Mvc.Controller). Mai phuong thirc public dm met class tir Controller
duct
goi la action method, n6 lien ket veri ciu hinh URL thong qua he' thing djnh tuyen
(routing system). Khi met yeu cau dirge girl tei URL lien ket v6i met action method,
controller se thao tic vei model vi chip ra View de hien thi cho Ichich hing.
ControllerBase la lerp co bin dm controller. NO cung cep cach xir ly MCV noi chung.
Cac lop ice thin tir ControllerBase dirge mac djnh thuc hien cac tinh chat cia met
controller.
Lop Controller co nhOng vai tre sau:
-
Dinh vi action method thich hop de goi vi xic Stan rang action method de co the
dugc gqi tai;
Nhan cac gia trj la tham so cim action method;
Xt'r ly
tat ca
cac lei c6 the xiy ra trong qua trinh thuc hien cac action method;
Cung cep 16p WebForm ViewEngine mac djnh de' dua ra cac View.
2.1.1. Cie 167 chinh cilia Controller
Action methods: Mei action method ling veri met dja chi URL phan biet va dirge goi
ra vai cac tham s8 dirge ley tir you eau.
-
Action results: Action method tra
ye
the hien dm met lop dugc dan xuat tir
ActionResult. Lop ActionResult li nen tang cho moi ket qui dugc tit ire (VD: Tra
ire met View, clan
xuet den met Action method khic ).

Viec tach bach giaa xac
djnh ket quA va thuc thi se don gian h6a vice kiem thir met each ding ke.
-
Filters: Chung to co the gei gin cac hank vi tai sir ding dugc thinh
N
loc, sau do
dinh harth vi d6 vio met hocnhieu Controller hoac Action method bang cach Qat
[Attribute] vio trong ma nguen.
Trang 34/109
Chwmg 2 - Cac thanh phIn chinh nia ASP.NET
MVC
2.1.2. Action Method
Thuang la su anh xa 1-1 di veri twang tac cita nguai dung. Vi du ngueri dung twang
tac voi trang web bing viec giri met dja chi URL, click vao met dui:mg link, hay xic than
met form MOi hanh di:mg do deu girl met yeu cau den Server.
6
mot twang hqp, cac
you cau nay trong .NET MVC deu gqi met action method twang (mg.
MOt controller co the chira nhieu action method ma no can.
Khi ngtrai dung thut hien met yeu cau URL den hang web tren nen .NET MVC thi
may chit se thut hien chuyen huerng URL theo cac lust di duqc quy djnh trong file
Global.asax de tien hanh phin tich chuoi URL va quyet dinh sd xir 12 a Controller nao.
Sau d6 Controller se quyet dinh gqi Action method nao de xir 12 yeu cau.
Khi ngutri dung nh$p URL vao trinh duyet, img dung MVC se sir dung cac quy tic
djnh tuyen
duqc
dinh nghia trong file Global.asax de phfin tich cac URL va
XiC
dinh
duemg di cita controller. Sau do, controller xac djnh action method thich hqp de xir 12 cac

yeti au. Theo mac dinh, URL cita met yeu au duce coi nhu la nhu men throng din Au
bao gam cac ten controller
nil
den ten hanh gang (action). Vi du, neu ngtreri dung nhap
vao URL la:


Nguyen tic djnh tuyen mac djnh coi "Products" img veri ProductsController. N6 coi
"Categories" la ten ctia action method. Vi voy, action method "Categories" cita
ProductController se
duqc
gqi de xi! 12 yeu
cau.
Neu URL kelt thfic bing
/Products/Detail/5, thi nguyen tic djnh tuyen mac djnh se gqi action method Detail els
ProductController de xir 12 you cau. Theo mac djnh, gia tri "5" trong URL duqc coi nhu la
tham
so cim
action method Detail.
Trang
35/109

×