آشنایی با asp.net core - مقدمه ای بر مزایای نسخه جدید asp.net

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

آموزش ASP.NET Core

کسانی که تکنولوژی های مایکروسافت به ویژه asp.net را دنبال می کنند یکی دو سالی هست که با شنیدن خبرهایی نظیر "متن باز شدن دات نت"، "قابلیت اجرا بر روی بسترهای غیر ویندوز مثل لینوکس و os x با سوالهایی مواجه می شوند.  دلیل این تغییرات چیست؟ این تغییرات موجب چه بهبودهایی در فضای توسعه نرم افزار های تحت دات نت می شود؟ آیا مایکروسافت قصد دارد از تکنولوژی های قبلی پشتیبانی کند یا من باید سراغ تکنولوژی جدید بروم؟ برای پاسخ به سوالهایی از این دست شاید بهترین کار پس از آشنایی اولیه، تجربه ی یک پروژه کوچک باشد. قصد داریم در این مقاله کوتاه به معرفی اولیه از asp.net نسخه جدید یا همان نسخه  asp.net core  بپردازیم.
برای کسانی که برای توسعه وب سایت از تکنولوژی web forms استفاده می کنند شاید تغییرات خیلی زیاد به چشم بیایند. بنابراین توصیه می شود ابتدا asp.net mvc نسخه های قبلی یعنی تا نسخه ۶ را اندکی تجربه کنند. اما برای کسانی که تجربه کدنویسی در چارچوب الگوی mvc را دارند  تغییرات کاملا نرم و ملموس هستند. تیم asp.net سعی کرده است در نسخه جدید asp.net که تنها بر بستر mvcاست از لحاظ مفهومی سازگاری را حفظ کند با اینکه تمام کتابخانه ها و توابع از ابتدا نوشته شده اند. بنابراین اگر شما در asp.net mvc6 کلاسی با نام controller دارید در  asp.net core هم همین کلاس را دارید با این تفاوت که این کلاس در namespace  دیگری قرار دارد.  به این رویکرد سازگاری مفهومی یا concept compatibility گفته می شود.
اما ابتدا اجازه دهید به چند مورد از نقص های asp.net mvc نسخه های قبلی اشاره کنیم تا نیاز به چارچوب جدید را بهتر درک کنیم.
۱. محدود بودن به وب سرور iis بر روی ویندوز؛ تا امروز شما مجبور بودید از وب سرور iis استفاده کنید. شما گزینه دیگری به جز هاست ویندوز و استفاده از iis نداشته اید. این یعنی شما برای یک وب سایت بسیار ساده با چندapi  و چند صفحه htmlباید از وب سرور غول پیکری مثلiis استفاده می کردید و اگر هاست لینوکس با نصف قیمت هاست ویندوز به شما پیشنهاد می شد باید آن را رد می کردید.
۲. قرار گرفتن requestها در مسیری طولانی از handlerهاو  ماژول ها؛ برای یک وب اپلیکیشن ساده از آغاز session تا اعتبارسنجی درخواست و چندین و چند دالان برای نهایی شدن درخواست و گرفتن پاسخ نهایی، تا امروز امری عادی و اجتناب ناپذیر محسوب می شد.
۳. بیگانگی کامل با چارچوب های مدیریت پکیج های سمت کاربر مثل bower, npm, gulp و ... ؛ در سالهای اخیر پیشرفت های زیادی در زمینه مدیریت پروژه ها و پلاگین های سمت کاربر صورت گرفته اما در نسخه های قبلیasp.netامکان استفاده از این چارچوب ها وجود ندارد
۴. دات نت فریم ورک تا قبل از این پروژه ای انحصاری بوده است؛ علیرغم متن باز شدن بسیاری از پروژه ها و چارچوب های نرم افزاری و قرار گرفتن آنها بر روی github پروژه دات نت سالهای متمادی از این امکان بی بهره بود
 
