Anda di halaman 1dari 16

1 TI THC TP CHUYN NGNH

GVHD :

2 TI THC TP CHUYN NGNH

GVHD :

TM HIU ASP.NET MVC , HASHTABLE NG DNG T IN ONLINE

I.

M HNH MVC
1. GII THIU V M HNH MVC

MVC ( Model View Controller ) : l mt m hnh lp trnh chia d n thnh ba thnh phn chnh : Model , View , Controller Mi thnh phn trong m hnh MVC c vai tr khc nhau n khin cho cu trc sch s gip cho vic pht trin , bo tr hay sa li tr nn d dng hn

MODEL ( tng d liu ) : L i tng hoc tp hp cc i tng biu din cho phn d liu trong chng trnh hay d n v thng thng n l mt hoc l nhiu lp c nh x t trong bng c s d liu hoc d liu t mt h thng , ng dng khc nh l file system , mail server Views (tng giao din) : L phn giao din vi ngi dng, bao gm vic hin th d liu ra mn hnh, cung cp cc menu, nt bm, hp thoi, chn la ngi dng c th thm, xa, sa, tm kim v lm cc thao tc khc i vi d liu trong h thng. Thng thng, cc thng tin cn c hin th ly t tng Models.

3 TI THC TP CHUYN NGNH

GVHD :

Controllers (tng iu khin): chu trch nhim x l cc tc ng v mt giao din, cc thao tc i vi models, v cui cng l chn mt view thch hp hin th ra mn hnh. Trong kin trc MVC, view ch c tc dng hin th giao din m thi, cn iu khin dng nhp xut ca ngi dng vn do Controllers m trch.

Request

Controlle r
Actio n

Form

Mode l

Data Mode l

Response

View

Bt c mt request no n server s c x l bi Controller, Controller s x l request mt cch thch hp. Bn trong Controller s c nhiu action khc nhau, mi action s tng ng vi mt request c th. Sau khi lm vic vi Model thc hin cc request t client, Controller s gi v cho View mt data model, v View s render data model ny thnh cc thng tin cn hin th cho ngi dng.

4 TI THC TP CHUYN NGNH

GVHD :

II.

ASP.NET MVC
1. ASP.NET L G

ASP.NET l Active Service Pages .NET : l mt cng ngh c tnh cch mng dng pht trin cc ng dng mng hin nay cng nh l trong tng lai

ASP.NET l a ngn ng : xy dng mt ng dng web chng ta khng ch chn mt ngn ng m c th chn nhiu ngn ng khc. iu quan trng l cc ngn ng chng ta chn m ca n dch c ra m IL ASP.NET l ngn ng lp trnh hng i tng s dng ngn ng .NET. N cung cp cc i tng nh v thc s l mt tng lm vic trn nguyn l HTTP v HTML , m ngun ca n khng c truy cp ton b i tng trong .NET Framework nhng c th khai khc tt c cc quy c ca mt mi trng OOP ( Object Oriented Program). Chng ta c th to cc lp , giao din , k tha lp ..

2. ASP.NET MVC L G ASP.NET MVC Framework l mt Model View Controller Framework c Microsoft a thm vo b ASP.NET , N cho php trin khai cc ng dng mng theo m hnh MVC v cng c ba thnh phn chnh l Model Views Controller . ASP.NET MVC khng phi l mt thay th cho ASP.NET WEB FORM m ch l mt la chn cho cc nh pht trin ng dng mng hay l pht trin website 3. MT S C TNH CA ASP.NET MVC

Tch r rng cc mi lin quan , m kh nng test TDD ( test driven developer ) . c th test unit trong ng dng m khng cn chy Controller cng tin trnh ca ASP.NET v

5 TI THC TP CHUYN NGNH

GVHD :

c th dng bt k mt unit testing framework no nh NUnit , MS test C kh nng m rng , mi th trong ASP.NET MVC c thit k cho php d dng thay th / ty bin ASP.NET MVC cung cp mt nh x URL mnh m cho php xy dng ng dng vi mt URL sch s , cc URL khng cn cha phn ui m rng ASP.NET MVC Framework h tr y cc tnh nng bo mt nh l forms/windows authenticate , URL authorization , membership/roles , output v data caching , session/profile state, configuration system,provider architecture

4. S KHC BIT VI ASP.NET WEBFORM ASP.NET WEBFORM s dng viewstate qun l , cc trang ASP.NET WEBFORM u c lifecycle , postback v dng cc web control, cc event thc hin hnh ng cho UI khi c s tng tc vi ngi dng nn hu ht cc website ASP.NET WEBFORM x l chm

ASP.NET MVC FRAMEWORK chia ra thnh 3 phn : Models, Views, Controllers. Mi tng tc ca ngi dng vi Views s c thc hin hnh ng trong Controller, khng cn postback , khng cn filecycle khng cn events

Vic kim tra ( test ) , g ri ( debug ) vi ASP.NET WEBFROM u phi chy tt c tin trnh ca ASP.NET WEBFORM v mi s thay i ID ca bt k Controls no cng nh hng n ng dng cn i vi ASP.NET MVC Framework th vic c th s dng unit test c th thm nh rt d dng cc controller thc hin nh th no

6 TI THC TP CHUYN NGNH

GVHD :

Kin trc chng trnh

Kin trc m hnh WebForm > Business > Database

Kin trc s dng vic phn chia chng trnh thnh Controllers, Models, Views Cc s kin c iu khin bi controllers, cc controls khng do server do server qun l Phn ln dng LINQ to SQL class to m hnh truy cp i tng

C php chng trnh

S dng c php ca webform, tt cc s kin v controls do server qun l S dng hu ht cc cng ngh truy cp d liu trongng dng

Truy cp d liu

Debug

Debug chng trnh phi thc hin tt c bao gm cc lp truy cp d liu, s hin th, iu khin cc controls

Debug c th s dng cc unit test kim tra cc phng thc trong controller

Tc phn ti

Tc phn ti chm khi Phn ti nhanh hn do trong trang c qu nhiu cc khng phi qun l controls v ViewState qu ln ViewState qun l cc control trong trang Tng tc vi javascript kh Tng tc vi javascript khn v cc controls c i d dng v cc i tng u khin bi server khng do server qun l iu khin khng kh Cu trc a ch URL c dng <filename>.aspx?&< tham s> Cu trc a ch rnh mch theo dng Controllers/Action/Id

Tng tc vi Javascript

URL Address

7 TI THC TP CHUYN NGNH

GVHD :

8 TI THC TP CHUYN NGNH

GVHD :

III.

PHNG PHP BM
1. GII THIU V PHNG PHP BM

Cc tc v trn cu trc danh sch nh cy nh phn, danh sch phn ln c thc hin bng cch so snh cc nt ca cu trc do vy thi gian truy xut khng nhanh v ph thuc vo kch thc ca cu trc. Vi cc bi ton c s lng phn t nhiu nh t in c mt k thut khc quan trng cho php s dng rng ri ci t l phng php bm (Hashing) Bm l gii thut nhm sinh ra cc gi tr bm ( kha ) tng ng vi mi khi d liu ( c th l mt chui k t , mt i tng trong lp trnh hng i tng ). Gi tr bm ng vai tr gn nh mt kha phn bit cc khi d liu , tuy nhin ngi ta chp nhn hin tng trng kha hay cn gi l ng v c gng ci thin gii thut gim thiu s ng . Gii thut bm nhm gim chi ph khi tm mt khi d liu trong tp hp nh vic so snh cc gi tr bm Nu nh cc gi tr kha ca d liu l s nguyn khng m v nm trong khong [0 Size -1] ,Chng ta c th s dng mng data c c Size lu tr tp d liu . D liu c kha l K s c lu ti v tr data[k] ca mng , bi v mng cho php ta truy cp trc tip ti tng thnh phn ca mng theo ch s do cc php ton tm kim , xem trong thi gian rt ngn v kh c th bng 1 . Song ng tic kha c th l s thc l k t hoc xu k t. Ngay c khi kha l s nguyn , th cc gi tr kha ni chung khng chy trong khong [1 Size-1] Trong trng hp tng qut khi kha khng phi l cc s nguyn trong khong [0 Size-1] th chng ta mong mun lu tp d liu bi mng li dng s truy cp trc tip ca mng . Gi s chng ta mun d liu trong mng T vi kch thc l Size lm c lm iu , mi d liu ta a ra cch tnh ch s mng ti lu d liu th ta c th lu tp d liu trong mng theo s hnh sau

9 TI THC TP CHUYN NGNH

GVHD :

Tp kho K

Hm bm f

Tp a ch M

Mng T

