Chương 1: Tổng quan về ASP.NET và Controller trong mô hình MVC

Chuyên khảo phân tích 1 chương 1 tổng quan về asp net 2 1 controller, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo.

Trường đại học

Aptech Ltd

Chuyên ngành

Lập trình Ứng dụng Doanh nghiệp .NET

Người đăng

Ẩn danh

Thể loại

Giới thiệu học phần

2025

110
2
0

Phí lưu trữ

35 Point

Mục lục chi tiết

Giới thiệu học phần

1. Chương 1: Tổng quan về ASP.NET

1.1. Định nghĩa và mô tả về các layer trong ứng dụng Web

1.1.1. Tổng quát về phát triển ứng dụng Web

1.1.2. Các layer trong ứng dụng Web

1.1.3. Các kiến trúc của ứng dụng Web

1.1.4. Các kiểu trang Web

1.2. Giải thích về cấu trúc của một ứng dụng ASP.NET MVC

1.2.1. Sự phát triển của ASP.NET MVC

1.2.2. Ứng dụng ASP.NET

1.2.3. Mô hình thiết kế ASP.NET MVC

1.2.4. Lịch sử của MVC

1.2.4.1. ASP.NET MVC 1
1.2.4.2. ASP.NET MVC 2
1.2.4.3. ASP.NET MVC 3
1.2.4.4. ASP.NET MVC 4
1.2.4.5. ASP.NET MVC 5

1.2.5. Kiến trúc của ứng dụng ASP.NET MVC

1.3. Trình bày về các công nghệ hỗ trợ ASP.NET MVC

1.3.1. JavaScript

1.3.2. JQuery

1.3.3. AJAX

1.3.4. IIS

1.3.5. Windows Azure

1.4. Giải thích và mô tả cách tạo ứng dụng Web trên Visual Studio 2017

1.4.1. Hỗ trợ MVC trong Visual Studio 2017

1.4.2. Tạo một project ASP.NET

1.4.3. Cấu trúc của một project ASP.NET MVC

Tóm tắt

I. Khám phá Controller trong ASP

Controller là thành phần trung tâm trong kiến trúc ASP.NET MVC, đóng vai trò là bộ não điều phối mọi hoạt động của ứng dụng. Khi một người dùng gửi yêu cầu thông qua trình duyệt, chính Controller sẽ tiếp nhận, phân tích và quyết định các bước xử lý tiếp theo. Nó hoạt động như một cầu nối không thể thiếu, liên kết giữa yêu cầu của người dùng (thông qua URL) và các logic nghiệp vụ bên trong ứng dụng. Về bản chất, Controller là một lớp C# kế thừa từ lớp Controller cơ sở, chứa các phương thức công khai được gọi là Action Method. Mỗi Action Method tương ứng với một hành động cụ thể mà người dùng muốn thực hiện, ví dụ như hiển thị danh sách sản phẩm, xem chi tiết một bài viết, hoặc xử lý dữ liệu từ một biểu mẫu. Luồng hoạt động bắt đầu khi Routing trong ASP.NET ánh xạ một HTTP Request đến một Controller và một Action Method cụ thể. Controller sau đó sẽ giao tiếp với Model để truy xuất hoặc cập nhật dữ liệu. Cuối cùng, nó lựa chọn một View thích hợp và truyền dữ liệu cần thiết để View đó có thể tạo ra giao diện HTML hoàn chỉnh và trả về cho trình duyệt. Theo tài liệu 'Lập trình Ứng dụng Doanh nghiệp .NET', Controller chịu trách nhiệm 'quản lý tương tác người dùng, làm việc với model và chọn view để hiển thị giao diện'. Sự tách biệt rõ ràng này giúp ứng dụng dễ dàng bảo trì, kiểm thử và mở rộng, đặt nền móng cho một kiến trúc ASP.NET Core vững chắc và hiệu quả.

1.1. Định nghĩa Controller và vai trò trong kiến trúc ASP.NET Core

Trong kiến trúc ASP.NET CoreASP.NET MVC, Controller được định nghĩa là một lớp C# có nhiệm vụ xử lý các HTTP Request đến từ client. Vai trò chính của nó là điều phối hoạt động giữa các thành phần khác. Controller không trực tiếp chứa logic nghiệp vụ phức tạp hay mã truy cập dữ liệu; thay vào đó, nó gọi các dịch vụ hoặc lớp Model để thực hiện các tác vụ này. Nó nhận đầu vào từ người dùng (qua URL, form, query string), quyết định logic nào cần được thực thi, và cuối cùng chọn một ActionResult (thường là một ViewResult) để tạo ra phản hồi gửi về cho trình duyệt. Vai trò này giúp thực thi nguyên tắc Tách biệt các Mối quan tâm (Separation of Concerns), một trong những lợi ích cốt lõi của Mô hình MVC.

1.2. Mối quan hệ giữa Controller Model và View trong luồng xử lý

Mối quan hệ tam giác giữa Model-View-Controller là nền tảng của Mô hình MVC. Controller đóng vai trò trung gian. Khi một yêu cầu được gửi đến, Controller sẽ: 1. Giao tiếp với Model: Nó yêu cầu Model cung cấp dữ liệu hoặc thực hiện các thay đổi trên dữ liệu (ví dụ: lấy danh sách người dùng từ cơ sở dữ liệu). 2. Lựa chọn View: Sau khi có dữ liệu từ Model, Controller chọn một View cụ thể để hiển thị thông tin đó. 3. Truyền dữ liệu: Nó đóng gói dữ liệu từ Model và truyền nó cho View đã chọn. View chỉ có nhiệm vụ hiển thị dữ liệu này mà không cần biết nó đến từ đâu hay được xử lý như thế nào. Mối quan hệ này đảm bảo rằng logic xử lý (Controller), dữ liệu (Model) và giao diện (View) hoàn toàn độc lập với nhau.

II. Thách thức quản lý HTTP Request và sự ra đời của mô hình MVC

Trước khi Mô hình MVC trở nên phổ biến, các công nghệ web như ASP.NET Web Forms thường trộn lẫn mã xử lý logic và mã hiển thị giao diện trong cùng một tệp (code-behind). Cách tiếp cận này ban đầu có vẻ đơn giản nhưng nhanh chóng bộc lộ nhiều nhược điểm khi ứng dụng phát triển lớn hơn. Thách thức lớn nhất là việc quản lý và bảo trì code. Việc thay đổi giao diện có thể vô tình làm ảnh hưởng đến logic nghiệp vụ và ngược lại. Kiểm thử tự động (unit testing) trở nên cực kỳ khó khăn vì không thể tách biệt phần giao diện ra khỏi phần logic để kiểm tra độc lập. Hơn nữa, luồng xử lý request trở nên phức tạp và khó theo dõi. Mỗi trang .aspx xử lý yêu cầu của chính nó, tạo ra một cấu trúc phân mảnh và thiếu tính nhất quán. ASP.NET MVC ra đời để giải quyết trực tiếp những vấn đề này. Bằng cách giới thiệu Controller làm điểm vào duy nhất cho các yêu cầu, nó tập trung hóa việc xử lý. Tài liệu gốc nhấn mạnh, Mô hình MVC 'phân tách riêng biệt data access, business logic và presentation logic'. Điều này không chỉ giúp mã nguồn sạch sẽ, dễ đọc hơn mà còn tạo điều kiện thuận lợi cho việc phát triển song song, khi các lập trình viên front-end và back-end có thể làm việc trên View và Controller một cách độc lập mà không gây xung đột.

2.1. Phân tích luồng xử lý request trong ứng dụng Web truyền thống

Trong các mô hình cũ hơn như ASP.NET Web Forms, một yêu cầu URL thường ánh xạ trực tiếp đến một tệp vật lý trên máy chủ (ví dụ: /Products.aspx). Luồng xử lý request diễn ra trong vòng đời của trang đó, với các sự kiện như Page_Load, Button_Click. Logic xử lý được gắn chặt với các thành phần giao diện. Điều này dẫn đến sự phụ thuộc cao và khó tái sử dụng mã. Mọi thứ, từ truy vấn cơ sở dữ liệu đến cập nhật giao diện người dùng, đều có thể xảy ra trong cùng một tệp code-behind, gây khó khăn cho việc gỡ lỗi và nâng cấp hệ thống.

2.2. Khó khăn trong việc tách biệt logic nghiệp vụ và mã giao diện