مسایل بالا عمده (و نه همه) نقص هایی بودند که موجب شدند تا تیم دات نت به فکر ایجاد بستری جدید باشند:
بستری سبک، با عملکرد بالا و با قابلیت توسعه و استقرار نرم افزار در محیط های غیر ویندوز.
 
توجه داشته باشید که asp.net core با .net core. متفاوت است. net core.  نسخه ای سبک و چند بستری از کل دات نت فریم ورک است و asp.net بستر توسعه نرم افزارهای تحت وب که هم میتواند بر بستر net core.  و هم بر بستر دات نت استاندارد اجرا شود. شکل زیر جایگاه هر یک را نشان می دهد.
 
 
هم چنان که در تصویر بالا مشاهده می کنید پروژه asp.net core هم می تواند:
1- مانند قبل تحت نسخه کامل دات نت فریم ورک یعنی نسخه 4.6  و یا کمتر بر روی  ویندوز و وب سرور iis منتشر شود.
2-  می تواند بر روی دات نت core بر روی هر یک از بسترهای ویندوز، لینوکس یا os x اجرا شود.
 
تصمیم با شماست. اگر می خواهید پروژه نوشته شده با asp.net  بر روی هاست لینوکسی منتشر شود یا اگر می خواهید بدون اینکه مجبور باشید  iis موجود بر ویندوز را به روزرسانی کنید پروژه خود را بر روی  آخرین نسخه .net core  منتشر کنید، از گزینه دوم استفاده کنید؛  اما اگر فقط می خواهید از قابلیت های جدید asp.net core (یعنی فقط لایه ی نهایی در شکل بالا) استفاده کنید گزینه اول برای شما مناسب خواهد بود.
 اما اجازه بدید بیشتر از این درگیر مفاهیم انتزاعی نشویم و برای ادامه این مقاله به بررسی ساختار یک پروژه asp.net core بپردازیم. بقیه مفاهیم و تازه های asp.net core را لا به لای مقالات آینده در وب سایت سپیدآریا برای شما بازگو خواهیم کرد.
قبل از  ایجاد یک پروژه asp.net core شما باید دو کار اساسی را انجام دهید:
1- ارتقای visual studio به نسخه visual studio 2015 update 3
2- نصب net core tools.
برای این منظور از آدرس زیر هم می توانید نسخه رایگان ویژوال استادیو یعنی نسخه community   و هم مجموعه ابزارهای لازم برای .net core را دانلود و نصب کنید:
پس از ارتقای ویژوال استادیو و نصب ابزارهای لازم برای .net core مطابق تصویر زیر اقدام به ایجاد یک پروژه asp.net core خواهیم کرد. لطفا به تصویر زیر دقت کنید.
 
 
هم چنان که در قسمت وسط مشاهده می کنید سه گزینه رو به روی ما قرار دارد:
1- ایجاد یک پروژه asp.net استاندارد بر اساس دات نت فریم ورم 4.6.1
2- ایجاد یک پروژه asp.net core براساس .net core یا core CLR
3- ایجاد یک پروژه asp.net core بر اساس دات نت فریم ورم 4.6.1 
 
