Đề ô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 cuối kỳ số 2 (50 câu)
50 câu · Cuối kỳ
50câu trong đề
PRN222môn
Câu hỏi của đề
15/50 câuCòn 35
1Given the code:4 lựa chọncó codeDễ88% trả lời đúng
builder.Services.AddScoped<IOrderService, OrderService>();How will OrderService behave?
ASame instance for the entire application
BNew instance for each HTTP request
CNew instance every time injected
DThread-local instance
Lời giải
Mở trang câu hỏi này →Khi sử dụng phương thức Scoped trong Dependency Injection của .NET, OrderService sẽ được tạo mới cho mỗi yêu cầu HTTP. Điều này có nghĩa là mỗi lần OrderService được yêu cầu, một phiên bản mới sẽ được tạo và sử dụng cho đến khi yêu cầu đó kết thúc. Điều này giúp đảm bảo rằng mỗi yêu cầu HTTP có một phiên bản riêng biệt của OrderService, tránh được các vấn đề liên quan đến việc chia sẻ trạng thái giữa các yêu cầu khác nhau.
2What does this code do?4 lựa chọncó codeDễ100% trả lời đúng
services.AddTransient<ILogger, ConsoleLogger>();ARegisters ILogger so that each request gets a new ConsoleLogger instance
BRegisters ILogger as a singleton
CRegisters ConsoleLogger directly without abstraction
DThrows an error since ILogger is abstract
Lời giải
Mở trang câu hỏi này →Trong mã code này, đoạn địch vụ AddTransient được sử dụng để đăng ký một dịch vụ ILogger với một thực thể ConsoleLogger cụ thể. Đoạn địch vụ AddTransient cho phép mỗi yêu cầu nhận được một phiên bản mới của ConsoleLogger. Điều này có nghĩa là mỗi lần yêu cầu được xử lý, một phiên bản mới của ConsoleLogger sẽ được tạo ra và sử dụng, sau đó bị hủy bỏ khi yêu cầu được hoàn thành. Điều này giúp đảm bảo rằng mỗi yêu cầu nhận được một phiên bản mới và độc lập của ConsoleLogger, mà không bị ảnh hưởng bởi các yêu cầu khác.
3Which of the following is an example of a situation where a Scoped service lifetime would be appropriate?4 lựa chọnDễ86% trả lời đúng
AA global application configuration.
BA request-specific database context in a web application.
CA stateless utility service.
DA single instance of a logger.
Lời giải
Mở trang câu hỏi này →Một dịch vụ có thời gian sống đượcScoped là một dịch vụ có thể được tạo mới và hủy bỏ trong mỗi yêu cầu. Ví dụ về một tình huống nơi một dịch vụ có thời gian sống đượcScoped sẽ phù hợp là khi bạn cần một đối tượng cơ sở dữ liệu cụ thể cho mỗi yêu cầu trong một ứng dụng web. Điều này có thể giúp ngăn chặn các vấn đề về đồng bộ hóa và đảm bảo rằng mỗi yêu cầu có một đối tượng cơ sở dữ liệu độc lập.
4What is the main goal of Inversion of Control (IoC)?4 lựa chọnDễ100% trả lời đúng
ATo increase performance
BTo invert object creation responsibility
CTo remove polymorphism
DTo disable inheritance
Lời giải
Mở trang câu hỏi này →Inversion of Control (IoC) là một nguyên tắc thiết kế phần mềm quan trọng trong lập trình. Mục tiêu chính của IoC là đảo ngược trách nhiệm tạo đối tượng. Thay vì các đối tượng phụ thuộc vào các đối tượng khác để tạo ra, IoC cho phép các đối tượng được tạo ra và quản lý bởi một hệ thống trung tâm. Điều này giúp giảm sự phức tạp và tăng tính linh hoạt của mã nguồn. IoC cũng cho phép dễ dàng thay đổi hoặc thay thế các đối tượng mà không ảnh hưởng đến các đối tượng khác. Nói cách khác, IoC giúp giảm sự phụ thuộc giữa các đối tượng và tăng cường khả năng mở rộng của hệ thống.
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.
Đánh giá quiz
Người học chấm PRN222 Lập trình ứng dụng đa nền tảng nâng cao với .NET – Bộ ôn tập cuối kỳ số 2 (50 câu) ra sao?
Trung bình từ các phiên học hợp lệ.
5.0
1 lượt chấm