Trong lc trn khi c mt d liu c kha K , nu tnh a ch theo k ta thu c ch s i trong khong 0 <= i <= Size -1 th d liu c lu trong thnh phn mng T[i]. Mt hm ng vi mt gi tr ca kha ca d liu vi mt a ch ( ch s ) ca d liu trong mng c gi l hm bm ( hash function ) . Phng php lu tp d liu theo lc trn c gi l phng php bm (hashing) v trong lc trn mng T c gi l bng bm ( Hash table) Nh vy hm bm l mt nh x h t tp cc gi tr kha ca d liu vo tp cc s nguyn { 0 , 1 , , Size -1 } trong Size l c ca mng dng lu tp d liu tc l h : K { 0 , 1 , , Size -1 } vi K l tp gi tr kha v vi mt d liu c mt kha K Nu hm bm cho php ng gi tr kha khc nhau vi cc ch s khc nhau tc l nu k1 k2 th h(k1) h(k2) v vic tnh ch s h(k) ng vi kha k i hi thi gian hng th cc php tm kim , xem , loi cng cn thi gian O(1) , tuy nhin trong thc t mt hm bm c th nh x hai hay nhiu gi tr ti cng mt ch s no v iu c ngha chng ta phi lu cc d liu trong cng mt thnh phn mng m mi thnh phn mng ch cho php lu mt d liu . Hin tng ny gi l s va chm (collision).Vn ny t ra l gii quyt vn ny nh th no? Chng hn , gi s d liu d1 vi kha d2 nu h(k1) = h(k2) th d liu d2 cn t v tr no trong mng Nh vy mt hm bm nh th no c gi l tt t nhng iu nu trn , chng ta a ra cc tiu chun thit k mt hm bm nh sau 1. Tnh c d dng v nhanh a ch ng vi mi kha

10 TI THC TP CHUYN NGNH

GVHD :

2. m bo t sy ra va chm 3. Cc kha c phn b u trong mng

IV.

CC HM BM

Trong cc hm bm c a ra y ,chng ta s k hiu k l mt gi tr kha bt k v Size l c ca bng bm. Trc ht chng ta s xt trng hp cc gi tr kha l cc s nguyn khng m. Nu khng phi l trng hp ny ( chng hn khi cc gi tr kha l xu k t ), Chng ta ch cn chuyn i cc gi tr kha thnh cc s nguyn khng m , sau bm chng bng phng php cho trng hp kha l s nguyn C nhiu phng php thit k hm bm c xut ,nhng c thc hin nhiu trong thc t l cc phng php trnh by sau y

1. PHNG PHP CHIA Phng php ny n gin l ly d ca php chia kha K cho c bng bm Size lm gi tr bm h(k) = k mod Size Bng cch ny gi tr bm h(k) l mt s trong on {0,1,, Size -1} Trong phng php ny bm mt kha ch cn php chia nhng hn ch c bn ca php ton ny l hn ch va chm , chng ta cn phi bit cch la chn kch c ca bng bm v cc phn tch l thuyt ch ra rng hn ch va chm phng php bm ny l ta chn Size l s nguyn t tt hn ht l s nguyn t dng c bit chng hn nh 4k+3 Vd: chn s nguyn t 811 v 811 l s nguyn t v 811 = 4*202 + 3

2. PHNG PHP NHN Phng php nhn hn ch s va chm v t ph thuc vo kch thc bng bm nh l php chia. T tng chnh ca thut ton ny nhn kha k vi

11 TI THC TP CHUYN NGNH

GVHD :

s thc r no ( 0 < r < 1 ) sau ly phn thp phn ca php nhn trn nhn vi Size , phn nguyn ca tch ny c ly lm gi tr bm ca kha k u=tc l h(k) = | (rk - |rk|)* Size ( k hiu || l php ly phn nguyn ) c th phn phi u cc gi tr kha vo cc gi v tr trong bng bm , trong thc t ngi ta thng s dng hng s nh sau r= -1)/2 = 0.61803399

V.

CC PHNG PHP GII QUYT VA CHM

trn cng gii thiu 2 phng php thit k hm bm nhm hn ch xy ra va chm .Tuy nhin trong thc t s va chm l iu khng th trnh khi chng ta s thy rng , cch gii quyt va chm nh hng trc tip n kt qu bi ton trn bng bm . Trong phn ny chng ta s trnh by hai phng php gii quyt va chm . Trong phng php th nht mi khi sy ra va chm chng ta tin hnh thm d tm mt v tr cn trng trong bng v t d liu vo v mt phng php khc l chng ta to ra mt cu trc d liu lu tr tt c d liu c bm vo cng 1 v tr trong bng bm v gn cu trc d liu ny vo v tr vo bng bm

