
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترمشخصات مقاله
آموزش آشنایی با محیط ASP.NET MVC Core 2.0
محیط ASP.NET Core 2.0
مشکل
چگونه رفتار برنامه شما را برای محیط های مختلف تغییر دهید.
راه حل
یک پروژه خالی ایجاد کنید و متد Configure () را برای استفاده از IHostingEnvironment برای برقراری ارتباط بین middleware های مختلف بر اساس محیط کنونی تغییر دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public void Configure( IApplicationBuilder app, IHostingEnvironment env) { if (env.IsEnvironment( "Development" )) Run(app, "Development" ); else if (env.IsEnvironment( "Staging" )) Run(app, "Staging" ); else if (env.IsEnvironment( "Production" )) Run(app, "Production" ); else Run(app, env.EnvironmentName); } <button></button> |
با فراخوانی IsEnvironment() می توان متد framework provided extension را جایگزین کرد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public void Configure( IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) Run(app, "Development" ); else if (env.IsStaging()) Run(app, "Staging" ); else if (env.IsProduction()) Run(app, "Production" ); else Run(app, env.EnvironmentName); } <button></button> |
همچنین یک Tag Helper ارائه شده توسط این چارچوب برای تغییر رفتار سمت client-side وجود دارد:
1 2 3 4 | < environment include = "Development" > ... < /environment > <button></button> |
مباحثه
ASP.NET Core رابط کاربری IHostingEnvironment برای کار با محیط ها فراهم می کند.
متد IsEnvironment() می تواند برای بررسی محیط استفاده شود.
Framework همچنین چند extension methods (IsDevelopment، IsStaging، IsProduction) را برای جلوگیری از نامگذاری محیط سخت افزاری توسعه دهندگان فراهم می کند. شما البته می توانید extension methods خود را برای محیط هایی خاص برای راه اندازی خود ایجاد کنید.
IHostingEnvironment دارای چند ویژگی مفید دیگر است که وقتی WebHostBuilder در Program.cs پیکربندی می شود، تنظیم شده است.
- ApplicationName : پیش فرض به نام assembly است.
- ContentRootPath – مسیره پوشه ای است که در آن مونتاژ(assembly) برنامه ساکن است و از جایی که MVC جستجو خود را برای فایل های محتوا مانند views آغاز می کند.
- WebRootPath – مسیره پوشه در پروژه شما برای منابع عمومی استاتیک مانند CSS، جاوا اسکریپت و فایل های تصویری.
برای تنظیم محیطی که برنامه شما در حال اجرا است، شما باید از متغیر محیطی ASPNETCORE_ENVIRONMENT استفاده کنید. این را می توان در ویژوال استودیو (برای نسخه development) از پروژه ، Properties> Debug tab انجام داد.
موارد استفاده
برنامه می تواند رفتار خود را بسته به محیطی که در حال اجرا است تغییر دهد. این می تواند در سناریوهای مفید مانند:
- پیکربندی middleware pipeline برای توسعه و تولید، به عنوان مثال با استفاده از جزئیات بیشتر exception pages برای توسعه برنامه.
- دانلود فایل های مختلف JavaScript و CSS در views.
- خواندن فایل های پیکربندی(configuration) مختلف بر اساس محیط.