PRN222DễKỳ 7Chuyên ngành Cập nhật 07/09/2026
Advanced Cross-Platform Application Programming With .NET - Lập trình ứng dụng đa nền tảng nâng cao với .NET
175Câu hỏi
4Bộ đề
8Chủ đề
5,01 đánh giá
Câu hỏi của môn
84/175 câuCòn 91
65In .NET, which class is used to make HTTP requests and retrieve HTTP responses?4 lựa chọnDễ100% trả lời đúng
A
TcpClientB
UdpClientC
SocketD
HttpClientLời giải
Mở trang câu hỏi này →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.
66What is the main purpose of a Worker Service in .NET?4 lựa chọnDễ100% trả lời đúng
ATo replace MVC controllers.
BTo create a long-running background service.
CTo manage static website hosting.
DTo handle UI rendering.
Lời giải
Mở trang câu hỏi này →Một Worker Service trong .NET là một loại ứng dụng nền tảng được thiết kế để chạy trong nền và thực hiện các tác vụ dài hạn mà không cần tương tác trực tiếp với người dùng. Mục đích chính của một Worker Service là tạo ra các dịch vụ nền tảng có thể chạy trong thời gian dài mà không bị gián đoạn, chẳng hạn như gửi email hàng ngày, cập nhật dữ liệu trong cơ sở dữ liệu, hoặc thực hiện các tác vụ khác mà không cần người dùng tương tác trực tiếp. Điều này giúp tăng cường hiệu suất và giảm tải cho ứng dụng web chính.
67What is the purpose of the @code block in a Blazor component?4 lựa chọnTrung bình57% trả lời đúng
ATo define CSS styles.
BTo write JavaScript code.
CTo write C# logic.
DTo define HTML structure.
Lời giải
Mở trang câu hỏi này →Trong Blazor, @code khối được sử dụng để viết logic C#. Nó cho phép bạn viết mã C# ngay trong thành phần Blazor mà không cần phải tạo một lớp riêng biệt. @code khối thường được sử dụng để thực hiện các hành động như gọi API, xử lý dữ liệu, và tương tác với cơ sở dữ liệu. Nó cũng cho phép bạn sử dụng các thuộc tính và phương thức để quản lý trạng thái của thành phần. Ngoài ra, @code khối còn cho phép bạn sử dụng các thư viện và framework .NET để thực hiện các tác vụ phức tạp. Tóm lại, @code khối là một công cụ mạnh mẽ trong Blazor giúp bạn viết logic C# một cách dễ dàng và hiệu quả.
68Which of the following cannot be used for state management in Razor Pages?4 lựa chọnDễ71% trả lời đúng
A
CookiesB
SessionC
TempDataD
ViewBagLời giải
Mở trang câu hỏi này →Để 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.
69What 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.
70What 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.
71What are SignalR connections?4 lựa chọnDễ100% trả lời đúng
ADatabase connections.
BPersistent, bidirectional communication channels between a client and server.
CFile system connections.
DUser session connections.
Lời giải
Mở trang câu hỏi này →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.
72How are handler methods typically named in a Razor PageModel?4 lựa chọnDễ100% trả lời đúng
AHandleGet(), HandlePost()
BOnGet(), OnPost()
CGetHandler(), PostHandler()
DProcessGet(), ProcessPost()
Lời giải
Mở trang câu hỏi này →Trong Razor Pages, phương thức xử lý (handler method) thường được đặt tên theo quy tắc sau: phương thức xử lý cho hành động GET được đặt tên là OnGet(), phương thức xử lý cho hành động POST được đặt tên là OnPost(). Ví dụ, nếu bạn muốn tạo một trang Razor Pages để hiển thị dữ liệu khi người dùng truy cập trang đó bằng cách sử dụng GET, bạn sẽ tạo một phương thức OnGet() để xử lý yêu cầu này. Tương tự, nếu bạn muốn tạo một trang để xử lý dữ liệu khi người dùng gửi yêu cầu POST, bạn sẽ tạo một phương thức OnPost() để xử lý yêu cầu này. Quy tắc đặt tên này giúp cho việc viết mã và đọc mã trở nên dễ dàng hơn.
73Which of the following is an example of a valid IP address?4 lựa chọnDễ100% trả lời đúng
Awww.example.com.vn
Bmyaccount@gmail.com
C192.168.1.1
DHTTP/1.1
Lời giải
Mở trang câu hỏi này →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à myaccount@gmail.com 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ệ.
74Which .NET namespace provides classes for task-based asynchronous programming?4 lựa chọnDễ100% trả lời đúng
A
System.IOB
System.NetC
System.Threading.TasksD
System.Collections.GenericLời giải
Mở trang câu hỏi này →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.
75What is the purpose of the @page directive at the top of a Razor Page?4 lựa chọnDễ100% trả lời đúng
ATo define a database connection.
BTo declare that the file is a Razor Page.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Mở trang câu hỏi này →Mục đích của chỉ thị @page ở đầu trang Razor Page là để xác định trang web đó là một trang Razor Page. Khi bạn tạo một trang Razor Page mới, bạn sẽ thấy một dòng mã ở đầu trang như sau: @page. Chỉ thị này cho biết trang đó được tạo dựa trên mô hình Razor Page và có thể chứa các yếu tố như layout, model, view, v.v. Nó giúp cho trình biên dịch biết cách xử lý trang đó và cung cấp các tính năng như layout động, model động, v.v. Ngoài ra, chỉ thị @page cũng giúp cho trình biên dịch xác định các trang Razor Page khác nhau và tránh nhầm lẫn giữa chúng.
76What is a Blazor Component?4 lựa chọnDễ100% trả lời đúng
AA database query.
BA reusable UI element written in C# and HTML.
CA JavaScript function.
DA network protocol.
Lời giải
Mở trang câu hỏi này →Một Blazor Component là một phần tử UI có thể tái sử dụng được viết bằng C# và HTML. Nó cho phép bạn tạo ra các phần tử UI độc lập có thể được sử dụng lại trong nhiều trang web khác nhau. Các component có thể chứa logic kinh doanh, giao diện người dùng và dữ liệu, giúp bạn tạo ra các ứng dụng web phức tạp và dễ dàng bảo trì. Ví dụ, bạn có thể tạo ra một component để hiển thị thông tin về một sản phẩm, và sau đó sử dụng component đó trên nhiều trang web khác nhau. Điều này giúp giảm thiểu mã nguồn và tăng cường tính linh hoạt của ứng dụng.
77What 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.
78Which method is called when the application is shutting down?4 lựa chọnDễ100% trả lời đúng
A
StartAsync()B
StopAsync()C
RunAsync()D
Execute()Lời giải
Mở trang câu hỏi này →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().
79How do you handle configuration settings in a Worker Service?4 lựa chọnDễ100% trả lời đúng
ABy writing JavaScript functions.
BBy using appsettings.json and dependency injection.
CBy using static HTML files.
DBy using database queries.
Lời giải
Mở trang câu hỏi này →Để xử lý các thiết lập cấu hình trong một Worker Service, bạn có thể sử dụng file appsettings.json và dependency injection. File appsettings.json được sử dụng để lưu trữ các giá trị cấu hình dưới dạng key-value, trong khi dependency injection giúp bạn có thể dễ dàng inject các giá trị cấu hình vào các lớp của ứng dụng. Điều này giúp bạn có thể dễ dàng quản lý và thay đổi các thiết lập cấu hình mà không cần phải sửa đổi mã nguồn của ứng dụng. Ngoài ra, sử dụng appsettings.json và dependency injection còn giúp bạn có thể dễ dàng phân chia và quản lý các giá trị cấu hình giữa các môi trường khác nhau, chẳng hạn như môi trường phát triển, thử nghiệm và sản xuất.
80Why is MessagePack often preferred over JSON in SignalR?4 lựa chọnDễ100% trả lời đúng
AEasier to read
BProduces smaller, faster messages
CRequires no serialization
DUses XML format
Lời giải
Mở trang câu hỏi này →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.
81What is the main purpose of Dependency Injection?4 lựa chọnTrung bình67% trả lời đúng
ATo create dependencies inside a class
BTo remove hard-coded dependencies
CTo increase code complexity
DTo avoid using interfaces
Lời giải
Mở trang câu hỏi này →Dependency Injection (DI) là một kỹ thuật lập trình giúp giảm sự phụ thuộc giữa các lớp hoặc mô-đun trong một ứng dụng. Mục đích chính của DI là loại bỏ các phụ thuộc cứng (hard-coded dependencies) giữa các lớp, giúp tăng tính linh hoạt và dễ dàng bảo trì của ứng dụng. Khi sử dụng DI, bạn có thể dễ dàng thay thế các phụ thuộc bằng các implementation khác nhau mà không cần phải thay đổi mã nguồn của lớp sử dụng phụ thuộc. Điều này giúp giảm sự phức tạp và tăng tính tái sử dụng của mã nguồn. Ngoài ra, DI cũng giúp giảm sự phụ thuộc vào các framework hoặc thư viện cụ thể, giúp ứng dụng trở nên dễ dàng di chuyển sang các nền tảng khác nhau.
82Which SOLID principle is violated if a class is constantly modified whenever new requirements are added?4 lựa chọnTrung bình56% trả lời đúng
AInterface Segregation
BOpen/Closed Principle
CDependency Inversion
DLiskov Substitution
Lời giải
Mở trang câu hỏi này →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.
83Consider this C# code:4 lựa chọncó codeTrung bình67% trả lời đúng
public IActionResult Next() {
var msg = TempData["Message"];
var again = TempData["Message"];
return Content($"{msg} | {again}");
}If TempData["Message"] = "Hi"; was set in the previous request, what is displayed?
AHi | Hi
BHi | null
Cnull | null
DError
Lời giải
Mở trang câu hỏi này →Khi thực hiện yêu cầu trước đó, TempData['Message'] đã được gán giá trị 'Hi'. Trong phương thức Next(), chúng ta đang truy xuất giá trị này và gán nó vào biến msg và lại. Sau đó, chúng ta sử dụng Content() để trả về nội dung của phương thức. Nội dung này sẽ là kết hợp của msg và lại. Vì TempData['Message'] đã được gán giá trị 'Hi' trước đó, nên giá trị của msg và lại sẽ đều là 'Hi'. Do đó, nội dung trả về sẽ là 'Hi | Hi'.
84Which event is triggered when a button is clicked?4 lựa chọnDễ100% trả lời đúng
Aonclick
Bonpress
Conselect
Donactivate
Lời giải
Mở trang câu hỏi này →Khi một nút được nhấp vào, sự kiện được kích hoạt là sự kiện onclick. Sự kiện onclick là một thuộc tính của HTML và JavaScript, được sử dụng để thực hiện một hành động khi một nút hoặc một phần tử khác được nhấp vào. Nó cho phép bạn viết mã JavaScript để thực hiện một hành động cụ thể khi nút được nhấp vào. Ví dụ, bạn có thể sử dụng sự kiện onclick để hiển thị một thông báo, thực hiện một chức năng tính toán, hoặc chuyển hướng đến một trang web khác. Sự kiện onclick rất phổ biến và được sử dụng rộng rãi trong việc tạo ra các ứng dụng web và di động.