Thi lại · PRN222 · Spring 2026

Ôn tập thi lại PRN222 Spring 2026

50 câu gom từ 1 đề ôn của kỳ Spring 2026.

Đề gốc

Bấm để làm trọn một đề thay vì tra từng câu

50 câu hỏi

Trang 1 / 3
AStartAsync()
BStopAsync()
CRunAsync()
DExecute()
Lời giải
Khi ứng dụng đang shutting down, phương thức được gọi là khi ứng dụng đang tắt. Phương thức này thường được sử dụng để thực hiện các hành động cần thiết trước khi ứng dụng tắt, chẳng hạn như lưu trữ dữ liệu tạm thời, kết nối mạng, hoặc thực hiện các tác vụ cuối cùng. Trong trường hợp này, phương thức được gọi là StopAsync().
Mở trang câu hỏi này →
What are SignalR hubs used for?4 lựa chọn
AManaging database connections.
BCommunicating between clients and servers.
CEncrypting data.
DManaging user sessions.
Lời giải
SignalR Hubs là một công cụ quan trọng trong việc xây dựng các ứng dụng thời gian thực (real-time application) bằng cách cung cấp một cách để các máy khách (client) và máy chủ (server) giao tiếp với nhau. Nó cho phép các máy khách kết nối đến máy chủ và nhận thông tin cập nhật ngay lập tức, đồng thời cũng cho phép các máy chủ gửi thông tin đến các máy khách. Điều này rất hữu ích trong các ứng dụng như trò chơi trực tuyến, ứng dụng thời gian thực, và các ứng dụng cần cập nhật dữ liệu ngay lập tức.
Mở trang câu hỏi này →
ATo define a database schema.
BTo provide a common layout for multiple Razor Pages.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Trong Razor Pages, _Layout.cshtml là một file quan trọng giúp định nghĩa cấu trúc chung cho nhiều trang Razor Pages. Nó giống như một bản thiết kế chung cho các trang web, bao gồm các phần như header, footer, navigation menu, v.v. Mục đích chính của _Layout.cshtml là giúp tạo ra một giao diện thống nhất cho toàn bộ ứng dụng, từ đó dễ dàng quản lý và cập nhật các phần tử giao diện.
Mở trang câu hỏi này →
Consider this C# code:4 lựa chọncó code
Đề bài
public IActionResult Index() {
  ViewBag.Count = 10;
  return View();
}

Razor: <p>@(ViewBag.Count + 5)</p> What happens?

