Environment variable چیست؟
به طور معمول در برنامه های حرفه ای قبل از انتشار برنامه برای کاربران واقعی چندین فاز وجود دارد که برنامه در آن تست می شود و اگر تست ها را پاس کرد می تواند بر روی سرور اصلی منتشرشود. این مراحل شامل مرحله Development و مرحله ی Staging و مرحله Production است.
ممکن است ما بخواهیم تنظیمات برنامه را در هریک از این مراحل تغییر دهیم با استفاده از Environment می توانیم این کار را انجام دهیم.
در ویدئوی زیر که بخشی از دوره رایگان آموزشasp می باشد شمارا بیشتر با Environment ها آشنا می کند.
تنظیم Environment در Asp.Net Core
در Asp.Net Core با استفاده از متغیر ASPNETCORE_ENVIRONMENT میتواند وضعیت environment را مشخص کنیم. این مقدار میتواند هرچیزی باشد ولی به طور معمول سه حالت زیر را برای environment تنظیم می کنند:
Development : محیط توسعه و کد نویسی برنامه.
- Staging : محیط تست برنامه،این محیط تقریبا شبیه به محیط production است اما برای تست از آن استفاده می شود.
Production : سرور اصلی برنامه که در آن به مشتریان واقعی خدمات ارائه می شود.
مقادیری که در environment قرار میدهیم در ویندوز و مک به حروف بزرگ و کوچک حساس نیست ولی در لینوکس این مقدار به حروف حساس است.
برای تغییر این مقدار میتوانید وارد properties پروژه بشوید و در قسمت Debug سپس در کادر Environment variables مقدار متغیر ASPNETCORE_ENVIRONMENT را تغییر دهید.
دسترسی به Environment در Asp.Net Core
ما میتوانیم مقدار ذخیره شده در environment را بدست آوریم تا بر اساس آن مقدار کد خود را اجرا کنیم. مثلا اگر در محیط Development بودیم کانکشن استرینگ رو بر روی دیتابیس تست تنظیم کنیم و اگر بر روی محیط production بودیم کانکشن استرینگ را بر روی دیتابیس اصلی پروژه تنظیم کنیم.
برای دستیابی به مقدار ذخیره شده در environment می توانیم از سرویس IHostingEnvironment استفاده کنیم. این سرویس توسط فریم ورک Asp.Net ارائه می شود و می توانیم با Dependency Injection در هرکجا از کد برنامه آن ازش استفاده کنیم.
کد زیر نحوه استفاده از این سرویس در کلاس Startup و متد Configure را نشان می دهد.
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
}
}
اگر می خواهید بیشتر با تنظیمات environment آشنا شوید دوره آموزش رایگان ASPرا از سایت باگتو دانلود نمایید و قسمت environment ها رو مشاهده کنید.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید