Tổng quan về giáo trình

Giáo trình Lập Trình Web (ấn bản năm 2023) do nhóm tác giả Nguyễn Đình Ánh, Nguyễn Huy Cường, Mai Ngọc Thu, Trần Đăng Khoa và Phạm Hữu Kỳ biên soạn, được lưu hành trong hệ thống đào tạo của Đại học Công nghệ TP.HCM (HUTECH) trực thuộc Bộ Giáo dục và Đào tạo. Trong chương trình đào tạo đại học ngành Công nghệ thông tin và Kỹ thuật phần mềm, môn học Lập trình Web giữ vị trí học phần chuyên ngành cốt lõi, cung cấp kiến thức nền tảng và chuyên sâu về kỹ thuật phát triển ứng dụng web trên nền tảng Microsoft .NET.

Mục tiêu học tập của giáo trình được thiết lập nhằm trang bị cho sinh viên năng lực phân tích, thiết kế và triển khai các ứng dụng web hiệu năng cao. Người học sau khi hoàn thành chương trình có khả năng nắm vững nguyên lý hoạt động của Common Language Runtime (CLR), làm chủ chu trình vòng đời của giao thức HTTP qua các đối tượng cốt lõi, và vận dụng thành thạo kiến trúc Model-View-Controller (MVC) trên cả hai nền tảng ASP.NET truyền thống và ASP.NET Core.

Cấu trúc giáo trình gồm 12 bài học được tổ chức theo tiến trình từ cơ bản đến nâng cao. Điểm đặc thù trong cách tiếp cận của tài liệu là phương pháp đối sánh trực tiếp giữa các thế hệ công nghệ: phân tích quá trình chuyển dịch từ cơ chế Web Forms, ASP.NET truyền thống sang kiến trúc hiện đại ASP.NET Core MVC; đồng thời kết hợp song song giữa lý thuyết tổ chức hệ thống với quy trình thực hành cụ thể trên môi trường Microsoft Visual Studio.


Nội dung kiến thức cốt lõi

Các chương và chủ đề chính

Giáo trình được cấu trúc thành 12 bài học với trình tự phát triển nội dung chặt chẽ:

+-----------------------------------------------------------------------------------+
| 1. Nền tảng hạ tầng & Đối tượng cơ bản (Bài 1, Bài 2)                             |
|    - Kiến trúc CLR, MSIL, JIT, web.config, Async I/O, WebSockets, Anti-XSS        |
|    - HttpRequest, HttpResponse, HttpServer, HttpCookie, Session State             |
+-----------------------------------------------------------------------------------+
                                         │
                                         ▼
+-----------------------------------------------------------------------------------+
| 2. Tầng dữ liệu & Giao diện phía Client (Bài 3, Bài 4)                            |
|    - ADO.NET (Connection, Command, DataReader, DataAdapter), XML Data Binding     |
|    - LinqDataSource, LINQ to SQL/Objects/XML, Tích hợp thư viện jQuery            |
+-----------------------------------------------------------------------------------+
                                         │
                                         ▼
+-----------------------------------------------------------------------------------+
| 3. Kiến trúc MVC & Nền tảng ASP.NET Core (Bài 5, Bài 6, Bài 7)                    |
|    - Mô hình MVC vs Web Forms, Cơ chế Routing cơ bản                              |
|    - Kiến trúc .NET Framework vs .NET Core, Phân tách Model - View - Controller   |
+-----------------------------------------------------------------------------------+
                                         │
                                         ▼
+-----------------------------------------------------------------------------------+
| 4. Xử lý luồng dữ liệu, Trạng thái & Định tuyến Core (Bài 8, Bài 9, Bài 10)       |
|    - Cơ chế truyền dữ liệu: ViewBag, ViewData, Strongly Typed Views, ViewModel    |
|    - TempData, Hệ thống URL Routing nâng cao, Cookies & Sessions trong Core       |
+-----------------------------------------------------------------------------------+
                                         │
                                         ▼
