Tải bản đầy đủ (.doc) (74 trang)

xây dựng website thương mại điện tử ứng dụng công nghệ mvc của asp.net

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 (2.64 MB, 74 trang )

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM
KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG WEBSITE THƯƠNG MẠI ĐIỆN TỬ
ỨNG DỤNG CÔNG NGHỆ MVC CỦA ASP.NET
Ngành: CÔNG NGHỆ THÔNG TIN
Chuyên ngành: HỆ THỐNG THÔNG TIN
Giảng viên hướng dẫn: ThS.NGUYỄN LƯƠNG ANH TUẤN
Sinh viên thực hiện :
1. ĐỖ LONG HƯNG
MSSV: 11L1120027 LỚP: CN11LT
2. PHẠM TIẾN TRUNG
MSSV: 11L1120070 LỚP CN11LT
TP. Hồ Chí Minh, 2013
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM
LỜI CAM ĐOAN
Chúng em xin cam đoan đây là bài luận văn tốt nghiệp do chúng em tự tìm
hiểu, tự viết ra sản phẩm, không hề sao chép của bất kỳ ai.
Chúng em hoàn toàn chịu trách nhiệm về lời cam đoan của mình !
TP.Hồ Chí Minh, ngày 25 tháng 12 năm 2013
Sinh viên thực hiện
Đỗ Long Hưng
Phạm Tiến Trung
LỜI CÁM ƠN
Trong suốt quá trình chúng em thực hiện Luận văn tốt nghiệp, chúng em
luôn nhận được sự quan tâm giúp đỡ của quý thầy cô, ban chủ nhiệm Khoa Công
nghệ thông tin và Nhà trường. Chúng em xin chân thành cảm ơn sự giúp đỡ quý
báu này.
Chúng em xin bày tỏ lòng biết ơn sâu sắc tới ThS.Nguyễn Lương Anh Tuấn,
người đã dành nhiều sự quan tâm, giúp đỡ, hướng dẫn chúng em hoàn thành luận


văn tốt nghiệp.
Nhóm chúng em xin gửi lời cám ơn đến các bạn trong lớp CN11LT đã giúp
đỡ trong quá trình làm luận văn tốt nghiệp.
Chúng em cũng xin gửi lời cám ơn đến Công ty TNHH Thương mại Dịch vụ
Viễn thông Quang Thành đã giúp đỡ nhóm hoàn thành đồ án tốt nghiệp.
Do thời gian học tập và nghiên cứu có hạn, nhận thức còn hạn chế, nên đồ
án tốt nghiệp chắc chắc còn nhiều thiếu sót, kính mong được các thày cô chỉ bảo
và giúp đỡ.
Chúng em xin chân thành cảm ơn!
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

































NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN

































Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
MỤC LỤC
TRANG BÌA
TRANG BÌA PHỤ
LỜI CAM ĐOAN
LỜI CÁM ƠN
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM_________________1
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM_________________1
MỤC LỤC_____________________________i
TRANG BÌA______________________________________________________i
TRANG BÌA PHỤ__________________________________________________i
LỜI CAM ĐOAN__________________________________________________i
LỜI CÁM ƠN_____________________________________________________i
DANH MỤC BẢNG BIỂU VÀ HÌNH VẼ______________________________ii
DANH MỤC CÁC TỪ VIẾT TẮT____________________________________iv

PHẦN MỞ ĐẦU___________________________________________________1
CHƯƠNG 1: TÌM HIỂU VỀ MÔ HÌNH ASP.NET – MVC_________________4
CHƯƠNG 2: MÔ HÌNH CƠ SỞ DỮ LIỆU_____________________________31
________________________________________________________________36
CHƯƠNG 3: CẤU TRÚC WEBSITE_________________________________37
CHƯƠNG 4: DEMO SẢN PHẨM____________________________________40
KẾT LUẬN______________________________________________________62
TÀI LIỆU THAM KHẢO
i
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
DANH MỤC BẢNG BIỂU VÀ HÌNH VẼ
Bảng 1.1: Lịch sử phát triển của công nghệ ASP.NET MVC Trang 5
Bảng 1.2: So sánh mô hình Webform và MVC Trang 9
Bảng 1.3: Liệt kê các kiểu action result và các phương thức hỗ trợ để trả về. Trang 16
Hình 1.1: Mô hình MVC Trang 5
Hình 1.2: Cách thức làm việc của mô hình MVC Trang 7
Hình 1.3: So sánh mô hình MVC và 3 Layer Trang 10
Hình 1.4: Cấu trúc của mô hình MVC4 Trang 12
Hình 1.5: Mô hình xử lý của MVC4 Trang 28
Hình 1.6: ASP.NET MVC4 trong Visual Stuido 2012 Trang 29
Hình 2.1: Mô hình quan hệ dữ liệu Trang 37
Hình 3.1: Dự án MVC 4 Trang 38
Hình 3.3: Mô hình chức năng của Website Trang 40
Hình 4.1: Trang chủ Trang 41
Hình 4.2: Trang bảo hành Trang 42
Hình 4.3: Trang liên hệ Trang 43
ii
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Hình 4.4: Trang quản trị Trang 43
Hình 4.5: Trang chi tiết sản phẩm Trang 44

Hình 4.6: Logo Trang 45
Hình 4.7: Danh mục sản phẩm Trang 45
Hình 4.8: Thanh menu và Banner Trang 46
Hình 4.9: Gian hàng tại trang chủ Trang 47
Hình 4.10: Gian hàng theo hãng sản phẩm Trang 48
Hình 4.11: Gian hàng bán chạy Trang 49
Hình 4.12: Đăng ký tài khoản Trang 50
Hình 4.13: Đăng nhập tài khoản Trang 51
Hình 4.14: Đăng nhập thành công Trang 51
Hình 4.15: Bắt đầu tìm kiếm theo tên Trang 51
Hình 4.16: Kết quả tìm kiếm theo tên Trang 52
Hình 4.17: Bắt đầu tìm kiếm nâng cao Trang 53
Hình 4.18: Kết quả tìm kiếm nâng cao Trang 53
Hình 4.19: Giỏ hàng Trang 54
Hình 4.20: Bắt đầu giỏ hàng Trang 54
Hình 4.21: Giỏ hàng của khách Trang 55
Hình 4.22: Tiến hành đặt hàng Trang 55
Hình 4.23: Đặt hàng thành công Trang 56
Hình 4.24: Trang quản trị Trang 56
Hình 4.25: Quản lý đơn hàng Trang 57
Hình 4.26: Chi tiết và xóa đơn hàng Trang 57
Hình 4.27: Quản lý danh mục, xóa danh mục Trang 58
Hình 4.28: Thêm và sửa danh mục Trang 59
Hình 4.29: Quản lý sản phẩm, xóa sản phẩm Trang 59
Hình 4.30: Thêm và sửa sản phẩm Trang 60
iii
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Hình 4.31: Quản lý đăng nhập, xóa tài khoản Trang 61
Hình 4.32: Thêm và sửa tài khoản Trang 61
Hình 4.33: Quản lý liên hệ Trang 62

Hình 4.34: Lượng truy cập Trang 62
Hình 4.35: Hỗ trợ trực tuyến Trang 62
DANH MỤC CÁC TỪ VIẾT TẮT
ASP Active Server Pages
HTML HyperText Markup Language
UI User Interface
VB Visual Basic
TDD Test Driven Development
URL Uniform Resource Locator
DI Dependency Injection
IOC Inversion Of Control
OMR Object-Relational Mapping
DF Database First
MF Model First
DDL Data Definition Language
iv
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
CF Code First
API Application Programming Interface
CSS Cascading Style Sheets
DOM Doucument Object Model
EBML Extensible Binary Meta Language
XML Extensible Markup Language
CSDL Cơ sở dữ liệu
v
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
PHẦN MỞ ĐẦU
1. Lý do chọn đề tài.
Hiện nay việc thiết kế trang web Asp.Net là rất dễ dàng đối với các lập trình
viên, chúng ta có thể tìm các tài liệu hướng dẫn, tham khảo các project để nghiên cứu

và phát triển. Microsoft muốn tạo ra công cụ để người sử dụng dễ dàng làm việc và xây
dựng trang web nhanh chóng nhất.
Asp.net Webform được thiết kế để thực hiện điều đó. Asp.net Webform được
thiết kế để người viết cảm thấy như đang thiết kế một chương trình winform vậy, bằng
cách kéo thả các button, textbox , tự sinh mã html, đơn giản và dễ hiểu. Chính vì thế
Asp.net Webform dù đã ra đời cách đây hơn mười năm nhưng vẫn còn được dùng cho
tới ngày nay.
Nhưng Asp.net Webform lại có những nhược điểm, việc dùng các webcontrol
sinh ra các event để thực hiện cho UI(user interface) khi có sự tương tác với người
dùng thì tiến trình diễn ra chậm, gây ra các hạn chế. Việc sử dụng ViewState để quan
lý các trang web đều có lifecycle, postback.
Asp.net MVC chính là sự lựa chọn hợp lý thay thế cho Asp.net Webform, nó đã
và đang trở nên phổ biến và sẽ thành nền tảng để xây dựng website trong thời gian tới
đây. Những ưu điểm của Asp.net MVC là phân tích rõ ràng 3 thành phần chính là:
Model(lớp dữ liệu), View(lớp giao diện), Controller(lớp điều khiển), cung cấp nhiều cơ
chế xử lý Request khác nhau, dựa trên nền tảng Asp.net vốn đã rất mạnh mẽ, ngoài ra
còn hỗ trợ nhiều View engine, cơ chế định tuyến Routing mềm dẻo giúp người phát
triển có thể tạo các URL thân thiện với người dùng cũng như với SEO. Với cấu trúc 3
lớp như trên thì việc nâng cấp, sữa chữa hay thay đổi các chức năng trở nên dễ dàng
hơn và cũng giúp cho việc xây dựng website chặt chẽ, rõ ràng, dễ hiểu hơn.
Vào giữa năm 2013 thì công nghệ mới nhất là ASP.NET MVC 4.0 đã ra đời,
được tích hợp sẵn trong bản Visual Studio 2012. Nó còn rất mới mẻ đối với các bạn
1
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
sinh viên cũng như những người phát triển Website. Chính vì thế, nhóm em đã mạnh
dạn chọn đề tài "Xây dựng Website thương mại điện tử ứng dụng công nghệ MVC
của ASP.NET" để làm đề tài báo cáo tốt nghiệp của mình.
2. Tình hình nghiên cứu.
Hiện nay các tài liệu về MVC là không nhiều và tài liệu về MVC4 bằng tiếng việt
thì càng hiếm. Vì thế chúng em gặp nhiều khó khăn trong việc tìm hiểu và hầu hết là

tham khảo các tài liệu tiếng anh. Nhưng quan trọng là chúng em cũng đã nắm được về
công nghệ mới này.
3. Mục đích nghiên cứu:
• Học hỏi công nghệ, kiến thức mới.
• Phục vụ cho việc xây dựng website thương mại điện tử bằng công nghệ MVC 4.
4. Nhiệm vụ nghiên cứu:
• ASP.NET MVC 4.0.
• Xây dựng website thương mại điện tử.
5. Phương pháp nghiên cứu:
• Nghiên cứu lý thuyết thông qua các bài báo, tài liệu trên mạng.
• Thông qua các demo hướng dẫn trên internet.
• Tổng hợp kiến thức và dữ liệu thực tế.
6. Ý nghĩa khoa học và thực tiễn:
• Hiện nay ASP.NET MVC 4 là công nghệ mới nhất và có thể ít các bạn biết đến,
chính vì thế khi hoàn thành luận văn tốt nghiệp này sẽ là một tài liệu nhỏ giúp
các bạn sinh viên và những người đam mê thiết kế Website có thể nghiên cứu và
phát triển.
• Công nghệ ASP.NET MVC 4 có nhiều ưu điểm vượt trội và chắc chắn sẽ thay
thế cho Asp.net Webform trong tương lai gần. Vì thế áp dụng ASP.NET MVC 4
vào thực tiễn có một ý nghĩa rất lớn.
2
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
7. Các kết quả đạt được.
• Tìm hiểu được công nghệ ASP.NET MVC 4.
• Xây dựng được Website thương mại điện tử theo công nghệ MVC4.0 với đầy đủ
các chức năng cần thiết.
8. Cấu trúc của luận văn.
• Chương 1: Tìm hiểu về mô hình ASP.NET MVC.
• Chương 2: Mô hình cơ sở dữ liệu.
• Chương 3: Cấu trúc của Website

• Chương 4: Demo sản phẩm
3
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
CHƯƠNG 1: TÌM HIỂU VỀ MÔ HÌNH ASP.NET – MVC
1.1. Lịch sử phát triển của ASP.NET MVC.
Đầu năm 2002, Microsoft giới thiệu một kỹ thuật lập trình Web khá mới mẻ với
tên gọi ban đầu là ASP+, tên chính thức sau này là ASP.NET. Với ASP.NET, không
những không cần đòi hỏi bạn phải biết các tab HTML, thiết kế web, mà nó còn hỗ trợ
mạnh lập trình hướng đối tượng trong quá trình xây dựng và phát triển ứng dụng Web.
ASP.NET là kỹ thuật lập trình và phát triển ứng dụng web ở phía Server
(Server-side) dựa trên nền tảng của Microsoft .Net Framework.
Công nghệ ASP.NET MVC là công nghệ mới hiện nay, tuy nhiên nó có lịch sử
lâu đời. Nền tảng MVC được phát minh bởi Trygve Renskaug, ông đã viết trang giấy
đầu tiên nói về MVC vào năm 1978. Ban đầu nó được gọi là Thing Model View Editor
pattern, nhưng sau đó nó được đặt tên lại là Model View Controller pattern. ASP.NET
MVC lần đầu tiên xuất hiện đó là trong dự án mã nguồn mở MonoRail. Và nguồn gốc
thật sự để cho ra đời công nghệ Microsoft ASP.NET MVC là do Scott Guthrie(một
trong những nhà sáng tạo ra ASP.NET) trên chuyến bay đến Austin, Texas để nói về
hội thảo Alt.NET vào tháng 10-2007. Cuối cùng thì đầu năm 2009 phiên bản ASP.NET
MVC 1.0 (released) được ra đời. Các năm sau đó các phiên bản tiếp theo ra đời với
những tính năng nổi trội.
ASP.NET MVC là nền tảng công nghệ mới nhất của Microsoft hiện, nó được
thiết kế từ suy nghĩ là làm thế nào để xây dựng một phần mềm tốt (phần mềm tốt là
phần mềm bạn muốn tạo ra và nó dễ dàng được thay đổi -Stephen Walther). ASP.NET
MVC được thiết kế để làm sao có thể bổ sung các nguyên lý và các patterns phát triển
phần mềm khi xây dựng các ứng dụng web. Bên cạnh đó, nó được thiết kế để hỗ trợ
trong việc kiểm thử.
4
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Bảng 1: Lịch sử phát triển của công nghệ ASP.NET MVC

Năm ra đời Công nghệ
1996 ASP(Active Server Pages)
2002 ASP.NET 1.0
2005 ASP.NET 2.0
2007 ASP.NET AJAX
2008 ASP.NET 3.5
2009 ASP.NET MVC 1.0
2010 ASP.NET 4.0
ASP.NET MVC 2.0
2011 ASP.NET MVC 3.0
2012 ASP.NET 4.5
2013 ASP.NET MVC 4.0
1.2.Tổng quan về MVC.
Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô
hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nó giúp cho các developer tách
ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller (Hình 1.1).
Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác.
Hình 1.1. Mô hình MVC
 Model
Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất
database, đối tượng mô tả dữ liệu như các Class, hàm xử lý
 View
5
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các
đối tượng GUI như textbox, images Hiểu một cách đơn giản, nó là tập hợp các form
hoặc các file HTML.
 Controller
Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những
phương thức xử lý chúng Chẳng hạn thành phần này sẽ nhận request từ url và form

để thao tác trực tiếp với Model.
 MVC làm việc như thế nào ?
• Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC:
• User tương tác với View, bằng cách click vào button, user gửi yêu cầu đi.
• Controller nhận, xử lý và điều hướng chúng đến đúng phương thức xử lý ở
Model.
• Model nhận thông tin và thực thi các yêu cầu.
• Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lại
cho người dùng.
6
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Hình 1.2: Cách thức làm việc của MVC
1.3.Mô hình ASP.NET truyền thống (mô hình Web Form)
Dựa trên nền .NET hỗ trợ đa ngôn ngữ như C#, VB.NET,… Microsoft hướng
đến việc giấu đi giao thức HTTP (ẩn đi bản chất bên trong) và code HTML bằng việc
đưa ra mô hình UI (user interface) như là các đối tượng control phía server (mỗi
control có trạng thái của riêng mình, tự động sinh mã HTML khi cần, và tự động kết
nối với các sự kiện phía client). Các nhà phát triển Web không còn phải làm việc với
các request và response trong từng HTTP độc lập. Thay thế nó chính là thuật ngữ
StateFull UI(tạm dịch là trạng thái giao diện người dùng). Các nhà phát triển Web chỉ
cần kéo-thả, và tưởng tượng ra điều gì sẽ xảy ra trên server khi thiết kế giao diện Web
Nhược điểm:
• ViewState: là cơ chế chính để duy trì trạng thái qua mỗi lần request, điều này
dẫn đến một khối lượng dữ liệu lớn được truyền đi giữa client-server.
7
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
• Chu kì sống của 1 trang web: là cơ chế kết nối giữa trình điều khiển sự kiện
client và server, điều này có thể trở nên phức tạp, và dễ phá vỡ.
• Các control bị giới hạn trên mã HTML: vài control server sinh mã HTML,
nhưng đó không phải là mã HTML mà ta mong muốn. Ví dụ vài control server

