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á
Thử sức tại chỗ
Trả lời ngay tại đây
1PRN222 - Chương 3: Dependency Injection và IoCDễ
Given the code:
builder.Services.AddScoped<IOrderService, OrderService>();How will OrderService behave?
2PRN222 - Chương 3: Dependency Injection và IoCDễ
services.AddTransient<ILogger, ConsoleLogger>();What does this code do?
3PRN222 - Chương 3: Dependency Injection và IoCDễ
Which of the following is an example of a situation where a Scoped service lifetime would be appropriate?
Còn 3 câu nữa ở trên
Trả lời hết các câu trên để xem tổng kết, hoặc vào phiên học ngay.
Học từ ngân hàng câu hỏi
Bắt đầu một phiên học theo môn
Tiến độ của bạn luôn được tính và đồng bộ trực tiếp theo tổng số lượng câu hỏi mới nhất của môn học này.
175Ngân hàng hiện tại--Tiến độ môn
Câu hỏi của môn
24/175 câuCòn 151
5What is "Constructor Injection"?4 lựa chọnDễ100% trả lời đúng
AInjecting dependencies via properties.
BInjecting dependencies via method parameters.
CInjecting dependencies through a class's constructor.
DInjecting dependencies at runtime.
Lời giải
Mở trang câu hỏi này →Constructor Injection là một kỹ thuật trong lập trình hướng đối tượng, giúp tạo ra các đối tượng có thể dễ dàng sử dụng và thử nghiệm. Nó liên quan đến việc cung cấp các phụ thuộc (dependencies) cho một lớp (class) thông qua phương thức (method) khởi tạo (constructor) của nó. Điều này cho phép các phụ thuộc được tạo ra và cung cấp cho lớp một cách tự động, giảm thiểu sự phức tạp và tăng cường tính linh hoạt của mã.
6With AddTransient<EmailService, EmailService>(), injecting into a controller twice will produce:4 lựa chọnDễ100% trả lời đúng
AThe same instance
BDifferent instances
CNull references
DRuntime error
Lời giải
Mở trang câu hỏi này →Khi sử dụng AddTransient<EmailService, EmailService>(), mỗi lần inject vào controller sẽ tạo ra một instance mới của EmailService. Điều này có nghĩa là mỗi lần inject sẽ có một instance khác nhau. VìTransient là một loại lifestyle trong Dependency Injection, nó sẽ tạo ra một instance mới mỗi lần inject, không lưu trữ instance trước đó. Vì vậy, nếu inject vào controller hai lần, sẽ có hai instance khác nhau của EmailService.
7What is the purpose of the @page directive in a Blazor component?4 lựa chọnDễ100% trả lời đúng
ATo define a database connection.
BTo specify the route for the component.
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 trong một thành phần Blazor là để xác định trang web hoặc trang in. Nó cho phép bạn định nghĩa các trang web hoặc trang in độc lập, bao gồm cả bố cục và nội dung. Điều này giúp bạn có thể quản lý và tùy chỉnh trang web hoặc trang in một cách dễ dàng. Ví dụ, bạn có thể sử dụng chỉ thị @page để tạo ra một trang web có bố cục độc đáo hoặc để tạo ra một trang in có nội dung cụ thể. Chỉ thị @page cũng cho phép bạn định nghĩa các trang web hoặc trang in dựa trên các điều kiện cụ thể, chẳng hạn như dựa trên loại thiết bị hoặc dựa trên ngôn ngữ.
8What is a potential disadvantage of Blazor WebAssembly compared to Blazor Server?4 lựa chọnTrung bình67% trả lời đúng
AHigher server load.
BInitial download size and performance.
CLimited browser compatibility.
DLack of SignalR support.
Lời giải
Mở trang câu hỏi này →Blazor WebAssembly là một công nghệ cho phép chạy ứng dụng Blazor trên máy khách, nhưng điều này cũng có thể gây ra một số bất lợi. Một trong những nhược điểm chính của Blazor WebAssembly so với Blazor Server là kích thước tải xuống ban đầu và hiệu suất. Khi bạn chạy ứng dụng Blazor WebAssembly, toàn bộ mã nguồn và dữ liệu sẽ được tải xuống máy khách, điều này có thể gây ra sự chậm chạp và khó khăn trong việc tải xuống ban đầu. Ngoài ra, kích thước tải xuống ban đầu lớn cũng có thể gây ra vấn đề về hiệu suất, đặc biệt là trên các thiết bị có cấu hình thấp. Điều này có thể ảnh hưởng đến trải nghiệm người dùng và làm giảm hiệu suất của ứng dụng.
9Which of the following best describes the "C# Everywhere" feature of Blazor?4 lựa chọnDễ100% trả lời đúng
AYou can only use C# on the server, not the client.
BC# can be used for both client-side and server-side logic.
CC# must be compiled into JavaScript first.
DBlazor only supports JavaScript for client-side interactivity.
Lời giải
Mở trang câu hỏi này →Tính năng 'C# Everywhere' của Blazor cho phép bạn sử dụng C# cho cả logic phía client và phía server. Điều này có nghĩa là bạn có thể viết mã C# để thực hiện các tác vụ phía client, như tương tác với giao diện người dùng, và cũng có thể sử dụng C# để thực hiện các tác vụ phía server, như xử lý dữ liệu và tương tác với cơ sở dữ liệu. Tính năng này giúp giảm thiểu sự phức tạp và tăng cường khả năng bảo mật của ứng dụng. Với 'C# Everywhere', bạn có thể tập trung vào việc viết mã C# mà không cần phải lo lắng về việc chuyển đổi sang JavaScript hoặc các ngôn ngữ khác.
10What 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.
11Which two hosting models does Blazor support? (Choose 2 answers)4 lựa chọnDễ100% trả lời đúng
ABlazor Server
BBlazor WebAssembly
CBlazor Desktop
DBlazor Native
Lời giải
Mở trang câu hỏi này →Blazor hỗ trợ hai mô hình hosting chính là Blazor Server và Blazor WebAssembly. Mô hình Blazor Server cho phép ứng dụng được chạy trên máy chủ, trong khi đó Blazor WebAssembly cho phép ứng dụng được chạy trực tiếp trên trình duyệt của người dùng. Mô hình Blazor Server thường được sử dụng khi cần có khả năng tương tác thực-time và cập nhật dữ liệu ngay lập tức, trong khi mô hình Blazor WebAssembly thường được sử dụng khi cần có khả năng chạy ứng dụng độc lập và không cần kết nối internet.
12What is the root component of a Blazor app?4 lựa chọnDễ71% trả lời đúng
A
Index.razorB
Routes.razorC
App.razorD
MainLayout.razorLời giải
Mở trang câu hỏi này →Trong một ứng dụng Blazor, thành phần gốc (root component) là nơi chứa các thông tin cấu hình cơ bản của ứng dụng. Nó được sử dụng để định nghĩa các thành phần khác nhau của ứng dụng, bao gồm layout, routing và các thành phần khác. Thành phần gốc thường được gọi là App.razor và nó được sử dụng để tạo ra một ứng dụng Blazor mới. Trong App.razor, bạn có thể định nghĩa các thành phần khác nhau của ứng dụng, chẳng hạn như layout, routing và các thành phần khác. Nó cũng được sử dụng để cấu hình các tính năng khác nhau của ứng dụng, chẳng hạn như bảo mật và lưu trữ dữ liệu. Vì vậy, App.razor là thành phần gốc của một ứng dụng Blazor và nó được sử dụng để tạo ra một ứng dụng mới.
13What is the main class used for communication in SignalR?4 lựa chọnTrung bình67% trả lời đúng
A
HubB
ControllerC
PageModelD
ServiceLời giải
Mở trang câu hỏi này →Trong SignalR, lớp chính được sử dụng cho giao tiếp là Hub. Hub là một lớp trung gian giúp các client kết nối với nhau và thực hiện các hành động như gửi tin nhắn, cập nhật trạng thái. Nó giống như một trung tâm điều khiển, nơi mà các client có thể gửi và nhận thông tin. Khi một client gửi tin nhắn qua Hub, nó sẽ được gửi đến tất cả các client khác đang kết nối với Hub đó. Điều này giúp tạo ra một môi trường giao tiếp thực-time giữa các client.
14What is the purpose of the Context object in a SignalR hub?4 lựa chọnDễ100% trả lời đúng
ATo manage database connections.
BTo provide information about the current connection.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Mở trang câu hỏi này →Mục đích của đối tượng Context trong một Hub SignalR là cung cấp thông tin về kết nối hiện tại của khách hàng. Đối tượng Context chứa các thuộc tính và phương thức giúp bạn có thể truy cập và quản lý thông tin về kết nối, chẳng hạn như ID kết nối, địa chỉ IP, v.v. Điều này cho phép bạn có thể thực hiện các hành động tùy chỉnh dựa trên thông tin về kết nối, chẳng hạn như lưu trữ thông tin về khách hàng, kiểm tra quyền truy cập, v.v. Ngoài ra, đối tượng Context cũng cung cấp phương thức để bạn có thể gửi thông điệp đến khách hàng dựa trên ID kết nối.
15How do you use hubs in SignalR for ASP.NET Core?4 lựa chọnDễ100% trả lời đúng
ABy defining JavaScript functions.
BBy creating classes that inherit from Hub.
CBy using static HTML files.
DBy using database queries.
Lời giải
Mở trang câu hỏi này →Để sử dụng các hub trong SignalR cho ASP.NET Core, bạn cần tạo các lớp (class) mới mà kế thừa từ lớp Hub. Các lớp này sẽ chứa các phương thức (method) được gọi khi có kết nối đến từ các ứng dụng khách (client). Các phương thức này có thể gửi tin nhắn đến các ứng dụng khách đã kết nối. Ví dụ, bạn có thể tạo một lớp Hub có tên là 'ChatHub' và chứa phương thức 'SendMesssage' để gửi tin nhắn đến các ứng dụng khách đã kết nối. Khi một ứng dụng khách gửi tin nhắn đến server, server sẽ gọi phương thức 'SendMesssage' để gửi tin nhắn đến các ứng dụng khách khác. Điều này cho phép các ứng dụng khách tương tác với nhau trong thời gian thực.
16How 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.
17What is the purpose of the User feature in SignalR?4 lựa chọnDễ100% trả lời đúng
ATo manage database connections.
BTo send messages to clients based on their authenticated user identity.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Mở trang câu hỏi này →Tính năng User trong SignalR được sử dụng để quản lý và gửi tin nhắn đến các khách hàng dựa trên danh tính người dùng đã xác thực. Điều này cho phép các ứng dụng thực hiện các hành động dựa trên danh tính người dùng, chẳng hạn như gửi thông báo hoặc cập nhật trạng thái. Tính năng này cũng giúp các nhà phát triển xây dựng các ứng dụng có tính bảo mật cao hơn, bằng cách đảm bảo rằng các tin nhắn được gửi đến đúng người dùng. Ngoài ra, tính năng User cũng giúp các nhà phát triển quản lý và phân loại các khách hàng dựa trên danh tính người dùng, giúp họ dễ dàng quản lý và theo dõi các hoạt động của khách hàng.
18Which namespace must be imported to use Hub?4 lựa chọnDễ83% trả lời đúng
A
Microsoft.Extensions.DependencyInjectionB
Microsoft.AspNetCore.SignalRC
System.Threading.TasksD
Microsoft.AspNetCore.MvcLời giải
Mở trang câu hỏi này →Để sử dụng Hub, bạn cần import namespace là Microsoft.AspNetCore.SignalR. Đây là namespace được sử dụng để tạo và quản lý các Hub trong ứng dụng ASP.NET Core. Hub là một tính năng quan trọng trong SignalR, cho phép bạn tạo các ứng dụng thực-time và tương tác với người dùng. Khi bạn import namespace này, bạn có thể sử dụng các lớp và phương thức của SignalR để tạo và quản lý các Hub.
19Which method registers SignalR services in Startup?4 lựa chọnDễ83% trả lời đúng
A
services.AddHub()B
services.AddSignalR()C
app.UseSignalR()D
services.RegisterSignalR()Lời giải
Mở trang câu hỏi này →Để đăng ký dịch vụ SignalR trong ứng dụng ASP.NET Core, bạn cần sử dụng phương thức services.AddSignalR(). Phương thức này được sử dụng trong lớp Startup.cs để thêm dịch vụ SignalR vào bộ dịch vụ. Điều này cho phép ứng dụng sử dụng các tính năng của SignalR, chẳng hạn như tạo và kết nối đến các hub. Các phương thức khác như services.AddHub(), app.UseSignalR() và services.RegisterSignalR() không được sử dụng để đăng ký dịch vụ SignalR. services.AddHub() thường được sử dụng để tạo các hub, trong khi app.UseSignalR() được sử dụng để cấu hình SignalR trong ứng dụng. services.RegisterSignalR() không phải là một phương thức hợp lệ trong ASP.NET Core. Vì vậy, phương thức chính xác để đăng ký dịch vụ SignalR là services.AddSignalR().
20An IP address is primarily used to:4 lựa chọnDễ88% trả lời đúng
AIdentify a physical device on a local network only
BProvide logical addressing for devices across networks
CEncrypt data during transmission
DDefine the maximum transmission speed
Lời giải
Mở trang câu hỏi này →Địa chỉ IP chủ yếu được sử dụng để xác định địa chỉ logic cho các thiết bị trên các mạng khác nhau. Điều này cho phép các thiết bị trên mạng khác nhau giao tiếp với nhau và gửi dữ liệu qua mạng. Địa chỉ IP là một chuỗi số được sử dụng để định danh một thiết bị trên mạng, giúp các thiết bị khác trên mạng biết cách liên lạc với nó. Nó giống như một địa chỉ nhà, giúp các thiết bị khác tìm thấy và liên lạc với thiết bị đó trên mạng. Ngoài ra, địa chỉ IP cũng giúp quản lý và quản trị mạng một cách hiệu quả hơn.
21The AcceptSocketAsync() method in TcpListener is used to:4 lựa chọnDễ100% trả lời đúng
ASend data to a client
BAccept a pending client connection asynchronously
CStop the listener
DBind to an IP address
Lời giải
Mở trang câu hỏi này →Métodu AcceptSocketAsync() trong TcpListener được sử dụng để chấp nhận kết nối của một khách hàng đang chờ đợi một cách bất đồng bộ. Khi một khách hàng gửi yêu cầu kết nối đến máy chủ, thì phương thức này sẽ được gọi để chấp nhận yêu cầu đó và tạo ra một kết nối mới. Điều này cho phép máy chủ xử lý các yêu cầu kết nối một cách đồng thời và hiệu quả, đặc biệt là khi có nhiều khách hàng đang chờ đợi.
22What is the function of a DNS (Domain Name System)?4 lựa chọnDễ100% trả lời đúng
ATo encrypt network traffic.
BTo translate hostnames into IP addresses.
CTo manage network security.
DTo route network packets.
Lời giải
Mở trang câu hỏi này →Hệ thống tên miền (DNS) là một cơ sở dữ liệu phân tán được sử dụng để ánh xạ tên miền vào địa chỉ IP. Khi bạn nhập địa chỉ URL vào trình duyệt, DNS sẽ chuyển đổi tên miền thành địa chỉ IP tương ứng, cho phép thiết bị của bạn kết nối với máy chủ web. Điều này giúp người dùng dễ dàng nhớ và truy cập vào các trang web bằng tên miền dễ đọc hơn so với địa chỉ IP phức tạp.
23Which protocol is connection-oriented and ensures reliable data transfer?4 lựa chọnDễ89% trả lời đúng
AUDP
BIP
CTCP
DHTTP
Lời giải
Mở trang câu hỏi này →Protocol liên kết có hướng và đảm bảo chuyển dữ liệu tin cậy là gì? Để trả lời câu hỏi này, chúng ta cần hiểu về các protocol mạng khác nhau. UDP (User Datagram Protocol) là một protocol không liên kết, không đảm bảo chuyển dữ liệu tin cậy. IP (Internet Protocol) là protocol định tuyến, không liên kết và không đảm bảo chuyển dữ liệu tin cậy. HTTP (Hypertext Transfer Protocol) là protocol ứng dụng, không liên kết và không đảm bảo chuyển dữ liệu tin cậy. TCP (Transmission Control Protocol) là một protocol liên kết có hướng, đảm bảo chuyển dữ liệu tin cậy. Nó sử dụng các kỹ thuật như gửi lại dữ liệu bị lỗi, sắp xếp lại dữ liệu và kiểm tra lỗi để đảm bảo dữ liệu được chuyển đến đích một cách chính xác. Vì vậy, TCP là protocol liên kết có hướng và đảm bảo chuyển dữ liệu tin cậy.
24What is the default HTTP method when calling GetAsync() in HttpClient?4 lựa chọnDễ88% trả lời đúng
APOST
BPUT
CGET
DDELETE
Lời giải
Mở trang câu hỏi này →Khi gọi GetAsync() trong HttpClient, phương thức HTTP mặc định là GET. Phương thức GET được sử dụng để yêu cầu dữ liệu từ một nguồn nào đó mà không cần thay đổi dữ liệu đó. Nó thường được sử dụng để lấy dữ liệu từ một trang web hoặc một API. Trong trường hợp này, GetAsync() sẽ gửi một yêu cầu GET đến nguồn dữ liệu và trả về dữ liệu đó. Điều này giúp cho việc lấy dữ liệu trở nên dễ dàng và hiệu quả hơn.