+-----------------------------------------------------------------------------------+
| 5. ORM hiện đại & Kiểm soát an toàn hệ thống (Bài 11, Bài 12)                     |
|    - Entity Framework Core: Code First, Database First, Repository Pattern, CRUD  |
|    - Bảo mật: Xác thực (Authentication), Phân quyền, ASP.NET Core Identity        |
+-----------------------------------------------------------------------------------+
  • Bài 1: Tổng quan về ASP.NET: Phân tích bản chất của Active Server Pages .NET, kiến trúc đa ngôn ngữ dịch qua Microsoft Intermediate Language (MSIL) và bộ biên dịch Just-In-Time (JIT) thực thi trên CLR. Giới thiệu các cải tiến xử lý bất đồng bộ I/O trên HttpRequest/HttpResponse, hỗ trợ Task, từ khóa async/await, HttpTaskAsyncHandler, cơ chế kiểm tra tính hợp lệ trì hoãn (lazy request validation), thư viện AntiXssEncoder, giao thức WebSockets và kỹ thuật Bundling & Minification.
  • Bài 2: Các lớp sử dụng trong ASP.NET: Trình bày chi tiết các lớp HttpRequest (phương thức GET, POST qua Form Collection), HttpResponse (thuộc tính Buffer, các phương thức Clear(), Flush(), Redirect(), Write()), HttpServer (MachineName, ScriptTimeout, HtmlEncode, HtmlDecode, URLEncode, Transfer), cùng cơ chế quản lý trạng thái qua HttpCookieSession (SessionID, TimeOut, Session_OnStart, Session_OnEnd, Abandon(), Remove()).
  • Bài 3: Truy cập dữ liệu: Trình bày kiến trúc ADO.NET Data Provider (SqlConnection, SqlCommand, SqlDataReader, SqlDataAdapter, DataSet), truy xuất dữ liệu XML, điều khiển khai báo SqlDataSource và cú pháp truy vấn tích hợp LINQ (LINQ to Objects, LINQ to DataSet, LINQ to SQL, LINQ to XML, LinqDataSource).
  • Bài 4: Lập trình với jQuery: Hướng dẫn tích hợp thư viện JavaScript/jQuery vào môi trường ASP.NET, kỹ thuật bắt sự kiện sẵn sàng của tài liệu DOM và các hàm API tương tác giao diện.
  • Bài 5: Tổng quan về ASP.NET MVC: Phân tích nguyên lý phân tách trách nhiệm (Separation of Concerns) trong mô hình ba tầng Model, View, Controller; so sánh các đặc tính giữa ASP.NET Web Forms và ASP.NET MVC; cấu hình bảng định tuyến URL Routing.
  • Bài 6: Tổng quan về ASP.NET Core: Đối chiếu kiến trúc giữa .NET Framework và .NET Core; phân tích các ưu điểm về hiệu năng, tính đa nền tảng và quy trình khởi tạo dự án từ mẫu cấu hình trống (ASP.NET Core Empty).
  • Bài 7: Tổng quan về ASP.NET Core MVC: Phân tích chi tiết vai trò của Model (nghiệp vụ logic và truy xuất dữ liệu), Controller (tiếp nhận và điều phối request), và View (kết xuất giao diện HTML); quy trình luân chuyển dữ liệu hoàn chỉnh trong một chu trình xử lý request.
  • Bài 8: Kỹ thuật truyền dữ liệu trong ASP.NET Core MVC: Khảo sát toàn diện 5 cơ chế truyền dữ liệu giữa Controller và View:
    • ViewBag: Cơ chế truyền kiểu dynamic, không yêu cầu ép kiểu tường minh.
    • ViewData: Cấu trúc từ điển dạng ViewDataDictionary truy xuất qua khóa chuỗi string key.
    • Strongly Typed Views: Ràng buộc kiểu dữ liệu tĩnh trực tiếp giữa Model và giao diện View thông qua chỉ thị @model.
    • ViewModel: Lớp đối tượng chuyên biệt đóng gói dữ liệu phục vụ riêng cho các hiển thị phức tạp.
    • TempData: Lưu trữ dữ liệu ngắn hạn tồn tại qua một lượt chuyển hướng (Redirect), lưu trữ trong session nội vi.
  • Bài 9: Định tuyến trong ASP.NET Core MVC: Cơ chế phân tích URI, đối sánh mẫu định tuyến (Routing Templates), phân tách tham số và ánh xạ tới các Action methods cụ thể của Controller.
  • Bài 10: Quản lý trạng thái trong ASP.NET Core MVC: Cài đặt và cấu hình hệ thống lưu trữ trạng thái phiên làm việc không phụ thuộc trạng thái (stateless) thông qua CookieAuthenticationISession middleware.
  • Bài 11: Entity Framework Core: Giới thiệu công nghệ Object-Relational Mapping (ORM); hai phương pháp tiếp cận mô hình hóa dữ liệu gồm Code First và Database First; thiết lập DbContext, cấu hình nhà cung cấp dữ liệu (Database Providers), thực thi các thao tác CRUD và triển khai mẫu thiết kế Repository (Repository Pattern).
  • Bài 12: Bảo mật cho ứng dụng ASP.NET Core MVC: Thiết lập hệ thống bảo mật đa tầng; quy trình Xác thực (Authentication) và Phân quyền (Authorization); cài đặt khung bảo mật ASP.NET Core Identity để quản lý người dùng, mật khẩu băm và phiên đăng nhập.

