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:
Tạo liên kết đến các endpoint của ASP.NET Core
Trung Nguyen 02/11/2021
Tạo liên kết đến các endpoint của ASP.NET Core

Trong bài viết này, chúng ta sẽ tìm hiểu cách đặt tên cho các endpoint để có thể tạo liên kết đến chúng từ bất kỳ đâu trong ứng dụng ASP.NET Core.

Cách thêm model vào dự án ASP.NET Core
Trung Nguyen 31/10/2021
Cách thêm model vào dự án ASP.NET Core

Trong bài viết này, chúng ta sẽ khám phá Model trong ASP.NET Core và các sub-framework khác như ASP.NET Core MVC, Razor Pages, Endpoints và Blazor.

Sử dụng Svelte trong dự án ASP.NET Core
Trung Nguyen 30/10/2021
Sử dụng Svelte trong dự án ASP.NET Core

Bài viết này sẽ giới thiệu cho bạn những điều cơ bản về việc thiết lập một dự án ASP.NET Core để sử dụng các component Svelte phía máy khách.

Background Service trong ASP.NET Core
Trung Nguyen 28/10/2021
Background Service trong ASP.NET Core

Bài viết này hướng dẫn cách triển khai một background service trong ứng dụng ASP.NET Core và cách giao tiếp với background service từ một HTTP request.