Sự thiếu tách biệt rõ ràng giữa logic và giao diện là vấn đề cốt lõi của các kiến trúc cũ. Lập trình viên thường viết các đoạn mã C# hoặc VB.NET trực tiếp trong các sự kiện của control trên giao diện. Điều này làm cho việc kiểm thử logic nghiệp vụ một cách độc lập gần như là không thể, vì nó đòi hỏi phải khởi tạo toàn bộ giao diện. Hơn nữa, việc tái sử dụng logic ở các trang khác nhau cũng trở nên phức tạp, thường dẫn đến việc sao chép và dán mã, gây ra các vấn đề về bảo trì sau này. Mô hình MVC giải quyết triệt để vấn đề này bằng cách buộc logic phải nằm trong Controller và Model, còn View chỉ đơn thuần là template hiển thị.

III. Hướng dẫn Routing trong ASP

Cơ chế hoạt động của Controller gắn liền với hai khái niệm cơ bản: Routing và Action Method. Routing trong ASP.NET là hệ thống chịu trách nhiệm phân tích URL của HTTP Request đến và quyết định Controller nào, Action Method nào sẽ xử lý yêu cầu đó. Cấu hình định tuyến thường được thiết lập trong tệp App_Start/RouteConfig.cs (hoặc trong Startup.cs đối với kiến trúc ASP.NET Core). Một route-template mặc định phổ biến là {controller=Home}/{action=Index}/{id?}, có nghĩa là nếu URL là /Product/Details/5, hệ thống định tuyến sẽ tìm một Controller tên là ProductController, gọi Action Method có tên Details, và truyền vào tham số id với giá trị là 5. Sau khi định tuyến xác định được đích đến, Controller sẽ thực thi Action Method tương ứng. Mỗi Action Method là một phương thức public bên trong lớp Controller, trả về một đối tượng kế thừa từ lớp ActionResult. ActionResult là một lớp trừu tượng đại diện cho kết quả của một hành động. Loại phổ biến nhất là ViewResult, được tạo ra bằng cách gọi phương thức View(), có nhiệm vụ render một file View (thường là file .cshtml sử dụng cú pháp của Razor Pages) thành mã HTML. Các loại ActionResult khác bao gồm JsonResult, RedirectResult, ContentResult, cho phép Controller trả về nhiều loại phản hồi khác nhau, không chỉ riêng HTML.

3.1. Cấu hình Routing Cách ASP.NET ánh xạ URL tới Controller

Routing là lớp đầu tiên trong luồng xử lý request của MVC. Nó hoạt động dựa trên một bảng định tuyến (route table) chứa các mẫu URL (route templates). Khi một yêu cầu đến, công cụ định tuyến sẽ duyệt qua bảng này để tìm mẫu đầu tiên khớp với URL. Mỗi mẫu định nghĩa các placeholder như {controller}, {action} và các tham số khác. Hệ thống sẽ trích xuất các giá trị tương ứng từ URL để xác định tên Controller và Action Method cần thực thi. Cơ chế này cho phép tạo ra các URL thân thiện với người dùng và máy tìm kiếm (SEO-friendly URLs) thay vì các URL trỏ đến tệp vật lý.

3.2. Tìm hiểu về Action Method và các loại ActionResult phổ biến

Một Action Method là trái tim của một Controller. Nó chứa logic để xử lý một yêu cầu cụ thể. Kết quả trả về của nó phải là một kiểu kế thừa từ ActionResult. Ngoài ViewResult dùng để trả về trang HTML, các loại ActionResult phổ biến khác bao gồm: JsonResult (trả về dữ liệu định dạng JSON, thường dùng cho Web API và AJAX), RedirectToActionResult (chuyển hướng người dùng đến một action khác), ContentResult (trả về một chuỗi văn bản thuần túy), và FileResult (trả về một tệp tin để người dùng tải xuống). Sự đa dạng này giúp Controller trở nên cực kỳ linh hoạt trong việc tạo ra các loại phản hồi khác nhau.

IV. Bí quyết xử lý dữ liệu với Model Binding và Dependency Injection