sinh ra giá trị ID phức tạp, và khó truy xuất bởi JavaScript.
• Cảm nhận sai trong việc phân tách code ra khỏi mã HTML bằng cách tạo
code-behind bên dưới trang: Trong thực tế thì các nhà phát triển Web đã khuyến
khích nên trộn việc trình bày code (ví dụ: việc quản lý control phía server) với
tính logic trong ứng dụng của họ (ví dụ: thao tác cơ sở dữ liệu) với nhau. Tốt
hơn hết là không nên tách riêng chúng ra vì kết quả thường là khó hiểu và dễ vỡ.
• Không thể kiểm thử: Khi lần đầu tiên các nhà thiết kế ASP.NET đưa ra nền thiết
kế của họ, họ không thể lường trước việc kiểm thử sẽ trở thành xu hướng phát
triển phần mềm hiện nay. Và kiến trúc họ xây dựng không hoàn toàn thích hợp
với việc kiểm thử tự động.
1.4.Mô hình ASP.NET MVC
1.4.1.Đặc điểm chung của mô hình ASP.NET MVC
• Tách biệt các thành phần của ứng dụng(logic đầu vào, logic nghiệp vụ và logic
giao diện), hỗ trợ kiểm thử và test-driven development (TDD)
• Mô hình mở và tùy biến cao. Các thành phần của ASP.NET MVC được thiết kế
để có thể dễ dàng thay thế và tùy biến. Người dùng có thể thiết lập theo cách
riêng của mình bằng việc sử dụng engineer view riêng, định tuyến
URL(routing), và các thành phần khác. ASP.NET MVC cũng hỗ trợ việc sử
dụng Dependency Injection (DI) và Inversion of Control (IOC). DI cho phép
người lập trình thêm các đối tượng vào class thay vì từ class tạo ra các đối tượng
của chính nó. IOC quy định rằng nếu một đối tượng truy vấn đến một đối tượng
8
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
khác, đối tượng thứ nhất sẽ coi như đối tượng thứ 2 là một tập tin cấu hình. Điều
này giúp việc kiểm thử dễ dàng hơn.
• Hỗ trợ việc tùy biến URL mạnh mẽ thông qua việc định tuyến. URL không cần
đuôi mở rộng, ánh xạ đến các contronller. Giúp tăng cường các hoạt động SEO.
• Thừa kế các tính năng của ASP.NET truyền thống, hỗ trợ xác thực form, phân
quyền, tạo phiên đăng nhâp…
Bảng 1.2: So sánh mô hình Webform và MVC

Tính năng ASP.NET ASP.NET MVC
Kiến trúc chương trình Kiến trúc mô hình 3 lớp
WebForm: Presentation
-Business - Data Access
Kiến trúc sử dụng việc
phân chia chương trình
thành Controllers, Models,
Views
Cú pháp chương trình Sử dụng cú pháp của
webform, tất cả các sự kiện
và controls do server quản

Các sự kiện được điều
khiển bởi controllers, các
controls không do server
quản lý
Truy cập dữ liệu Sử dụng hầu hết các công
nghệ truy cập dữ liệu trong
ứng dụng
Phần lớn dùng LINQ to
SQL class để tạo mô hình
truy cập đối tượng
Debug Debug chương trình phải
thực hiện tất cả bao gồm
các lớp truy cập dữ liệu, sự
hiển thị, điều khiển các
controls
Debug có thể sử dụng các
unit test kiểm tra các
phương thức trong

