PRN232Chưa đoKỳ 8Chuyên ngành Cập nhật 28/07/2026

PRN232 - Xây dựng ứng dụng back-end đa nền tảng với .NET

PRN232 - Xây dựng ứng dụng back-end đa nền tảng với .NET là môn học xây dựng RESTful Web API bằng C# 12 và .NET 8 trên nền ASP.NET Core. Ngân hàng câu hỏi trắc nghiệm PRN232 có giải thích bao quát trọn bộ chương trình: nhập môn ASP.NET Core và RESTful Service (ràng buộc REST, tính phi trạng thái, giao thức HTTP, request line, mã trạng thái 200 OK, Kestrel, Swagger và OpenAPI, MapControllers, middleware trong Program.cs), Models trong Web API với Entity Framework Core (DbContext, DbSet, LINQ và ToListAsync, POCO, Repository Pattern, Data Transfer Object, AutoMapper, tránh trả thẳng entity ra client), Media Formatters và Content Negotiation (InputFormatter và OutputFormatter, TextInputFormatter, header Accept và Content-Type, hệ số ưu tiên q, application/json, application/xml, text/csv, serialization và deserialization), Binding - Validation - Routing (Model Binder, binding source parameter inference, FromBody, FromQuery, FromRoute, FromHeader, attribute routing, tham số route, Data Annotations với Required, StringLength, EmailAddress, RegularExpression, ApiController và ModelState.IsValid, trả về 400 Bad Request và NotFound), OData trong ASP.NET Core Web API (gói Microsoft.AspNetCore.OData, ODataConventionModelBuilder, Entity Data Model, Entity Set, các tuỳ chọn truy vấn $filter, $select, $expand, $orderby, $count, $skip, $top, endpoint $metadata, hàm endswith), bảo mật RESTful Web Service (ASP.NET Core Identity, JSON Web Token với ba phần Header - Payload - Signature, UseAuthentication và UseAuthorization, header Authorization dạng Bearer, thuộc tính Authorize theo Roles, HTTPS, xác thực và phân quyền), JavaScript Client và AJAX (jQuery, cú pháp $(selector).action(), $.ajax, $.get, $.post, phương thức .on() và event delegation, Same-Origin Policy, CORS, JSON hợp lệ, XML well-formed), xây dựng dịch vụ với WCF và CoreWCF (ServiceContract, OperationContract, endpoint ABC gồm Address - Binding - Contract, AddServiceModelServices, host trong ASP.NET Core dưới dạng middleware) và gRPC Service (Protocol Buffers, file .proto, HTTP/2, GrpcChannel, ServerCallContext, streaming hai chiều, Server Push), khép lại bằng kiến trúc Microservices (API Gateway, Ocelot, Docker, giao tiếp đồng bộ và bất đồng bộ, cơ sở dữ liệu riêng cho từng service, runtime coupling). Tài liệu ôn thi FE dành cho sinh viên FPT University.

115Câu hỏi
3Bộ đề
10Chủ đề
5,01 đánh giá

Câu hỏi của môn