گزینه اول که موضوع صحبت ما نیست و همان رویکرد گذشته است که شما با آن آشنا هستید. اما گزینه دوم همان چیزی است که پیشتر به آن اشاره کردیم که اگر می خواهید پروژه شما در بسترهای چندگانه اجرا شود آن را انتخاب کنید اما اگر نیاز شما به ویندوز محدود می شود و  نیاز جدی به قابلیت چند بستری ندارید گزینه سوم را انتخاب نمایید. دقت کنید که با انتخاب گزینه دوم شما دات فریم ورک کامل در اختیار ندارید و بسیاری از توابع و کلاس هایی که تا امروز به صورت پیش فرض آن ها را بخشی عادی از فرآیند توسعه وب سایت خودمی دید وجود ندارد و در عوض باید در nuget.org به دنبال  آنها بگردید. اجازه دهید همین گزینه دوم را انتخاب و تجربه کنیم. با انتخاب این گزینه و دادن نام مناسب به پروژه آن را ایجاد کنید(دقت کنید که پس از ok کردن پنجره بالا پنجره ای دیگر به شما نشان داده  می شود که در آن قالب اولیه پروژه را انتخاب می کنید. گزینه سوم یعنی web application را انتخاب کنید).
تصویر زیر بخش های این پروژه asp.net core را نشان می دهد:
 

 
همانطور که ملاحظه می کنید یک پروژه mvc با پوشه های پیش فرض Views و controllers ایجاد شده اما بقیه موارد تقریبا نسبت به گذشته تغییر کرده است. اما در زیر توضیحی مختصر راجع به برخی موارد ارائه می کنیم و توضیح مفصل تر و کاربردی تر هر بخش را به مقاله بعد ارجاع می دهیم.
1- پوشه wwwroot: این پوشه محلی برای ذخیره فایل های استاتیک شامل تصاویر، html ، css و جاوااسکریپت، فونت ها و ... است. در واقع به صورت پیش فرض شما می بایست تمام منابع استاتیک پروژه خود را در این پوشه قرار دهید. زیر پوشه های موجود در  wwwroot به اندازه کافی گویا هستند اما پوشه lib محل قرار دادن کتابخانه ها و پلااگین های آماده موجود در وب هستند. مثلا کتابخانه jquery به همراه نسخه min آن و احیانا سایر فایل های دیگر در زیر پوشه ای با عنوان jquery در wwwroot قرار می گیرند و شما بهتر است آنها را تغییر ندهید.
2- فایل های json. : این فایل ها شامل تمام تنظیمات لازم برای توسعه و انتشار پروژه شما هستند. فایل project.json مهم ترین فایل و بیانگر اکثر تنطیمات و نیز کتابخانه های مورد استفاده شما خواهد بود.
3- بخش Dependencies : این قسمت به شما امکان استفاده از سیستم Bower برای مدیریت پکیج های سمت کاربر مانند پلاگین ها و کتابخانه های جاوااسکریپتی  را میدهد. در واقع پوشه lib در wwwroot توسط این قسمت کم و زیاد می شود. در آینده به طور مفصل در این رابه صحبت خواهیم کرد.
4- فایل Program.cs : این فایل همان فایل است که در پروژه های console application قبلا آن را دیده اید. این فایل نقطه شروع اجرای برنامه شامل  تابع معروف void Main است. وب سرور مورد استفاده، معرفی فایل Start up، معرفی مسیر فایل های استاتیک یعنی  همان wwwroot د راین فایل اتفاق می افتد.
5- فایل Startup.cs : این فایل دو وظیفه اصلی دارد. یکی ایجاد مجموعه ای از middle ware ها یا میان افزارها که بر مسیر یک درخواست http  قرار می گیرند تا پاسخ مناسب به کاربر برگردد (مثلا میان افزار mvc یا میان افزار log) و دیگری تزریق وابستگی  برای  استفاده از سرویس ها در سرتاسر پروژه
 
امیدواریم از توضیحات داده شده که عمدتا انتزاعی و مفهومی بودند خسته نشده باشید و منتظر مقالات بعدی برای بررسی عملی  قسمت های مختلف یک پروژه asp.net core باشید. اما به طور خلاصه در این مقاله به معرفی نسخه جدید asp.net یعنی asp.net  core پرداختیم. مختصرا متوجه شدیم که چرا مایکروسافت به این نسخه روی آورده و یاد گرفتیم که برای کاربرد مورد نظر خود از نسخه کامل دات نت فریم ورک استفاده کنیم یا از .net core.  شما موفق شده اید که asp.net core را راه اندازی کرده و اولین پروژه آن را ایجاد کنید.
 
 
 
 
دوره‌های آنلاین برنامه‌نویسی لیست دوره‌ها