ASP.Net MVC 3 là một phiên bản khá hấp dẫn, có thêm nhiều tính năng và cải tiến mới rất tuyệt vời, giúp đơn giản hóa mã (code) của bạn. ASP.Net MVC 3 cũng tương thích ngược với ASP.Net MVC 1 và ASP.Net MVC 2, khiến việc nâng cấp các ứng dụng hiện có rất dễ dàng. Bài viết này sẽ trình bày về những tính năng mới như: Razor, multi view engine, những cài tiến trong: controller, Java
Script và Ajax, Model Validation, Dependency Injection, và các tính năng mới khác.

Bạn đang xem: Sự khác nhau giữa các phiên bản mvc 2, 3 , 4, 5 và 6

1. Công cụ xem Razor (The Razor View Engine)

– ASP.net MVC 3 đi kèm với một công cụ xem mới có tên là Razor với những lợi ích sau:

Cú pháp Razor là sạch sẽ và xúc tích, đòi hỏi một số lượng tối thiểu các tổ hợp phím.Việc tìm hiểu Razor tương đối dễ dàng vì nó dựa trên ngôn ngữ C# và Visual Basic.Visual Studio bao gồm Intelli
Sense và mã cú pháp Razor được màu hóa.Razor views có thể kiểm tra từng đơn vị mà không đòi hỏi bạn phải chạy các ứng dụng hoặc phải chạy web server.

– Một số tính năng mới của Razor:

Cú pháp
model để xác định các loại sẽ được truyền vào view.
**
là cú pháp comment.Khả năng định rõ mặc định (như layoutpage) một lần cho toàn bộ trang web.Phương thức Html.Raw để hiển thị các văn bản mà không cần mã hóa Html cho nó.Hỗ trợ chia sẽ mã giữa nhiều views (_viewstart.cshtml hay _viewstart.vbhtml).

– Razor cũng bao gồm những công cụ hỗ trợ HTML mới, chẳng hạn như:

Chart – biểu diễn một biểu đồ, cung cấp các tính năng như control chart trong ÁP.NET 4.Web
Grid – biểu diễn một lưới dữ liệu (data grid), hoàn chỉnh với chức năng phần trang và phân loại.Crypto – Sử dụng các thuật toán băm (hashing algorithms) để tạo thuộc tính thông thạo và băm các mật khẩu.Web
Image – biểu diễn một hình ảnh.Web
Mail – gởi tin nhắn email.

2. Hỗ trợ đa View Engines (Support for Multiple View Engines)

– Thêm hộp thoại View trong ASP.NET MVC 3 cho phép bạn chọn các view engine mà bạn muốn làm việc với nó, và hộp thoại New Project cho phép bạn xác định view engine mặc định cho một project. Bạn có thể chọn view engine Web Forms (ASPX), Razor, hay một view engine nguồn mở như Spark, NHaml, hay NDjango.

3. Những cải tiến Controller

3.1 Global Action Filters

Đôi khi bạn muốn thực hiện một logic hoặc trước khi một phương thức thực hiện hoặc sau một một phương thức hành động được thực hiện. Để hỗ trợ điều này, ASP.NET MVC 2 đã cung cấp bộ lọc hành động (Action Filters). Action Filter là các thuộc tính tùy chỉnh cung cấp khai báo một phương tiện để thêm trước hành động và sau hành động một hành vi để xác định phương thức controller hành động cụ thể. MVC 3 cho phép bnaj chỉ định các bộ lọc chung bằng cách thêm chúng vào bộ sưu tập Global
Filters. Để biết thêm thông tin có thể tham khảo ở những nguồn dưới đây:

3.2 Thuộc tính mới “View
Bag”

MVC 2 hỗ trợ điều điều khiển một thuộc tính View
Data để cho phép bạn chuyển dữ liệu đến một view template bằng cách sử dụng một API. Trong MVC 3, bạn có thể sử dụng cú pháp đơn giản hơn một chút với thuộc tính View
Bag để thwucj hiện cùng một mục đích trên. Ví dụ, thay vì viết View
Data<“Message”> = “text”, bạn có thể viết View
Bag.Message = “text”. Bạn không cần phải xác định lớp mạnh bất kỳ để sử dụng thuộc tính View
Bag. Bởi vì nó là một thuộc tính năng động (dynamic property), bạn có thể thay vì chỉ nhận hay thiết lập các thuộc tính và nó sẽ giải quyết các ván đề còn lại tự động khi chạy. Bên trong thuộc tính View
Bag được lưu trữ như cặp name/value trong từ điển View
Data. (Lưu ý: trong hầu hết các phiên bản trước của MVC3, thuộc tính View
Bag có tên là View
Model).

