Đề ôn · PRN222
PRN222 Lập trình ứng dụng đa nền tảng nâng cao với .NET – Bộ ôn tập thi lại số 2 (50 câu)
50 câu · Thi lại · Summer 2026
50câu trong đề
PRN222môn
Câu hỏi của đề
15/50 câuCòn 35
1What is the main purpose of a SignalR hub?4 lựa chọnDễ100% trả lời đúng
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.
2What is Blazor?4 lựa chọnDễ100% trả lời đúng
AA JavaScript framework.
BA framework for building interactive web UIs using C# instead of JavaScript.
CA database management system.
DA server-side scripting language.
Lời giải
Mở trang câu hỏi này →Blazor là một công cụ giúp xây dựng giao diện người dùng (UI) web tương tác bằng cách sử dụng ngôn ngữ lập trình C# thay vì JavaScript. Nó cho phép các nhà phát triển xây dựng các ứng dụng web động bằng cách sử dụng các thành phần và các yếu tố UI được xây dựng bằng C#. Blazor sử dụng mô hình hai chiều (two-way data binding), điều này có nghĩa là dữ liệu được đồng bộ hóa giữa phía client và phía server. Điều này giúp giảm thiểu sự phức tạp và tăng cường hiệu suất của ứng dụng. Blazor cũng hỗ trợ các tính năng như sự kiện, giao tiếp giữa các thành phần và các tính năng bảo mật.
3What is the purpose of the [HttpPost] attribute in ASP.NET Core MVC?4 lựa chọnDễ100% trả lời đúng
ATo specify a database connection.
BTo specify that an action method handles HTTP POST requests.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Mở trang câu hỏi này →Trong ASP.NET Core MVC, [HttpPost] là một thuộc tính được sử dụng để chỉ định phương thức hành động (action method) sẽ xử lý yêu cầu HTTP POST. Khi một yêu cầu HTTP POST được gửi đến ứng dụng, [HttpPost] sẽ giúp xác định phương thức hành động nào sẽ được thực hiện để xử lý yêu cầu này. Điều này cho phép nhà phát triển có thể kiểm soát và quản lý các yêu cầu HTTP POST một cách hiệu quả. Ngoài ra, [HttpPost] cũng giúp ngăn chặn các yêu cầu HTTP POST không mong muốn từ được xử lý bởi các phương thức hành động khác. Vì vậy, [HttpPost] là một công cụ quan trọng trong việc xây dựng các ứng dụng web dựa trên ASP.NET Core MVC.
4Dependency Inversion Principle states:4 lựa chọnDễ100% trả lời đúng
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.
5In C#, what is the primary role of the TaskScheduler class?4 lựa chọnDễ100% trả lời đúng
ATo create new threads directly
BTo handle queuing of tasks onto threads
CTo manage garbage collection of tasks
DTo provide thread synchronization
Lời giải
Mở trang câu hỏi này →Trong C#, lớp TaskScheduler đóng vai trò chính là quản lý việc sắp xếp các tác vụ (task) vào các luồng (thread). Lớp này chịu trách nhiệm đảm bảo rằng các tác vụ được thực hiện một cách hiệu quả và an toàn. Khi bạn tạo một tác vụ mới, nó sẽ được thêm vào hàng đợi của TaskScheduler, và sau đó sẽ được thực hiện bởi một luồng thích hợp. Điều này giúp tránh được tình trạng xung đột giữa các tác vụ và đảm bảo rằng các tác vụ được thực hiện một cách đồng bộ. Ngoài ra, lớp TaskScheduler cũng cung cấp các phương thức để quản lý và điều khiển các tác vụ, chẳng hạn như hủy bỏ tác vụ, chờ đợi tác vụ hoàn thành, v.v.
6What does the term "IP address" represent?4 lựa chọn
AA unique identifier for a network interface.
BA network protocol.
CA type of network cable.
DA network security measure.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: A. Địa chỉ IP là một định danh duy nhất gán cho một giao diện mạng của thiết bị trong mạng dùng bộ giao thức TCP/IP, nhờ đó các gói tin biết được nơi gửi và nơi nhận. Một máy có nhiều card mạng sẽ có nhiều địa chỉ IP, đúng theo cách nói "định danh cho một giao diện mạng" chứ không phải cho cả máy. Phương án B nhầm sang khái niệm giao thức - tập quy tắc truyền dữ liệu như TCP hay UDP; phương án C mô tả phần cứng vật lý là dây cáp; phương án D nhầm sang các biện pháp bảo mật như tường lửa, đều không phải bản chất của địa chỉ IP.
AOnGet() only
BOnGetAsync() only
CCompilation error
DRuntime error
Lời giải
Mở trang câu hỏi này →Đáp án đúng: D. Khi chọn handler, Razor Pages bỏ hậu tố "Async" khỏi tên phương thức. Do đó OnGet và OnGetAsync cùng quy về một handler cho phương thức GET, và bộ chọn DefaultPageHandlerMethodSelector tìm thấy HAI ứng viên cùng khớp nên ném InvalidOperationException với thông báo nhiều handler cùng khớp. Đây là lỗi phát sinh LÚC CHẠY. Trình biên dịch không báo lỗi vì hai phương thức có tên khác nhau hoàn toàn hợp lệ trong C#, nên phương án C bị loại; và framework không tự ưu tiên bản đồng bộ hay bất đồng bộ, nên A và B đều sai.
8What is the primary purpose of ViewBag and ViewData in ASP.NET Core?
// Controller4 lựa chọncó code
public IActionResult Index() {
ViewBag.Message = "Hello from ViewBag!";
ViewData["Title"] = "My Page Title";
return View();
}// View
<p>@ViewBag.Message</p>
<h1>@ViewData["Title"]</h1>ATo store data persistently across multiple requests.
BTo pass data from a controller action to a view.
CTo manage user sessions.
DTo encrypt sensitive data.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. ViewBag và ViewData là hai cơ chế truyền dữ liệu MỘT CHIỀU từ action của controller sang view trong phạm vi cùng một request: ViewData là từ điển kiểu object nên phải ép kiểu khi dùng, còn ViewBag là lớp bọc dynamic quanh chính từ điển đó nên viết gọn hơn. Cả hai đều mất giá trị ngay khi request kết thúc, vì vậy phương án A sai - muốn giữ dữ liệu qua nhiều request phải dùng TempData hoặc Session. Quản lý phiên (C) là việc của Session; còn mã hoá dữ liệu (D) không liên quan gì tới hai cơ chế này.
9What interface does BackgroundService implement internally?4 lựa chọnDễ80% trả lời đú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.
10What is the typical lifetime of a Worker Service?4 lựa chọnDễ86% trả lời đúng
AOnly for the duration of an HTTP request.
BUntil the application is manually stopped.
COnly for the duration of a database transaction.
DOnly for the duration of a user session.
Lời giải
Mở trang câu hỏi này →Một Worker Service trong ASP.NET Core là một loại ứng dụng web không tương tác, chạy nền và không có giao diện người dùng. Nó được sử dụng để thực hiện các tác vụ lặp đi lặp lại, chẳng hạn như gửi email, cập nhật dữ liệu cơ sở dữ liệu hoặc thực hiện các tác vụ khác mà không cần tương tác với người dùng. Thời gian tồn tại của một Worker Service thường kéo dài cho đến khi ứng dụng được dừng lại thủ công. Điều này có nghĩa là Worker Service sẽ tiếp tục chạy cho đến khi ứng dụng được dừng lại hoặc bị lỗi. Điều này cho phép Worker Service thực hiện các tác vụ lặp đi lặp lại mà không cần phải khởi động lại sau mỗi lần thực hiện.
A
SingletonB
ScopedC
TransientD
IsolatedLời giải
Mở trang câu hỏi này →Đáp án đúng: C. Trong DI của ASP.NET Core có ba vòng đời. Transient tạo một thể hiện MỚI mỗi lần được yêu cầu, phù hợp với dịch vụ nhẹ, không giữ trạng thái. Scoped (B) tạo một thể hiện cho mỗi phạm vi, trong ứng dụng web là mỗi HTTP request - điển hình là DbContext. Singleton (A) chỉ tạo một thể hiện duy nhất dùng suốt vòng đời ứng dụng. "Isolated" (D) không phải một vòng đời trong hệ thống DI tích hợp sẵn của .NET.
12What is a "network protocol"?4 lựa chọnDễ88% trả lời đúng
AA physical network device.
BA set of rules governing data communication.
CA network security measure.
DA type of network cable.
Lời giải
Mở trang câu hỏi này →Một giao thức mạng (network protocol) là một tập hợp các quy tắc và tiêu chuẩn được sử dụng để quản lý và điều khiển việc truyền tải dữ liệu qua mạng. Nó giúp đảm bảo rằng dữ liệu được truyền đi một cách chính xác và hiệu quả. Giao thức mạng bao gồm các quy tắc về cách thức truyền tải dữ liệu, cách thức xử lý lỗi, cách thức quản lý lưu lượng và cách thức đảm bảo an toàn cho dữ liệu. Ví dụ, giao thức TCP/IP là một giao thức mạng phổ biến được sử dụng để truyền tải dữ liệu qua internet.
13Consider this C# code:4 lựa chọncó codeDễ100% trả lời đúng
public class Worker : BackgroundService {
protected override Task ExecuteAsync(CancellationToken stoppingToken) {
return Task.CompletedTask;
}
}What is ExecuteAsync?
AThe entry point for background execution.
BThe constructor.
CA logging method.
DA thread initializer.
Lời giải
Mở trang câu hỏi này →Trong mã nguồn C#, ExecuteAsync là phương thức được sử dụng để thực hiện các tác vụ nền (background tasks). Nó là phương thức được gọi khi một đối tượng thực hiện các tác vụ nền (background service) được tạo ra. Phương thức này được sử dụng để thực hiện các tác vụ nền một cách độc lập và không ảnh hưởng đến luồng chính của chương trình. Trong ví dụ trên, Worker là một lớp thực hiện các tác vụ nền và ExecuteAsync là phương thức được sử dụng để thực hiện các tác vụ nền này. Phương thức ExecuteAsync được gọi khi Worker được tạo ra và nó sẽ thực hiện các tác vụ nền một cách độc lập.
14How do you handle events for a SignalR connection on the client-side?4 lựa chọnDễ100% trả lời đúng
ABy writing CSS styles.
BBy using JavaScript event listeners on the connection object.
CBy using static HTML files.
DBy using database queries.
Lời giải
Mở trang câu hỏi này →Để xử lý sự kiện cho một kết nối SignalR trên phía client, bạn cần sử dụng JavaScript. Bạn có thể sử dụng phương thức on() để đăng ký một sự kiện và phương thức off() để hủy đăng ký. Ví dụ, bạn có thể sử dụng phương thức on('connected', function() { ... }) để đăng ký một sự kiện khi kết nối được thiết lập thành công. Ngoài ra, bạn cũng có thể sử dụng phương thức on('reconnected', function() { ... }) để đăng ký một sự kiện khi kết nối được phục hồi sau khi bị mất kết nối. Điều này cho phép bạn thực hiện các hành động cụ thể khi kết nối thay đổi trạng thái.
A
TCPB
UDPC
HTTPD
FTPLời giải
Mở trang câu hỏi này →Đáp án đúng: B. UDP là giao thức phi kết nối ở tầng giao vận: nó gửi datagram đi mà không thiết lập kết nối trước, không đánh số thứ tự, không báo nhận và không truyền lại, nên nhanh và nhẹ nhưng không bảo đảm gói tin tới nơi hay tới đúng thứ tự. TCP (A) ngược lại, hướng kết nối với bắt tay ba bước, báo nhận và truyền lại nên bảo đảm tin cậy. HTTP (C) và FTP (D) là giao thức tầng ứng dụng và đều chạy trên nền TCP, do đó thừa hưởng tính tin cậy của TCP.