Thi lại · PRN222 · Summer 2026
Ôn tập thi lại PRN222 Summer 2026
50 câu gom từ 1 đề ôn của kỳ Summer 2026.
Đề gốc
Bấm để làm trọn một đề thay vì tra từng câu
50 câu hỏi
Trang 3 / 3AIn the browser using WebAssembly.
BOn the server.
CIn a separate desktop application.
DOn a mobile device.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. Trong Blazor Server, toàn bộ mã C# và cây component chạy TRÊN MÁY CHỦ. Trình duyệt chỉ giữ một kết nối SignalR thường trực, gửi sự kiện người dùng lên máy chủ và nhận về phần chênh lệch của DOM để cập nhật giao diện. Nhờ vậy tải tải về ban đầu rất nhẹ và mã nguồn không lộ ra máy khách, nhưng ứng dụng phụ thuộc vào độ trễ mạng và không chạy được khi mất kết nối. Chạy trong trình duyệt bằng WebAssembly (A) là mô hình của Blazor WebAssembly; C và D mô tả những môi trường không liên quan.
AUsing JavaScript only.
BUsing data annotations on the PageModel and validation tag helpers.
CUsing database triggers.
DUsing static HTML validation attributes.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. Cách kiểm tra dữ liệu chuẩn trong Razor Pages là gắn data annotation lên thuộc tính của PageModel ([Required], [StringLength], [Range], [EmailAddress]...), rồi trong .cshtml dùng các tag helper asp-validation-for và asp-validation-summary để hiển thị lỗi; phía handler kiểm tra ModelState.IsValid trước khi xử lý. Cơ chế này chạy cả phía máy chủ lẫn phía trình duyệt. Chỉ dùng JavaScript (A) là không an toàn vì người dùng có thể bỏ qua; trigger cơ sở dữ liệu (C) quá muộn và sai tầng; thuộc tính HTML tĩnh (D) chỉ là lớp hỗ trợ, không thay được kiểm tra phía máy chủ.
ATo define database schemas.
BTo handle HTTP requests and provide data to the Razor Page.
CTo manage user sessions.
DTo define user interface layouts.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. PageModel là lớp code-behind của một Razor Page: nó chứa các handler OnGet, OnPost, OnGetAsync... để xử lý request theo phương thức HTTP, chứa các thuộc tính được model binding gán dữ liệu từ request, và cung cấp dữ liệu cho phần giao diện .cshtml truy cập qua @Model. Nói cách khác nó gộp vai trò của controller và view model trong MVC. Định nghĩa lược đồ cơ sở dữ liệu (A) là việc của entity và DbContext; quản lý phiên (C) là của Session; bố cục giao diện (D) do _Layout.cshtml đảm nhiệm.
ATo get the IP address of the connected server.
BTo get the port number of the connected server.
CTo get the network stream used for sending and receiving data.
DTo close the connection.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: C. TcpClient.GetStream() trả về đối tượng NetworkStream gắn với kết nối TCP đã thiết lập; đây chính là luồng hai chiều để đọc và ghi dữ liệu với đầu bên kia, thường dùng kèm StreamReader/StreamWriter hoặc các phương thức Read/Write trực tiếp. Địa chỉ IP và cổng của phía đối tác (A, B) lấy qua thuộc tính Client.RemoteEndPoint chứ không phải GetStream. Đóng kết nối (D) là việc của Close() hoặc Dispose(), thường được gọi trong khối using.
A@model
B@view
C@bind
D@data
Lời giải
Mở trang câu hỏi này →Để tạo một View được định nghĩa rõ ràng (strongly-typed View), bạn cần sử dụng một trong các chỉ thị sau. Trong đó, chỉ thị '@model' được sử dụng rộng rãi nhất để khai báo kiểu dữ liệu của View. Ví dụ, nếu bạn muốn tạo một View để hiển thị thông tin về một người dùng, bạn có thể sử dụng '@model' để khai báo kiểu dữ liệu là 'User'. Điều này giúp cho View của bạn được định nghĩa rõ ràng và dễ dàng sử dụng.
AData is updated once a day.
BImmediate response from server to client.
CClient periodically requests updates.
DData is processed only after user refreshes the page.
Lời giải
Mở trang câu hỏi này →Trong bối cảnh ứng dụng web thời gian thực, "thời gian thực" chủ yếu có nghĩa là gì? Đây là một khái niệm quan trọng trong việc xây dựng các ứng dụng web thời gian thực. Nói một cách đơn giản, "thời gian thực" có nghĩa là dữ liệu được cập nhật ngay lập tức và phản hồi từ máy chủ đến khách hàng cũng phải ngay lập tức. Điều này cho phép người dùng nhận được thông tin mới nhất và cập nhật ngay lập tức, mà không cần phải chờ đợi. Ví dụ, khi bạn gửi một tin nhắn trên ứng dụng thời gian thực, bạn sẽ nhận được phản hồi ngay lập tức, chứ không phải sau một khoảng thời gian chờ đợi. Điều này đòi hỏi các ứng dụng web phải có khả năng xử lý và phản hồi nhanh chóng, để đảm bảo trải nghiệm người dùng tốt nhất.
Dependency Inversion Principle states:4 lựa chọn
AHigh-level modules should depend on low-level modules
BBoth high-level and low-level modules should depend on abstractions
CAbstractions should depend on details
DInterfaces should depend on classes
Lời giải
Mở trang câu hỏi này →Sự nguyên tắc phụ thuộc ngược (Dependency Inversion Principle) là một nguyên tắc thiết kế quan trọng trong lập trình hướng đối tượng. Nó cho rằng các mô-đun cao cấp (high-level modules) và mô-đun thấp cấp (low-level modules) nên phụ thuộc vào các abstraction (tính trừu tượng) chứ không phải vào nhau. Điều này có nghĩa là thay vì các mô-đun cao cấp phụ thuộc vào các mô-đun thấp cấp cụ thể, chúng nên phụ thuộc vào các interface hoặc abstraction chung. Điều này giúp giảm sự phụ thuộc giữa các mô-đun và tăng tính linh hoạt, dễ dàng thay đổi và mở rộng hệ thống.
A
IDisposableB
IWorkerC
IHostedServiceD
IControllerLời giải
Mở trang câu hỏi này →BackgroundService là một lớp trong .NET Core được sử dụng để tạo các dịch vụ chạy nền. Nó thực hiện một số giao diện quan trọng, bao gồm IHostedService. Giao diện IHostedService cho phép các dịch vụ chạy nền được quản lý và khởi động bởi IWebHost. Điều này cho phép các dịch vụ chạy nền được khởi động và dừng cùng với ứng dụng. Ngoài ra, giao diện IHostedService cũng cung cấp các phương thức như StartAsync và StopAsync để quản lý trạng thái của dịch vụ chạy nền. Vì vậy, khi nói về giao diện mà BackgroundService thực hiện nội bộ, câu trả lời chính xác là IHostedService.
ATo refresh the client browser automatically.
BTo act as a high-level pipeline allowing clients and servers to call methods on each other.
CTo send HTTP requests only from server to client.
DTo replace all API controllers in ASP.NET Core.
Lời giải
Mở trang câu hỏi này →Một SignalR hub là một lớp trung gian cao cấp cho phép các khách hàng và máy chủ gọi các phương thức vào nhau. Nó cho phép các ứng dụng thực hiện giao tiếp hai chiều giữa máy chủ và khách hàng, cho phép các máy chủ gửi thông tin đến các khách hàng và ngược lại. Điều này giúp tạo ra các ứng dụng thời gian thực, chẳng hạn như trò chơi trực tuyến, ứng dụng thời gian thực và các ứng dụng khác yêu cầu giao tiếp đồng bộ giữa máy chủ và khách hàng.
ATo define a database connection.
BTo define a property that can be set from a parent component.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Mở trang câu hỏi này →Trong Blazor, [Parameter] là một thuộc tính quan trọng được sử dụng để định nghĩa một thuộc tính có thể được thiết lập từ một thành phần cha. Khi một thành phần con sử dụng [Parameter], nó cho phép thành phần cha truyền giá trị cho thuộc tính đó. Điều này giúp tăng cường khả năng tương tác giữa các thành phần trong ứng dụng Blazor. Ví dụ, nếu bạn có một thành phần cha chứa một danh sách dữ liệu và muốn truyền danh sách đó cho thành phần con để hiển thị, bạn có thể sử dụng [Parameter] để định nghĩa thuộc tính nhận danh sách dữ liệu. Điều này giúp giảm thiểu mã nguồn và tăng cường khả năng tái sử dụng.
Đi tiếp từ đây
Kỳ khác cùng môn
Spring 2026Về lát
Thi lại · PRN222