Câu hỏi: PRN222 - Chương 6: Blazor Server và WebAssembly
22 câu trắc nghiệm kèm lời giải của môn 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, xếp theo thứ tự nhập vào ngân hàng.
Danh sách câu hỏi
20/22 câuCòn 2
1What 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ữ.
2Which 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.
3What 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.
4Which 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.
5What 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.
6Which directive is used to declare a strongly-typed View?4 lựa chọnTrung bình43% trả lời đúng
A@model
B@view
C@bind
D@data
Lời giải
Mở trang câu hỏi này →Để tạo một View được định nghĩa rõ ràng (strongly-typed View), bạn cần sử dụng một trong các chỉ thị sau. Trong đó, chỉ thị '@model' được sử dụng rộng rãi nhất để khai báo kiểu dữ liệu của View. Ví dụ, nếu bạn muốn tạo một View để hiển thị thông tin về một người dùng, bạn có thể sử dụng '@model' để khai báo kiểu dữ liệu là 'User'. Điều này giúp cho View của bạn được định nghĩa rõ ràng và dễ dàng sử dụng.
7Which of the following is a drawback of Blazor WebAssembly?4 lựa chọnTrung bình50% trả lời đúng
ARequires .NET runtime installed on the client
BLarger initial download size
CNo component model
DNo data binding support
Lời giải
Mở trang câu hỏi này →Blazor WebAssembly là một công nghệ phát triển ứng dụng web sử dụng mã nguồn mở .NET. Mặc dù nó mang lại nhiều lợi ích, nhưng cũng có một số nhược điểm. Một trong những nhược điểm chính của Blazor WebAssembly là kích thước tải về ban đầu lớn hơn so với các công nghệ khác. Điều này có thể gây khó khăn cho người dùng có kết nối internet chậm hoặc thiết bị có bộ nhớ hạn chế. Ngoài ra, kích thước lớn của Blazor WebAssembly cũng có thể ảnh hưởng đến hiệu suất của ứng dụng. Tuy nhiên, cần lưu ý rằng kích thước tải về ban đầu có thể được giảm thiểu bằng cách sử dụng các công nghệ như mã hóa và nén.
8What 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ả.
9What 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.
10Which 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.
11What is the purpose of the [Parameter] attribute in a Blazor component?4 lựa chọnDễ100% trả lời đúng
ATo define a database connection.
BTo define a property that can be set from a parent component.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Mở trang câu hỏi này →Trong Blazor, [Parameter] là một thuộc tính quan trọng được sử dụng để định nghĩa một thuộc tính có thể được thiết lập từ một thành phần cha. Khi một thành phần con sử dụng [Parameter], nó cho phép thành phần cha truyền giá trị cho thuộc tính đó. Điều này giúp tăng cường khả năng tương tác giữa các thành phần trong ứng dụng Blazor. Ví dụ, nếu bạn có một thành phần cha chứa một danh sách dữ liệu và muốn truyền danh sách đó cho thành phần con để hiển thị, bạn có thể sử dụng [Parameter] để định nghĩa thuộc tính nhận danh sách dữ liệu. Đ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.
12What is the purpose of the DbContext in a Blazor Web App with Entity Framework Core?4 lựa chọnDễ100% trả lời đúng
ATo manage user sessions.
BTo represent a database session and provide methods for querying and saving data.
CTo encrypt data.
DTo render UI components.
Lời giải
Mở trang câu hỏi này →DbContext trong một ứng dụng Blazor Web App sử dụng Entity Framework Core là một lớp quan trọng giúp quản lý kết nối cơ sở dữ liệu và cung cấp các phương thức để truy vấn và lưu trữ dữ liệu. Nó đại diện cho một phiên làm việc với cơ sở dữ liệu, cho phép bạn thực hiện các hoạt động như thêm, sửa, xóa và tìm kiếm dữ liệu. DbContext cũng cung cấp các phương thức để quản lý các thay đổi dữ liệu, chẳng hạn như Add, Update và Delete. Ngoài ra, nó còn giúp bạn quản lý các mối quan hệ giữa các bảng trong cơ sở dữ liệu. Tóm lại, DbContext là một lớp quan trọng giúp bạn tương tác với cơ sở dữ liệu một cách hiệu quả và an toàn.
13What are the two primary rendering modes in Blazor?4 lựa chọnDễ100% trả lời đúng
AStatic and dynamic.
BClient-side and server-side.
CWebAssembly and Server.
DLocal and remote.
Lời giải
Mở trang câu hỏi này →Blazor cung cấp hai chế độ rendering chính là WebAssembly và Server. Chế độ WebAssembly cho phép chạy ứng dụng Blazor trên máy khách (client-side), trong khi chế độ Server cho phép chạy ứng dụng Blazor trên máy chủ (server-side). Chế độ WebAssembly sử dụng công nghệ WebAssembly để biên dịch mã C# thành mã máy tính có thể chạy trên trình duyệt, trong khi chế độ Server sử dụng ASP.NET Core để chạy ứng dụng Blazor trên máy chủ. Mỗi chế độ rendering có ưu và nhược điểm riêng, và người dùng có thể chọn chế độ phù hợp với nhu cầu của mình.
14Which directive is used for two-way data binding?4 lựa chọnTrung bình67% trả lời đúng
A@bind
B@twoWay
C@model
D@dataBind
Lời giải
Mở trang câu hỏi này →Để thực hiện hai chiều dữ liệu (two-way data binding), chúng ta sử dụng chỉ thị @bind. Chỉ thị này cho phép dữ liệu được cập nhật đồng bộ giữa giao diện người dùng và lớp mẫu (model). Điều này có nghĩa là bất kỳ thay đổi nào được thực hiện trên giao diện người dùng sẽ được phản ánh ngay lập tức trong lớp mẫu, và ngược lại. @bind là một trong những chỉ thị quan trọng nhất trong Angular, giúp tạo ra ứng dụng có tính tương tác cao và dễ sử dụng.
15What is a primary benefit of ASP.NET Core Blazor?4 lựa chọnDễ100% trả lời đúng
AReduced code reusability.
BAbility to write client-side logic in C#.
CIncreased reliance on JavaScript.
DLimited cross-platform support.
Lời giải
Mở trang câu hỏi này →ASP.NET Core Blazor là một công nghệ phát triển ứng dụng web tiên tiến. Một trong những lợi ích chính của nó là khả năng viết logic phía client bằng ngôn ngữ C#. Điều này cho phép các nhà phát triển có thể tận dụng kiến thức và kỹ năng của họ trong C# để xây dựng các ứng dụng web phức tạp mà không cần phải chuyển sang JavaScript. Việc này giúp giảm thiểu thời gian và công sức cần thiết để phát triển ứng dụng, đồng thời cũng giúp đảm bảo chất lượng và tính ổn định của ứng dụng. Ngoài ra, khả năng viết logic phía client bằng C# cũng giúp tăng cường khả năng bảo mật và giảm thiểu rủi ro bảo mật trong ứng dụng.
16In .NET, what class is used to register services for Dependency Injection?4 lựa chọnDễ100% trả lời đúng
A
DbContextB
ServiceCollectionC
WebRequestD
TaskLời giải
Mở trang câu hỏi này →Trong .NET, lớp được sử dụng để đăng ký dịch vụ cho Dependency Injection là lớp ServiceCollection. Lớp này cung cấp các phương thức để thêm, xóa và kiểm tra các dịch vụ đã được đăng ký. ServiceCollection được sử dụng để quản lý các dịch vụ trong ứng dụng .NET và cung cấp khả năng tùy chỉnh cao để đăng ký các dịch vụ khác nhau. Khi sử dụng Dependency Injection, ServiceCollection được sử dụng để đăng ký các dịch vụ và cung cấp khả năng giải quyết các dịch vụ cho các lớp khác trong ứng dụng.
17What is the purpose of the @inject directive in Blazor?4 lựa chọnDễ100% trả lời đúng
ATo define a database connection.
BTo inject dependencies into a component.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Mở trang câu hỏi này →Đạo lệnh @inject trong Blazor được sử dụng để chèn phụ thuộc vào một thành phần. Điều này có nghĩa là bạn có thể sử dụng các dịch vụ hoặc đối tượng khác trong ứng dụng của mình mà không cần phải tạo ra chúng từ đầu. Ví dụ, nếu bạn có một dịch vụ để lưu trữ dữ liệu, bạn có thể sử dụng @inject để chèn dịch vụ này vào một thành phần của ứng dụng. Đ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. Ngoài ra, @inject cũng giúp bạn dễ dàng thay đổi hoặc cập nhật các phụ thuộc mà không cần phải thay đổi mã nguồn của ứng dụng.
18Which of the following is an example of an "Action Result" in ASP.NET Core MVC?4 lựa chọnDễ83% trả lời đúng
A
DbContextB
ViewResultC
ServiceCollectionD
TaskLời giải
Mở trang câu hỏi này →Trong ASP.NET Core MVC, 'Action Result' là một loại kết quả được trả về bởi một hành động. Nó đại diện cho kết quả của một hành động và có thể là một trang web (ViewResult), một chuyển hướng (RedirectResult), một tập tin (FileResult), v.v. ViewResult là một ví dụ về Action Result, nó được sử dụng để trả về một trang web (View) sau khi thực hiện một hành động. ViewResult có thể được sử dụng để trả về một trang web có nội dung được tạo động hoặc một trang web có nội dung được lưu trữ trong tệp.
A
Program.csB
Routes.razorC
App.razorD
Startup.csLời giải
Mở trang câu hỏi này →Đáp án đúng: "App.razor". Trong các dự án Blazor Server và Blazor WebAssembly, thành phần Router được khai báo trong App.razor: nó nhận AppAssembly để quét các trang có chỉ thị @page, định nghĩa Found và NotFound, và bọc trong RouteView để dựng layout. Program.cs chỉ đăng ký dịch vụ và cấu hình pipeline; Startup.cs là kiểu tổ chức cũ đã bị gộp vào Program.cs từ .NET 6. Lưu ý mẫu Blazor Web App của .NET 8 tách phần Router sang Routes.razor, nhưng trong phạm vi Blazor Server/WebAssembly của môn học thì App.razor là câu trả lời.
ABy writing JavaScript code.
BBy installing NuGet packages and configuring the DbContext.
CBy using static HTML files.
DBy using a database management system.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "By installing NuGet packages and configuring the DbContext.". Để dùng Entity Framework Core trong một dự án Blazor Web App, ta cài các gói NuGet cần thiết như Microsoft.EntityFrameworkCore, gói provider tương ứng (SqlServer, Sqlite...) và Microsoft.EntityFrameworkCore.Tools; sau đó định nghĩa lớp DbContext và đăng ký nó vào DI bằng builder.Services.AddDbContext hoặc AddDbContextFactory cùng chuỗi kết nối. Viết JavaScript, như phương án "By writing JavaScript code.", và dùng tệp HTML tĩnh, như phương án "By using static HTML files.", không liên quan tới truy cập dữ liệu; còn phương án "By using a database management system." chỉ nói tới hệ quản trị cơ sở dữ liệu - thứ nằm ở phía máy chủ, không phải cách thêm EF Core vào dự án.