Biến môi trường trong ASP.NET Core

Biến môi trường là gì?

Thông thường, trong phát triển ứng dụng phần mềm chuyên nghiệp, có nhiều giai đoạn phát triển mà ở đó một ứng dụng được kiểm tra trước khi xuất bản cho người dùng. Các giai đoạn theo quy ước là development, staging, và production.

Chúng ta với tư cách là nhà phát triển có thể muốn kiểm soát hành vi của ứng dụng dựa trên các giai đoạn của ứng dụng. Biến môi trường cho biết môi trường thời gian chạy mà ứng dụng hiện đang chạy.

ASP.NET Core sử dụng một biến môi trường được gọi ASPNETCORE_ENVIRONMENT để chỉ ra môi trường thực thi.

Giá trị của biến này có thể là bất cứ thứ gì theo nhu cầu của bạn nhưng thông thường nó có thể là Development, Staging, hoặc Production.

Giá trị này không phân biệt chữ hoa chữ thường trong Windows và Mac OS nhưng nó phân biệt chữ hoa chữ thường trên Linux.

Bạn có thể truy cập Hướng dẫn lập trình ASP.NET Core để không bỏ lỡ bất kỳ bài viết nào của chúng tôi.

Thiết lập biến môi trường trong ASP.NET Core

Trong Visual Studio, chúng ta có thể thiết lập giá trị cho biến môi trường ASPNETCORE_ENVIRONMENT trong tab Debug của thuộc tính dự án.

Mở thuộc tính dự án bằng cách nhấp chuột phải vào project trong Solution Exploore và chọn Properties như hình sau:

Mở Project Properties

Điều này sẽ mở cửa sổ thuộc tính của dự án. Nhấp vào tab Debug và bạn sẽ thấy biến môi trường như bên dưới.

Biến môi trường trong ASP.NET Core

Bạn có thể thay đổi giá trị này theo nhu cầu của bạn. Giá trị này sẽ được lưu trong file launchSettings.json như hình bên dưới.

File launchSettings.json trong project ASP.NET Core

Bạn cũng có thể thay đổi trực tiếp biến môi trường trong file launchSettings.json.

Truy cập biến môi trường lúc thực thi

Chúng ta có thể lấy giá trị của biến môi trường trong mã của mình để thực thi một số mã bổ sung dựa trên giá trị của nó.

Dịch vụ IHostingEnvironment có thuộc tính EnvironmentName chứa giá trị của biến ASPNETCORE_ENVIRONMENT. ASP.NET Core cũng có các phương thức mở rộng để kiểm tra môi trường như IsDevelopment(), IsStating(), IsEnvironment()IsProduction().

Dịch vụ IHostingEnvironment được cung cấp bởi tầng lưu trữ ASP.NET và có thể được sử dụng bất cứ nơi nào trong ứng dụng của bạn thông qua Dependency Injection.

Ví dụ sau đây minh họa cách chúng ta có thể kiểm tra biến môi trường trong phương thức Configure của lớp Startup.

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsEnvironment("Development"))
    {
        // code to be executed in development environment 

    }

    if (env.IsDevelopment())
    {
        // code to be executed in development environment 

    }

    if (env.IsStaging())
    {
        // code to be executed in staging environment 

    }

    if (env.IsProduction())
    {
        // code to be executed in production environment 

    }
} 

Khi bạn xuất bản một ứng dụng ASP.NET Core lên server, bạn phải kiểm tra xem đã có biến môi trường ASPNETCORE_ENVIRONMENT trên server chưa. Nếu chưa có thì bạn phải tạo biến ASPNETCORE_ENVIRONMENT và gán giá trị cho biến này là Production.

Chúng ta sẽ tìm hiểu về xử lý ngoại lệ trong ứng dụng ASP.NET Core và cách sử dụng biến môi trường ở trong chương tiếp theo.

ASP.NET Core MVC
Bài Viết Liên Quan:
ASP.NET Core vs Go: Hiệu suất HTTP của ai tốt hơn
Trung Nguyen 11/10/2020
ASP.NET Core vs Go: Hiệu suất HTTP của ai tốt hơn

Trong bài viết này, chúng tôi sẽ so sánh hiệu suất HTTP của ASP.NET Core và Go sử dụng mô hình kiến trúc MVC.

ASP.NET Core Dependency Injection: Best Practice, Mẹo và Thủ Thuật
Trung Nguyen 10/10/2020
ASP.NET Core Dependency Injection: Best Practice, Mẹo và Thủ Thuật

Trong bài viết này, tôi sẽ chia sẻ các best practice, mẹo và thủ thuật về việc sử dụng Dependency Injection (DI) trong ứng dụng ASP.NET Core.

View Layout, View Start, View Imports trong ASP.NET Core
Trung Nguyen 10/04/2020
View Layout, View Start, View Imports trong ASP.NET Core

View Layout, View Start, View Imports là gì? Lợi ích và các sử dụng View Layout, View Start, View Imports trong ASP.NET Core.

View trong ASP.NET Core
Trung Nguyen 10/04/2020
View trong ASP.NET Core

Tất tần tật về View, Razor View, Layout View, View Start, View Import, Tag Helpers trong ASP.NET Core MVC.