MVC Design Pattern có gì khác trong ASP.NET Core
Mẫu thiết kế MVC (Model-View-Controller) là mẫu thiết kế đã thực sự tồn tại trong một vài thập kỷ và nó đã được sử dụng trên nhiều công nghệ khác nhau, mọi thứ từ Smalltalk đến C ++ đến Java và bây giờ là C # và .NET như một thiết kế mẫu để sử dụng khi bạn đang xây dựng giao diện người dùng.
- Mẫu thiết kế MVC là mẫu thiết kế phổ biến cho lớp giao diện người dùng của ứng dụng phần mềm.
- Trong các ứng dụng lớn hơn, bạn thường kết hợp lớp UI của trình điều khiển chế độ xem mô hình với các mẫu thiết kế khác trong ứng dụng, như các mẫu truy cập dữ liệu và các mẫu nhắn tin.
- Tất cả sẽ đi cùng nhau để xây dựng ngăn xếp ứng dụng đầy đủ.
MVC tách giao diện người dùng (UI) của một ứng dụng thành ba phần sau
- Mô hình - Một tập hợp các lớp mô tả dữ liệu bạn đang làm việc cũng như logic nghiệp vụ.
- Chế độ xem - Xác định cách ứng dụng UI UI sẽ được hiển thị. Nó là một HTML thuần túy quyết định giao diện người dùng sẽ trông như thế nào.
- Bộ điều khiển - Một tập hợp các lớp xử lý giao tiếp từ người dùng, luồng ứng dụng tổng thể và logic dành riêng cho ứng dụng.
Ý tưởng đằng sau MVC
Bây giờ chúng ta hãy hiểu ý tưởng đằng sau MVC.
- Ý tưởng là bạn sẽ có một thành phần được gọi là khung nhìn chịu trách nhiệm hiển thị giao diện người dùng này cho dù đó là HTML hay liệu nó có thực sự là một widget UI trên ứng dụng máy tính để bàn hay không.
- Khung nhìn nói chuyện với một mô hình và mô hình đó chứa tất cả dữ liệu mà khung nhìn cần hiển thị.
- Trong một ứng dụng web, chế độ xem có thể không có bất kỳ mã nào được liên kết với nó.
- Nó có thể chỉ có HTML và sau đó một số biểu thức về nơi lấy các phần dữ liệu từ mô hình và cắm chúng vào đúng vị trí trong mẫu HTML mà bạn đã tạo trong chế độ xem.
Bộ điều khiển tổ chức mọi thứ. Khi một yêu cầu HTTP đến cho một ứng dụng MVC, yêu cầu đó được chuyển đến bộ điều khiển và sau đó tùy thuộc vào bộ điều khiển để nói chuyện với cơ sở dữ liệu, hệ thống tệp hoặc mô hình.
Trong MVC, bộ điều khiển nhận được yêu cầu HTTP, bộ điều khiển phải tìm ra cách kết hợp thông tin để đáp ứng yêu cầu này. Có lẽ người dùng đang hướng trình duyệt đến URL / sách của ứng dụng. Vì vậy, bộ điều khiển cần tập hợp các thông tin để hiển thị danh sách các cuốn sách. Trong kịch bản này, bộ điều khiển sẽ xây dựng một mô hình.
Mô hình không biết gì về yêu cầu HTTP hoặc bộ điều khiển.
Mô hình chỉ chịu trách nhiệm lưu giữ thông tin sách mà người dùng muốn xem, cũng như mọi logic liên quan đến danh sách sách đó.
Mô hình chỉ là một lớp C # khác mà chúng ta có thể sử dụng và bạn có thể có nhiều hơn một lớp nếu bạn có một mô hình phức tạp.
Khi mô hình được đặt cùng nhau, bộ điều khiển có thể chọn chế độ xem để hiển thị mô hình.
Chế độ xem sẽ lấy thông tin trong mô hình, giống như tất cả các sách và từng tên sách, v.v. và nó sẽ sử dụng thông tin đó để xây dựng trang HTML.
Sau đó, HTML đó được gửi lại cho máy khách trong phản hồi HTTP và toàn bộ giao dịch yêu cầu và phản hồi HTTP được hoàn thành.
Đây là những điều cơ bản của mẫu thiết kế MVC và ý tưởng đằng sau mẫu này là để tách biệt các mối quan tâm. Vì vậy, bộ điều khiển chỉ chịu trách nhiệm lấy một yêu cầu và xây dựng một mô hình. Đây là mô hình mang logic và dữ liệu chúng ta cần vào chế độ xem. Sau đó, khung nhìn chỉ chịu trách nhiệm chuyển đổi mô hình đó thành HTML.