Bảng đối sánh kỹ thuật truyền dữ liệu trong ASP.NET Core MVC (Bài 8)

Phương thức Cơ chế lưu trữ & Kiểu dữ liệu Phạm vi hiệu lực Ràng buộc kiểm tra kiểu (Type safety)
ViewData ViewDataDictionary (Key/Value) Request hiện hành (Controller $\to$ View) Lúc thực thi (Runtime - cần ép kiểu)
ViewBag Đối tượng động (dynamic) Request hiện hành (Controller $\to$ View) Lúc thực thi (Runtime - không cần ép kiểu)
Strongly Typed View Thuộc tính @model gắn chặt với Type Request hiện hành (Model $\to$ View) Lúc biên dịch (Compile-time)
ViewModel Lớp DTO/Model tổng hợp tùy biến Request hiện hành (Tập hợp nhiều nguồn) Lúc biên dịch (Compile-time)
TempData TempDataDictionary (Dựa trên Session) Hai Request liên tiếp (Hỗ trợ Redirect) Lúc thực thi (Runtime - cần ép kiểu)

Kiến thức nền tảng và nguyên lý kỹ thuật

Hệ thống kiến thức trong tài liệu dựa trên các nguyên lý khoa học máy tính và kỹ thuật phần mềm chuẩn mực:

  • Nguyên lý thực thi mã lệnh: Cơ chế chuyển dịch mã nguồn từ ngôn ngữ cấp cao (C#, Visual Basic) sang mã trung gian MSIL, sau đó được CLR quản lý bộ nhớ (Garbage Collection), xử lý tuyến trình (Thread Management) và dịch ra mã máy bản địa thông qua bộ biên dịch JIT.
  • Mô hình kiến trúc phần mềm: Áp dụng nguyên lý phân tách thành phần độc lập trong kiến trúc 3 lớp (3-tier Architecture) và mẫu thiết kế MVC, giúp cô lập lớp trình diễn (Presentation Layer), lớp nghiệp vụ (Business Logic Layer) và lớp truy xuất dữ liệu (Data Access Layer - DAL).
  • Cơ chế ORM và trừu tượng hóa dữ liệu: Sử dụng Entity Framework Core để ánh xạ các bảng quan hệ cơ sở dữ liệu quan hệ thành các thực thể lớp (Entities/Classes), giải phóng lập trình viên khỏi việc viết truy vấn SQL thuần trong các tác vụ cơ bản.

Kỹ năng phát triển chuyên môn

  • Kỹ năng lập trình hệ thống: Khởi tạo, cấu hình và tổ chức mã nguồn trong các tập tin cấu hình web.config, appsettings.json, thiết lập middleware và pipeline xử lý HTTP request.
  • Kỹ năng thiết kế tầng dữ liệu: Xây dựng cơ sở dữ liệu qua cú pháp C# với EF Core Code First (Migration, DbContext), viết truy vấn dữ liệu có cấu trúc bằng LINQ (Cú pháp biểu thức truy vấn và cú pháp phương thức).
  • Kỹ năng kiểm soát an ninh ứng dụng: Triển khai cơ chế chống tấn công Cross-Site Scripting (Anti-XSS), lọc dữ liệu biểu mẫu qua Unvalidated Request, ngăn ngừa giả mạo request, thiết lập xác thực danh tính người dùng và phân quyền truy cập hệ thống theo vai trò (Role-based Authorization).

Phương pháp giảng dạy và học tập

Giáo trình được thiết kế phục vụ mô hình giảng dạy kết hợp giữa thuyết giảng lý thuyết và hướng dẫn thực hành chuyên sâu tại phòng máy:

+------------------------------------------------------------------------------------+
|                               TIẾN TRÌNH HỌC TẬP TỪNG BÀI                           |
+------------------------------------------------------------------------------------+
|  [Đọc trước giáo trình]                                                            |
|  - Nghiên cứu khái niệm, cấu trúc lớp, sơ đồ luồng dữ liệu                         |
|                                         │                                          |
|                                         ▼                                          |
|  [Thực hành bài Lab trên IDE]                                                      |
|  - Khởi tạo Project trên Visual Studio (Empty / Web App / MVC)                    |
|  - Xây dựng Model, Controller, View, DbContext, Migration                         |
|                                         │                                          |
|                                         ▼                                          |
|  [Triển khai Đồ án thực hành tổng hợp]                                             |
|  - Dự án WebCalculator, Web quản lý tin 3 tầng, Ứng dụng BigSchool                 |
|                                         │                                          |
|                                         ▼                                          |
|  [Đánh giá kết quả (50% Quá trình + 50% Thi vấn đáp Đồ án)]                       |
+------------------------------------------------------------------------------------+

Hệ thống bài tập và nghiên cứu tình huống (Case Studies)

Mỗi bài học đều tích hợp các bài tập ứng dụng trực tiếp trên Microsoft Visual Studio:

  • Bài thực hành WebCalculator (Bài 1): Hướng dẫn sinh viên làm quen với Visual Studio, thiết kế giao diện webform đơn giản, cấu hình công cụ Toolbox, quản lý cửa sổ Solution Explorer/Class View, viết mã xử lý sự kiện và thao tác gỡ lỗi (Debugging với F5/Ctrl-F5).
  • Ứng dụng Web đặt hàng và truyền tham số (Bài 2): Xây dựng các form tiếp nhận thông tin người dùng, sử dụng đối tượng HttpRequest để đọc dữ liệu và xử lý điều hướng qua HttpResponse.Redirect.
  • Dự án Quản lý tin tức theo kiến trúc 3 tầng (Bài 3): Xây dựng hệ thống quản lý tin tức hoàn chỉnh, thiết kế cơ sở dữ liệu DB_TEST.MDF với các bảng HangHoa, KhoHang. Cài đặt đầy đủ các lớp nghiệp vụ và truy xuất dữ liệu: LinhVucInfo, BanTinInfo, BanTinController, LinhVucController, LinhVucDAL, BanTinDAL, DataService. Cấu hình điều khiển hiển thị GridView, phân trang, sắp xếp và các thao tác cập nhật dữ liệu qua ADO.NET và LINQ.
  • Dự án BigSchool (Bài 1 / Bài 7): Hướng dẫn thiết lập hệ thống web tích hợp quản lý tài khoản người dùng (Individual User Accounts, Windows Authentication, Work or School Accounts).

Phương pháp đánh giá kết quả học tập

Học phần áp dụng quy chế kiểm tra đánh giá theo tỷ lệ phân bổ cân bằng:

  • Điểm đánh giá quá trình (50%): Do giảng viên phụ trách lý thuyết và thực hành quy định dựa trên mức độ chuyên cần, kết quả thực hiện các bài tập trên lớp, bài tập về nhà và các bài kiểm tra định kỳ.
  • Điểm thi kết thúc học phần (50%): Thực hiện thông qua hình thức xây dựng đồ án môn học hoàn chỉnh (được bộ môn xét duyệt đầu khóa) và tổ chức chấm thi vấn đáp trực tiếp nhằm đánh giá toàn diện năng lực lập trình kết hợp mức độ hiểu biết lý thuyết chuyên sâu của sinh viên.

Điểm nổi bật và tính cập nhật của tài liệu

  1. Khắc họa tiến trình chuyển dịch kiến trúc phần mềm: Giáo trình không tiếp cận ASP.NET Core một cách biệt lập mà đặt trong lộ trình phát triển kỹ thuật từ ASP.NET 4.5. Sinh viên nắm được bản chất sự thay đổi từ mô hình kiến trúc hướng sự kiện (Event-driven Web Forms) dựa trên ViewState sang mô hình MVC tách bạch rõ ràng giữa xử lý logic và hiển thị giao diện.
  2. Cập nhật các tiêu chuẩn xử lý I/O và giao thức mạng: Nội dung giáo trình phản ánh các cải tiến quan trọng của nền tảng .NET: cơ chế đọc ghi bất đồng bộ trên luồng dữ liệu request (HttpRequest.GetBufferlessInputStream, HttpRequest.GetBufferedInputStream), xử lý HttpResponse.BeginFlush/EndFlush, và việc thiết lập kết nối hai chiều liên tục thời gian thực thông qua giao thức WebSockets trong không gian tên System.WebSockets.
  3. Chuẩn hóa kỹ thuật an toàn thông tin: Tích hợp trực tiếp các tiêu chuẩn bảo mật hiện đại như cơ chế mã hóa chống XSS thông qua lớp AntiXssEncoder (HtmlEncode, XmlEncode, CssEncode, UrlPathEncode), cơ chế kiểm tra tính hợp lệ dữ liệu có trễ (deferred validation), và hệ thống quản lý danh tính đa năng ASP.NET Core Identity.
  4. Mẫu thiết kế chuyên nghiệp trong quản trị dữ liệu: Thay vì chỉ dừng lại ở các thao tác kết nối cơ sở dữ liệu cơ bản, giáo trình hướng dẫn sinh viên áp dụng mẫu thiết kế Repository kết hợp cùng Entity Framework Core, tạo tiền đề để xây dựng các ứng dụng có khả năng mở rộng và dễ dàng viết mã kiểm thử tự động (Unit Testing).

Đối tượng sử dụng giáo trình

  • Sinh viên bậc Đại học: Tài liệu được biên soạn làm giáo trình học tập chính thức cho sinh viên năm thứ 2 và năm thứ 3 chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm, Hệ thống thông tin và Mạng máy tính.
  • Yêu cầu kiến thức tiền đề: Để tiếp thu tốt nội dung giáo trình, người học bắt buộc phải hoàn thành các học phần tiên quyết bao gồm:
    • Thiết kế web: Nắm vững ngôn ngữ đánh dấu HTML, định dạng CSS, ngôn ngữ kịch bản JavaScript và thao tác trên DOM.
    • Lập trình hướng đối tượng (OOP): Hiểu rõ các nguyên lý đóng gói (Encapsulation), kế thừa (Inheritance), đa hình (Polymorphism) và trừu tượng (Abstraction).
    • Lập trình C# trên Windows: Thành thạo cú pháp ngôn ngữ C#, xử lý tập hợp (Collections), delegates, sự kiện và giao diện trên nền tảng .NET.
  • Giảng viên chuyên ngành: Sử dụng làm đề cương chuẩn để biên soạn bài giảng lý thuyết, giáo án thực hành phòng máy, định hướng đề tài đồ án môn học và xây dựng ngân hàng câu hỏi thi vấn đáp.
  • Kỹ sư phần mềm và người tự học: Phù hợp cho các lập trình viên cần tài liệu tham khảo có tính hệ thống để chuyển đổi công nghệ từ các framework .NET cũ sang ASP.NET Core MVC.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với đối tượng nào?

Giáo trình được thiết kế chuyên biệt cho sinh viên bậc đại học thuộc khối ngành Công nghệ thông tin và Kỹ thuật phần mềm đã hoàn thành các môn cơ sở ngành, đồng thời là tài liệu tham khảo cho các kỹ sư phát triển phần mềm trên nền tảng Microsoft .NET.

2. Cần chuẩn bị những kiến thức nền tảng nào trước khi học?

Người học cần hoàn thành 3 học phần tiền đề được quy định trong chương trình đào tạo: Thiết kế web (HTML/CSS/JS), Lập trình hướng đối tượng (OOP) và Lập trình C# trên môi trường Windows.

3. Điểm khác biệt của giáo trình so với các tài liệu lập trình web khác là gì?

Tài liệu cung cấp góc nhìn mang tính hệ thống về quá trình phát triển của nền tảng web Microsoft: phân tích tường minh từ tầng cơ sở hạ tầng thực thi mã (CLR, MSIL, JIT), các đối tượng nền tảng của ASP.NET 4.5, sự khác biệt giữa Web Forms và MVC, trước khi đi sâu vào công nghệ hiện đại ASP.NET Core MVC, Entity Framework Core và Identity.

4. Phương pháp tự học giáo trình như thế nào để đạt hiệu quả cao?

Người học cần nghiên cứu kỹ lý thuyết các lớp đối tượng trước mỗi buổi học, thực hiện tuần tự các bước cài đặt và cấu hình dự án mẫu trên Visual Studio (như dự án WebCalculator, BigSchool, Quản lý tin tức), và chủ động triển khai đầy đủ các cấu trúc phân tầng (Model, View, Controller, DAL, Service) trong từng bài thực hành.

5. Học phần sử dụng giáo trình này có những hình thức đánh giá nào?

Học phần gồm 2 cột điểm chính với tỷ lệ ngang nhau: Điểm quá trình chiếm 50% (đánh giá chuyên cần, bài tập lý thuyết và bài thực hành trên lớp) và Điểm thi kết thúc học phần chiếm 50% (thực hiện đồ án môn học kết hợp thi vấn đáp trực tiếp).


Kết luận

Giáo trình Lập Trình Web (Ấn bản 2023) của Đại học Công nghệ TP.HCM là tài liệu học thuật chuẩn mực, cung cấp lộ trình đào tạo toàn diện từ các nguyên lý nền tảng của công nghệ web .NET đến các kỹ thuật triển khai nâng cao với ASP.NET Core MVC. Thông qua việc tích hợp các mô hình kiến trúc phần mềm tiêu chuẩn (MVC, 3-tier, Repository Pattern), các công nghệ truy xuất dữ liệu hiện đại (LINQ, Entity Framework Core) và hệ thống kiểm soát an toàn (ASP.NET Core Identity), giáo trình trang bị cho sinh viên đầy đủ kiến thức học thuật và năng lực thực hành để phát triển các hệ thống ứng dụng web quy mô thực tế.