3.3 Các kiểu “Action
Result” mới

Dưới đây là các kiểu Action
Result và phương pháp trợ giúp mới và nâng cao trong MVC 3:

4. Java
Script và Ajax

Theo mặc định, Ajax và các công cụ hỗ trợ hợp lệ trong MVC 3 sử dụng một cách tiếp cận unobtrusive Java
Script. Unobtrusive Java
Script nội tuyến tránh tiêm tín hiệu từ Java
Script vào HTML. Điều này làm cho HTML của bạn nhỏ hơn và ít lộn xộn hơn, và làm cho nó chuyển đổi ra ngoài dễ dàng hơn hay tùy chỉnh các thư viện Java
Script. Validation helpers trong MVC 3 cũng sử dụng plugin j
Query
Validate theo mặc định. Nếu bạn muốn MVC 2 thực hiện, bạn có thể vô hiệu hóa unobtrusive Java
Script bawgnf cách thiết lập lại file web.config. Để biết thêm thông tin về Ajax và Java
Script tham khảo những nguồn sau:

4.1 Client-Side Validation Enabled by Default

– Trong các phiên bản trước đó của MVC, bạn cần phải gọi rõ phương thức Html.Enable
Client
Validation từ một view để cho phép phía máy khác xác nhận. Điều này trong MVC 3 là không cần thiết vì phía khách hàng xác nhận là kích hoạt mặc định. (Bạn có thể vô hiệu hóa điều này bằng cách sử dụng một thiết lập trong file web.config).

– Để cho phía máy khách xác nhận để làm việc, bạn vẫn cần phải tham khảo thích hợp thư viện j
Query và j
Query Validation trong trang web của bạn. Bạn có thể lưu trữ các thư viện trên máy chủ của chính bạn hoặc tham chiếu cho chúng từ một mạng lưới phân bố nội dung(CDN – Content Delivery Network) như CDNs từ Microsoft hay Google.

4.2 Remote Validator

– ASP.NET MVC 3 hỗ trợ lớp Remote
Attribute cho phép bạn tận dụng lợi thể của plugin j
Query Validation để hỗ trợ xác nhận từ xa. Điều này cho phép các bên các nhận thư viện client-side validation để tự động gọi một phương thức tùy chỉnh mà bạn xác định trên máy chủ để thực hiện xác nhận logic chỉ có thể được xác nhận phía máy chủ.

– Trong ví dụ sau đây, thuộc tính Remote xác định rừng xác nhận máy khác sẽ gọi một hành động tên là User
Name
Available trên lớp Users
Controller để xác minh trường User
Name.

public class User { Name
Available", "Users")> public string User
Name { get; set; }}– Ví dụ sau đây minh họa các điều khiển tương ứng:

public class Users
Controller { public bool User
Name
Available(string username) { if(My
Repository.User
Name
Exists(username)) { return "false"; } return "true"; }}– Để biết thêm về cách sử dụng các thuộc tính Remote, xem bài How to: Implement Remote Validation in ASP.NET MVC trong MSDN.

4.3 JSON Binding Support

ASP.NET MVC 3 bao gồm ràng buộc hỗ trợ JSON cho phép các phương thức hành động để nhận được dữ liệu JSON-encoded và model-bind tham số phương thức hành động của nó. Khả năng này rất hữu ích trong các tình huống liên quan đên client template và data binding. MVC 3 cho phép bạn dễ dàng kết nối client template với các phương thức hành độngtrên máy chủ khi gởi và nhận nhận dữ liệu JSON. Để biết thêm thông tin về JSON binding support, tham khảo Scott Guthrie’s MVC 3 Preview .

5. Model Validation Imporvements

5.1 Thuộc tính siêu dữ liệu “Data
Annotations”

