آشنایی با زبان برنامه نویسی تحت وب ASP.NET Core
.Net Core چیست؟
.Net Coreیک پلتفرم اوپن سورس است که توسط شرکت مایکروسافت در سال ۲۰۱۴ ارائه شد و یکی از اهداف تولید این پلتفرم قابلیتcross platformبودن برنامه های تولید شده بود و این یعنی ما با یک بار کد نوشتن می توانیم آن را بر روی سیستم عامل های ویندوز ، لینوکس وmacOSاجرا کنیم.
Asp.Net Core چیست؟
Asp.net coreیک فریم ورک رایگان و اوپن سورس است برای طراحی و تولید اپلیکیشن های تحت وب که توسط مایکروسافت ارائه شده است. این فریمورک کراس پلتفورم است، و این یعنی برنامه های تولید شده توسطasp.net coreبر روی سیستم عامل های ویندوز ؛ لینوکس یا مک اجرا می شوند و مثل ورژن های قدیمی محدود به سیستم عامل ویندوز نیستند. در واقع می توانیم بگوییمasp.net coreیک ورژن جدید ازAsp.Net است که کاملا بازنویسی شده است و قابلیت های زیادی مانند ماژولار،کراس پلتفرم و اوپن سورس بودن به آن اضافه شده است.Asp.Net Coreبر روی پلتفرم .Net Coreاجرا می شود.
زبان های برنامه نویسی برای .Net Core
.Net Coreیک فریم ورک است و برای تولید برنامه ها و کتابخانه ها برای این فریم ورک نیاز به یک زبان برنامه نویسی داریم. ما می توانیم از زبان های برنامه نویسیC# , VB , F# برای تولید برنامه های.Net Coreاستفاده کنیم. این زبان های در ویرایشگرها وIDEهای محبوب از جملهVisual StadioوVisual Stadio Codeیک پارچه شده اند و برای تولید برنامه ها میتوانیم از این زبان ها در این ویرایشگر ها استفاده کنیم.
چرا ASP NET Core را انتخاب کنیم؟
یادگیری یک فریم ورک کار پر زحمتی است. باید وقت و انرژی زیادی صرف کنید تا درباره ی نحوه ی برنامه نویسی ، تست ، اجرا و انتشار برنامه دانش لازم را بدست بیاورید. مشکل اینجاست که گزینه های زیادی در اختیار دارید و انتخاب یکی از آنها می تواند مسیر کاری شما را تا حد زیادی تغییر دهد.
در این قسمت به معرفی مزایای فریم ورک ASP.NET Core می پردازیم و دلایل انتخاب آن را شرح می دهیم. اگرقصد دارید تازه وارد دنیای توسعه ی وب شوید این مقاله می تواند راهنمای شما جهت انتخاب بهترین فریم ورک باشد. در اینجا ۱۰ دلیل می آوریم که برای پروژه ی بعدی خود را با ASP.NET Core پیاده کنید.
۱- سورس باز است
مایکروسافت برای مدتها به عنوان شرکتی با درهای بسته فعالیت می کرد اما در چند سال گذشته این رویه کاملا تغییر کرده است. فریم ورک ASP NET Core کاملا به صورت سورس باز در سایت GitHub توسعه داده میشود . می توانید به صورت زنده و مستقیم شاهد روند پیشرفت پروژه باشید یا حتی در توسعه ی آن همکاری داشته باشید. سورس باز بودن به شما امکان می دهد به تحلیل کدها بپردازید و ببینید که در پس زمینه ی این تکنولوژی چه می گذرد. رقبای مایکروسافت همیشه سعی می کردند سورس باز بودن را به عنوان یک مزیت مهم به رخ بکشند اما دیگر چنین نیست.
۲- Cross-Platform
می توانید برنامه های NET Core را روی انواع سیستم عامل ها پیاده یا اجرا کنید. فرقی نمی کند که هدف شما سیستم عامل ویندوز ، لینوکس یا macOs باشد. تمامی ابزار مورد نیاز برای کار با ASP NET Core در سیستم عامل های غیر از ویندوز فراهم است. در حال حاضرمایکروسافت یک نسخه از Visual Studio را برای macOS ارائه میکند. همچنین برای کد نویسی می توانید از VSCode استفاده کنید که روی همه ی سیستم عاملها اجرا میشود و محبوب ترین برنامه ی کد نویسی در دنیاست. معمولا سرورهای لینکوس هزینه ی کمتری دارند و این برای شرکتها و استارتاپ هایی که بودجه ی کمی دارند خبر خوبی است.
۳- نصب پهلو به پهلو
فریم ورک NET Core به صورت Side-By-Side نصب میشود. می توانید چندین نسخه از دات نت کور را در کنار هم روی سیستم عامل داشته باشید بدون آنکه تداخلی بوجود آید. با این قابلیت دیگر لازم نیست نگران آپدیت شدن فریم ورک و از کار افتادن برنامه های قدیمی باشید. برنامه ی قدیمی با نسخه ی قدیمی کار میکند و برنامه ی جدید از نسخه های جدید استفاده می کند.
۴- سرعت
فریم ورک ASP NET Core تا چند برابر سریعتر از سایر فریم ورکهای وب کار می کند. فریم ورکهایی مثل Node یا Ruby یا Laravel حتی نزدیک به اعداد و ارقام ASP NET Core نیستند. سرعت می تواند نقش بسیار تعیین کننده ای در هزینه ی نگه داری سایت داشته باشد. به تازگی یک شرکت هندی با مهاجرت به ASP NET Core تعداد سرورهایش را به نصف کاهش داده است. سخت افزار پر هزینه ترین بخش سرویس های تحت وب است و ASP NET Core می تواند در این زمینه بسیار صرفه جویی ایجاد کند.
۵- دیتابیس
ابزار Entity Framework کار کردن با دیتابیس را بسیار ساده می کند. در عین سادگی این ابزار بسیار قدرتمند است و با می تواند با سرعت بالا داده ها را پردازش کند. همه ی سایتهای اینترنتی نیاز به دیتابیس دارند و EF به عنوان بخشی از فریم ورک NET Core نقش اساسی در کار شما دارد. مهمتر از همه آنکه مایکروسافت خودش این ابزار را توسعه میدهد و همیشه همراه با ASP.NET Core آپدیت میکند.
۶- میکرو سرویس ها
سایتها بزرگ معمولا در یک سرور نگه داری نمی شوند. بلکه به قطعات کوچک تری به نام میکرو سرویس تقسیم می شوند که دیتابیس مجزا دارند و جدا از هم کار میکنند. فریم ورک ASP NET Core کاملا ماژولار طراحی شده است و به راحتی می توانید قسمتهایی را که لازم ندارید از چرخه ی کاری آن حذف کنید. کارایی بالای ASP NET Core آن را به عنوان بهترین گزینه ی طراحی Micro Service معرفی میکند.
۷- Docker
داکر ابزاری است اجرا برنامه ها را ساده میکند. داکر می تواند پروژه ی شما تبدیل به یک بسته ی یکپارچه کند که بدون نیاز به نصب هیچ ابزاری دیگری روی هر سیستمی کار می کند. شرکتهای زیادی از این ابزار برای انتشار محصولات روی سرور یا سیستم مشتری استفاده می کنند. فریم ورک ASP.NET Core سازگاری کاملی با این تکنولوژی دارد.
۸- سی شارپ
مایکروسافت سرمایه گذاری زیادی صرف توسعه ی زبان برنامه نویسی #C میکند. هر ساله نسخه های جدیدی از سی شارپ عرضه شده و روز به روز به قابلیتهای آن افزوده میشود. از این زبان می توانید برای پیاده سازی انواع نرم افزارها استفاده کنید. فرقی نمی کند که برنامه برای سیستم عامل ویندوز، اندروید iOS یا لینوکس طراحی می کنید یا می خواهید در زمینه ی هوش مصنوعی یا توسعه ی وب فعالیت کنید. تنها با دانستن این زبان برنامه نویسی قادر هستید در شاخه های مختلف تکنولوژی کار کنید.
۹- ویژوال استودیو
ویژوال استدیو کاملترین نرم افزار برای برنامه نویسی است و انواع زبانهای برنامه نویسی را پوشش میدهد. این ابزار کاملا با ASP NET Core سازگار است و همه ی آن چیزی که برای کد نویسی و تست و اجرای برنامه نیاز دارید در اختیارتان قرار میدهد. در سایر فریم ورکها همیشه چالش انتخاب IDE دارید که هیچکدام از آنها توسط شرکت سازنده ی فریم ورک تهیه نشده است.
۱۰- اکو سیستم
مهمترین مزیت استفاده از فریم ورک ASP.NET Core این است که این فریم ورک توسط مایکروسافت تهیه و پشتیبانی میشود. هزاران برنامه نویسی با سرمایه های چند صد میلیون دلاری تمام وقت مشغول هستند تا بهترین فریم ورک موجود را عرضه کنند. مایکروسافت به همینجا بسنده نمی کند. علاوه بر ASP NET Core ابزار Entity Framework هم توسط همین شرکت توسعه داده میشود. دیتابیس SQL Server و نرم افزار Visual Studio همه ی نیازهای شما را برطرف میکند. در واقع برای پیاده سازی وب سایت لازم نیست به سراغ محصولات شرکتهای دیگر یا افراد سوم بروید. حتی می توانید از Team Services برای مدیریت پروژه و پیگیری روند کار استفاده کنید. همه ی اینها به صورت رایگان در اختیار برنامه نویسان قرار داده میشود.
نتیجه گیری
اگر فریم ورک ASP.NET Core را با ابزاری مانند Node.js مقایسه کنید می بینید که گوگل فقط فریم ورک مبنای Node را پیاده میکند. برای توسعه ی وب باید به سراغ فریم ورکهای سورس بازی بروید که توسط اشخاص سوم طراحی شده است که هر زمان ممکن است کار را تعطیل کنند و به سراغ سرگرمی دیگری بروند. در بسیاری از فریم ورکها اصلا ابزاری مشابه Entity framework وجود ندارد. اگر شما مزایای استفاده از ASP NET Core را با هر فریم ورک دیگری مقایسه کنید می بینید که گزینه ی بهتری وجود ندارد.
تفاوت NET. و NET Core.
دات نت در سه دسته جامع ارائه میشود:
Net Framework.
Net Core.
Xamarin
NET Framework.
همان نسخه اولیه منتشر شده با نام دات نت است که تنها دستگاههای مبتنی بر ویندوز را پشتیبانی میکند. Windows Forms و WPF برای ساخت برنامه در محیط دسکتاپ مورد استفاده قرار میگیرند، اما ASP.Net که امروزه در صنعت بسیار رایج است برای طراحی وبسایتهای پویا و برنامههای وب به کار میرود. در واقع وجود (CLR) به توسعهدهندگان این فرصت را میدهد تا کدهای ASP.Net را با استفاده از زبانهای مختلف .Net بنویسند که در ادامه مطلب درباره آنها صحبت میکنیم.
Net Core.
یک ساختار مجدد از چارچوب قبلی است با این تفاوت که توسعهدهندگان میتوانند از آن در لینوکس و OS X استفاده کنند و برنامههایی را ایجاد کنند که لزوما به خانواده ویندوز مرتبط نباشند. این سیستم جدید به دنبال تسخیر فضای ابری است. در ضمن NET Core. نه تنها چندسکویی است، بلکه نسخههای مختلف آن را میتوان به صورت جانبی در یک دستگاه نصب کرد. NET Core شامل ASP.NET Core و Universal Platform Windows (UWP) است.
Xamarin
امروزه اگر بخواهید برنامهای را با استفاده از چارچوب NET. برای تلفن همراه (اندروید، ویندوزفون و ios) توسعه دهید انتخاب بسیاری از توسعهدهندگان زامارین است خواهد بود.
Net Standard.
سال ۲۰۱۶ سالی پربار برای توسعهدهندگان دات نت بود؛ چرا که در این سال علاوه بر معرفی زامارین و .NET CORE ، یک کتابخانه جامع برای ترکیب سه فریمورک بالا ارائه شد تا افراد به جای تسلط بر سه کتابخانه مختلف، از یک کتابخانه کلاس پایه استفاده کنند. این مرحله یکپارچه سازی که Net Standard. نام دارد، اکوسیستم و سازگاری بالاتری را در استفاده مجدد از اجزای موجود در سیستم عاملهای مختلف به وجود آورد.
معماری NET.
معماری چارچوب دات نت مبتنی بر سه مؤلفه اصلی زیر است:
زیرساخت زبان مشترک (Common Language Runtime)
کتابخانههای کلاسی (Class Library)
زبانهای برنامهنویسی (Language Programming)
CLR چیست؟
“زیرساخت زبان مشترک” یا CLR در واقع همان قلب دات نت است: یک ماشین مجازی نرمافزاری که حافظه را مدیریت میکند، امنیت دسترسی به کد را پیاده سازی میکند، امنیت کد را تأیید کرده و اجرای برنامهها و کد را فراهم میسازد. CLR چیزی است که دات نت را تبدیل به یک چارچوب مدیریتی و چندکاره میکند و سکویی است که برنامههای NET در آن اجرا میشود . دارای ویژگیهای کلیدی زیر است:
Exception Handling: یا مدیریت خطاهایی که هنگام اجرای برنامه رخ میدهند مانند: سعی در بازکردن یک پرونده روی دستگاه محلی درحالی که پرونده موجود نیست.
کار با زبانهای مختلف برنامه نویسی: همانطور که در بخش قبلی ذکر شد، یک توسعه دهنده میتواند یک برنامه کاربردی را در انواع مختلف زبانهای برنامه نویسی NET ایجاد کند.
بخشهای مختلف CLR عبارتند از:
زبان : سطح اول خود زبان برنامه نویسی است که متداولترین آنها VB.Net و C # است.
کامپایلر : یک کامپایلر جدا برای هر زبان برنامه نویسی وجود دارد. بنابراین زیر زبان VB.Net ، یک کامپایلر جداگانه VB.Net وجود خواهد داشت. به همین ترتیب ، برای C # ، کامپایلر دیگری نیز خواهید داشت.
Common Language Interpreter : این آخرین لایه در دات نت است که برای اجرای یک برنامه ساخته شده به هر زبان برنامه نویسی استفاده میشود. بنابراین کامپایلر بعدی برنامه را برای اجرای برنامه دات نت به لایه CLI ارسال میکند.
کتابخانههای کلاس (Class Library)
چارچوب NET. شامل مجموعه ای از کتابخانههای کلاس استاندارد است. کتابخانهها مجموعهای از روشها و کارکردهایی هستند که برای اهداف اصلی مورد استفاده قرار میگیرند.
به عنوان مثال، یک کتابخانه با روشهایی برای انجام کلیه عملیات فایلها وجود دارد. بنابراین روشی وجود دارد که میتواند برای خواندن متن از یک فایل استفاده کند. به طور مشابه، روشی برای نوشتن متن به یک پرونده وجود دارد. اکثر این روشها در دات نت به نامهای System یا Microsoft تقسیم میشوند.
زبانهای برنامهنویسی
در چارچوب دات نت میتوان از چندین زبان، ویرایشگرها و کتابخانهها استفاده کرد؛ به همین دلیل برنامهنویسان برای توسعه برنامه خود حق انتخاب زیادی دارند. پرکاربردترین این زبانها عبارتند از:
سیشارپ (#C): یک زبان برنامهنویسی ساده، مدرن، شی گرا
ویژوال بیسیک (VB): یک زبان ساده و دوستانه ار نوع شیگرا با نوشتار آسان برای برنامههای کاربردی
محیطهای مناسب برای برنامه نویسی NET.
ویژوال استودیو (Visual Studio) جامعترین محیط برای توسعه برنامه با دات نت است. گزینه بعدی که تا حدودی سبکتر است و بیشتر توسعهدهندگان وب به کار میبرند ویژوال استودیو کد میباشد. رایدر (Rider) که توسط کمپانی JETBRAIN طراحی شده از دیگر گزینههای انتخاب محیط دات نت است.
چرا از دات نت استفاده میکنیم؟
مستقل بودن
مزیت اصلی این چارچوب استقلال آن از زبانهای برنامه نویسی است. برنامهنویسان میتوانند بهجای محدود شدن به استفاده از یک زبان مشخص برنامهنویسی، با استفاده از دات نت میتوانند در هر زبانی که با دات نت همخوانی دارد کار کنند.
پشتیبانی در طول زمان
فرض کنید برنامه ای را در نسخه قدیمی دات نت ساخته اید ، مثلا ۲٫۰٫ و سعی دارید همان برنامه را روی دستگاهی اجرا کنید که نسخه بالاتر فریم ورک دات نت را داشته باشد ، مانند ۳٫۵٫ برنامه هنوز هم کار میکند. دلیل این امر این است که با هر نسخه ، مایکروسافت اطمینان حاصل میکند که نسخههای فریم ورک قدیمی با آخرین نسخه به خوبی سازگار میشوند.
قابل حمل
در طول این مقاله بارها اشاره کردیم که برنامههایی که با دات نت ساخته شدهاند میتوانند روی هر پلتفرمی اعم از ویندوز iOS و Linux کار کنند.
مدیریت حافظه
CLR همه کارهای مدیریت حافظه را انجام میدهد. چارچوب .Net توانایی بالایی برای یافتن منابعی را دارد که توسط یک برنامه در حال اجرا استفاده نمیشود و این منابع را از طریق سازوکار “جمع آوری زباله” (Garbage Collector) آزاد میکند.
استقرار آسان
دات نت ابزارهایی دارد که میتوان برای بستهبندی برنامههای ساخته شده از آن استفاده کرد. در نهایت این بستهها در دستگاههای مشتری توزیع میشوند و به طور خودکار برنامه را نصب میکنند.
امنیت بالا
همانطور که میدانید مایکروسافت ارزش بالایی برای امنیت قایل است. لذا این ساخته مایکروسافت در برابر تلاشهای مخرب تغییر کد کامپایل شده قابل اعتماد است.
چه کسانی نباید سراغ دات نت بروند؟
توضیح درست عملکرد این چارچوب برای افراد ناآشنا با دنیای برنامهنویسی، تا حدودی دشوار است. برای افرادی که به زبانهای منطقی مانند C عادت دارند تا حدودی ناراحتکننده است، چرا که یک چارچوب متشکل از زبانهای شی گراست. به همین دلیل شاید بهتر باشد بعد از تسلط بر مفاهیم و درک عمیق برنامهنویسی سراغ این فریمورک بروید.
جمعبندی
NET. یک مجموعه جامع و ارزشمند با آیندهای روشن است و طبق وعده مایکروسافت شاهد ورژن جامعی از دات نت در اواخر سال ۲۰۲۰ هستیم که قابلیت اجرا و پشتیبانی برای انواع سیستمعاملها، دستگاهها و کاربردها را خواهد داشت. اگر برنامهنویس دات نت و یا علاقمند به این حوزه هستید تجربیات خود را با سایر دوستان درمیان بگذارید.
آشنایی با زبان برنامه نویسی تحت وب ASP.NET Core