TRƯỜNG ĐẠI HỌC NỘI VỤ HÀ NỘI TRUNG TÂM TIN HỌC – NGOẠI NGỮ BÁO CÁO TỔNG HỢP ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA NGƯỜI HỌC NGHIÊN CỨU MÔ HÌNH MVC TRONG LẬP TRÌNH .NET VÀ ỨNG DỤNG Mã số đề
Trang 1TRƯỜNG ĐẠI HỌC NỘI VỤ HÀ NỘI
TRUNG TÂM TIN HỌC – NGOẠI NGỮ
BÁO CÁO TỔNG HỢP
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA NGƯỜI HỌC
NGHIÊN CỨU MÔ HÌNH MVC TRONG LẬP TRÌNH NET
VÀ ỨNG DỤNG
Mã số đề tài: THNN.ĐTSV.2019.01
Chủ nhiệm đề tài: Nguyễn Trung Hiếu
Lớp 1705HTTA/Trung tâm Tin học – Ngoại ngữ
Giảng viên hướng dẫn: Ths Lê Minh Tuấn
Hà Nội – Năm 2020
Trang 2TRƯỜNG ĐẠI HỌC NỘI VỤ HÀ NỘI
TRUNG TÂM TIN HỌC – NGOẠI NGỮ
BÁO CÁO TỔNG HỢP
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA NGƯỜI HỌC
NGHIÊN CỨU MÔ HÌNH MVC TRONG LẬP TRÌNH NET
VÀ ỨNG DỤNG
Mã số đề tài: THNN.ĐTSV.2019.01
Chủ nhiệm đề tài: Nguyễn Trung Hiếu
Thành viên tham gia:
1 Phạm Thị Hà
2 Đỗ Nhật Tân
3 Phan Quốc Đạt Lớp 1705HTTA/Trung tâm Tin học – Ngoại ngữ
Hà Nội – Năm 2020
Trang 3LỜI CAM ĐOAN
Nhóm nghiên cứu xin cam đoan đề tài nghiên cứu “Nghiên cứu mô hình MVC trong lập trình NET và ứng dụng” là đúng sự thật và không sao chép
Chúng tôi xin hoàn toàn chịu trách nhiệm về các nội dung trong đề tài đã nghiên cứu
Trang 5
MỤC LỤC
PHẦN MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục đích nghiên cứu 2
3 Đối tượng và phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Ý nghĩa khoa học và thực tiễn của đề tài 2
Chương 1: GIỚI THIỆU MÔ HÌNH MVC 4
1.1 Lịch sử phát triển 4
1.2 Các thành phần của mô hình MVC 4
1.3 Quy trình hoạt động của mô hình MVC 5
1.4 Ưu, nhược điểm của mô hình MVC 6
1.4.1 Ưu điểm 6
1.4.2 Nhược điểm 6
Chương 2: MÔ HÌNH MVC TRONG ASP.NET 8
2.1 Giới thiệu tổng quan 8
2.1.1 Lịch sử phát triển của ASP.NET 8
2.1.2 Ưu, nhược điểm của ASP.NET 9
2.1.3 Khái quát các thành phần của mô hình kiến trúc ASP.NET MVC 10
2.1.4 Sự ra đời của ASP.NET MVC 12
2.1.5 Ưu điểm của mô hình ASP.NET MVC 12
2.2 Cài đặt ASP.NET MVC 13
2.3 Tạo một dự án Web ASP.NET MVC 13
Chương 3: XÂY DỰNG ỨNG DỤNG VỚI ASP.NET MVC FRAMEWORK 17
Trang 63.1 Xây dựng Controllers 17
3.2 Xây dựng Models 26
3.3 Xây dựng cơ sở dữ liệu 28
3.4 Xây dựng Views 31
3.5 Truy vấn dữ liệu với Linq 35
3.6 Thiết lập giao diện trang Web 35
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 41
1 Kết luận 41
2 Hướng phát triển 42
Trang 71
PHẦN MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, xây dựng một trang web bằng ngôn ngữ lập trình ASP.NET khá dễ dàng do các tài liệu về ngôn ngữ cũng như cộng đồng phát triển ứng dụng web bằng ngôn ngữ này rất rộng rãi Là một framework nguồn mở được phát triển để dành riêng cho lập trình web phía máy chủ, chúng ta dễ dàng có thể tìm thấy các tài liệu liên quan trên mạng Internet, tham khảo các dự án mẫu
để tự nghiên cứu và xây dựng các website của riêng mình ASP.NET được phát triển bởi Microsoft cho phép các lập trình viên xây dựng các trang web động, ứng dụng web hay các dịch vụ một cách dễ dàng
Được giới thiệu lần đầu tiên vào năm 2002 với phiên bản 1.0, ASP.NET được coi là thế hệ kế tiếp của công nghệ ASP ASP.NET được xây dựng trên nền tảng CLI, cho phép các lập trình viên viết mã ASP.NET sử dụng bất kể ngôn ngữ nào được hỗ bởi NET framework Phiên bản tiếp theo của ASP.NET
là NET core, một phiên bản cài đặt lại của ASP.NET trên cơ sở mô đun hóa, cùng với NET framework khác như Entity Framework Framework mới này sử dụng mã nguồn mở trên nền NET compiler và là một hệ hỗ trợ đa nền tảng Lập trình viên có thể sử dụng ASP.NET framework để phát triển các ứng dụng web sử dụng ASP.NET Web Forms và ASP.NET MVC
Trong đề tài nghiên cứu này, nhóm nghiên cứu lựa chọn ASP.NET MVC
để nghiên cứu do một số lý do:
1 ASP.NET MCV là một lựa chọn thay thế cho ASP.NET Web Forms, được xây dựng với 3 lớp chính: lớp Giao diện (Views), lớp Điều khiển (Controllers) và lớp Dữ liệu (Models) Việc chia một trang web thành nhiều lớp giúp cho những lập trình viên có ít kinh nghiệm có thể xây dụng một website với cấu trúc chặt chẽ, rõ ràng
2 Với thiết kế cấu trúc 3 lớp, ASP.NET MVC cho phép dễ dàng nâng cấp hoặc thay thế một chức năng nào đó
Trang 82
3 Hỗ trợ kiểm thử tốt hơn và đơn giản hơn
ASP.NET MVC là một công nghệ không mới, nhưng không có nhiều bạn sinh viên tại Đại học Nội vụ Hà Nội biết tới mô hình này Chính vì thế, nhóm nghiên cứu đã mạnh dạn chọn đề tài nghiên cứu kiến trúc ASP.NET
MVC làm cơ sở và xây dựng ứng dụng sử dụng ASP.NET MVC theo hướng tiếp cận code First để minh họa cho mô hình
2 Mục đích nghiên cứu
- Học được những kiến thức mới
- Trong quá trình tìm hiểu sẽ giúp nhóm nâng cao khả năng tự học của mình
- Tạo bước khởi đầu phục vụ cho việc xây dựng website quản lý sinh viên hoàn thiện sau này, áp dụng được những gì đã học được đưa vào thực
tế
- Sản phẩm của đề tài bổ xung cho nguồn tài liệu ASP.NET MVC tiếng Việt còn thiếu cho sinh viên ngành Hệ thống Thông tin tại trường Đại học Nội vụ Hà Nội
3 Đối tượng và phạm vi nghiên cứu
Nghiên cứu kiến trúc ASP.NET MVC, tiếp cận theo hướng code first, nghiên cứu các kiến thức liên quan
4 Phương pháp nghiên cứu
Nghiên cứu lý thuyết thông qua các E-book được phát hành bởi Microsoft Tìm hiểu những ví dụ trên mạng, từng bước áp dụng vào các chương trình thử nghiệm Tổng hợp các kiến thức đã tìm hiểu được và hoàn thành báo cáo cũng như sản phẩm demo
5 Ý nghĩa khoa học và thực tiễn của đề tài
- Hiện tại kiến trúc ASP.NET MVC là một công nghệ không mới tại Việt Nam, song vẫn còn có rất nhiều bạn sinh viên chưa được biết đến hay tìm hiểu về công nghệ này, đặc biệt là các bạn sinh viên ngành Hệ thống Thông
Trang 93
tin tại Trường Đại học Nội vụ Hà Nội Chính vì thế việc hoàn thành bản báo cáo và chương trình ứng dụng sẽ giúp ích rất nhiều cho các bạn sinh viên theo ngành này muốn tiếp cận
- Bên cạnh đó, theo tìm hiểu của nhóm, việc xây dựng một website Quản lý sinh viên cho Trường cũng là một việc khá thiết thực Tuy đề tài mới chỉ dừng lại ở mức tìm hiểu, áp dụng vào thực tế, chức năng còn nhiều hạn chế nhưng đã đưa ra một hướng giải quyết vấn đề cụ thể, hiệu quả Khả năng phát triển, mở rộng chức năng và ứng dụng vào thực tế sử dụng trong Trường sau này là rất có cơ sở
Trang 104
Chương 1: GIỚI THIỆU MÔ HÌNH MVC 1.1 Lịch sử phát triển
Tất cả bắt đầu vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox Parc ở Palo Alto Sự ra đời của giao diện đồ họa (Graphical User Interface) và lập trình hướng đối tượng (Object Oriented Programming) cho phép lập trình viên làm việc với những thành phần đồ họa như những đối tượng
đồ họa có thuộc tính và phương thức riêng của nó Không dừng lại ở đó, những nhà nghiên cứu ở Xerox Parc còn đi xa hơn khi cho ra đời cái gọi là mô hình kiến trúc MVC (viết tắt của Models – Views – Controllers)
Mô hình MVC được phát minh tại Xerox Parc vào những năm 70, bởi Trygve Reenskaug Mô hình MVC lần đầu tiên xuất hiện công khai là trong Smalltalk-80 Sau đó, trong một thời gian dài hầu như không có thông tin nào
về MVC, ngay cả trong tài liệu 80 Smalltalk Các giấy tờ quan trọng đầu tiên được công bố về MVC là “A Cookbook for Using the Models -Views - Controllers User Interface Paradigm in Smalltalk-80”, bởi Glenn Krasner và Stephen Pope, xuất bản trong tháng 8 đến tháng 9 năm 1988
1.2 Các thành phần của mô hình MVC
Mô hình MVC được chia làm 3 lớp xử lý gồm Model – View – Controller:
Model: Thành phần Model tương ứng với tất cả logic liên quan đến dữ
liệu mà người dùng làm việc Điều này có thể biểu thị dữ liệu đang được chuyển giữa các thành phần View và Controller hoặc bất kỳ dữ liệu nào liên quan đến logic của nghiệp vụ khác
View: là giao diện người dùng mà khách hàng / người dùng có thể thực
hiện một số hành động Nó chứa mã HTML, CSS, JS, XML hoặc bất kỳ ngôn ngữ nào khác mà chúng ta có thể sử dụng để tạo giao diện người dùng Nó cũng chứa mã để hiển thị dữ liệu mà nó nhận được từ ứng dụng
Trang 115
Controller: hoạt động như một giao diện giữa Model và View để xử lý
tất cả nghiệp vụ và các yêu cầu đầu vào, thao tác dữ liệu bằng cách sử dụng thành phần Model và tương tác với View để hiển thị đầu ra cuối cùng
Sự tương tác giữa các thành phần:
Controller tương tác với qua lại với View
Controller tương tác qua lại với Model
Model và View không có sự tương tác với nhau mà nó tương tác với nhau thông qua Controller
Hình 1: Sự tương tác giữa Model, View và Controller
1.3 Quy trình hoạt động của mô hình MVC
Khi có yêu cầu từ phía client gửi đến server, Controller sẽ tiếp nhận và
xử lý yêu cầu đó Nếu có yêu cầu lấy dữ liệu thì nó sẽ điều hướng đến phương
thức xử lý ở Model Model nhận thông tin, thực thi các yêu cầu và trả kết quả
về lại cho Controller Controller sẽ xử lý kết quả và trả về View tương ứng
Trang 126
Khi nhận được dữ liệu từ Controller thì View sẽ xây dựng các thành phần hiển thị và trả về GUI Content để Controller trả kết quả về trình duyệt của
client Trình duyệt nhận giá trị trả về và hiển thị lên màn hình cho người dùng
Hình 2: Quy trình hoạt động của mô hình MVC
1.4 Ưu, nhược điểm của mô hình MVC
1.4.1 Ưu điểm
- Trình tự xử lý rất rõ ràng
- Mô hình MVC quy hoạch các class/function vào các thành phần riêng biệt Controller - Model - View, việc đó làm cho quá trình phát triển - quản lý - vận hành - bảo trì web diễn ra thuận lợi hơn, tạo ra được các chức năng chuyên biệt hoá đồng thời kiểm soát được luồng xử lý
- Tạo mô hình chuẩn cho dự án giúp những người có chuyên môn ngoài dự án tiếp cận với dự án dễ dàng hơn
- Mô hình đơn giản, dễ hiểu, dễ dàng triển khai với các dự án vừa và nhỏ
1.4.2 Nhược điểm
- Khó đọc, thay đổi, kiểm tra và sử dụng lại mô hình này
Trang 137
- Việc điều hướng tổ chức có thể đôi khi phức tạp vì nó giới thiệu các layer mới đòi hỏi người dùng phải thích ứng với các tiêu chí của MVC
- Không hỗ trợ xác nhận chính thức
- Tăng độ phức tạp và kém hiệu quả của dữ liệu
- Khó khăn khi sử dụng MVC với giao diện người dùng
- Cần có nhiều lập trình viên để tiến hành lập trình song song
- Phải có lượng kiến thức về công nghệ phải nhiều vì nó rất cần thiết
- Duy trì rất nhiều mã trong controller
Trang 148
Chương 2: MÔ HÌNH MVC TRONG ASP.NET 2.1 Giới thiệu tổng quan
Như đã nói ở trên, mô hình MVC với những ưu điểm đã được ứng dụng nhiều trên các nền tảng khác nhau, trong đó được nhắc nhiều đến MVC trong
mô hình kiến trúc ASP.NET MVC Vậy ASP.NET MVC là gì?
ASP.NET MVC là một mô hình kiến trúc phát triển ứng dụng Web mới của Microsoft, là sự kết hợp giữa tính hiệu quả và nhỏ gọn của mô hình Models
- Views - Controllers (MVC) cùng với những ý tưởng và công nghệ hiện đại nhất và những thành phần tốt nhất của nền tảng ASP.NET hiện thời Là một lựa chọn khác bên cạnh nền tảng Web Forms khi phát triển một ứng dụng Web sử dụng ASP.NET
Trong phần này nhóm sẽ trình bày lý do tại sao ASP.NET MVC được tạo ra, nó có gì khác so với ASP.NET Web Forms, và cuối cùng là những đặc điểm mới trong ASP.NET MVC
2.1.1 Lịch sử phát triển của ASP.NET
Để hiểu được những đặc điểm nổi bật và mục tiêu thiết kế của ASP.NET MVC, trước tiên cần xem lại lịch sử phát triển của ASP Trong số những nền tảng phát triển web của Microsoft, chúng ta sẽ thấy sức mạnh và sự phức tạp tăng lên theo từng năm Tương tự, ASP.NET MVC được thiết kế để giải quyết những thiếu sót của ASP.NET Web Forms truyền thống, nhưng lại bằng cách nhấn mạnh sự đơn giản
ASP.Net là một nền tảng ứng dụng web được phát triển và cung cấp bởi Microsoft cho phép những người lập trình tạo ra những trang web động, những ứng dụng web và những dịch vụ web Lần đầu tiên đưa ra thị trường vào tháng
2 năm 2002 cùng với phiên bản 1.0 của NET framework, là công nghệ tiếp nối
Microsoft’s Active Server Pages (ASP) ASP.Net được biên dịch dưới dạng Common Language Runtime (CLR), cho phép những người lập trình viết mã
Trang 159
ASP.Net viết bất cứ ngôn ngữ nào được hỗ trợ trên nền tảng NET như C#, VB.NET
Sau khi phát hàng phiên bản Internet Information Service 4.0 vào năm
1997, hãng Microsoft bắt đầu nghiên cứu mô hình ứng dụng web để giải quyết những bất tiện của ASP, đặc biệt là việc tách riêng biệt phần thể hiện và phần nội dung cũng như cách viết mã rõ ràng hơn Mark Anders, quản lý của nhóm IIS và Scott Guthrie, gia nhập vào Microsoft năm 1997 sau khi tốt nghiệp đại học Duke, được giao nhiệm vụ định hình mô hình cần phát triển Những thiết
kế ban đầu được thực hiện trong vòng 2 tháng bởi Anders và Guthrie Guthrie
đã viết mã mẫu đầu tiên vào khoảng thời gian nghỉ lễ giáng sinh 1997
ASP.NET truyền thống đã là một bước nhảy vọt khi lần đầu tiên xuất hiện, nhằm thu hẹp khoảng cách giữa phát triển Windows Forms hướng đối tượng (có trạng thái) và phát triển Web hướng HTML (không có trạng thái)
2.1.2 Ưu, nhược điểm của ASP.NET
a Ưu điểm
- ASP.NET là ngôn ngữ lập trình có bộ thư viện đa dạng và phong phú được cung cấp bởi NET Framework Bên cạnh đó, ngôn ngữ lập trình này còn hỗ trợ tốt cho XML và khả năng truy cập cơ sở dữ liệu qua ADO.NET
- Có khả năng hoạt động tốt trên nhiều nền tảng, đảm bảo hiệu suất tốt nhất cho các website được viết bằng ngôn ngữ này Khi sử dụng ASP.NET, chúng ta có thể tách phần code và giao diện thành hai phần riêng biệt hoàn toàn, nhờ vậy mà việc quản lý và bảo trì web trong quá trình vận hành, sử dụng đã trở nên dễ dàng và thuận tiện hơn rất nhiều
- Các website được lập trình bởi ASP.NET thường hoạt động ổn định hơn, mượt mà hơn, có tốc độ tải trang tốt hơn so với một số ngôn ngữ khác, tạo sự thoải mái và cảm giác tin tưởng cao hơn nơi người dùng, từ đó giảm được tỉ lệ thoát trang và tăng thêm cơ hội khách hàng trở lại với website
Trang 1610
vào những lần sau Tốc độ tải trang của ASP.NET thậm chí còn được giới chuyên gia đánh giá cao hơn cả PHP và JS
- Khả năng tùy biến của ASP.NET là rất cao, các website viết bằng ASP.NET dễ dàng tương thích với các kích thước màn hình của các thiết bị truy cập khác nhau
- ASP.NET cũng cho phép tạo ra các mã HTML một cách tự động phía server giúp cho website có thể hoạt động tốt trên bất kỳ trình duyệt nào
- Độ bảo mật của ASP.NET được các chuyên gia đánh giá cao do được kế thừa từ ngôn ngữ lập trình Java Hiện nay, ASP.NET là ngôn ngữ lập trình được các chuyên gia trong ngành đánh giá là có khả năng chống tấn công mạng cao nhất
- ASP.NET có độ truy xuất dữ liệu cực nhanh, hỗ trợ lưu trữ dung lượng lớn
- Hỗ trợ SEO tốt và thân thiện
- Cho phép tùy biến, sửa đổi và mở rộng một cách dễ dàng khi có nhu cầu
b Nhược điểm
Ngoài những ưu điểm nổi trội mang đầy tính thuyết phục như đã kể trên thì hiện tại, ASP.NET cũng có một số nhược điểm tương đối lớn, chưa khắc phục được như:
- Không hỗ trợ cho các thiết bị sử dụng hệ điều hành Linux
- Quá trình viết code sẽ gặp khó khăn nếu không có Visual Studio
2.1.3 Khái quát các thành phần của mô hình kiến trúc ASP.NET MVC
Như đã giới thiệu ở trên, ASP.NET MVC chia nhỏ một ứng dụng thành
ba thành phần để cài đặt, mỗi thành phần đóng một vai trò khác nhau và ảnh
hưởng lẫn nhau, đó là Models, Views, và Controllers
Trang 1711
Hình 3: Mô hình kiến trúc ASP.NET MVC
Models trong các ứng dụng dựa trên MVC là những thành phần có nhiệm
vụ lưu trữ thông tin, trạng thái của các đối tượng, thông thường nó là một lớp được ánh xạ từ một bảng trong cơ sở dữ liệu Lấy ví dụ, chúng ta có lớp Students được sử dụng để mô tả dữ liệu từ bảng Students trong SQL, bao gồm Tên, Họ đệm,
Views chính là các thành phần chịu trách nhiệm hiển thị các thông tin lên
cho người dùng thông qua giao diện Thông thường, các thông tin cần hiển thị
được lấy từ thành phần Models
Ví dụ, đối tượng Students có một “Edit” View bao gồm các Textbox và checkbox để chỉnh sửa các thuộc tính của thông tin sinh viên; có một “Details” View gồm 3 dòng, cột dòng là Tên, dòng sau là Họ đệm, Ngày đăng ký, để xem thông tin về sinh viên
Controllers trong các ứng dụng kiểu MVC chịu trách nhiệm xử lý các tác động về mặt giao diện, các thao tác đối với Models, và cuối cùng là chọn một view thích hợp để hiển thị ra màn hình Trong kiến trúc MVC, View chỉ có tác
dụng hiển thị giao diện mà thôi, còn điều kiển dòng nhập xuất của người dùng
vẫn do Controllers thực hiện
Trang 18
12
2.1.4 Sự ra đời của ASP.NET MVC
Vào tháng 11 năm 2007, ở hội thảo ALT.NET tại Austine, Texas, giám đốc điều hành Scott Guthrie của Microsoft đã công bố và mô tả về nền tảng phát triển web MVC mới, xây dựng trên ASP.NET, rõ ràng được thiết kế như
là một lời hồi đáp thẳng vào các lời chỉ trích trước đây
ASP.NET MVC cung cấp sự tách biệt rõ ràng giữa các thành phần bất chấp việc sử dụng lại mô hình MVC mặc dù nó không có gì mới - MVC lần đầu được công bố vào năm 1978 trong dự án Smalltalk của Xerox PARC - nhưng ngày nay nó phổ biến như là một kiến trúc cho các ứng dụng web bởi vì các lý do sau:
- Người dùng tương tác với ứng dụng MVC tự nhiên sẽ theo một chu trình: người dùng thực hiện một hành động, và để hồi đáp lại, ứng dụng thay đổi mô hình dữ liệu của nó và chuyển một trang đã được cập nhật cho người dùng, và sau đó vòng xoay lập lại Điều này là thích hợp cho một ứng dụng web phải luân chuyển hàng lọat các lời yêu cầu cũng như hồi đáp
- Những ứng dụng web luôn cần phải kết hợp một số công nghệ (cơ
sở dữ liệu, HTML và mã xử lý), luôn chia thành nhiều lớp Những mẫu đề ra
đã nảy sinh thành các khái niệm trong MVC Mô hình kiến trúc ASP.NET MVC thực thi một biến thể hiện đại trên MVC, đặc biệt thích hợp với các ứng dụng web
2.1.5 Ưu điểm của mô hình ASP.NET MVC
Do sử dụng mô hình MVC nên trong ASP.Net MVC đã tách biệt được các tầng trong mô hình lập trình web vì vậy giúp tối ưu ứng dụng và dễ dàng trong việc viết code, giao diện
Giao diện trong ASP.NET MVC sử dụng công nghệ thiết kế web HTML, CSS nên việc thiết kế giao diện trở nên dễ dàng và giúp cho nhà thiết kế linh hoạt trong việc thiết kế
Trang 1913
ASP.NET MVC không sử dụng ViewState nên trang web không bị tăng
kích thước, do đó hiệu năng hoạt động không bị giảm
2.2 Cài đặt ASP.NET MVC
Trước tiên, để cài đặt ASP.NET MVC, chúng ta cần cài đặt trình phát triển tích hợp Visual Studio (trong đề tài này nhóm sử dụng Visual Studio 2017) Cấu hình tối thiểu của máy tính để cài đặt Visual Studio 2017 như sau: Windows 7 SP1 trở lên, ổ đĩa cứng còn trống tối thiểu 5GB, RAM tối thiểu 2GB, bộ xử lý tốc độ 1.8 GHz hoặc cao hơn Quá trình cài đặt sẽ gợi ý người dùng lựa chọn các ứng dụng, trường hợp này chọn ASP.NET MVC
2.3 Tạo một dự án Web ASP.NET MVC
Để khởi tạo một dự án (project) MVC, trong Visual Studio, ta chọn File
=> New Project => ASP.NET Web Application (.NET Framework)
Tại đây chúng ta có thể đặt tên dự án, chọn đường dẫn lưu dự án và chọn phiên bản NET Framework phù hợp
Sau khi hoàn tất những thao tác trên, chúng ta chỉ cần ấn OK để Visual
Studio khởi tạo dự án
Hình 4: Khởi tạo dự án ASP.NET MVC
Trang 2014
Tiếp theo, giao diện thiết lập Templates cho ứng dụng ASP.NET Web Application xuất hiện, chúng ta nhấn chọn MVC
Chúng ta cũng có thể tùy chọn chế độ xác thực bằng cách ấn vào ô
Change Authentication Ở đây nhóm chọn No Authentication do ứng dụng
demo không cần xác thực Khi xây dựng ứng dụng web trong thực tế thì chúng
ta nên chọn chế độ xác thực phù hợp
Sau khi thiết lập, chúng ta tiếp tục ấn OK để khởi tạo project
Hình 5: Các thiết lập với dự án
Sau khi một ASP.NET MVC Web Application được tạo, nhìn vào
Solution Explorer sẽ thấy 3 thư mục xuất hiện: Models, Views, Controllers
chứa các đối tượng tương ứng với các thành phần Models, View, Controllers trong mô hình MVC
Trang 2115
Để cài đặt Entity Framework, vào Tools => NuGet Package Manage
=> Package Manage Console và gõ lệnh Install-Package EntityFramework
Để chạy ứng dụng web, nhấn F5 trên bàn phím hoặc vào menu Debug, chọn Start Debuging Nếu là ứng dụng chạy lần đầu thì sẽ có thông báo hỏi có cho mở ở chế độ Debug hay không?
Nếu đồng ý chọn “Modify the Web.config file to enable debugging”, không muốn Debug chọn “Run without debugging”
Trang 2216
Hình 7: Chạy thử ứng dụng với code mặc định
Cấu trúc thư mục trong dự án:
Cấu trúc thư mục mặc định của ứng dụng ASP.MVC gồm có 3 thư mục
Mặc dù ASP.NET MVC Framework không bắt buộc chúng ta phải sử dụng cấu trúc này, nhưng đây là cấu trúc mặc định khi chúng ta tạo một dự án mới ASP.NET MVC luôn khuyến khích việc sử dụng nó để phân chia ứng dụng ngoại trừ trường hợp ta đề ra một lý do đủ thuyết phục để thay đổi nó
Như vậy là chúng ta đã tạo cho mình một trang Web trong ứng dụng mô hình MVC, các phần sau chúng ta sẽ tìm hiểu rõ hơn cách thức hoạt động của
mô hình MVC trong ASP.NET qua ứng dụng demo
Trang 2317
Chương 3: XÂY DỰNG ỨNG DỤNG VỚI ASP.NET MVC
FRAMEWORK
3.1 Xây dựng Controllers
Mỗi lần có một yêu cầu được gửi đến trang web ASP.NET MVC thì nó
sẽ được giải quyết bởi Controllers Controllers có trách nhiệm điều khiển các tương tác của người dùng bên trong ứng dụng MVC Controllers quyết định cái
gì sẽ được chuyển về cho người dùng khi tạo một yêu cầu trên trình duyệt
Controllers có trách nhiệm cho các hoạt động logic, bao gồm tiếp nhận thông tin người dùng nhập vào, ra lệnh lấy dữ liệu từ Models và cuối cùng là
xử lý Có một số tương đồng giữa các Controllers ASP.NET MVC và các trang ASPX trong ASP.NET Web Forms Ví dụ, cả hai đều là các điểm tương tác với người dùng cuối Tuy nhiên trong một số cách khác, nó có các khái niệm khá khác nhau, ví dụ:
- Ta không thể tách rời trang ASPX với code xử lý logic của nó, vì
cả hai nó đều hợp tác để thực hiện các ứng dụng nhất định Tuy nhiên ASP.NET MVC thì lại khác, chúng tách biệt thành phần giao diện với phần code xử lý, chính vì thế ta có thể giữ cho code của mình được đơn giản, dễ hiểu, duy trì sự độc lập cần thiết
- Trang ASP.NET Web Forms có một liên kết một - một với một giao diện người dùng cụ thể Tuy nhiên trong ASP.NET MVC, một bộ điều khiển không gắn liền với một giao diện người dùng cụ thể, vì vậy nó có thể giải quyết các yêu cầu bằng cách gửi lại các dữ liệu cần thiết Tất nhiên là những ứng dụng thực tế sẽ giúp chúng ta hiểu rõ về Controllers hơn, xem nó có thể giúp chúng ta xây dựng những ứng dụng một cách đơn giản như thế nào
Các lớp Controllers cơ bản:
MVC Framework đi kèm một lớp cơ sở tiêu chuẩn để điều khiển, System.Web Mvc.Controller Bao gồm các thành phần sau đây:
Trang 24
18
phương thức, mỗi phương thức tương ứng với một địa chỉ URL khác nhau, và được gọi với các tham số được lấy từ yêu cầu
- Action Results: ta có thể tùy chọn để trả về một đối tượng mô tả
những dự định kết quả của một hành động (ví dụ có thể trả về một Views, đến một Action Method khác…) và nó sẽ thực hiện cho chúng ta Việc tách bạch giữa xác định kết quả với việc thực thi sẽ đơn giản hóa việc kiểm thử một cách đáng kể
Một Controllers thường là một lớp Trong ứng dụng ASP.NET MVC
Web Application mẫu luôn tồn tại một Controllers có tên là HomeController.cs
nằm trong thư mục Controllers với mã nguồn như sau:
using System; using