A15
B105
CError
DNothing
Lời giải
Khi chạy mã C# trên, chúng ta sẽ thấy kết quả là 15. Lý do là vì trong phương thức Index(), chúng ta đã gán giá trị 10 vào biến ViewBag.Count. Sau đó, trong Razor, chúng ta sử dụng biểu thức @ để truy cập vào giá trị của ViewBag.Count và thực hiện phép tính cộng với 5. Kết quả của phép tính này sẽ được hiển thị trên màn hình. Điều này cho thấy rằng ViewBag là một cách để truyền dữ liệu từ controller sang view trong ứng dụng ASP.NET.
Mở trang câu hỏi này →
AIterating over a collection in parallel.
BAsynchronous network operations.
CManaging system resources.
DEncrypting data.
Lời giải
Métodu Parallel.ForEach được sử dụng để lặp qua một tập hợp dữ liệu song song. Điều này có nghĩa là nó sẽ thực hiện các tác vụ lặp lại đồng thời trên nhiều luồng, giúp tăng tốc độ thực hiện và hiệu suất của chương trình. Điều này đặc biệt hữu ích khi bạn cần xử lý một lượng lớn dữ liệu và muốn tận dụng tối đa khả năng của máy tính. Ví dụ, nếu bạn cần đọc dữ liệu từ một tập tin lớn, bạn có thể sử dụng Parallel.ForEach để đọc dữ liệu đồng thời từ nhiều phần của tập tin, giúp giảm thời gian thực hiện.
Mở trang câu hỏi này →
Awww.example.com.vn
C192.168.1.1
DHTTP/1.1
Lời giải
Một địa chỉ IP hợp lệ là một chuỗi gồm bốn số nguyên từ 0 đến 255, được ngăn cách bằng dấu chấm. Ví dụ, 192.168.1.1 là một địa chỉ IP hợp lệ vì nó đáp ứng các yêu cầu trên. Trong khi đó, www.example.com.vn và [email protected] là tên miền và địa chỉ email, không phải là địa chỉ IP. HTTP/1.1 là một giao thức truyền thông, cũng không phải là địa chỉ IP. Do đó, chỉ có 192.168.1.1 là một ví dụ về địa chỉ IP hợp lệ.
Mở trang câu hỏi này →
ATcpClient
BUdpClient
CSocket
DHttpClient
Lời giải
Trong .NET, để thực hiện các yêu cầu HTTP và nhận lại các phản hồi HTTP, bạn cần sử dụng lớp HttpClient. Lớp này cung cấp các phương thức để gửi yêu cầu HTTP và nhận lại phản hồi, giúp bạn có thể tương tác với các dịch vụ web một cách dễ dàng. HttpClient được thiết kế để hỗ trợ các yêu cầu HTTP khác nhau, bao gồm cả GET, POST, PUT, DELETE và nhiều hơn nữa. Nó cũng cung cấp các tính năng như tự động quản lý kết nối, hỗ trợ các tiêu chuẩn HTTP mới nhất và khả năng tùy chỉnh cao. Vì vậy, nếu bạn cần thực hiện các yêu cầu HTTP trong ứng dụng .NET của mình, HttpClient là lựa chọn tốt nhất.
Mở trang câu hỏi này →
AControllerBase
BBackgroundService
CDbContext
DViewComponent
Lời giải
Để thực hiện một Worker Service, bạn thường sử dụng lớp cơ sở BackgroundService. Lớp này được thiết kế để chạy nền và thực hiện các tác vụ lặp đi lặp lại mà không cần tương tác trực tiếp với người dùng. BackgroundService cung cấp các phương thức như StartAsync và StopAsync để quản lý vòng đời của dịch vụ. Ngoài ra, nó cũng hỗ trợ các tính năng như đồng bộ hóa và lỗi để giúp bạn xây dựng các dịch vụ đáng tin cậy và hiệu quả.
Mở trang câu hỏi này →
ATo manage IP addresses.
BTo provide a sequence of bytes for reading or writing data.
CTo handle HTTP requests.
DTo establish TCP connections.
Lời giải
Trong lập trình .NET, lớp Stream được sử dụng để quản lý một chuỗi các byte. Nó cung cấp một cách cơ bản để đọc hoặc ghi dữ liệu. Lớp Stream không chỉ giới hạn ở việc đọc hoặc ghi dữ liệu mà còn có thể được sử dụng để đọc hoặc ghi dữ liệu từ hoặc vào các nguồn khác nhau như tệp tin, mạng, hoặc các thiết bị ngoại vi. Nó cung cấp các phương thức cơ bản để đọc hoặc ghi dữ liệu, chẳng hạn như Read, Write, Seek, và Flush. Ngoài ra, lớp Stream cũng cung cấp các phương thức để kiểm tra xem dữ liệu đã được đọc hoặc ghi thành công hay chưa. Tóm lại, lớp Stream là một lớp cơ bản trong .NET mà cung cấp một cách cơ bản để quản lý và đọc hoặc ghi dữ liệu.
Mở trang câu hỏi này →
AInterface Segregation
BOpen/Closed Principle
CDependency Inversion
DLiskov Substitution
Lời giải
SOLID là một nhóm nguyên tắc thiết kế giúp đảm bảo tính mở rộng và bảo trì của mã nguồn. Trong đó, nguyên tắc Open/Closed Principle (OCP) cho rằng một lớp nên được mở rộng, nhưng không được sửa đổi khi có yêu cầu mới. Nếu một lớp phải được sửa đổi liên tục khi có yêu cầu mới, điều đó có nghĩa là lớp đó không tuân thủ nguyên tắc OCP. Điều này dẫn đến việc lớp đó không có khả năng mở rộng và bảo trì, khiến cho việc thêm mới yêu cầu trở nên khó khăn và phức tạp.
Mở trang câu hỏi này →
What is a "network protocol"?4 lựa chọn
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ộ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.
Mở trang câu hỏi này →
AA numerical IP address.
BA human-readable name for a network device.
CA network protocol.
DA network security certificate.
Lời giải
Hostname là một tên gọi dễ đọc và dễ nhớ cho một thiết bị mạng. Nó được sử dụng để xác định và truy cập một thiết bị mạng trên internet. Ví dụ, khi bạn truy cập trang web của một công ty, bạn thường nhập tên miền của công ty vào trình duyệt, như google.com. Trong thực tế, trình duyệt của bạn sẽ chuyển tên miền này thành một địa chỉ IP cụ thể để kết nối với máy chủ web của công ty. Hostname giúp người dùng dễ dàng nhớ và nhập tên của một thiết bị mạng, thay vì phải nhớ địa chỉ IP phức tạp.
Mở trang câu hỏi này →
ASorting a large array.
BRendering a complex 3D scene.
CDownloading a file from the internet.
DPerforming a CPU-intensive calculation.
Lời giải
Một ví dụ về hoạt động I/O có thể được thực hiện bằng cách lập trình đồng bộ là tải một tệp từ internet. Hoạt động I/O là những hoạt động liên quan đến nhập/xuất dữ liệu từ các thiết bị ngoại vi như mạng internet, đĩa cứng, v.v. Các hoạt động này thường chậm hơn so với các hoạt động tính toán và có thể được thực hiện đồng thời với các hoạt động khác. Lập trình đồng bộ là một kỹ thuật lập trình cho phép các hoạt động I/O được thực hiện đồng thời với các hoạt động khác, giúp tăng hiệu suất và giảm thời gian chờ đợi. Ví dụ, khi tải một tệp từ internet, bạn có thể thực hiện các hoạt động khác trong khi chờ đợi tệp được tải xong.
Mở trang câu hỏi này →
What are SignalR connections?4 lựa chọn
ADatabase connections.
BPersistent, bidirectional communication channels between a client and server.
CFile system connections.
DUser session connections.
Lời giải
SignalR là một thư viện cho phép thiết lập các kênh giao tiếp hai chiều giữa máy chủ và khách hàng. Các kênh này cho phép máy chủ gửi thông tin đến khách hàng mà không cần khách hàng yêu cầu. Điều này cho phép các ứng dụng thực hiện các tác vụ như gửi thông báo thời gian thực, cập nhật trạng thái thời gian thực và thực hiện các tác vụ khác mà không cần phải yêu cầu khách hàng.
Mở trang câu hỏi này →
ATo return a complete HTML page.
BTo return a reusable portion of a view.
CTo return a JSON response.
DTo redirect to another action.
Lời giải
Trong ASP.NET Core MVC, PartialView được sử dụng để trả về một phần tái sử dụng của một view. Điều này có nghĩa là PartialView sẽ trả về một phần của HTML mà bạn có thể tái sử dụng trong nhiều trang khác nhau. Ví dụ, bạn có thể sử dụng PartialView để tạo ra một menu hoặc một phần header mà có thể được sử dụng trên nhiều trang khác nhau. PartialView được sử dụng khi bạn muốn tái sử dụng một phần của view mà không cần phải tạo ra một view hoàn chỉnh. Đ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.
Mở trang câu hỏi này →
AEasier to read
BProduces smaller, faster messages
CRequires no serialization
DUses XML format
Lời giải
MessagePack thường được ưa chuộng hơn JSON trong SignalR vì nó có thể tạo ra các tin nhắn nhỏ hơn và nhanh hơn. Điều này là do MessagePack sử dụng một định dạng dữ liệu khác biệt so với JSON, cho phép nó nén dữ liệu một cách hiệu quả hơn. Kết quả là, các tin nhắn được gửi qua mạng sẽ nhỏ hơn và có thể được xử lý nhanh hơn. Điều này đặc biệt quan trọng trong các ứng dụng thời gian thực như SignalR, nơi tốc độ và hiệu suất là rất quan trọng. Ngoài ra, MessagePack cũng có thể hỗ trợ các loại dữ liệu phức tạp hơn so với JSON, làm cho nó trở thành lựa chọn tốt hơn cho các ứng dụng cần xử lý dữ liệu lớn.
Mở trang câu hỏi này →
ASystem.IO
BSystem.Net
CSystem.Threading.Tasks
DSystem.Collections.Generic
Lời giải
Trong lập trình .NET, việc sử dụng các kỹ thuật lập trình đồng bộ hóa (asynchronous programming) là rất quan trọng để tăng hiệu suất và giảm thiểu thời gian chờ đợi. Một trong những cách phổ biến để thực hiện điều này là sử dụng các lớp trong namespace System.Threading.Tasks. Namespace này cung cấp các lớp và phương thức để tạo và quản lý các tác vụ (task) đồng bộ hóa, giúp cho các chương trình .NET trở nên linh hoạt và hiệu quả hơn.
Mở trang câu hỏi này →
ATo manage database connections.
BTo pass data from a controller to a view.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Trong ASP.NET Core MVC, ViewBag và ViewData là hai đối tượng được sử dụng để truyền dữ liệu từ controller sang view. Chúng giúp bạn có thể dễ dàng chia sẻ dữ liệu giữa các lớp controller và view mà không cần phải sử dụng đến các phương thức phức tạp. ViewBag và ViewData đều là các đối tượng động, có thể được sử dụng để truyền dữ liệu của bất kỳ loại nào, bao gồm cả các đối tượng phức tạp như danh sách hoặc các đối tượng có liên quan. Việc sử dụng ViewBag và ViewData giúp bạn có thể dễ dàng quản lý dữ liệu và giảm thiểu sự phức tạp trong việc chia sẻ dữ liệu giữa các lớp.
Mở trang câu hỏi này →
ACookies
BSession
CTempData
DViewBag
Lời giải
Để quản lý trạng thái trong Razor Pages, chúng ta có thể sử dụng các phương thức sau: Cookies, Session, TempData. Tuy nhiên, ViewBag không phải là một phương thức hợp lệ để quản lý trạng thái. ViewBag là một đối tượng được sử dụng để truyền dữ liệu từ controller sang view, nhưng nó không được thiết kế để lưu trữ dữ liệu trạng thái. Nếu bạn cố gắng sử dụng ViewBag để lưu trữ dữ liệu trạng thái, nó sẽ không được lưu trữ sau khi bạn chuyển sang một trang khác. Vì vậy, trong các lựa chọn trên, chỉ có ViewBag là không thể sử dụng để quản lý trạng thái trong Razor Pages.
Mở trang câu hỏi này →
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
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.
Mở trang câu hỏi này →
Đi tiếp từ đây