0
0
Lập trình
Admin Team
Admin Teamtechmely

Hiểu Rõ Program.cs Trong ASP.NET Core 8

Đăng vào 3 giờ trước

• 4 phút đọc

Chủ đề:

#csharp#dotnet

Giới thiệu

Khi tạo một dự án ASP.NET Core Web App (Model-View-Controller) trong .NET 8, có một số dòng mã mà tôi không hoàn toàn hiểu. Bài viết này sẽ giúp bạn nắm rõ từng dòng mã trong file Program.cs, từ đó giúp bạn xây dựng ứng dụng ASP.NET Core một cách hiệu quả hơn.

Mục lục

Cấu trúc của Program.cs

Dưới đây là mã nguồn đầy đủ trong Program.cs:

Copy
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllersWithViews();

var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

Các dòng mã quan trọng trong Program.cs

1. Tạo cấu hình và dịch vụ cho ứng dụng

csharp Copy
// Chuẩn bị cấu hình và dịch vụ cho ứng dụng.
var builder = WebApplication.CreateBuilder(args);

Dòng này khởi tạo một phiên bản của WebApplicationBuilder, nơi cấu hình, ghi log, và thiết lập các dịch vụ phụ thuộc cho ứng dụng.

2. Xây dựng ứng dụng

csharp Copy
// Xây dựng ứng dụng; nó đã sẵn sàng để xử lý yêu cầu
var app = builder.Build();

Dòng này xây dựng một phiên bản của WebApplication dựa trên những gì đã được thiết lập trong builder.

3. Thêm hỗ trợ MVC cho ứng dụng

csharp Copy
// Kích hoạt hỗ trợ MVC cho ứng dụng
builder.Services.AddControllersWithViews();

Dòng này đăng ký các dịch vụ cần thiết cho ứng dụng MVC vào container DI. Nó bao gồm tất cả các dịch vụ và cấu hình cần thiết để ứng dụng có thể sử dụng chế độ MVC.

4. Bảo mật ứng dụng trong môi trường sản xuất

csharp Copy
// Trong môi trường sản xuất, làm cho ứng dụng an toàn hơn và không hiển thị lỗi chi tiết
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    app.UseHsts();
}

Nếu ứng dụng đang chạy trong chế độ phát triển, trang lỗi cho nhà phát triển sẽ được hiển thị. Ngược lại, trong môi trường không phát triển, nó sẽ hiển thị trang lỗi tùy chỉnh tại /Home/Error. Phương thức app.UseHsts() kích hoạt HSTS, đảm bảo kết nối HTTPS.

5. Cấu hình Middleware

Các phương thức bắt đầu bằng từ Use cấu hình middleware. Mỗi middleware được cấu hình riêng biệt, như chuyển hướng HTTPS, tệp tĩnh, định tuyến, và xác thực, v.v.

csharp Copy
// Ép buộc người dùng kết nối qua HTTPS
app.UseHttpsRedirection();

Dòng này tự động chuyển hướng tất cả các yêu cầu HTTP sang HTTPS.

csharp Copy
// Khách hàng có thể tải tệp tĩnh
app.UseStaticFiles();

Dòng này cho phép phục vụ các tệp tĩnh từ thư mục wwwroot, chẳng hạn như CSS, JS, hình ảnh, v.v.

csharp Copy
// Ứng dụng có thể khớp URL với controller và action chính xác
app.UseRouting();

Dòng này kích hoạt hệ thống định tuyến để ứng dụng có thể khớp các URL đến controller và action chính xác.

csharp Copy
// Kiểm tra nếu người dùng có quyền truy cập
app.UseAuthorization();

Dòng này kiểm tra xem người dùng có quyền truy cập vào một route hoặc tài nguyên hay không.

csharp Copy
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

Dòng này định nghĩa mẫu route mặc định cho ứng dụng.

csharp Copy
app.Run();

Cuối cùng, dòng này khởi động ứng dụng và bắt đầu lắng nghe các yêu cầu HTTP đến.

Thực hành tốt nhất

  • Tổ chức mã nguồn: Giữ mã nguồn gọn gàng và có tổ chức để dễ dàng bảo trì và mở rộng.
  • Sử dụng Dependency Injection: Tận dụng DI để quản lý các dịch vụ và phụ thuộc một cách hiệu quả.
  • Đảm bảo bảo mật: Luôn sử dụng HTTPS và các biện pháp bảo mật khác để bảo vệ dữ liệu người dùng.

Cạm bẫy thường gặp

  • Không kiểm tra môi trường: Quên kiểm tra môi trường có thể dẫn đến việc hiển thị thông tin nhạy cảm trong môi trường sản xuất.
  • Middleware không được cấu hình đúng: Thiếu sót trong việc cấu hình middleware có thể gây ra lỗi trong ứng dụng.

Mẹo tối ưu hiệu suất

  • Sử dụng caching: Áp dụng caching cho các tệp tĩnh và dữ liệu để cải thiện tốc độ tải trang.
  • Tối ưu hóa hình ảnh: Sử dụng các định dạng hình ảnh tối ưu và nén chúng để giảm dung lượng tải xuống.

Giải quyết sự cố

  • Lỗi 404: Kiểm tra các route đã được định nghĩa đúng chưa.
  • Lỗi xác thực: Đảm bảo người dùng đã đăng nhập trước khi truy cập vào các route yêu cầu quyền truy cập.

Kết luận

Bài viết này đã giúp bạn nắm rõ từng dòng mã trong file Program.cs của ứng dụng ASP.NET Core 8. Hy vọng rằng những thông tin này sẽ giúp bạn phát triển ứng dụng một cách hiệu quả hơn. Nếu bạn thấy bài viết hữu ích, đừng ngần ngại nhấn nút thích ❤️ hoặc theo dõi tôi trên GitHub. Tôi rất trân trọng điều đó!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào