1. Giới thiệu
ASP.NET MVC là một framework web được phát triển bởi Microsoft, thực thi mô hình MVC (model–view–controller). ASP.NET MVC là 1 phần mềm mã mở, tách rời với thành phần độc quyền ASP.NET Web Forms. ASP.NET MVC đang nổi lên là phương pháp phát triển web mạnh nhất và phổ biến nhất trên nền ASP.NET hiện nay.
Trong các phiên bản sau của ASP.NET, ASP.NET MVC, ASP.NET Web API, và ASP.NET Web Pages(nền tảng chỉ dùng trang Razor) sẽ được trộn chung vào MVC 6.
2. Cách hoạt động
Dựa trên nền ASP.NET, ASP.NET MVC cho phép các nhà phát triển phần mềm xây dựng ứng dụng web như là một cấu thành của 3 vai trò: Model, View và Controller. Mô hình MVC định nghĩa ứng dụng web với 3 tầng logic:
• Model (tầng business – business layer)
• View (tầng hiển thị – display layer)
• Controller (điều khiển đầu vào – input control)
3. Các phiên bản
ASP.NET có rất nhiều phiên bản từ khi ra đời năm 2007. Một số phiên bản đáng chú ý như MVC4, MVC5, MVC6 và phiên bản mới nhất là ASP.NET Core MVC 2.0.0, phát hành ngày 14 tháng 8 năm 2017.
Trong bài học này, bạn sẽ được giới thiệu về ASP.NET MVC5 với bộ công cụ Visual Studio 2013. Với các phiên bản mới hơn như MVC6, có một số sự thay đổi về cấu trúc nội dung tập tin, thư mục, nhưng nhìn chung sẽ không có nhiều khác biệt.
4. Tạo ứng dụng đầu tiên
Mở VS 2017, chọn File -> New -> Project, một cửa sổ New Project sẽ hiện lên. Trong cửa sổ này, phần bên trái, chọn Visual C#, phần bên phải chọn ASP.NET Web Application, đặt tên dự án là TutorialMVC.
Ở hộp thoại New ASP.NET Project, chọn dự án là kiểu MVC và nhấn OK.
Visual Studio sẽ tự động tạo một template mặc định cho ứng ASP.NET MVC vừa tạo ra, vì vậy có ngay 1 dự án đơn giản mà không cần làm gì hết.
Trong ứng dụng mặc định, có 3 trang chính Home, About và Contact nằm thanh menu, có thể nhấn vào 3 liên kết để thử nghiệm. Ứng dụng mặc định cũng dùng giao diện Bootstrap, do đó khi phóng to, thu nhỏ hay chạy trên các màn hình có kích thước khác nhau, sẽ thấy giao diện thay đổi đáp ứng theo độ rộng màn hình.
Tạm thời dừng Debug (Shift + F5), mở Solution Explorer (View -> Solution Explorer hoặc phím tắt Ctrl + Alt + L) để xem cấu trúc thư mục web.
Trong hình trên, một số giải thích cơ bản về cấu trúc thư mục, tập tin là:
• References: là nơi lưu trữ, thêm/bớt các thư viện DLL có liên quan đến website.
• App_Data: là nơi chứa cơ sở dữ liệu dạng tập tin .MDF, để làm dự án thuận tiện chúng ta nên chọn làm cơ sở dữ liệu dạng này.
• App_Start: chứa các lớp cấu hình sẽ kích hoạt chạy trước khi dự án web chạy.
• Content: chứa các tập tin nội dung như css, image, … chúng ta có thể thay đổi tập tin này nếu muốn.
• Controllers: nơi chứa các lớp điều khiển cho dự án, chính là Controller trong 3 thành phần MVC (model-view-controller)
• Models: nơi chứa mô hình, cũng là 1 trong 3 thành phần MVC
• fonts, Script: chứa dạng font và mã JavaScript, phần này giúp xây dựng giao diện website, chúng ta có thể thay đổi tùy ý.
• Views: chứa các .cshtml để hiển thị giao diện, cũng là 1 trong 3 thành phần MVC
• Web.config: chứa cấu hình web, rất quan trọng
• Global.asax: chứa lớp cấu hình Session, Cookies, Application cho dự án
Ngoài ra, chúng ta có thể xem nội dung các tập tin nếu muốn, trọng tâm xem các tập tin ở 3 thư mục Controllers, Views và Models.
5. Mô hình MVC
MVC (viết tắt model-view-controller) là một mẫu (pattern) dùng để phát triển các ứng dụng có kiến trúc tổ chức tốt, dễ duy trì và có khả năng thử nghiệm. Các ứng dụng dựa trên nguyên lý MVC gồm các thành phần:
• Models: Các lớp thể hiện dữ liệu của ứng dụng và dùng nguyên lý xác nhận (validation) để thực thi các luật (rules) cho dữ liệu đó.
• Views: Các tập tin template (bản mẫu) mà ứng dụng dùng để tự động phát sinh các phản hồi HTML.
• Controllers: Các lớp xử lý các yêu cầu đến từ trình duyệt, rút trích mô hình dữ liệu, và đặc tả các template xem trả về một phản hồi từ trình duyệt.