Để Controller hoạt động hiệu quả, nó cần có cơ chế nhận và xử lý dữ liệu từ HTTP Request một cách thông minh. Model Binding là một tính năng mạnh mẽ của ASP.NET MVC giúp tự động hóa quá trình này. Thay vì phải truy xuất thủ công từng giá trị từ form, query string hay route data (ví dụ: Request.Form["name"]), lập trình viên có thể định nghĩa một đối tượng Model (một lớp C# đơn giản) làm tham số cho Action Method. Framework sẽ tự động đọc dữ liệu từ request và khởi tạo một đối tượng Model với các thuộc tính tương ứng. Điều này giúp mã trong Controller trở nên sạch sẽ, ngắn gọn và dễ đọc hơn rất nhiều. Một kỹ thuật quan trọng khác để tối ưu hóa Controller là Dependency Injection (DI). DI là một mẫu thiết kế phần mềm cho phép tách rời sự phụ thuộc giữa các thành phần. Thay vì Controller tự tạo ra các đối tượng mà nó cần (ví dụ như một dịch vụ truy cập cơ sở dữ liệu), các đối tượng này sẽ được 'tiêm' vào Controller thông qua hàm khởi tạo (constructor). Trong kiến trúc ASP.NET Core, DI được tích hợp sẵn và là phương pháp được khuyến khích. Việc sử dụng DI giúp Controller không còn phụ thuộc vào các triển khai cụ thể, làm cho việc thay thế các thành phần và viết kiểm thử đơn vị (unit test) trở nên dễ dàng hơn bao giờ hết.

4.1. Kỹ thuật Model Binding Tự động ánh xạ dữ liệu HTTP Request

Model Binding là một cơ chế tự động của ASP.NET MVC giúp chuyển đổi dữ liệu từ HTTP Request (bao gồm route data, query string, và form data) thành các tham số của Action Method. Ví dụ, nếu một form POST có các input name="FirstName"name="LastName", một Action Method có tham số là một đối tượng Person với các thuộc tính FirstNameLastName sẽ tự động được điền dữ liệu. Kỹ thuật này giảm thiểu đáng kể lượng mã lặp đi lặp lại cần thiết để xử lý dữ liệu đầu vào và tăng cường tính bảo mật bằng cách giảm thiểu lỗi do lập trình viên gây ra.

4.2. Tối ưu hóa với Dependency Injection trong Controller

Dependency Injection (DI) là một nguyên tắc cốt lõi trong phát triển phần mềm hiện đại, đặc biệt là với kiến trúc ASP.NET Core. Thay vì new MyService() bên trong Controller, các dịch vụ được đăng ký trong container DI và được tiêm vào constructor của Controller. Điều này tuân thủ nguyên tắc Đảo ngược sự Phụ thuộc (Dependency Inversion Principle), giúp mã nguồn trở nên linh hoạt, dễ bảo trì và dễ kiểm thử. Lập trình viên có thể dễ dàng thay thế một dịch vụ thật bằng một đối tượng giả (mock object) khi viết unit test cho Controller.

V. Xây dựng Controller đầu tiên với C và Visual Studio 2017

Việc tạo một Controller trong ASP.NET MVC rất đơn giản nhờ sự hỗ trợ mạnh mẽ từ môi trường phát triển tích hợp (IDE) như Visual Studio. Theo tài liệu hướng dẫn, quá trình bắt đầu bằng việc tạo một project mới với template 'ASP.NET Web Application'. Sau khi chọn template MVC, Visual Studio sẽ tự động tạo ra một cấu trúc thư mục chuẩn, bao gồm thư mục Controllers, Models, và Views. Để thêm một Controller mới, chỉ cần nhấp chuột phải vào thư mục Controllers, chọn Add > Controller. Visual Studio cung cấp nhiều tùy chọn tạo sẵn, từ một Controller rỗng đến một Controller có sẵn các hành động CRUD (Create, Read, Update, Delete) dựa trên một lớp Model hiện có. Khi một Controller được tạo, ví dụ HomeController.cs, nó sẽ chứa một Action Method mặc định là Index(). Phương thức này thường trả về một ViewResult bằng lệnh return View();. Framework sẽ tự động tìm một tệp View tương ứng tại đường dẫn Views/Home/Index.cshtml. Lập trình viên có thể bắt đầu viết mã C# bên trong các Action Method để thực hiện logic, tương tác với Model và truyền dữ liệu tới View. Việc tích hợp sẵn các công cụ gỡ lỗi, IntelliSense và các template tạo sẵn trong Visual Studio giúp tăng tốc đáng kể quá trình phát triển và giảm thiểu lỗi.

5.1. Quy trình tạo một project ASP.NET MVC trên Visual Studio

Để bắt đầu, khởi động Visual Studio và chọn File > New > Project. Trong hộp thoại New Project, chọn template 'ASP.NET Web Application (.NET Framework)'. Sau khi đặt tên cho project, một hộp thoại tiếp theo sẽ xuất hiện để chọn loại project web. Chọn 'MVC' và nhấn OK. Visual Studio sẽ tạo ra một project hoàn chỉnh với cấu trúc thư mục chuẩn, bao gồm các Controller, View, và Model mẫu, cùng với các thư viện cần thiết như jQuery và Bootstrap, giúp người mới bắt đầu có một nền tảng vững chắc để xây dựng ứng dụng.

5.2. Tích hợp Controller với Web API để tạo dịch vụ RESTful

Ngoài việc trả về các trang HTML, Controller còn là nền tảng để xây dựng Web API. Một API Controller kế thừa từ lớp ApiController (trong ASP.NET Web API 2) hoặc sử dụng các attribute như [ApiController] (trong ASP.NET Core). Các Action Method trong API Controller thường trả về dữ liệu thuần túy như JSON hoặc XML thay vì ViewResult. Điều này cho phép ứng dụng web cung cấp dữ liệu cho các client khác như ứng dụng di động hoặc các ứng dụng single-page (SPA) được xây dựng bằng JavaScript. Sự kết hợp giữa MVC cho giao diện người dùng và Web API cho dịch vụ dữ liệu là một kiến trúc rất phổ biến và mạnh mẽ.

VI. Tổng kết vai trò Controller và tương lai với Razor Pages

Tổng kết lại, Controller là một thành phần không thể thiếu, là xương sống của kiến trúc ASP.NET MVC. Nó thực hiện xuất sắc nhiệm vụ tách biệt các mối quan tâm, tập trung hóa logic xử lý yêu cầu và điều phối luồng dữ liệu giữa Model và View. Những lợi ích mà Mô hình MVC mang lại, như khả năng kiểm thử, bảo trì và phát triển song song, đều xoay quanh vai trò trung tâm của Controller. Từ việc xử lý Routing trong ASP.NET, thực thi các Action Method, cho đến việc tận dụng Model BindingDependency Injection, Controller cung cấp một bộ công cụ mạnh mẽ và linh hoạt để xây dựng các ứng dụng web phức tạp. Tuy nhiên, công nghệ không ngừng phát triển. Với sự ra đời của kiến trúc ASP.NET Core, Microsoft đã giới thiệu một mô hình mới gọi là Razor Pages. Razor Pages là một cách tiếp cận page-centric, trong đó mã xử lý logic và mã giao diện được kết hợp trong cùng một cặp tệp (.cshtml và .cshtml.cs), tương tự như mô hình code-behind của Web Forms nhưng hiện đại và gọn nhẹ hơn. Razor Pages phù hợp hơn cho các ứng dụng đơn giản, tập trung vào các trang riêng lẻ. Mặc dù vậy, Mô hình MVC với Controller vẫn là lựa chọn hàng đầu cho các ứng dụng lớn, phức tạp, nơi việc tách biệt rõ ràng giữa các thành phần là yếu tố sống còn.

6.1. Tóm lược lợi ích của việc phân tách logic trong mô hình MVC

Lợi ích chính của Mô hình MVC là sự phân tách rõ ràng. Controller chứa logic điều khiển luồng, Model chứa logic nghiệp vụ và dữ liệu, còn View chỉ chịu trách nhiệm hiển thị. Sự phân tách này mang lại: 1. Khả năng bảo trì cao: Thay đổi ở một thành phần ít ảnh hưởng đến các thành phần khác. 2. Khả năng kiểm thử: Có thể viết unit test cho Controller và Model một cách độc lập mà không cần đến giao diện. 3. Phát triển song song: Các nhóm khác nhau có thể làm việc đồng thời trên các phần khác nhau của ứng dụng.

6.2. So sánh Controller based MVC và kiến trúc Razor Pages mới

Razor Pages là một sự bổ sung cho kiến trúc ASP.NET Core, không phải là sự thay thế hoàn toàn cho MVC. Trong khi MVC là một mô hình controller-centric, phù hợp cho các ứng dụng có logic phức tạp và nhiều hành động liên quan đến một model, thì Razor Pages là một mô hình page-centric. Mỗi trang Razor là một đơn vị khép kín, xử lý các yêu cầu của riêng nó. Điều này làm cho Razor Pages trở nên đơn giản và dễ tiếp cận hơn cho các tác vụ dựa trên trang, chẳng hạn như các biểu mẫu CRUD đơn giản. Lựa chọn giữa hai mô hình phụ thuộc vào độ phức tạp và cấu trúc của ứng dụng cần xây dựng.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

14/07/2025
1 chương 1 tổng quan về asp net 2 1 controller

Trích đoạn nội dung tài liệu

Lập trình Ứng dụng Doanh nghiệp .NET Giới thiệu học phần - Số tín chỉ: 3 tín chỉ - Mục tiêu: + Kiến thức: Trang bị cho sinh viên cách xây dựng trang web bằng công nghệ ASP.NET, lập trình thao tác với CDSL, hiểu về điện toán đám mây. + Kỹ năng: Sinh viên biết vận dụng các kiến thức về web, các ngôn ngữ HTML, ASP.NET, SQL Server, C# và các công cụ thiết kế web để xây dựng một trang web. + Năng lực tự chủ và trách nhiệm: Thấy được ý nghƿa của các bài học từ đó có thái độ chủ động động, tích cực hĕng say trong quá trình học tập, nghiên cứu. - Hình thức thi: Thực hành phòng máy © Aptech Ltd.

Tổng quan về ASP.NET Nội dung  Định nghĩa và mô tả về các layer trong ứng dụng Web  Giải thích về cấu trúc của một ứng dụng ASP.NET MVC  Trình bày về các công nghệ hỗ trợ ASP.NET MVC  Giải thích và mô tả cách tạo ứng dụng Web trên Visual Studio 2017 3 Tổng quát về phát triển ứng dụng Web  Ứng dụng Web: Là các ứng dụng chạy trên Web server và được truy cập trên các trình duyệt web. Cho phép chia sẻ và truy cập thông tin Internet ở bất cứ đâu và tại bất cứ thời điểm nào. Cho phép thực hiện các giao dịch thương mại, hay được gọi là ứng dụng E- commerce. 4 Các layer trong ứng dụng Web  Các ứng dụng Web thường được chia thành 3 layer: Presentation layer: Cho phép người dùng tương tác với ứng dụng.

Business logic layer: Điều khiển luồng thực thi và giao tiếp giữa Presentation layer và Data layer. Data layer: Cung cấp dữ liệu được lưu trữ trong cơ sở dữ liệu cho Business logic layer. 5 Các layer trong ứng dụng Web  Hình dưới đây biểu thị các layer trong ứng dụng Web: 6 Các kiến trúc của ứng dụng Web  Kiến trúc của một ứng dụng phụ thuộc vào hệ thống mà các layer của ứng dụng được phân phối và giao tiếp với nhau.  Một ứng dụng có thể dựa theo 1 trong các loại kiến trúc sau: Đơn tầng: cả 3 layer được tích hợp với nhau và được cài đặt trên 1 máy tính đơn.

Hai tầng: 3 layer được phân bổ trên 2 tầng, 1 client và 1 server. Ba tầng: 3 lớp của ứng dụng được phân bổ trên khắp các máy tính khác nhau. Đa tầng: các thành phần của kiến trúc 3 tầng được phân tách rõ ràng hơn. 7 Các kiểu trang Web  Một ứng dụng Web chứa nhiều trang Web.

 Một trang Web có thể được phân thành 2 loại: Trang Web tĩnh: Chỉ chứa ngôn ngữ đánh dấu siêu văn bản (HTML) để trình bày nội dung tới người dùng. Trang Web động: Chứa HTML kết hợp với các dòng lệnh phía server và phía client để phản hồi lại với các hành động của người dùng. 8 Sự phát triển của ASP.NET MVC  ASP.NET MVC là một Framework phát triển các ứng dụng Web động, sử dụng.  Trước ASP.NET MVC, các ứng dụng web động được phát triển trên .NET Framework bằng cách sử dụng: ASP.NET Web Forms ASP.NET Web pages 9 Ứng dụng ASP.NET: Là một công nghệ phía server, sử dụng các tính năng nâng cao, cho phép bạn tạo ra các ứng dụng web động.

Bao gồm các trang web .aspx kết hợp giữa các dòng lệnh bên phía client và server để xây dựng các Website động. Ứng dụng có thể được triển khai trên một Web server như Internet Information Services (IIS), là Web server của nền tảng Windows. 10 Ứng dụng ASP.NET  Quy trình yêu cầu – phản hồi của trang Web ASP.NET bao gồm các bước sau: Trình duyệt gửi 1 yêu cầu cho 1 trang Web ASP. Khi yêu cầu đến, Server IIS chặn yêu cầu này, tải xuống tập tin được yêu cầu, chuyển tiếp nó tới ASP.NET runtime để xử lý.NET runtime có chứa công cụ dòng lệnh ASP.NET xử lý trang ASP.NET được yêu cầu và tạo ra phản hồi.

Server IIS gửi lại phản hồi tới Web server đã yêu cầu trang web. 11 Ứng dụng ASP.NET  Hình dưới đây biểu thị luồng yêu cầu – phản hồi cho một trang Web ASP.NET MVC  ASP.NET MVC dựa trên mô hình thiết kế MVC cho phép bạn xây dựng các giải pháp lập trình.  Mô hình thiết kế MVC: Cho phép bạn lập trình ứng dụng Web với các thành phần được kết nối linh hoạt. Phân tách riêng biệt data access, business logic và presentation logic  Khi sử dụng mô hình thiết kế MVC, một ứng dụng Web được chia thành 3 phần:  M odels: Các lớp đại diện cho dữ liệu của ứng dụng và sử dụng logic xác thực để thực thi các quy tắc nghiệp vụ cho dữ liệu đó.

 V iews: Các tệp mẫu mà ứng dụng của bạn sử dụng để tạo động các phản hồi HTML.  C ontrollers: Các lớp xử lý các yêu cầu trình duyệt đến, truy xuất dữ liệu mô hình, sau đó chỉ định các mẫu xem trả về phản hồi cho trình duyệt.NET MVC  Models: Các đối tượng Models là một phần của ứng dụng, các đối tượng này thiết lập logic của phần dữ liệu của ứng dụng. Thông thường, các đối tượng model lấy và lưu trạng thái của model trong CSDL. Ví dụ như, một đối tượng Employee (nhân viên) sẽ lấy dữ liệu từ CSDL, thao tác trên dữ liệu và sẽ cập nhật dữ liệu trở lại vào bảng Eployees ở SQL Server.

 Views: Views là các thành phần dùng để hiển thị giao diện người dùng (UI). Thông thường, view được tạo dựa vào thông tin dữ liệu model. Ví dụ như, view dùng để cập nhật bảng Employees sẽ hiển thị các hộp văn bản, drop-down list, và các check box dựa trên trạng thái hiện tại của một đối tượng Employee. View là giao diện người dùng ASP.NET MVC Controllers: Controller là các thành phần dùng để quản lý tương tác người dùng, làm việc với model và chọn view để hiển thị giao diện người dùng.

Trong một ứng dụng MVC, view chỉ được dùng để hiển thị thông tin, controller chịu trách nhiệm quản lý và đáp trả nội dung người dùng nhập và tương tác với người dùng. Controller điều khiểu các nhiều cầu từ Client. Ví dụ: controller sẽ quản lý các dữ liệu người dùng gởi lên (query-string values) và gởi các giá trị đó đến model, model sẽ lấy dữ liệu từ CSDL nhờ vào các giá trị này ASP.NET MVC  Hình dưới đây biểu thị giao tiếp giữa các thành phần Model, View và Controller: 17 ASP.NET MVC  Vì ASP.NET dựa trên mô hình MVC, nó cung cấp các lợi ích sau: Phân tách các quan hệ: Cho phép bạn chắc chắn rằng các quan hệ ứng dụng ở các thành phần phần mềm khác nhau và độc lập. Đơn giản hóa kiểm thử và bảo trì: Cho phép kiểm thử từng thành phần một cách độc lập.

Điều này giúp bạn đảm bảo rằng nó hoạt động theo từng yêu cầu của ứng dụng và từ đó, đơn giản hóa quy trình kiểm thử, bảo trì và khắc phục sự cố Tính mở rộng: Cho phép Model bao gồm 1 tập hợp các thành phần độc lập, bạn có thể dễ dàng chỉnh sửa hoặc thay thế dựa trên yêu cầu ứng dụng. 18 Lịch sử của MVC  Các phiên bản của MVC: ASP.NET MVC 1 ASP.NET MVC 2 ASP.NET MVC 3 ASP.NET MVC 4 ASP.NET MVC 5 19 Lịch sử của MVC ASP.NET MVC 1 •Bản đầu tiên của ASP.NET MVC, phát hành vào 13/3/2009. •Hỗ trợ Visual Studio 2008 và Visual Studio 2008 SP1 để phát triển các ứng dụng ASP. 20 Lịch sử của MVC ASP.NET MVC 2 • Phát hành vào 10/3/2020 với.

• Hỗ trợ Visual Studio 2008 and 2010 để phát triển ứng dụng ASP.NET MVC 2 bao gồm các tính năng chính: • Trình hỗ trợ ý nghĩa của HTML • Chú thích dữ liệu • Xác thực phía Client • Tách ứng dụng thành các mô-đun • Bộ điều khiển bất đồng bộ 21 Lịch sử của MVC ASP.NET MVC 3 •Phát hành vào 13/1/2011 với NET Framework 4. •Hỗ trợ Visual Studio 2010 để phát triển các ứng dụng ASP. •Phiên bản này bao gồm các tính năng chính như: •Công cụ Razor view •Cải thiện hỗ trợ chú thích dữ liệu •Hỗ trợ Entity Framework Code •Hỗ trợ ViewBag chuyển dữ liệu từ Controller sang view •Hỗ trợ Action Filters •Hỗ trợ JavaScript và jQuery 22 Lịch sử của MVC ASP.NET MVC 4 •Được phát hành vào 15/8/2012 với. •Hỗ trợ Visual Studio 2010 SP1 và Visual Studio 2012 để xây dựng ứng dụng ASP.

•Phiên bản này có các tính năng chính: •ASP.NET Web API •Trình điều khiển bất đồng bộ với Task Support •Hỗ trợ Windows Azure SDK 23 Lịch sử của MVC ASP.NET MVC 5 •Phiên bản này được phát hành vào 17/10/2013 với. •Hỗ trợ Visual Studio 2013 để phát triển các ứng dụng ASP.NET MVC 5 •Phiên bản có cách tính năng chính: •Định danh ASP.NET Web API 2 24 Kiến trúc của ứng dụng ASP.NET MVC  Kiến trúc cơ bản của một ứng dụng ASP.NET MVC: MVC Framework Công cụ định tuyến Cấu hình định tuyến Controller Model Công cụ View View  Mỗi thành phần giao tiếp để xử lý các yêu cầu đến ứng dụng ASP.  Quá trình xử lý một yêu cầu được gửi đến bao gồm một loạt các bước mà các thành phần này thực hiện. 25 Kiến trúc của ứng dụng ASP.NET MVC  Các bước mà các thành phần của ASP.NET MVC Framework thực hiện khi xử lý một yêu cầu đến: Trình duyệt gửi một yêu cầu đến ứng dụng ASP.NET MVC MVC Framework chuyển tiếp yêu cầu tới công cụ định tuyến Công cụ định tuyến kiểm tra cấu hình định tuyến của ứng dụng để tìm controller thích hợp xử lý yêu cầu.

Khi tìm thấy 1 controller, nó được gọi đến Khi không tìm thấy controller phù hợp, công cụ định tuyến sẽ chỉ ra rằng không tìn thấy controller và MVC Framework sẽ thông báo lỗi với trình duyệt Controller giao tiếp với Model. Controller yêu cầu công cụ view cho một view dựa theo dữ liệu của Model. Công cụ view trả về kết quả tới controller Controller gửi lại kết quả dưới dạng phản hồi HTTTP cho trình duyệt 26 Kiến trúc của ứng dụng ASP.NET MVC  Hình dưới đây biểu thị các bước mà các thành phần của ASP.NET MVC Framework thực hiện khi xử lý yêu cầu đến: 27 Các công nghệ hỗ trợ  Ứng dụng ASP.NET MVC hỗ trợ nhiều công nghệ để tạo ra ứng dụng Web động và có tính phản hồi.  Một số công nghệ hỗ trợ bạn có thể sử dụng khi tạo một ứng dụng ASP.NET MVC: JavaScript JQuery Asynchronous JavaScript and XML (AJAX) IIS Windows Azure 28 JavaScript Là một ngôn ngữ phía client cho phép một ứng dụng Web phản hồi lại các yêu cầu người dùng mà không cần tương tác với Web server.

Cho phép tạo ra các ứng dụng Web có tính phản hồi, nâng cao trải nghiệm người dùng.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