115/115 câuHết danh sách
105What is a "channel" in gRPC?4 lựa chọn
AThe service implementation on the server.
BThe generated client-side code.
CA long-lived connection to a gRPC service, which can be reused for multiple calls.
DA specific type of streaming method.
Lời giải
Trong gRPC, một "kênh" (channel) được định nghĩa là một kết nối lâu dài đến một dịch vụ gRPC, có thể được tái sử dụng cho nhiều cuộc gọi. Điều này cho phép các ứng dụng gRPC thực hiện nhiều cuộc gọi đến một dịch vụ mà không cần phải thiết lập lại kết nối mới. Mỗi kênh được tạo ra bằng cách gọi phương thức `CreateChannel` và nó được sử dụng để thực hiện các cuộc gọi đến dịch vụ gRPC. Kênh có thể được sử dụng để thực hiện các cuộc gọi một chiều, hai chiều hoặc streaming. Việc sử dụng kênh giúp cải thiện hiệu suất và giảm thiểu thời gian thiết lập kết nối.
Mở trang câu hỏi này →
106What is a primary advantage of using Protocol Buffers (Protobuf) over JSON?4 lựa chọnDễ100% trả lời đúng
AProtobuf is a human-readable text format, making it easier to debug.
BProtobuf uses a binary serialization format, which is typically smaller and faster to parse than text-based JSON.
CProtobuf is natively supported by all web browsers without any libraries.
DProtobuf has a more flexible schema that can be changed by the client at will.
Lời giải
Protobuf là một định dạng serialize binary, giúp giảm kích thước dữ liệu và tăng tốc độ parse so với định dạng JSON text-based. Điều này là do định dạng binary không cần phải được mã hóa thành chuỗi text như JSON, giúp giảm thiểu dữ liệu cần truyền tải và tăng tốc độ xử lý. Ngoài ra, định dạng binary cũng giúp giảm thiểu khả năng xảy ra lỗi khi truyền tải dữ liệu. Vì vậy, sử dụng Protobuf có thể giúp giảm thiểu thời gian truyền tải và tăng tốc độ xử lý dữ liệu, đặc biệt là khi cần truyền tải một lượng lớn dữ liệu.
Mở trang câu hỏi này →
107In a typical microservice architecture, what is the role of an "API Gateway"?4 lựa chọnDễ100% trả lời đúng
AIt is the database used by all microservices.
BIt is a single entry point for all client requests, routing them to the appropriate downstream microservice and potentially handling cross-cutting concerns like authentication and SSL termination.
CIt is a tool for developers to test their services locally.
DIt is a message broker for asynchronous communication.
Lời giải
Trong kiến trúc microservice thông thường, vai trò của "API Gateway" là điểm truy cập duy nhất cho tất cả các yêu cầu từ khách hàng, chuyển hướng chúng đến microservice downstream phù hợp và có thể xử lý các vấn đề xuyên suốt như xác thực và kết thúc SSL. API Gateway đóng vai trò như một cầu nối giữa khách hàng và các microservice, giúp phân phối và quản lý các yêu cầu một cách hiệu quả. Nó cũng có thể xử lý các vấn đề như bảo mật, giám sát và phân tích dữ liệu, giúp tăng cường tính bảo mật và hiệu suất của hệ thống. Việc sử dụng API Gateway giúp giảm thiểu sự phức tạp và tăng cường khả năng mở rộng của hệ thống.
Mở trang câu hỏi này →
ADatabase
BShared configuration file
CMonolithic deployment
DUI layer
Lời giải
Trong mô hình Microservices, mỗi dịch vụ thường có cơ sở dữ liệu riêng. Điều này cho phép mỗi dịch vụ có thể được thiết kế và triển khai độc lập, mà không cần phải phụ thuộc vào các dịch vụ khác. Mỗi dịch vụ có thể sử dụng cơ sở dữ liệu phù hợp với nhu cầu của nó, giúp tăng cường khả năng mở rộng và độ tin cậy của hệ thống. Ngoài ra, việc sử dụng cơ sở dữ liệu riêng cho mỗi dịch vụ cũng giúp giảm thiểu tác động của lỗi hoặc sự cố đối với các dịch vụ khác.
Mở trang câu hỏi này →
AVirtual Machines (VMs)
BDocker
CWebDeploy
DFTP
Lời giải
Để đóng gói một microservice ASP.NET Core thành một container cho việc triển khai, công nghệ được sử dụng phổ biến nhất là Docker. Docker cho phép tạo ra một môi trường ảo hóa (container) độc lập, giúp đảm bảo ứng dụng chạy ổn định và không bị ảnh hưởng bởi môi trường hệ thống. Mỗi container có thể chứa một ứng dụng độc lập, cùng với tất cả các phụ thuộc và cấu hình cần thiết. Điều này giúp dễ dàng triển khai và quản lý các ứng dụng microservice trên nhiều môi trường khác nhau. Ngoài ra, Docker cũng hỗ trợ các tính năng như tự động hóa xây dựng, phân phối và giám sát ứng dụng, giúp tăng hiệu suất và giảm thiểu thời gian triển khai.
Mở trang câu hỏi này →
AIt increases the loose coupling between services.
BIt improves the overall fault tolerance of the system.
CIt creates runtime coupling, meaning if a downstream service is slow or unavailable, the calling service may be blocked or fail.
DIt is not supported by modern frameworks like ASP.NET Core.
Lời giải
Sử dụng giao tiếp đồng bộ hoàn toàn trong kiến trúc microservice có một nhược điểm chính. Khi một dịch vụ downstream chậm hoặc không khả dụng, dịch vụ gọi sẽ bị chặn hoặc thất bại. Điều này xảy ra vì giao tiếp đồng bộ yêu cầu dịch vụ gọi phải chờ phản hồi từ dịch vụ downstream trước khi tiếp tục thực hiện. Nếu dịch vụ downstream chậm hoặc không khả dụng, dịch vụ gọi sẽ bị ảnh hưởng và có thể bị chặn hoặc thất bại. Điều này làm giảm hiệu suất và độ tin cậy của hệ thống. Ngoài ra, giao tiếp đồng bộ cũng làm tăng độ phức tạp của hệ thống và khó khăn hơn trong việc quản lý và bảo trì.
Mở trang câu hỏi này →
111Which is often used as an API Gateway in a Microservices architecture?4 lựa chọnKhó25% trả lời đúng
AIIS Express
BOcelot
CKestrel
DEntity Framework
Lời giải
Trong kiến trúc Microservices, API Gateway đóng vai trò là điểm truy cập chính để giao tiếp với các dịch vụ micro. Ocelot là một trong những lựa chọn phổ biến để sử dụng làm API Gateway. Nó cung cấp các tính năng như cân bằng tải, bảo mật, và phân phối yêu cầu đến các dịch vụ micro khác nhau. Ocelot cũng cho phép cấu hình linh hoạt và dễ dàng tích hợp với các dịch vụ khác nhau. Ngoài ra, Ocelot cũng hỗ trợ các giao thức như HTTP/1.1, WebSockets và gRPC. Vì vậy, Ocelot là một lựa chọn tốt để sử dụng làm API Gateway trong kiến trúc Microservices.
Mở trang câu hỏi này →
AA single, large application that handles all business logic in one deployable unit.
BAn architectural style that structures an application as a collection of small, independently deployable services organized around business capabilities.
CA client-side framework for building single-page applications.
DA database design pattern for sharding data across multiple servers.
Lời giải
Một kiến trúc vi mô (microservice architecture) là một phong cách kiến trúc ứng dụng được cấu trúc thành một tập hợp các dịch vụ nhỏ, có thể triển khai độc lập và được tổ chức xung quanh các khả năng kinh doanh. Mỗi dịch vụ có thể được triển khai bằng ngôn ngữ lập trình khác nhau và có thể được triển khai độc lập, điều này cho phép các dịch vụ được phát triển, thử nghiệm và triển khai nhanh chóng mà không ảnh hưởng đến các dịch vụ khác. Kiến trúc vi mô cho phép ứng dụng linh hoạt và dễ dàng mở rộng, đồng thời giảm thiểu rủi ro khi triển khai ứng dụng.
Mở trang câu hỏi này →
113Which of the following is a key attribute of a microservice?4 lựa chọnKhó0% trả lời đúng
AIt must be written in C#.
BIt is independently deployable and scalable.
CIt shares its database with many other services to ensure data consistency.
DIt contains the logic for the entire application.
Lời giải
Một trong những đặc điểm quan trọng của một microservice là tính độc lập trong việc triển khai và mở rộng. Điều này có nghĩa là mỗi microservice có thể được triển khai và mở rộng độc lập mà không ảnh hưởng đến các microservice khác. Điều này cho phép các microservice được thiết kế và triển khai theo cách linh hoạt và hiệu quả hơn. Ví dụ, nếu một microservice đang gặp vấn đề, nó có thể được sửa chữa hoặc thay thế mà không ảnh hưởng đến các microservice khác. Tính độc lập trong triển khai và mở rộng cũng cho phép các microservice được triển khai trên các nền tảng khác nhau, chẳng hạn như trên cloud hoặc trên máy chủ riêng. Điều này giúp tăng cường tính linh hoạt và hiệu suất của hệ thống.
Mở trang câu hỏi này →
ATightly coupled modules
BIndependent deployment and scalability
CSingle technology stack only
DReduced system complexity
Lời giải
Microservices cung cấp nhiều lợi ích quan trọng, nhưng một trong những lợi ích chính là tính độc lập trong việc triển khai và mở rộng. Với kiến trúc Microservices, mỗi module được thiết kế và triển khai độc lập, cho phép mỗi module được mở rộng và sửa chữa mà không ảnh hưởng đến các module khác. Điều này giúp tăng cường độ linh hoạt và khả năng thích nghi của hệ thống, cũng như giảm thiểu rủi ro khi triển khai các thay đổi. Ngoài ra, tính độc lập trong triển khai và mở rộng cũng giúp giảm thiểu thời gian và chi phí cần thiết để triển khai các thay đổi, vì mỗi module có thể được triển khai và mở rộng độc lập.
Mở trang câu hỏi này →
AOne service publishes an event to a message queue, and another service subscribes to it.
BService A makes a direct HTTP (e.g., REST or gRPC) call to Service B and waits for an immediate response.
CService A sends an email notification.
DService B processes a batch job overnight based on data from Service A.
Lời giải
Sự giao tiếp đồng bộ giữa các microservice là một quá trình trao đổi thông tin giữa các dịch vụ trong thời gian thực. Ví dụ về giao tiếp đồng bộ giữa các microservice là khi Service A thực hiện một yêu cầu HTTP trực tiếp đến Service B và chờ đợi phản hồi ngay lập tức. Điều này cho phép Service A và Service B trao đổi thông tin và thực hiện các hành động dựa trên thông tin đó trong thời gian thực. Điều này khác với giao tiếp bất đồng bộ, nơi các dịch vụ trao đổi thông tin nhưng không chờ đợi phản hồi ngay lập tức. Giao tiếp đồng bộ thường được sử dụng trong các ứng dụng cần phản hồi nhanh chóng và chính xác, chẳng hạn như các ứng dụng thương mại điện tử hoặc các ứng dụng tài chính.
Mở trang câu hỏi này →