Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 2 1 Tại sao s dụng ASP.NET MVC 1.1 ASP.NET MVC là gì 1.1.1 n 1.1.2 Mt vài c tính trong ASP.NET MVC . , các URL không ASP.NET - Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 3 end- class ( không còn viewstate, page lifecycle ) authenticate, URL authorization, membership/roles, output và data caching, session/profile state, 1.2 Sự khác biệt với WebForm ASP.NET WebForm s d quu có lifecycle, postback và dùng các thc hing cho UI khi có s tác vi dùng nên hu ht ASP.NET WebForm x lý chm. ASP.NET MVC Framework chia ra thành 3 phn: Models, Views, Controllers. Mi dùng vi Views s c thc hi ng trong Controllers, không còn postback, không còn lifecycle không còn events. Vic kim tra ( test ), g li ( debug ) vu phi chy tt c các tin trình ca ASP.NET và mi s i ID ca bt k n ng di vi ASP.NET MVC Framework thì vic có th s dng các unit test có th thnh rt d dàng các Controller thc hi nào. Tính năng ASP.NET 2.0 ASP.NET MVC Ki Kin trúc mô hình WebForm Business Database Kin trúc s dng vic phân chia Models, Views S dng cú pháp ca webform, tt các s kin và controls do server qun lý Các s ki u khin bi controllers, các controls không do server do server qun lý Truy cp d liu S dng hu ht các công ngh truy cp d liu trong ng dng Phn ln dùng LINQ to SQL class to mô hình truy cng Debug i thc hin tt c bao gm các lp truy cp d liu, s hin th u khin các controls Debug có th s dng các unit test ki thc trong controller T phân ti T phân ti chm khi trong trang có quá nhiu các controls vì ViewState quá ln Phân t i qu qun lý các control trong trang i javascript i javasc u khin bi server i javascript d dàng vì ng không do server qun u khin không khó URL Address C a ch URL có dng <filename>.aspx?&<các tham s> C a ch rành mch theo dng Controllers/Action/Id Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 4 2 Ví dụ xây dựng ứng dụng với ASP.NET MVC Framework n gi mi là b xây dng ng dng vi ASP.NET MVC Framework cng hong .NET Framework 3.5 ( c th sau s xây dng vi Visual Studio 2008 ), tip theo cn mt MVC Framework. Mnh trong Visual Studio n ASP.NET MVC Web Applications. Có th download ASP.NET MVC Framework ta ch http://www.microsoft.com/downloads/details.aspx?FamilyId=A24D1E00-CD35-4F66-BAA0- 2362BDDE0766&displaylang=ent ASP.NET MVC Framework. Bây gi có th bu xây dng ng dng vi MVC. 2.1 To Project .NET MVC Web Application t ASP.NET MVC Framework: File New Project Windows C# ASP.NET MVC Web Application ( xem Figure 2). Figure 2. Khi to mt ASP.NET MVC Framework thì mt hp thoi Unit Test xut hin. Chn Yes nu mun to mt Project Test, chn No nu không mun to mt Unit Test. ( xem Figure 3) Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 5 Figure 3. Sau khi mt ng dc to, nhìn vào trong mc Solution Explorer s thy xut hin mc: Models, Views, Controllers chng vi các thành phn Models, Views, Controllers trong mô hình MVC. M rng folder Controllers s thy HomeController.cs, m rng Views s thy folder Home, Shared và Account. M rng folder Home s thy About.aspx và Index.aspx ( xem hình Figure 4 ) Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 6 Figure 4. Solution Explorer MVC Chy ng dng bng cách n F5. Nu là ng dng mi to lu thì s có thông báo hi có cho phép m ch Debug hay không? Nng ý chn debug chn . ( xem Figure 5). Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 7 Figure 5. ET MVC Kt qu khi chy ng dng ( xem Figure 6) là ng dc load vào browser. Trong ví d này ch có 2 trang là Index và About. Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 8 Figure 6. 2.2 Tìm hinh tuyn URL Browser yêu cu ma ch t controller action troc gnh tuyn URL ( URL routing). Url routing s ch nh request ti controller action. URL routing s dng mt bnh tuy u khin các request. Bnh tuyc to khi ng dng bc chy lu tiên. Bnh tuyn c thit lp trong file Global.asax using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace HiTest { // Note: For instructions on enabling IIS6 or IIS7 classic mode, // visit http://go.microsoft.com/?LinkId=9394801 public class MvcApplication : System.Web.HttpApplication { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults ); } protected void Application_Start() { RegisterRoutes(RouteTable.Routes); } } } Khi ng dng chy lu tiên, phc gc này gi m th to ra bnh tuyn. nh tuyn mnh chia mn, mn nm gia 2 du tiên cha tên mn th 2 chn th 3 là tham s u vào ca controller action. Ví d: va ch /Product/Details/3 c hiu là: Controller = ProductController Action = Detail Id = 3 Controller mnh s là HomeController, Action mnh là Index, Id m http://localhost:1727/ Ví d: va ch /Employee: Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 9 Controller = EmployeeController Action = Index Id = “” 2.3 2.3.1 _ New Item .mdf Figure 7. .mdf trong App_Data . 2 table: ( xem Figure 8, Figure 9 ) Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 10 Figure 8. .mdf Figure 9. .mdf 2.3.2 Add New Item LINQ to SQL Classes (Figure 10) Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 11 Figure 10. [...]... test và debug trên ASP.NET MVC Framework dễ dàng hơn so với nền tảng WebForm Đáp: Đúng Vì việc thực hiện test và debug trên ASP.NET MVC Framework chỉ phải thực hiện trên Controller nên dễ dàng kiểm soát hơn so với thực hiện test và debug trên WebForm Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 21 4 Tài liệu tham khảo http://www .asp.net/ http://weblogs .asp.net/ scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx... kế t giữa 2 table (Figure 11) Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 12 Figure 11 Tạo liên kết giữa các bảng trong DataClasses.dbml Kế t quả đươ ̣c như Figure 12 dưới đây Figure 12 Cấ u trúc của DataClasses.dbml Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 13 2.4 Tìm hiểu về Controllers Controller chịu trách nhiệm điều khiển... Inherits="HiTest.Views.Home.Index" %> To learn more about ASP.NET MVC visit http:/ /asp.net/ mvc Tất cả các thuộc tính nằm giữa 2 thẻ đều có định dạng HTML và có thể tùy ý sửa đổi theo ý muốn Tạo... DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 20 My Sample MVC Application © Copyright 2008 ́ ̉ 2.8 Kêt qua Figure 17 Kế t quả chạy ưng dụng khi thêm SanPham vảo ưng dụng ASP.NET MVC ́ ́ 3 Câu hỏi ôn tập Hỏi: Views của MVC có thể sử dụng AJAX, javascript không? Đáp: Được Về bản chất, view trong ASP.NET MVC Framework cũng là một... public đều là một action trong controller Tạo một Controller mới Trong folder Controllers phải chuột chọn Add New Item MVC Controller Class ( Figure 13) Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 14 Figure 13 Tạo controller tên là SanPhamController.cs SanPhamController.cs using using using using using using using System; System.Collections.Generic; System.Linq;... Views\Shared\Site.Master Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 19 Đây làdanh mụ loạ sả phẩ c i n m ... ID="viewDanhSachSanPham" ContentPlaceHolderID="MainContent" runat="server"> Đây làdanh sáh sả phẩ cótrong chuyên mụ c n m c ChiTietSanPham.aspx Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 17 . To learn more about ASP. NET MVC visit <a href="http:/ /asp. net/ mvc" title=" ;ASP. NET MVC Website">http:/ /asp. net/ mvc</a>. </p> < /asp: Content> Tt. Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP. NET MVC Framework 2 1 Tại sao s dụng ASP. NET MVC 1.1 ASP. NET MVC là gì 1.1.1 n . vie Index.aspx, DanhMucLoaiSanPham.aspx, DanhSachSanPham.aspx, ChiTietSanPham.aspx Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP. NET MVC Framework 17