ASP.NET MVC 3 hỗ trợ các thuộc tính siêu dữ liệu Data
Annotations như Display
Attribute.

5.2 Lớp “Validation
Attribue”

Lớp Validation
Attribute đã được cải tiến trong .NET Framerwork 4 để hỗ trợ một quá tải mới là Is
Valid cung cấp thêm thông tin về bối cảnh xác nhận hiện tại, chẳng hạn như những gì đối tượng đang được xác nhận. Điều này cho phép các kịch bản phong phú hơn, nơ bạn có thể xác nhận giá trị hiện tại dựa trên các thuộc tính khác của model. Ví dụ, thuộc tính mới Compare
Attribute cho phép bạn so sánh các giá trị của 2 thuộc tính của một model. Trong ví dụ dưới đây, thuộc tính Compare
Password phải phù hợp với trường Password để được hợp lệ:

public class User { public string Password { get; set; } public string Compare
Password { get; set; }}5.3 Validation Interfaces

– Giao diện IValidatable
Object cho phép bạn thực hiện các cấp model xác nhận, và nó cho phép bạn cung cấp các thông điệp xác nhận lỗi cụ thể đối với các trạng thái của model tổng thể, hay giữ 2 thuộc tính trong model. MVC 3 bây giờ lấy lỗi từ giao diện IValidatable
Object khi ràng buộc mô hình, và từ động gắn cờ hay tô sáng các trường bị ảnh hưởng trong phậm vi view bằng cách sử dụng công cụ hỗ trợ hình thức HTML.

– Giao diện IClient
Validatable cho phép ASP.NET MVC khám phá trong thời gian chạy dù validator đã hỗ trợ cho việc xác thực ở client. Giao diện này được thiết kế để có thể tích hợp với hàng loạt các validation frameworks.

6. Dependency Injection Imporvements

– ASP.NET MVC 3 cung cấp hỗ trợ tốt hơn cho việc áp dụng Dependency Injection (DI) và tích hợp với Dependency Injection hay Inversion of Control (IOC) containers. Các hỗ trợ cho DI được thêm vào:

Controllers (registering and injecting controller factories, injecting controllers).Views (registering and injecting view engines, injecting dependencies into view pages).Action filters (locating and injecting filters).Model binders (registering and injecting).Model validation providers (registering and injecting).Model metadata providers (registering and injecting).Value providers (registering and injecting).

– MVC 3 hỗ trợ các thư viện Common Service Locator và bất kỳ DI container nào có hỗ trợ của thư viện IService
Locator. Nó cũng hỗ trợ giao diện mới IDpendency
Resolver làm cho nó dễ dàng hơn để tích hợp với DI frameworks.

7. Các tính năng mới khác (Other New Features)

7.1 Nu
Get Integration

– ASP.NET MVC 3 tự động cài đặt và cho phép Nuget như một phần cài đặt của nó. Nu
Get là một gói quản lý nguồn mở miễn phí mà có thể dễ dàng tìm tâấy nó, cài đặt và sử dụng thư viện .NET và các công cụ trong các project của bạn. Nó hoạt động với tất cả các loại project của Visual Studio (bao gồm ASP.NET Web Forms và ASP.NET MVC).

– Nu
Get cho phép các nhà phát triển để duy trì các dự án mã nguồn mở (ví dụ: các dự án như Moq, NHibernate, Ninject, Structure
Map, NUnit, Windsor, Rhino
Mocks, và Elmah) để đóng gói thư viện của mình và đăng ký chúng trong một bộ sưu tập trực tuyến.

– Để biết thêm về Nu
Get documentation on the Code
Plex site

7.2 Partial-Page Output Caching

ASP.NET MVC được hỗ trợ bộ nhớ đệm output của trang trả lời đầy đủ kể từ phiên bản 1. MVC 3 cũng hỗ trợ các trang xuất caching một phần, cho phép bạn dễ dàng đến các vùng nhớ đệm hoặc các mảnh của một response.

7.3 Kiểm soát và yêu cầu xác nhận (Granular Control over Request Valiedation)

