Anda di halaman 1dari 43

i hc S phm K thut TP HCM Khoa Cng ngh thng tin

----o0o----

ASP.NET MVC
Thc hin: Trn Thanh Nng Nguyn Vn Hng Trn Anh Tun Nguyn Trng Bnh GVGD: Nguyn Minh o 07110086 07110053 07110149 07110008

Ni dung
Tng quan v MVC C ch hot ng ca ASP.NET MVC

1 2

3
4

Nhng c tnh mi trong MVC 3 so vi MVC2


Demo

ASP.NET MVC 3

1.1 ASP.NET MVC l g? ASP.NET MVC l 1 Framework pht trin ng dng web mi ca Microsoft
Cng vi nhng thnh phn tt nht nn tng ASP.NET hin thi. Model

View

Controller

M hnh Model View Controller (MVC)

1.2 S ra i ca ASP.NET MVC:


M hnh MVC c hnh thnh bi cc nghin cu ca Trygve Reenskaug vo khong cc nm 19781979, trong d n Smalltalk ca Xerox PARC.
11/2007, hi tho ALT.NET ti Austine, Texas, tng gim c Scott Guthrie cng b v m t v

nn tng pht trin web MVC mi xy dng trn


ASP.NET.
ASP.NET MVC 3

1.3 M hnh MVC c bn

ASP.NET MVC 3

1.4 Cc thnh phn ca ASP.NET MVC


Models :
L nhng thnh phn c nhim v lu tr thng tin,

trng thi ca cc i tng.

ASP.NET MVC 3

1.4 Cc thnh phn ca ASP.NET MVC


Views:
- Chu trch nhim hin th cc thng tin ln cho ngi

dng thng qua giao din.


- Cc thng tin cn hin th c ly t thnh phn Models.

ASP.NET MVC 3

1.4 Cc thnh phn ca ASP.NET MVC


Controllers:
- 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.

ASP.NET MVC 3

1.5 So snh Asp.net Webform v Asp.net MVC


Tnh nng Kin trc chng trnh ASP.NET 2.0 Kin trc m hnh WebForm Business Database ASP.NET MVC Kin trc s dng vic phn chia chng trnh thnh Controllers, Models, Views

C php chng trnh S dng c php ca webform, tt c Cc s kin c iu khin cc s kin v controls do server bi controllers, cc controls qun l khng do server do server qun l Truy cp d liu S dng hu ht cc cng ngh truy Phn ln dng LINQ to SQL cp d liu trong ng dng class to m hnh truy cp i tng Debug Debug chng trnh phi thc hin Debug c th s dng cc tt c bao gm cc lp truy cp d unit test kim tra cc liu, s hin th, iu khin cc phng thc trong controller controls

ASP.NET MVC 3

1.5 So snh Asp.net Webform v Asp.net MVC


Tc phn ti Tc phn ti chm khi trong Phn ti nhanh hn do trang c qu nhiu cc controls khng phi qun l v ViewState qu ln ViewState qun l cc control trong trang

Tng tc vi javascript

Tng tc vi javascript kh khn v cc controls c iu khin bi server

Tng tc vi javascript d dng v cc i tng khng do server qun l iu khin khng kh


Cu trc a ch rnh mch theo dng Controllers/Action/Id

URL Address

Cu trc a ch URL c dng <filename>.aspx?&<cc tham s>

ASP.NET MVC 3

10

Ni dung
Tng quan v MVC C ch hot ng ca ASP.NET MVC

1 2

3
4

Nhng c tnh mi trong MVC 3 so vi MVC2


Demo

ASP.NET MVC 3

11

2.1 C ch hot ng

ASP.NET MVC 3

12

2.2 URL Routing


ASP.NET Routing c nhim v mapping mt URL n Controller c th ASP.NET Routing c thit lp ti hai ni: web.config, Global.asax Mt Route gm cc thng s sau:
controller: Tn contronller action: Action methos tng ng id: Tham s truyn vo

ASP.NET MVC 3

13

2.2 URL Routing


Cu trc mt Route

Gi tr mc nh:
new { controller = "Home", action = "Index", id = UrlParameter.Optional } ASP.NET MVC 3

14

2.3 Controller v Action Methods


Controller m nhn vai tr x l trong m hnh MVC Trong mi Controller c nhiu Action Methods Mi Action Methods u phi tr v mt Action Result. Cc Action Result trong MVC 3

ASP.NET MVC 3

15

2.3 Controller v Action Methods

ASP.NET MVC 3

16

2.4 View v ViewResult


View m nhn vai tr hin th trong m hnh MVC ViewResult c nhim v render mt trang .aspx

ASP.NET MVC 3

17

2.4 View v ViewResult


Mt s controls thng dng trong HTML Helpers:

ASP.NET MVC 3

18

2.5 Model Validation


Model Validation c thit k logic validation lun lun c thc thi trn my ch, v c th ty chn cng c thi hnh trn my khch thng qua JavaScript Mt s validation attibute m ASP.NET MVC h tr:

ASP.NET MVC 3

19

2.5 Model Validation

MVC 3 h tr thm mt s Model Validation mi:


Thuc tnh siu d liu DataAnnotations ValidationAttribue Validation Interfaces
ASP.NET MVC 3

20

2.6 Filter
Filter l mt i tng cho php can thip vo d liu t request v response trc khi d liu ny i n im cui l Web Container hay browser Cc loi Filter

ASP.NET MVC 3

21

Ni dung
Tng quan v MVC C ch hot ng ca ASP.NET MVC

1 2

3
4

Nhng c tnh mi trong MVC 3 so vi MVC2


Demo

ASP.NET MVC 3

22

3.1 Razor View Engine


C php Razor l trong sng v xc tch, i hi mt s lng ti thiu cc t hp phm. Vic tm hiu Razor tng i d dng v n da trn ngn ng C# v Visual Basic. Razor views c th kim tra tng n v m khng i hi bn phi chy cc ng dng hoc phi chy web server.

ASP.NET MVC 3

23

3.1 Razor View Engine


Mt s tnh nng mi ca Razor: C php @model xc nh cc loi s c truyn vo view. @**@ l c php comment. Phng thc Html.Raw hin th cc vn bn m khng cn m ha Html cho n. H tr chia s m gia nhiu views (_viewstart.cshtml hay _viewstart.vbhtml). Razor cng bao gm nhng cng c h tr HTML mi, chng hn nh: Chart, WebGrid, Crypto, WebImage

ASP.NET MVC 3

24

3.2 Support for Multiple View Engines


Hp thoi View cho php bn chn cc view engine m bn mun lm vic vi n v v hp thoi New Project cho php bn xc nh view engine mc nh cho mt project. Bn c th chn view engine Web Forms (ASPX), Razor, hay mt view engine ngun m nh Spark, NHaml, hay NDjango.

ASP.NET MVC 3

25

3.3 Nhng ci tin Controller


Global Action Filters: thc hin mt logic trc khi mt Action Method thc hin hoc sau khi mt Action Method c thc hin th MVC 3 h tr Action Filters. Action Filter l thuc tnh dng nh ngha thm nhng hnh ng cn c thc hin trc v sau mt Action Method c ch nh trong Controller. MVC 3 h tr Global Filters, cho php p dng Action Filter cho tt c cc Action Method bng cch thm chng vo Global Filters Collection.

ASP.NET MVC 3

26

3.3 Nhng ci tin Controller


Thuc tnh mi ViewBag
MVC 2 h tr mt thuc tnh ViewData cho php bn chuyn d liu n mt view template bng cch s dng mt API. Trong MVC 3, bn c th s dng c php n gin hn mt cht vi thuc tnh ViewBag thc hin cng mt mc ch trn. V d, ViewData[Message] = text ViewBag.Message = text. Bn khng cn phi xc nh kiu mnh khi s dng thuc tnh ViewBag, bi v n l mt thuc tnh ng. Tht s thuc tnh ViewBag c lu tr nh cp name/value trong ViewData Collection.

ASP.NET MVC 3

27

3.3 Nhng ci tin Controller


Cc kiu ActionResult mi: HttpNotFoundResult: Tr v trng thi m HTTP 404 cho client. RedirectResult: Tr v mt chuyn hng tm thi (m trng thi HTTP 302) hoc mt chuyn hng vnh vin (m trng thi HTTP 301), ph thuc vo mt tham s Boolean. HttpStatusCodeResult: Tr v mt m trng thi c xc nh bi ngi dng.

ASP.NET MVC 3

28

3.4 Ajax v JavaScript


Ajax v validation helpers trong MVC 3 s dng hng tip cn unobtrusive JavaScript. Unobtrusive JavaScript gip trnh a m JavaScript vo HTML. iu ny lm m HTML ca bn nh hn v t ln xn hn, v d dng ty chnh cc th vin JavaScript. Validation helpers trong MVC 3 s dng plugin jQueryValidate theo mc nh.

ASP.NET MVC 3

29

3.4 Ajax v JavaScript


Client-Side Validation Enabled by Default: Cc phin bn MVC trc, phi gi phng thc Html.EnableClientValidation t mt view cho php client-side valiation. iu ny trong MVC 3 l khng cn thit v client-side valiation c thit lp mc nh. Client-Side Validation lm vic, bn vn cn phi s dng th vin jQuery v jQuery Validation.
ASP.NET MVC 3