1. PHNG PHP NH A CH Trong phng php ny cc d liu c lu trong cc thnh phn ca mi mng . mi thnh phn ch cha mt d liu , v th mi khi cn xem mt d liu vi kha k vo mng , nhng ti v tr h(k) cha d liu chng s tin hnh thm d mt s v tr khc trong mng tm ra mt v tr trng v t d liu vo v tr mi v phng php thm d pht hin v tr trng c gi l phng php nh a ch m (Open addressing) Gi s v tr m hm bm xc nh ng vi kha k l i, i=h(k) t v tr ny chng ta ln lt xem xt cc v tr tr i0,i1,im,Trong i0=i, im(m=0,1,2, ) l v tr thm d ln th m , dy cc v tr ny c gi l dy thm d ,

12 TI THC TP CHUYN NGNH

GVHD :

vn t ra l xc nh thm d nh th no? Sau y chng ta s trnh by mt s phng php thm d v phn tch u khuyt im ca mi phng php
1.1 PHNG PHP THM D TUYN TNH

y l phng php thm d n gin v d ci t nht vi kha K gi s v tr c xc nh bi hm bm l i = h(k) khi dy thm d l i, i+1,i+2 Vy phng php thm d tuyn tnh l xem v tr tip theo lin nhau k t v tr ban u c xc nh bng hm bm .Khi cn xem mt d liu vi kha k nu v tr i = h(k) b chim th ta tm n cc v tr lin sau ,gp v tr no trng th b n vo V d : Gi s c ca mng Size = 11 ,ban u mng Size rng v ta cn mang ln lt cc d liu vi cc kha l 338,230,13,14,926 vo mng v s dng phng php thm d tuyn tnh ta c h(338) = 3, h(230) = 9 , h(13) = 2 ,xt tip d liu kha h(14) = 3 xy ra va chm v Size[3] b chim bi 338 vy nn ta tm n v tr tip theo l 4,v tr ny trng nn ta s t 14 vo Size[4] , tng vi 926 cng xy ra va chm h(926) = 2, ta tm n cc v tr tip theo th thy v tr 5 cn trng th ta b 926 vo nh vy ta nhn c kt qu l

13 388 14 926 0 1 2 3 4 5 6 7 8

130 9 10

1.2

PHNG PHP THM D BNH PHNG

khc phc c tnh trng d liu tch t thnh tng cm trong phng php thm d tuyn tnh, chng ta khng thm d cc v tr k tip lin nhau, m b ch theo mt quy lut no . Trong thm d bnh phng, nu v tr ng vi kho k l i=h(k), th dy thm d l: i, i+12, i+22,,i+m2,

13 TI THC TP CHUYN NGNH

GVHD :

Phng php thm d bnh phng trnh c s tch t d liu thnh tng on v trnh c s tm kim tun t trong cc on. Tuy nhin nhc im ca phng php ny l khng cho php ta tm n tt c cc v tr trong mng. Hu qu ca iu l, php ton xen vo c th khng thc hin c, mc d trong mng vn cn cc v tr khng cha d liu. Chng ta c th d dng chng minh c khng nh sau y: Nu c ca mng l s nguyn t, th thm d bnh phng cho php ta tm n mt na s v tr trong mng. C th hn l, cc v tr thm d h(k)+m2(mod SIZE) vi m=0, 1,,|SIZE/2| l khc nhau. T khng nh trn chng ta suy ra rng, nu c ca mng l s nguyn t v mng khng y qu 50% th php xen vo lun lun thc hin c.

1.3

PHNG PHP BM KP

Phng php bm kp(double hashing) c u im nh thm d bnh phng l hn ch c s tch t d liu thnh cm, ngoi ra nu chng ta chn c ca mng l s nguyn t, th bm kp cn cho php ta thm d ti tt c v tr trong mng. Trong thm d tuyn tnh hoc thm d bnh phng, cc v tr thm d cch v tr xut pht mt cch hon ton xc nh trc v cc khong cch ny khng ph thuc vo kho. Trong bm kp, chng ta s dng hai hm bm h1 v h2:

Hm bm h1 ng vai tr nh hm bm h trong cc phng php trc, n xc nh v tr thm d u tin

14 TI THC TP CHUYN NGNH

GVHD :

Hm bm h2 xc nh bc thm d

iu c ngha l, ng vi mi kho k, dy thm d l: h1(k) + mh2(k), vi m=0, 1, 2, Bi v h2(k) l bc thm d, nn hm bm h2 phi tho mn iu kin h2(k) 0 vi mi k C th chng minh c rng nu c ca mng v bc thm d h2(k) nguyn t cng nhau th phng php bm kp cho ta tm n tt c v tr trong mng, khng nh trn s ng nu ta la chn c ca mng l s nguyn t. 2. PHNG PHP NH A CH Mt cch tip cn khc gii quyt s va chm l to ra mt cu trc d liu lu tt c cc d liu c bm vo cng mt v tr trong mng. Cu trc d liu thch hp nht l danh sch lin kt(dy chuyn). Khi mi thnh phn trong bng bm T[i], vi i=0, 1, 2, , SIZE-1, s cha con tr tr ti mt u ca danh sch lin kt. Cch gii quyt va chm nh trn c gi l phng php to dy chuyn(separated chaining). Lc tp d liu trong bng bm s dng phng php to dy chuyn c m t trong hnh
..

Hm bm h

..

.. ..

Hnh : Phng php to dy chuyn 3. GII PHP TM KIM TRONG BNG BM

15 TI THC TP CHUYN NGNH

GVHD :

By gi chng ta xem xt, nu lu tp d liu trong mng bng phng php nh a ch m th cc php tm kim, xen, loi c tin hnh nh th no. Cc k thut tm kim, xen, loi c trnh by di y c th dng cho bt c phng php thm d no. Trc ht cn lu rng, tm, xen, loi chng ta phi s dng cng mt phng php thm d, chng hn thm d tuyn tnh. Gi s chng ta cn tm d liu vi kho k. u tin cn bm kho k, gi s i=h(k). Nu trong bng ta cha mt ln thc hin php ton loi, th chng ta xem xt cc d liu trong mng ti v tr i v cc v tr tip theo trong dy thm d, chng ta s pht hin ra d liu cn tm ti mt v tr no trong dy thm d, hoc nu gp 1 v tr trng trong dy thm d th c th dng li v kt lun d liu cn tm khng c trong mng. loi d liu vi kho k, trc ht cn p dng th tc tm kim trnh by trn nh v d liu trong mng. Gi s tm c d liu trong mng ti v tr p. Loi d liu v tr p bng cch no? Nu t p l v tr trng, th khi tm kim nu thm d gp v tr trng ta khng th dng li v kt lun d liu khng c trong mng. Chng hn, trong mng hnh 3.1, ta loi d liu 388 bng cch xem v tr 3 l trng, sau ta tm d liu 926, v h(926)=2 v T[2] khng cha 926, tm n v tr 3 l trng, nhng ta khng th kt lun 926 khng c trong mng. Thc t 926 v tr 5, v lc a 926 vo mng cc v tr 2, 3, 4 b chim. V vy m bo th tc tm kim trnh by trn vn cn ng cho trng hp thc hin php ton loi, khi loi d liu v tr p chng ta t v tr p l v tr loi b. Nh vy, chng ta quan nim mi v tr trong mng c th l v tr trng(EMPTY), v tr loi b(DELETE), hoc v tr cha d liu(ACTIVE). ng nhin l khi xen vo d liu mi, chng ta c th t n vo v tr loi b. Vic xen vo mng mt d liu mi tin hnh bng cch ln lt xt cc v tr trong dy thm d ng vi mi kho ca d liu, khi gp mt v tr trng hoc mt v tr c loi b th t d liu vo . Phng php thm d tuyn tnh c u im l cho php ta xem xt tt c cc v tr trong mng, v do php ton xen lun lun thc hin c, tr khi mng y. Song nhc im ca phng php ny l cc d liu tp trung thnh tng on, trong qu trnh xen cc d liu mi vo, cc on

16 TI THC TP CHUYN NGNH

GVHD :

c th gp thnh on di hn. iu lm cho cc php ton km hiu qu, chng hn nu i=h(k) u 1 on, tm d liu vi kho k chng ta cn xem xt c mt on di.

Anda mungkin juga menyukai