ASP.NET MVC đã được xây dựng trong quá trình xác nhận yêu cầu tự động giúp bảo vệ chống lại các cuộc tấn công XSS và HTML injection. Tuy nhiên, đôi khi bạn muốn vô hiệu hóa yêu cầu xác nhận rõ ràng, chẳng hạn như nếu bạn muốn cho phép một người post nội dung HTML (Ví dụ, trong ác mục blog hoặc nội dung CMS). Bạn có thể thêm một thuộc tính Allow
Html cho các model hay view models để vô hiệu hóa các yêu cầu xác nhận trên mỗi một thuộc tính cơ bản trong mô hình liên kết.

7.4 Mở rộng hộp thoại “New Project”

Trong ASP.NET MVC 3, bạn có thể thêm các project mẫu, view engines, và unit test project frameworks cho hộp thoại New project.

7.5 Scaffolding Improvements

ASP.net MVC 3 các mẫu scaffolding làm một công việc tốt hơn của việc xác định các thuộc tính khóa chính trên các mô hình và xử lý chúng một cách thích hợp hơn trong các phiên bản trước của MVC.

Theo mặc định, Tạo và Sửa scaffolds bây giờ sử dụng Html.Editor
For helper thay vì Html.Text
Box
For helper. Điều này cải thiện hỗ trợ cho các siêu dữ liệu trên mô hình ở dạng chú thích thuộc tính dữ liệu khi hộp thoại Add View tạo ra một view.

7.6 Các quá tải mới cho “Html.Label
For”” và “Html.Label
For
Model”

Các phương pháp quá tải mới có thêm phương thức Label
For và Label
For
Model. Các quá tải mới cho phép bạn xác định hay ghi đè lên label text.

7.7 Sessioinless Controller Support

7.8 Lớp mới “Additional
Metadata
Attribute”

– Bạn có thể sử dụng thuộc tính Additional
Metadata để đưa vào từ điển Model
Metadata. Additional
Values cho một thuộc tính model. Ví dụ, nếu view model có một thuộc tính sẽ được hiển thị chỉ cho một admin, bạn có thể thực hiện giống như trong ví dụ dưới đây:

public class Product
View
Model { Metadata("Admin
Only", true)> public string Refund
Code {get; set;}}

ASP.NET MVC là một framework web được phát triển bởi Microsoft, dựa trên mô hình MVC (model–view–controller).

ASP.NET MVC được Microsoft giới thiệu lần đầu tiên tại phiên bản .Net Framework 3.5.

ASP.NET MVC bây giờ đã trở thành mã nguồn 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.

Hướng dẫn lập trình ASP.NET MVC

Hướng dẫn ASP.NET MVC bao gồm tất cả các tính năng của ASP.NET MVC. Bạn sẽ tìm hiểu các tính năng từ cơ bản đến nâng cao của ASP.Net MVC.

Các hướng dẫn cơ bản sử dụng MVC 5, nhưng nó cũng có thể áp dụng cho tất cả các phiên bản cũ và các phiên bản sắp tới của MVC.

Đối tượng độc giả

Các hướng dẫn này được thiết kế cho người mới bắt đầu và các chuyên gia muốn tìm hiểu ASP.NET MVC 5.

Điều kiện tiên quyết

Kiến thức cơ bản về .Net Framework 3.5 / 4.5, C#, Visual Studio là bắt buộc.

Kiến trúc MVC

Trong phần này, bạn sẽ có được cái nhìn tổng quan về kiến ​​trúc MVC. Kiến ​​trúc MVC đã tồn tại từ lâu trong công nghệ phần mềm.

Rất nhiều ngôn ngữ đã sử dụng kiến trúc MVC với một chút thay đổi, nhưng về mặt khái niệm thì nó vẫn giữ nguyên.

Hãy cùng chúng tôi tìm hiểu về kiến ​​trúc MVC trong ASP.NET.

MVC là viết tắt của Model, View và Controller. MVC tách ứng dụng thành ba thành phần: Model, View và Controller.

Model: đại diện cho hình dạng của dữ liệu. Nó duy trì dữ liệu của ứng dụng. Các đối tượng model lấy và lưu trữ trạng thái mô hình trong cơ sở dữ liệu.

Model đại diện cho dữ liệu.

View: là giao diện người dùng. View hiển thị dữ liệu của model cho người dùng và cũng cho phép họ sửa đổi dữ liệu.

View là giao diện người dùng.

Controller: xử lý yêu cầu của người dùng. Thông thường, người dùng tương tác với view, những tương tác này sẽ tạo ra yêu cầu tương ứng và sẽ được xử lý bởi controller. Controller trả về view thích hợp kèm theo dữ liệu model dưới dạng phản hồi.

Controller xử lý yêu cầu của người dùng.

Hình dưới đây minh họa sự tương tác giữa Model, View và Controller.

*

Hình dưới đây minh họa luồng yêu cầu của người dùng trong ASP.NET MVC.

*

Theo hình trên, khi người dùng nhập URL vào trình duyệt, nó sẽ đến máy chủ và gọi controller thích hợp.

Sau đó, controller sử dụng view với model phù hợp để tạo phản hồi và gửi lại cho người dùng. Chúng ta sẽ thấy chi tiết của sự tương tác trong một vài phần tiếp theo.

Ghé thăm MSDN để tìm hiểu chi tiết về ASP.NET MVC.

Những điểm cần nhớ:

MVC là viết tắt của Model, View và Controller.Model chịu trách nhiệm duy trì dữ liệu ứng dụng và nghiệp vụ (business).View là giao diện người dùng của ứng dụng, hiển thị dữ liệu.Controller xử lý các yêu cầu của người dùng và hiển thị view với model phù hợp.

Lợi ích của ASP.NET MVC

Nền tảng ASP.NET MVC mang lại những lợi ích sau:

Dễ dàng quản lý sự phức tạp của ứng dụng bằng cách chia ứng dụng thành ba thành phần model, view, controller
Nó không sử dụng view state hoặc server-based form. Điều này tốt cho những lập trình viên muốn quản lý hết các khía cạnh của một ứng dụng.Hỗ trợ tốt hơn cho mô hình phát triển ứng dụng hướng kiểm thử (TDD)Nó hỗ trợ tốt cho các ứng dụng được xây dựng bởi những đội có nhiều lập trình viên và thiết kế mà vẫn quản lý được tính năng của ứng dụng

Các tính năng của ASP.NET MVC

Tách bạch các tác vụ của ứng dụng (logic nhập liệu, business logic, và logic giao diện), dễ dàng kiểm thử và mặc định áp dụng hướng phát triển TDD. Tất cả các tính năng chính của mô hình MVC được cài đặt dựa trên interface và được kiểm thử bằng cách sử dụng các đối tượng mocks, mock object là các đối tượng mô phỏng các tính năng của những đối tượng thực sự trong ứng dụng.MVC là một nền tảng có khả năng mở rộng (extensible) & nhúng (pluggable). Các thành phần của ASP.NET MVC được thiết kế để chúng có thể được thay thế một cách dễ dàng hoặc dễ dàng tùy chỉnh. Bạn có thể nhúng thêm view engine, cơ chế định tuyến cho URL, cách kết xuất tham số của action-method 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 (Io
C).ASP.NET MVC có thành phần ánh xạ URL mạnh mẽ cho phép bạn xây dựng những ứng dụng có các địa chỉ URL xúc tích và dễ tìm kiếm. Các địa chỉ URL không cần phải có phần mở rộng của tên tập tin và được thiết kế để hỗ trợ các mẫu định dạng tên phù hợp với việc tối ưu hóa tìm kiếm (URL) và phù hợp với lập địa chỉ theo kiểu REST.Hỗ trợ các tính năng có sẵn của ASP.NET như cơ chế xác thực người dùng, quản lý thành viên, quyền, output caching và data caching, session và profile, quản lý trạng thái ứng dụng, hệ thống cấu hình…

Lịch sử phiên bản ASP.NET MVC

Microsoft đã giới thiệu ASP.NET MVC trong .Net Framework 3.5, kể từ đó, rất nhiều tính năng mới đã được thêm vào.

Bảng sau đây liệt kê lịch sử tóm tắt của ASP.NET MVC.

Xem thêm: Phần mềm ghép ảnh trên máy tính miễn phí nên dùng, top phần mềm ghép ảnh tốt nhất trên windows


C View
Nếu hra.edu.vn hữu ích và giúp bạn tiết kiệm thời gian

Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.