30

3.4 Ajax v JavaScript Remote Validator:


ASP.NET MVC 3 h tr lp RemoteAttribute cho php bn tn dng li ch ca plugin jQuery Validation h tr remote validator. iu ny cho php th vin client-side validation t ng gi mt phng thc trn my ch c nh ngha thc hin validation logic.

ASP.NET MVC 3

31

3.4 Ajax v JavaScript


public class User { [Remote("UserNameAvailable", "Users")] public string UserName { get; set; } } V d sau y minh ha cc iu khin tng ng: public class UsersController { public bool UserNameAvailable(string username) { if(MyRepository.UserNameExists(username)) { return "false"; } return "true"; } }

ASP.NET MVC 3

32

3.4 Ajax v JavaScript JSON Binding Support:


MVC 3 h tr JSON Binding cho php cc phng thc hnh ng nhn c d liu JSON-encoded. MVC 3 cho php bn d dng kt ni client template vi cc Action Method thng qua vic gi v nhn nhn d liu JSON.

ASP.NET MVC 3

33

3.5 Model Validation Imporvements Thuc tnh siu d liu DataAnnotations


ASP.NET MVC 3 h tr cc thuc tnh siu d liu DataAnnotations nh DisplayAttribute.

Lp ValidationAttribue
Lp ValidationAttribute c ci tin trong .NET Framerwork 4 h tr mt phng thc cho php override l IsValid. iu ny cho kim tra gi tr hin ti da trn cc thuc tnh khc ca model.

ASP.NET MVC 3

34

3.5 Model Validation Imporvements


V d, thuc tnh mi CompareAttribute cho php bn so snh cc gi tr ca 2 thuc tnh ca mt model. Trong v d di y, thuc tnh ComparePassword phi ph hp vi trng Password c hp l:
public class User { [Required] public string Password { get; set; } [Required, Compare("Password")] public string ComparePassword { get; set; } }

ASP.NET MVC 3

35

3.6 Cc tnh nng mi khc NuGet Integration:


MVC 3 ci t Nuget mt cch t ng. NuGet cho php cc nh pht trin duy tr cc d n m ngun m (v d: cc d n nh Moq, NHibernate, Ninject, StructureMap, NUnit, Windsor, RhinoMocks, v Elmah) ng gi th vin ca mnh v ng k chng trong mt b su tp trc tuyn.

ASP.NET MVC 3

36

3.6 Cc tnh nng mi khc Partial-Page Output Caching:


ASP.NET MVC c h tr a vo b nh m mt trang page t bn 1. MVC 3 cng h tr a vo b nh m partial-page, cho php bn d dng a vo b nh m cc vng hoc cc mnh ca mt response.

ASP.NET MVC 3

37

3.6 Cc tnh nng mi khc Kim sot v yu cu xc nhn:


ASP.NET MVC gn lin vi request validation gip t ng gip bo v i vi XSS v HTML injection gy hi. i khi bn mun v hiu request validation, nh nu bn mun cho php mt ngi post ni dung HTML. Bn c th thm mt thuc tnh AllowHtml cho cc model hay view models v hiu ha vi request validation trn mi mt thuc tnh c bn trong m hnh lin kt.

ASP.NET MVC 3

38

3.6 Cc tnh nng mi khc M rng hp thoi New Project Trong ASP.NET MVC 3, bn c th thm cc project mu, view engines, v unit test project frameworks cho hp thoi New project.

ASP.NET MVC 3

39

3.6 Cc tnh nng mi khc Scaffolding Improvements:


ASP.net MVC scaffolding template s xc nh thuc tnh kha chnh ca model v x l chng mt cch thch hp hn trong cc phin bn trc ca MVC. Theo mc nh, Create and Edit scaffolds by gi s dng Html.EditorFor helper thay v Html.TextBoxFor helper. iu ny h tr cho cc siu d liu c nh ngha bi annotation attributes.

ASP.NET MVC 3

40

3.6 Cc tnh nng mi khc Lp mi AdditionalMetadataAttribute:


Bn c th s dng thuc tnh AdditionalMetadata a vo t in ModelMetadata. AdditionalValues cho mt thuc tnh model. V d, nu view model c mt thuc tnh s c hin th ch cho mt admin, bn c th thc hin ging nh trong v d di y: public class ProductViewModel { [AdditionalMetadata("AdminOnly", true)] public string RefundCode {get; set;} }
ASP.NET MVC 3

41

Ni dung
Tng quan v MVC C ch hot ng ca ASP.NET MVC

1 2

3
4

Nhng c tnh mi trong MVC 3 so vi MVC2


Demo

ASP.NET MVC 3

42

ASP.NET MVC 3

43

Anda mungkin juga menyukai