راه اندازی و آشنایی با تنطیمات پایه اولین پروژه asp.net core

توسط: محسن درم بخت | منتشر شده در 1395/11/05 | بازدید : 13055 بار | زمان مطالعه : 12 دقیقه

آموزش ASP.NET Core

در مقاله قبل به بررسی و معرفی asp.net core به طور مختصر پرداختیم. در این جا قصد داریم اولین پروژه asp.net core را ایجاد کرده و به بررسی کلاس Program.cs یعنی اولین و مهم ترین بخش از یک پروژه asp.net core بپردازیم. اگر هنوز asp.net core را نصب و راه اندازی نکرده اید به مقاله قبل برگردید و پس از آشنایی اولیه و نصب و راه اندازی، ادامه این مقاله را با ما همراه باشید. ویژال استادیو را باز کرده و پروژه ای جدید طبق تصاویر زیر ایجاد کنید.
 
New Project
 
 

 
 
همچنان که مشاهده می کنید ما یک پروژه ایجاد کرده ایم تا به صورت قدم به قدم مفاهیم جدید معرفی شده در asp.net core را بررسی کنیم.
 با زدن f5 پروژه را اجرا کنید. شما موفق شده اید اولین برنامه تحت asl.net core را اجرا کنید. اما اجازه دهید بررسی کنیم این خروجی از کجا می آید. در مقاله قبل گفتیم که نقطه شروع یک پروژه asp.net core تابع main از کلاس program.cs است. فایل program.cs راباز کرده و محتوای آن را ملاحظه کنید.
 
 
با اجرای برنامه تابع بالا، به کمک الگوی سازنده، مسیر مورد نظر ( یعنی همان pipeline) برای پردازش درخواست های HTTP توسط کلاس WebHostBuilder تنظیم می شود.
اولین و مهم ترین بخش از این تنظیمات Usekestrel است. kestrel یک وب سرور متن باز با عملکرد بالاست و برای این ایجاد شده که iis علاوه بر متن باز نبودن خاص ویندوز است و از آنجا که هدف asp.net core قابلیت انتشار بر چند بستر است، نیاز به وب سروری برای اجرا در سیستم عامل های مختلف است.
همچنین در کد بالا عبارت UseIISIntegration قابل مشاهده است. اما سوالی که پیش می آید این است که نقش iis در اینجا چیست؟ اگر از kestrel استفاده میشود پس استفاده از iis  چه معنایی می تواند داشته باشد‌؟
برای پاسخ به این سوال  به شکل زیر دقت کنید:
 
 
اگر شما قصد داشته باشید پروژه تحت وب خود را در معرض اینترنت (و نه شبکه داخلی یک سازمان) قرار دهید مسائلی مانند امنیت، لود بالانس، اشتراک گذاری پورت بین چند اپ و ...ممکن است پیش بیاید. برخی ویژگی ها و امکانات هنوز در kestrel وجود ندارد و این وب سرور جدید و جوان است. بنابراین راهکاری که تیم asp.net برای این منظور اتخاذ کرده این است که مطابق شکل بالا iis مانند یک proxy بین کاربر نهایی و kestrel قرار می گیرد و برخی وظایف مانند تخصیص پورت، لودبالانس و تامین امنیت را قبل از رسیدن درخواست به kestrel و پس از دریافت پاسخ از آن انجام می دهد.
متد UseContentRoot پوشه مورد نظر برای قرار گرفتن فایلهای استاتیک را مشخص میکند و به به عبارت بهتر root پروژه را برای ادرس دهی ها مشخص می کند. به طور پیش فرض این مسیر همان پوشه wwwroot است که در مقاله قبل در مورد آن صحبت کرده بودیم.
اما یکی از مهمترین بخش ها در تکه کد بالا متد UseStartup است. این عبارت فایل استارت آپ برای شکل دهی میان افزارها و آماده سازی سرویس ها را به host معرفی می کند. توضیح بیشتر در مورد این فایل خود نیازمند یک مقاله جدا است که به زودی در همین وب سایت در سلسله مقالات آموزشی asp.net core منتشر خواهد شد.
در انتها عبارت host.Run را مشاهده می کنید. این یعنی هاست باید با تنطیمات گفته شده شروع به دریافت و پردازش درخواست های HTTP برای اپلیکیشن مورد نظر کند. 
دوره‌های آنلاین برنامه‌نویسی لیست دوره‌ها