Tổng hợp 500+ câu hỏi phỏng vấn Asp.net Core
Tổng hợp những câu hỏi phỏng vấn Asp.net Core mới nhất, chính xác nhất theo từng cấp bậc!
Câu hỏi phỏng vấn Asp.net Core
Hãy xem các câu hỏi chúng tôi đã tổng hợp và cùng ôn luyện lại nhé!
Trong Asp.net Core, Asp.net Core là một framework phát triển ứng dụng web mã nguồn mở được phát triển bởi Microsoft. Nó là phiên bản tiếp theo của Asp.net Framework truyền thống và được thiết kế để xây dựng các ứng dụng web hiệu suất cao, có khả năng mở rộng và dễ bảo trì.
Asp.net Core hỗ trợ làm việc trên nhiều nền tảng, bao gồm Windows, macOS và Linux, và cho phép phát triển ứng dụng web sử dụng các ngôn ngữ lập trình như C#, F# và Visual Basic.
Asp.net Core cung cấp các tính năng mạnh mẽ như Dependency Injection, Routing, Middleware, Authentication và Authorization, ORM (Object Relational Mapping), RESTful API và nhiều hơn nữa. Nó cũng tích hợp tốt với các công nghệ và công cụ phát triển web phổ biến như Angular, React và Xamarin.
Có nhiều lợi ích khi sử dụng Asp.net Core trong phát triển ứng dụng web:
-
Đa nền tảng: Asp.net Core là một framework đa nền tảng, cho phép bạn phát triển ứng dụng chạy trên Windows, Linux và MacOS mà không cần thay đổi mã nguồn.
-
Tích hợp tốt với công nghệ hiện đại: Asp.net Core hỗ trợ tích hợp với các công nghệ mới như Docker, Kubernetes và cloud computing platforms, giúp bạn dễ dàng triển khai và quản lý ứng dụng web.
-
Hiệu suất cao: Asp.net Core được thiết kế để có hiệu suất cao với việc sử dụng ít tài nguyên hệ thống và tốn ít băng thông mạng, giúp ứng dụng chạy nhanh hơn.
-
Mã nguồn mở: Asp.net Core được phát triển dưới dạng mã nguồn mở, cho phép cộng đồng phát triển và cải tiến nó, đồng thời cung cấp nhiều tài liệu và hỗ trợ từ cộng đồng phát triển.
-
Kiến trúc linh hoạt: Asp.net Core cho phép bạn phát triển các ứng dụng web theo kiến trúc linh hoạt, hỗ trợ những phong cách phát triển khác nhau như MVC, Razor Pages và API.
-
Bảo mật mạnh mẽ: Asp.net Core cung cấp các tính năng bảo mật mạnh mẽ như xác thực và phân quyền, giúp bảo vệ ứng dụng của bạn trước các cuộc tấn công mạng.
-
Dễ dàng kiểm thử: Asp.net Core hỗ trợ việc kiểm thử tự động và mock các thành phần phụ thuộc, giúp bạn dễ dàng kiểm tra tính ổn định và chất lượng của ứng dụng.
Tổng quan, Asp.net Core là một framework mạnh mẽ, linh hoạt và hiệu quả để phát triển các ứng dụng web đa nền tảng và hiện đại.
Có một số sự khác biệt quan trọng giữa Asp.net Core và Asp.net Framework:
-
Đa nền tảng: Asp.net Core được thiết kế để chạy trên nhiều nền tảng khác nhau như Windows, macOS và Linux, trong khi Asp.net Framework chỉ chạy trên hệ điều hành Windows.
-
Kích thước gọn nhẹ: Asp.net Core có kích thước nhỏ gọn hơn so với Asp.net Framework, giúp giảm bộ nhớ và tăng tốc độ.
-
Tích hợp giao diện dòng lệnh: Asp.net Core cung cấp giao diện dòng lệnh (CLI) để phát triển và quản lý ứng dụng, trong khi Asp.net Framework chỉ có khả năng tích hợp Visual Studio.
-
Dependency Injection mạnh mẽ: Asp.net Core có hệ thống Dependency Injection (DI) mạnh mẽ và nhẹ nhàng tích hợp sẵn, trong khi Asp.net Framework cần sử dụng bên thứ ba để triển khai DI.
-
Performance cao: Do kích thước nhỏ gọn và tối ưu hóa hiệu suất, Asp.net Core có hiệu suất cao hơn so với Asp.net Framework.
Tuy nhiên, Asp.net Core không hỗ trợ đầy đủ các tính năng của Asp.net Framework và có một số sự thay đổi trong cách triển khai ứng dụng và quản lý các thành phần. Do đó, việc lựa chọn giữa Asp.net Core và Asp.net Framework cần xem xét các yếu tố như nền tảng, yêu cầu tính năng và hiệu suất của ứng dụng.
Để cấu hình một ứng dụng Asp.net Core, bạn có thể sử dụng một trong các phương pháp sau:
-
Sử dụng file appsettings.json: Tạo một file appsettings.json trong thư mục gốc của ứng dụng và cấu hình các thông số cần thiết trong đó. Bạn sau đó có thể đọc các giá trị cấu hình này trong mã thông qua đối tượng IConfiguration.
-
Sử dụng Dependency Injection: Asp.net Core hỗ trợ Dependency Injection cho việc cấu hình ứng dụng. Bạn có thể tạo các lớp để đại diện cho các cấu hình và đăng ký chúng với DI container. Sau đó, bạn có thể inject các cấu hình này vào các lớp cần sử dụng.
-
Sử dụng các Extension methods của Asp.net Core: Asp.net Core cung cấp một số extension methods để giúp cấu hình ứng dụng. Ví dụ, bạn có thể sử dụng phương thức ConfigureAppConfiguration để cấu hình từ các nguồn dữ liệu như Environment variables, Command line arguments, User secret, Azure Key Vault, etc.
-
Sử dụng feature flag: Một phương pháp khác để cấu hình ứng dụng là sử dụng feature flag. Bạn có thể sử dụng các thư viện như Microsoft.FeatureManagement để cung cấp cho ứng dụng khả năng thay đổi hành vi một cách linh hoạt dựa trên giá trị các feature flag.
Các phương pháp trên có thể được sử dụng cùng nhau để cấu hình ứng dụng Asp.net Core một cách linh hoạt và dễ quản lý.
Trong ASP.NET Core, bạn có thể thực hiện định tuyến bằng cách sử dụng đối tượng Route hoặc thuộc tính Route trên các phương thức trong các Controller.
Cách sử dụng đối tượng Route:
- Thêm một Route mặc định trong phương thức ConfigureServices trong file Startup.cs:
services.AddMvc(options => { options.EnableEndpointRouting = false; }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
- Trong các Controller của bạn, thêm các phương thức và sử dụng thuộc tính Route để đánh dấu định tuyến cho mỗi phương thức:
[Route("api/[controller]")] public class MyController : Controller { [HttpGet] [Route("myMethod")] public IActionResult MyMethod() { // code xử lý } }
Trong ví dụ trên, URL để truy cập vào phương thức MyMethod sẽ là /api/MyController/myMethod.
Cách sử dụng thuộc tính Route:
- Thêm một Route mặc định và bật tính năng định tuyến trong phương thức ConfigureServices trong file Startup.cs:
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
- Trong các Controller của bạn, sử dụng thuộc tính Route trên toàn bộ Controller và các phương thức:
[Route("api/[controller]")] public class MyController : Controller { [HttpGet("myMethod")] public IActionResult MyMethod() { // code xử lý } }
Trong ví dụ trên, URL để truy cập vào phương thức MyMethod sẽ là /api/MyController/myMethod.
Bạn cũng có thể sử dụng thuộc tính HttpGet, HttpPost, HttpPut, HttpDelete hoặc các thuộc tính khác tùy thuộc vào phương thức HTTP mà bạn muốn xử lý. Ví dụ: [HttpPost("create")] sẽ chỉ rằng phương thức đó chỉ được gọi khi nhận được một yêu cầu POST có URL là /api/MyController/create.
Trong ASP.NET Core, bạn có thể quản lý trạng thái phiên làm việc bằng cách sử dụng Middleware session. Dưới đây là các bước để thực hiện việc này:
Bước 1: Cài đặt gói NuGet Microsoft.AspNetCore.Session vào dự án của bạn.
Bước 2: Trong phương thức ConfigureServices của lớp Startup, thêm dòng sau để kích hoạt session: services.AddSession();
Bước 3: Trong phương thức Configure của lớp Startup, thêm dòng sau để sử dụng Middleware session: app.UseSession();
Bước 4: Trong các điểm cuối xử lý yêu cầu, bạn có thể đặt và lấy giá trị của phiên làm việc bằng cách sử dụng đối tượng HttpContext.Session. Ví dụ:
// Đặt giá trị của phiên làm việc HttpContext.Session.SetString("UserName", "John");
// Lấy giá trị của phiên làm việc var userName = HttpContext.Session.GetString("UserName");
Bước 5 (tuỳ chọn): Bạn cũng có thể cấu hình các tuỳ chọn cho Middleware session, chẳng hạn như thời gian sống của phiên làm việc bằng cách sử dụng phương thức services.Configure
services.Configure
Lưu ý rằng trạng thái phiên làm việc mặc định trong ASP.NET Core được lưu trữ trong cookies, vì vậy cần chắc chắn rằng ứng dụng của bạn được bảo mật và tuân thủ các quy tắc bảo vệ dữ liệu.
Trong ASP.NET Core, Razor Pages và MVC là hai mô hình phát triển web khác nhau.
Razor Pages là một phần mở rộng của MVC và được giới thiệu trong ASP.NET Core 2.0. Razor Pages tập trung vào việc phát triển các trang web đơn lẻ, có cấu trúc gọn nhẹ và dễ hiểu. Mỗi trang Razor Page tương ứng với một tệp .cshtml và một tệp .cshtml.cs (code-behind). Razor Pages cung cấp một cách tiếp cận "ghiến" (code-behind model) cho phép phân chia logic xử lý và giao diện người dùng. Mặc dù nó không rõ ràng về phân chia thành từng thành phần như MVC, nhưng nó rất linh hoạt và dễ dùng cho các ứng dụng đơn giản.
MVC (Model-View-Controller) là một mô hình phát triển web truyền thống trong ASP.NET Core. Nó tập trung vào việc phân chia ứng dụng thành các thành phần riêng biệt như Model (dữ liệu), View (giao diện người dùng) và Controller (xử lý logic). Nó cung cấp một cách tiếp cận linh hoạt hơn và phù hợp cho việc phát triển các ứng dụng phức tạp.
Tóm lại, khác nhau chính giữa Razor Pages và MVC trong ASP.NET Core là:
-
Razor Pages tập trung vào việc phát triển các trang web đơn lẻ, trong khi MVC tập trung vào phát triển các ứng dụng phức tạp có nhiều trang.
-
Razor Pages có cấu trúc gọn nhẹ và dễ hiểu hơn so với MVC.
-
Razor Pages sử dụng mô hình "ghiến" cho việc phân chia logic và giao diện, trong khi MVC sử dụng phân chia thành các thành phần riêng biệt (Model, View, Controller).
Trong ASP.NET Core, bạn có thể xử lý lỗi và ghi nhật ký bằng cách sử dụng Middleware và ILogger.
Để xử lý lỗi, bạn có thể sử dụng middleware ExceptionHandler. Đây là một bộ xử lý lỗi mặc định trong ASP.NET Core, nó có thể xử lý các ngoại lệ và ghi lại thông tin lỗi. Để sử dụng ExceptionHandler middleware, bạn cần thêm nó vào pipeline trong phương thức Configure của file Startup.cs.
Ví dụ:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
// ... các middleware khác
app.UseMvc();
}
Trong ví dụ trên, nếu ứng dụng đang ở trong môi trường phát triển, nó sẽ sử dụng DeveloperExceptionPage để hiển thị thông tin lỗi chi tiết. Trong các môi trường khác, nó sẽ sử dụng ExceptionHandler và chuyển hướng lỗi đến trang "/Error" nếu có.
Để ghi nhật ký, bạn có thể sử dụng giao diện ILogger. ILogger là một quy chuẩn ghi nhật ký trong ASP.NET Core, cho phép bạn ghi lại các thông tin quan trọng và sự kiện trong ứng dụng.
Để sử dụng ILogger, bạn cần tiêm vào một đối tượng ILogger trong contructor của lớp cần ghi nhật ký và sau đó sử dụng các phương thức Log của nó để ghi lại thông tin.
Ví dụ:
public class MyController : Controller
{
private readonly ILogger<MyController> _logger;
public MyController(ILogger<MyController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("Hello from MyController!");
return View();
}
}
Trong ví dụ trên, chúng ta tiêm vào một đối tượng ILogger
Để cấu hình ILogger, bạn có thể sử dụng các cấu hình hỗ trợ như appsettings.json hoặc configure logging trong phương thức Configure của file Startup.cs.
Trong Asp.net Core, bạn có thể xử lý yêu cầu AJAX bằng cách sử dụng các phương pháp hỗ trợ AJAX như XMLHttpRequest, Fetch API hoặc thư viện jQuery AJAX.
Dưới đây là một ví dụ về cách xử lý yêu cầu AJAX trong Asp.net Core:
-
Tạo một API controller trong Asp.net Core:
[Route("api/[controller]")] [ApiController] public class UsersController : ControllerBase { [HttpGet] public IActionResult Get() { // Trả về dữ liệu là JSON var users = new List<User> { new User { Id = 1, Name = "John" }, new User { Id = 2, Name = "Jane" } }; return Ok(users); } }
-
Sử dụng Fetch API trong HTML/javascript để gửi yêu cầu AJAX tới API controller vừa tạo:
fetch('/api/users') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));
-
Khi gửi yêu cầu AJAX, API controller sẽ trả về dữ liệu là JSON. Bạn có thể xử lý dữ liệu trả về hoặc hiển thị lên trang web theo ý muốn.
Lưu ý rằng đoạn mã trên sử dụng Fetch API, bạn cũng có thể sử dụng phương pháp khác như XMLHttpRequest hoặc thư viện jQuery AJAX để xử lý yêu cầu AJAX trong Asp.net Core.
Trong ASP.NET Core, bạn có thể xác thực và ủy quyền người dùng bằng cách sử dụng middleware Authentication và Authorization.
Để xác thực người dùng, bạn có thể sử dụng một trong các phương thức xác thực được hỗ trợ như Forms Authentication, OAuth, OpenID Connect, hoặc xác thực qua Cookie. Bạn có thể cấu hình xác thực trong phương thức ConfigureServices của lớp Startup như sau:
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = "CookieAuthentication";
options.DefaultSignInScheme = "CookieAuthentication";
options.DefaultChallengeScheme = "CookieAuthentication";
}).AddCookie("CookieAuthentication", options =>
{
options.LoginPath = "/Account/Login";
});
// Cấu hình các dịch vụ khác
// ...
}
Sau đó, bạn có thể áp dụng xác thực trong pipeline đường dẫn bằng cách thêm middleware Authentication trong phương thức Configure của lớp Startup như sau:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// ...
app.UseAuthentication();
// ...
app.UseMvc();
// ...
}
Để ủy quyền người dùng, bạn có thể sử dụng middleware Authorization. Bạn có thể cấu hình các quyền truy cập vào tài nguyên bằng cách sử dụng Attribute [Authorize] trên các phương thức hoặc lớp controller tương ứng. Bạn cũng có thể cấu hình quyền truy cập global trong phương thức ConfigureServices như sau:
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddAuthorization(options =>
{
options.AddPolicy("RequireAdminRole", policy =>
policy.RequireRole("Admin"));
options.AddPolicy("RequireAuthenticatedUser", policy =>
policy.RequireAuthenticatedUser());
});
// ...
}
Sau đó, bạn có thể sử dụng quyền truy cập đã cấu hình trong các phương thức hoặc lớp controller như sau:
[Authorize(Policy = "RequireAdminRole")]
public IActionResult AdminAction()
{
// ...
}
[Authorize(Policy = "RequireAuthenticatedUser")]
public IActionResult AuthenticatedAction()
{
// ...
}
Tất nhiên, việc cấu hình xác thực và ủy quyền cụ thể sẽ phụ thuộc vào yêu cầu và yêu cầu của ứng dụng của bạn. Đây chỉ là một ví dụ cơ bản để bạn thực hiện xác thực và ủy quyền người dùng trong ASP.NET Core.
Tổng hợp 500+ câu hỏi phỏng vấn Asp.net Core - Phong-Van.com
6 days ago 1 week ago Tổng hợp 500+ câu hỏi phỏng vấn .Net Core - Phong-Van.com. 1 week ago Top 20 câu hỏi phỏng vấn ASP.NET Core trong năm 2020. 1 week ago Feb 8, 2020 · Trang chủ Bài …
Hơn 50 câu hỏi và câu trả lời phỏng vấn ASP.NET (2024)
1 week ago Sep 26, 2024 · Dưới đây là các câu hỏi và câu trả lời phỏng vấn ASP.NET dành cho những ứng viên mới ra trường cũng như có kinh nghiệm để có được công việc mơ ước của họ. Mục lục: …
19 câu hỏi phỏng vấn Asp.net Core - PhongvanIT.com
1 week ago 19 câu hỏi phỏng vấn Asp.net Core. 1. Asp.net core là gì? 2. ASP.NET Core cung cấp các tính năng nào? 3. Những ưu điểm nào của ASP.NET Core so với ASP.NET ? 4.
Bộ câu hỏi phỏng vấn ASP.NET dành cho lập trình viên
6 days ago dành cho lập trình viên. 6304 câu hỏi phỏng vấn Full-Stack, Coding & System Design Interview. Câu hỏi Global. Tải xuống Ebook cẩm nang phỏng vấn. Full-stack, Web & Mobile. Coding & …
lap trinh asp.net: câu hỏi phỏng vấn thường gặp - VietnamWorks
1 week ago Tip: Được đánh giá là một trong các câu hỏi phỏng vấn thường gặp và quan trọng, cách trả lời phỏng vấn câu hỏi này là nên chân thật, nó giống như bạn đang chia sẻ những kinh nghiệm …
Bộ câu hỏi phỏng vấn Net core dành cho lập trình viên
1 week ago Thách thức mọi câu hỏi phỏng vấn. dành cho lập trình viên. 6304 câu hỏi phỏng vấn Full-Stack, Coding & System Design Interview. Câu hỏi Global. Tải xuống Ebook cẩm nang phỏng vấn. …
Tuyển tập những câu hỏi phỏng vấn .NET thường gặp nhất
1 week ago Nov 1, 2023 · Trên đây là bộ câu hỏi phỏng vấn .NET mà thường gặp nhất. Ngoài những câu hỏi này, vẫn sẽ có thêm một số câu hỏi phỏng vấn khác tùy thuộc vào nhà tuyển dụng. Do đó, …
TOP 23+ câu hỏi phỏng vấn .NET thường gặp - cập nhật 2023
5 days ago Sep 22, 2023 · Cú pháp của ASP.NET thường bao gồm file HTML. Tuy nhiên, tệp ASP có thể chứa tập lệnh máy chủ có dấu phân cách. Một ví dụ về “Helloworld câu hỏi phỏng vấn .NET” …
Những câu hỏi phỏng vấn IT Asp.net/Asp.net MVC - ITDEV
2 days ago Feb 25, 2023 · Mẫu kiến trúc Model – View – Controller được sử dụng nhằm chi ứng dụng thành ba thành phần chính: model, view và controller. Nền tảng ASP.NET MVC giúp cho chúng ta có …
Top 15+ Câu Hỏi Phỏng Vấn .NET Phổ Biến Nhất 2023 - Glints
3 days ago Jun 8, 2023 · Câu hỏi phỏng vấn .NET cho fresher. 1. . NET framework là gì? Đây là câu hỏi phỏng vấn .NET với mục tiêu kiểm tra hiểu biết cơ bản của bạn về Framework và cách sử …
Thẻ ghi nhớ: câu hỏi phỏng vấn asp.net | Quizlet
1 week ago CORS là gì và làm thế nào để xử lý nó trong ASP.NET Core? CORS (Cross-Origin Resource Sharing) là một cơ chế để cho phép hoặc từ chối truy cập nguồn tài nguyên từ một trang web …
TOP các câu hỏi phỏng vấn vị trí .Net Developer | TopDev
1 week ago Những câu hỏi thách thức trong buổi phỏng vấn của bạn. Thách thức tuyển dụng luôn là điều mà mọi ứng viên cần phải trải qua. Và để có thể đồng hành cùng các doanh nghiệp/tổ chức, bạn …
Các câu hỏi phỏng vấn .NET Core - Phỏng vấn IT - PhongvanIT.com
1 week ago 51 câu hỏi phỏng vấn .NET Core. 1. . NET Standard là gì? 2. . NET Core là gì? 3. . NET Framework là gì? 4. Sự khác biệt giữa String và string trong C # là gì?
Tổng hợp kiến thức đi phỏng vấn ASP.NET Core 2020
6 days ago Trang chủ Bài viết ASP.NET Core nâng cao Tổng hợp kiến thức đi phỏng vấn ASP.NET Core 2020. Tổng hợp kiến thức đi phỏng vấn ASP.NET Core 2020. 6/15/2020 | Admin 2622 lượt …
Những ưu điểm nào của ASP.NET Core so với ASP.NET
6 days ago ASP.NET Core có thể xử lý nhiều request hơn APS.NET. Nhiều tùy chọn deloy web có sẵn trong ASP.NET Core. Câu hỏi tiếp theo: Metapackage là gì? Chia sẻ Facebook. Điều khoản dịch vụ. …
Top 20+ câu hỏi phỏng vấn PHP phổ biến - ITviec Blog
1 week ago Nov 12, 2024 · Top 20+ câu hỏi phỏng vấn PHP phổ biến. Khi chuẩn bị cho một buổi phỏng vấn liên quan đến PHP, việc nắm vững các câu hỏi thường gặp là điều vô cùng quan trọng. Các …
Top 40+ câu hỏi phỏng vấn Mobile Developer phổ biến
4 days ago Nov 12, 2024 · Top 50+ câu hỏi phỏng vấn OOP và trả lời mới nhất (Phần 1) Top 50+ câu hỏi phỏng vấn OOP và trả lời mới nhất (Phần 2) Các câu hỏi phỏng vấn Mobile Developer cụ thể …
Top 30+ câu hỏi phỏng vấn Magento phổ biến - ITviec Blog
1 week ago Nov 12, 2024 · Kể tên các loại hình ảnh trong Magento. Có 4 loại hình ảnh trong Magento: Hình ảnh cơ bản (Base image): Hình ảnh cơ bản (Base image) là hình minh họa chính trên trang …
FAQs - Câu hỏi thường gặp về phỏng vấn?
Những câu hỏi thường gặp để phản ánh chính sách và quy trình cụ thể của bạn hoặc để phù hợp với mục đích cụ thể của phỏng vấn.