جلسه ششم از آموزش جامع ASP.NET Core در خصوص معرفی متغییر محیطی و محیط فضای میزبانی میباشد. در طول این جلسه محلهای ایجاد و نحوه ایجاد Environment Variable با جزئیات شرح داده خواهد شد. همچنین محیط فضای میزبانی (Hosting Environment) متداول و شرایط هر کدام مورد بررسی قرار میگیرد.
متغییر محیطی Environment Variable
متغییر محیطی را میتوان در فایل launchSettings.json (این فایل در جلسه پنجم از این دوره آموزش معرفی شد)، سیستم عامل و یا وبسرور ایجاد و یا ویرایش نمود. در قسمت زیر میتوانید سورس کد فایل launchSettings.json را مشاهده نمایید که قسمت مربوط به متغییر محیطی در آن مشخص شده است. این متغییر در واقع نشان دهنده مرحله فضای میزبانی میباشد، همانگونه که در قطعه کد زیر مشاهده میکنید، برای هر پروفایل اجرایی امکان تعریف یک متغییر محیطی وجود دارد.
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iis": {
"applicationUrl": "http://localhost:8088/DailyCostWebApplication",
"sslPort": 0
},
"iisExpress": {
"applicationUrl": "http://localhost:61032",
"sslPort": 44392
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"DailyCostWebApplication": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"dotnetRunMessages": "true",
"applicationUrl": "https://localhost:5001;http://localhost:5000"
},
"IIS": {
"commandName": "IIS"
}
}
}
امکان ایجاد متغییر محیطی در سیستم عامل نیز وجود دارد. توجه داشته باشید، اگر در زمان Deploy اپلیکیشن این متغییر در سیستمعامل، فایل launchSettings.json و یا وبسرور تعیین نگردد، جهت افزایش سطح ایمنی اپلیکیشن مقدار پیش فرض آن بروی سیستمعامل و وبسرور Production خواهد بود. این متغییر در سیستم عامل ویندوز در قسمت System Properties->Environment Variables قابل تنظیم و مقدار دهی میباشد که در ویدئو آموزشی این جلسه با جزئیات نمایش داده شده است.
همچنین میتوان Environment Variable را در وبسرور ایجاد و مقدار دهی کرد. به عنوان مثال در IIS این امکان در قسمت Configuration Editor وباپلیکشین در زیرشاخه (Section) system.webServer/aspNetCore در دسترس است که در تصاویر زیر مشخص میباشد و در ویدئو این جلسه با جزئیات کامل به تصویر کشیده شده است.
مقدار این متغییر در کلاس Startup و در متد Configure از طریق آرگومان ورودی IWebHostEnvironment و متغییر env همانگونه که در قطعه کد زیر مشاهده میکنید قابل دسترسی میباشد.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync(env.EnvironmentName);
});
});
}
محیط فضای میزبانی Hosting Environment
به طور کلی تیمها و شرکتهای توسعه نرمافزار، برای هر اپلیکشن یا هر دوره ارائه محصول، سه مرحله در نظر میگیرند که در واقع محیطهای فضای میزبانی میباشند. مرحله توسعه Development، مرحله نمایش یا تست محصول نهایی Staging و مرحله ارائه محصول Production.
میحط میزبانی توسعه Development
این مرحله جهت انجام توسعه روزانه اپلیکیشن میباشد و در آن تیمتوسعه نرمافزار اقدام به نوشتن کد، خطایابی و ایجاد محصول میکند. در این مرحله فایلهای جاوا اسکریپت و CSS کوچک نشده (None Minified) در فضای میزبانی (Host) بارگذاری میشوند و در صورت ایجاد خطا در کد برنامه، صفحه خطای توسعهدهنده (Developer Exception Page) نمایش داده میشود. این صفحه حاوی اطلاعات تکنیکی بوده که به توسعه دهنده جهت رفع نقص ایجاد شده کمک میکند.
محیط میزبانی تست محصول نهایی Staging
در این مرحله اپلیکیشن نهایی (یا بسیار نزدیک به محصول نهایی) بروی فضای میزبانی (Host) بارگذاری میگردد تا خطاهای احتمالی بارگذاری (Deploy) بررسی گردد. توجه داشته باشید که در این مرحله، خطایابی کد برنامه صورت نمیگیرد و فایلهای جاوا اسکریپت و CSS کوچک نشده (None Minified) در فضای میزبانی بارگذاری میشود. به علاوه، صفحه نمایش خطا یک صفحه کاربر پسند (User Friendly) میباشد که حاوی اطلاعات تکنیکی نبوده و اصولا نمایش دهنده یک پیام عمومی بوده که کاربر را به گزارش خطا به تیم توسعه یا مدیر سایت راهنمایی میکند. ضمنا در این مرحله خطایابی کد و دیباگ کردن صورت نمیگیرد.
محیط میزبانی محصول Production
این مرحله در واقع نسخه نهایی اپلیکشن یا وبسایت میباشد که در دسترس عمومی کاربران قرار میگیرد. در این مرحله مانند مرحله تست محصول نهایی (Staging) صفحه نمایش خطا یک صفحه کاربر پسند (User Friendly) میباشد که حاوی اطلاعات تکنیکی نبوده و اصولا نمایش دهنده یک پیام عمومی بوده که کاربر را به گزارش خطا به تیم توسعه یا مدیر سایت راهنمایی میکند. دلیل عدم نمایش صفحه خطای توسعهدهنده (Developer Exception Page) در این مرحله غیر قابل درک بودن این صفحه برای کاربر عادی سایت بوده و همچنین اطلاعات تکنیکی این صفحه میتواند توسط هکرها برای هک کردن سایت شما مورد استفاده قرار بگیرد. در این مرحله فایلهای جاوا اسکریپت و CSS کوچک شده (Minified) بروی فضای میزبانی بارگذاری میگردد. همچنین این فضای میزبانی باید دارای حداکثر سطح ایمنی و بازدهی باشد.
در صورت نیاز به جزئیات بیشتر، میتوانید ویدئو آموزشی این جلسه را تماشا نمایید. همچنین برای آگاهی از جلسات بعدی این دوره آموزشی، ما را در اینستاگرام، تلگرام و یوتیوب دنبال کنید و از این طریق با ما در ارتباط باشد.
دانلود اسلایدهای آموزشی این جلسه از اینجا