controller
Tốc độ tải Tốc độ tải chậm khi trong
trang có quá nhiều các
Tải nhanh hơn do không
phải quản lý ViewState để
9
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
controls vì ViewState quá
lớn.
quản lý các control trong
trang
Tương tác với Javascript Khó khăn Dễ dàng
URL Address Cấu trúc địa chỉ URL có
dạng <filename>.aspx?
&<tên tham số=tham số>
Cấu trúc địa chỉ rành mạch
theo dạng
Controllers/Action/Id
1.4.2.So sánh mô hình MVC và mô hình 3 lớp thông thường.
Giống nhau: Tách rời Programming core/business logic ra khỏi những phụ thuộc về tài
nguyên và môi trường.
Presentation Layer thể hiện giống như chức năng của View và Controller
Business Layer và Data Access Layer thể hiện giống như chức năng của Model
Khác nhau
Hình 1.3: So sánh mô hình MVC và 3 Layer
Trong mô hình 3 lớp thông thường, việc xử lý sẽ đi từ trên xuống dưới rồi từ
dưới đi lên, đi qua lần lượt các tầng, nên việc thực thi sẽ phưc tạp hơn,
10
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Còn trong mô hình MVC, Model-View-Controller sẽ thực thi các thao tác với

nhau mà không cần phải qua lần lượt các tầng.
1.4.3 Kiến trúc
Trong mô hình ASP.NET truyền thống, URL thường được ánh xạ đến các file
cụ thể có trên server(ví dụ như file .aspx). Những file này chứa các mã xử lý yêu cầu từ
client.
Ở ASP.NET MVC, việc ánh xạ URL hoàn toàn khác với mô hình truyền thống.
Thay vì ánh xạ URL đến một trang .aspx cụ thể, nó được ánh xạ đến 1 lớp Controller.
Lớp này xử lí yêu cầu gửi đến, sau đó chuyển kết quả xử lí này đến một giao diện
HTML để hiển thị cho người dùng.
ASP.NET MVC phân tách hệ thống thành ba phần Model, View và Controller.
Model đại diện cho logic xử lí nghiệp vụ/phạm vi của ứng dụng, thường gắn liền với
cơ sở dữ liệu. View được gọi từ Controller, là giao diện tương tác với người dùng. Mặc
định ASP.NET MVC sử dụng các trang .aspx, master page .master) hay user control
(.ascx) để hiển thị phía trình duyệt. Controller nhận giá trị gửi lên từ client, từ đấy chọn
action method phù hợp để xử lí.
1.4.4.Định tuyến URL (URL Routing)
Mô hình ASP.NET MVC sử dụng các engine định tuyến ASP.NET, cung cấp
linh hoạt các ánh xạ các URL đến các Controller. Người dùng có thể đặt ra các quy tắc
định tuyến riêng của mình để xử lí các URL theo các Controller mong muốn
1.4.5.Mô hình MVC và Postback
ASP.NET MVC không sử dụng mô hình postback của ASP.NET Web Form để
tương tác với server. Thay vào đó tất cả các tương tác vủa người dùng được chuyển
đến một Controller. Điều này tách biệt giữa giao diện và xử lí nghiệp vụ, tăng cường
khả năng kiểm thử. Đỗng nghĩa với việc View state của ASP.NET và vòng đời trong
Web Form không được tích hợp vào mô hình MVC.
Mặc định, một ứng dụng MVC sẽ bao gồm các thư mục sau:
11
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Hình 1.4: Cấu trúc mô hình MVC 4
• App_Data, thư mục lưu trữ dữ liệu, chẳng hạn như CSDL

• Content, được khuyến nghị dùng để lưu các file css, hình ảnh…
12
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
• Controllers, thư mục lưu các Controller. ASP.NET MVC đặt tên các controller
có kết thúc là Controller, chẳng hạn như HomeController, LoginController, hay
ProductController.
• Models, lưu các class đại diện cho các đối tượng của ứng dụng
• Scripts, lưu các file java script hỗ trợ cho ứng dụng, mặc định nó đã chức các
file có sẵn của Asp.NET MVC
• Views, lưu các file hiển thị giao dện người dùng, như HTML, CSHTML,
.aspx…
Ngoài ra trong thư mục mặc định còn có các file Global.asax để định tuyến
URL, file Web.config để cấu hình ứng dụng.
1.4.6.Ưu điểm của MVC
• Phát triển phần mềm: có tính chuyên nghiệp hóa, có thể chia cho nhiều nhóm
được đào tạo nhiều kỹ năng khác nhau, từ việc thiết kế cho đến lập trình tổ chức
database. Giúp phát triển ứng dụng nhanh hơn, đơn giản hơn, dễ nâng cấp
• Bảo trì: Với các lớp được phân chia như đã nói, thì các thành phần của một hệ
thống dễ dàng được thay đổi, nhưng sự thay đổi có thể được cô lập trong từng
lớp hoặc chỉ ảnh hưởng nhỏ tới lớp ngay gần kề nó chứ không làm phát tán, náo
loạn cho cả chương trình.
• Mở rộng: Với các lớp được phân chia như đã nói, việc thêm chức năng mới vào
từng lớp sẽ dễ dàng hơn. Vì các lớp này hoạt động dường như độc lập.
1.4.7.Nhược điểm của MVC
• Đối với các dự án nhỏ thì việc áp dụng mô hình MVC là một sự lãng phí.
1.5.Controller và Routing
1.5.1 Controller và Action Method
 Controller
13
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn

ASP.NET MVC ánh xạ URL đến các lớp gọi là Controller. Controller xử lý yêu
cầu gửi đến, các đầu vào của người dùng và tương tác, trả về các giao diện sử dụng
thích hợp. Một Controller thường gọi đến một thành phần View để sinh mã HTML trả
về.
Lớp cơ sở cho tất cả các Controller là lớp ControllerBase, cung cấp các xử lí
MVC. Controller kế thừa từ ControllerBase. Controller chịu trách nhiêm cho các giai
đoạn xử lí sau đây:
• Định vị các Action Method thích hợp để gọi và xác nhận rằng nó có thể được
gọi
• Nhận các giá trị để sử dụng như tham số của Action Method
• Xử lí các lỗi xảy ra trong khi thực hiện Action Method
• Cung cấp lớp WebFormViewEngine để sinh thành phần View
Tất cả Controller đều phải đặt tên có hậu tố “Controller”. Ví dụ sau đây mô tả
HomeController, Controller này chứa các Action Method, sinh ra các View.
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
}
14
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
 Action Method

Trong các ứng dụng ASP.NET không sử dụng nền tảng MVC, sự tương tác của
người dùng được tổ chức theo các trang và theo việc phát ra và quản lý các sự kiện của
trang và các điều khiển trên trang đó. Để so sánh, thì với các mô hình MVC, sự tương
tác với người dùng được tổ chức theo các controllers và các action của chúng. Lớp
controller sẽ định nghĩa các phương thức action. Các controller có thể có bao nhiêu
action tùy nhu cầu.
Các phương thức action thường được ánh xạ 1-1 với các tương tác của người
dùng. Ví dụ như người dùng điền một URL vào trình duyệt, hoặc nhấn vào một liên
kết, hoặc gởi lên một form. Các tương tác nói trên tạo ra request được gởi lên cho
server. Khi đó, URL của request được gởi lên sẽ có các thông tin mà nền tảng MVC sẽ
sử dụng để tìm kiếm và thực thi phương thức action.
Khi người dùng gõ một URL vào trình duyệt, ứng dụng MVC sẽ sử dụng các
quy tắc định tuyến (routing rules) được định nghĩa ở tập tin Global.asax để phân tích
URL và xác định đường dẫn của controller. Sau đó controller sẽ xác định action tương
ứng để xử lý request. Ví dụ như, trong trường người dùng gõ vào địa chỉ URL là
thì đường dẫn con sẽ như sau:
/Products/Categories. Tuyến mặc định (default routing) sẽ xem Products như là phần
tiền tố của tên controller, nghĩa là controller được chọn có tên là ProductsController.
Và “Categories” được xem như là tên của action, như vậy thì phương thức Categories
của ProductsController sẽ được thực thi để xử lý request. Nếu URL kết thúc bằng
/Products/Detail/5 tuyến mặc định sẽ xem như Detail là tên của Acion, và phương thức
Detail của ProductController sẽ được gọi để xử lú request. Theo tuyến mặc định, thì giá
trị “5” trong URL sẽ được truyền vào phương thức Detail như là một tham số.
Ví dụ dưới đây cho thấy cài đặt của một action có tên là CN11LT
public class MyController : Controller
15

×