مایکروسافت با توجه به نابودی Silverlight و عدم توان رقابت با IOS و اندروید به این نتیجه رسید که در بستر برنامه نویسی ویندوز موبایل نمی تواند موفقیت چندانی داشته باشد، سیستم های تحت ویندوز یا همان Windows Application ها نیز آنچنان پر رونق نیستند. پس تنها صحنه رقابت برای مایکروسافت بستر وب است. Startup ها نیز به بسترهای Open Source و ارزان نیاز دارند.
ASP.NET Core ، بازنویسی کامل از ASP.NET است. ویندوز هنوز هم سیستم عاملی برتر به حساب می آید ولی برنامه های وب نه تنها روز به روز از کاربرد و اهمیت بیشتری برخوردار میشوند بلکه باید بر روی سکوهای دیگری مانند فضای ابری هم بتوانند میزبانی شوند. مایکروسافت با معرفی ASP.NET Core گستره کارکرد ASP.NET را افزایش داده است. به این معنا که میتوان برنامههای کاربردی ASP.NET Core را بر روی بازهی گسترده ای از محیط های مختلف میزبانی کرد هم اکنون میتوانید پروژه های وب را برای Linux یا MacOS هم تولید نمایید.
منظور از ASP.NET چیست؟
به طور خلاصه مایکروسافت این محصول را این گونه تعریف میکند «فریم ورکی متن باز (اوپنسورس) برای طراحی وبسرویسها و وب اپلیکیشنهای مدرن با .NET». این محیط کاری که به هیچ سیستم عاملی محدود نیست، جایگاه ویژهای را در بین توسعه دهندگان وب و موبایل به خود اختصاص داده است.
منظور از زبانهای پشتیبانی شده net core چیست ؟
برای نوشتن اپلیکیشن ها و کتابخانه ها برای .Net Core می توان از زبانهای C# ، F# و VB استفاده کرد. از آنجا که کامپایلرها با .Net Core اجرا می شوند، این امکان را فراهم می آورد که در هرجایی که خود .Net Core امکان اجرا داشته باشد بتوانید به طراحی و توسعه بپردازید. به این معنا که؛ از کامپایلرها به صورت مستقیم استفاده نخواهید کرد، بلکه به صورت غیر مستقیم و با استفاده از ابزارهای SDK از آنها بهره خواهید برد.
از آنجا که کامپایلر C# Roslyn و ابزارهای .Net Core این توانایی را دارند که با ویرایشگرهای متنی (Text editors) و IDE های مختلفی از جمله Visual Studio ، Visual Studio Code ، Sublime Text و Vim تلفیق و یکپارچه شوند، .Net Core را تبدیل به بستری مناسب برای توسعه دهندگان کرده است تا کدنویسی مورد نظر خود را در محیط و سیستم عامل مورد علاقه خود به انجام برسانند.اگر بخواهیم به مزایای ASP.NET Core در مقایسه با سایر نسخههای NET. بپردازیم میتوانیم به موارد زیر اشاره داشته باشیم
معماری MVC
نسخه ASP.NET Core MVC برای ایجاد پروژه های وب از الگوی Model-View-Controller یا به اختصار MVC استفاده مینماید. الگوی MVC جدید نیست و به سال 1978 و پروژه smaltalk بر میگردد. در معماری MVC برخورد کاربر با برنامه کاربردی یک مسیر طبیعی را طی میکند کاربر عملی را انجام میدهد و برنامه در پاسخ به آن ، با تغییر مدل داده ها، نمای جدیدی را نمایش میدهد و این چرخه به همین صورت ادامه پیدا میکند این روش برای برنامه های تحت وب ، به عنوان مجموعه ای از درخواستها و پاسخ های HTTP ، مناسب است. و از آنجا که بر پایه معماری MVC عمل میکند در مقایسه با پروژه های قدیمی Web Form ، موضوع جداسازی لایههای پروژه را به خوبی انجام میدهد .
گسترش پذیری
ASP.NET Core و ASP.NET Core MVC شامل عناصر (Component) مستقلی هستند. این عناصر دارای مشخصههای روشنی بوده و معمولاً از یک واسط و یا کلاس مجرد ارث بری کرده اند. بسادگی میتوانید هر یک از این عناصر را با آنچه خودتان پیادسازی کرده اید جایگزین کنید. برای هر عنصر سه انتخاب پیش رو دارید :
1- پیاده سازی پیش فرض آن را همان گونه که هست به کار ببرید. که برای بسیاری از برنامهها کافی است.
2- کلاس دیگری از پیاده سازی پیش فرض مشتق کنید و رفتار آن را به دلخواه تغییر دهید.
3- عنصر مورد نظر را با ایجاد کلاس جدیدی که از واسط یا کلاس مجرد نخستین ارث بری میکند کاملاً جایگزین گنید.
کنترل کامل بر HTML و HTTP
خروجی اچ تی ام الی که توسط برنامه های ASP.NET Core ایجاد میشود کاملاً استاندارد است. برای شکل دادن به این HTML می توانید از CSS استفاده کنید افزون بر این میتوانید از Jquery ،Angular و Bootstrap برای ایجاد عناصر پیچیده مانند تقویم و منوهای تودرتو استفاده کنید.
ASP.NET Core MVC با HTTP هماهنگ است به این معنی که کنترل درخواست های ارسال شده از مرورگر به سرور را در دست دارید . و این امکان میدهد که تجربه کاربر از برنامه را آنگونه که میخواهید شکل دهید. کاربرد Ajax ساده تر شده و به راحتی میتوانید از سرویس های وب (Web Service) برای دریافت درخواستهای ارسالی از مرورگر استفاده کنید.
واسط برنامه نویسی قوی
از آنجا که ASP.NET Core MVC بر پایه NET Core. بنا شده است از بسیاری از ویژگیهای قدرتمند آن که برای برنامه نویسان #C آشناست مانند کاربرد await ، متدهای توسعه یافته(Extension Methods) ، عبارت های لامدا (Lamda Expression) ، انواع پویا و بینام و کوئری آمیخته به زبان LINQ استفاده میکند.
مزایای ASP.net core چیست؟
در یکی از بخشها به مشکلات ASP.net core پرداختیم. تفاوتهای زبان ASP با زبان ASP.net core را در ادامه میبینید. این تفاوتها باعث شدهاند که ASP.net core نیاز به جایگزین نداشته باشد و همچنان به سلطه خود ادامه دهد.
جدایی فرانتاند و بکاند: گفته شد که در ASP کلاسیک، کدهای اسکریپت با کدهای HTML تلفیق شده و ذخیره میشوند. جدایی این دو باعث راحتتر شدن کار برنامهنویسان در بهینه ساختن صفحات خصوصاً برای سایتهای محتوا محور میشود.
پشتیبانی از زبانهای کامپایل شونده
تفسیرشونده بودن ASP باعث میشد در هر بار فراخوانی صفحه، خط به خط کدها تفسیر و سپس اجرا شوند. همین اتفاق باعث پایین آمدن سرعت و اشکال در اجرای کد میشد. پشتیبانی از زبانهای کامپایل شونده در دات نت به این معناست که کدها در زمان فراخوانی سایت برای اولین بار کامپایل شده و به صورت بایت کد در قالب Cache ذخیره میشوند. این بایت کدها در زمان فراخوانیهای بعدی از خود کامپیوتر برداشته میشوند و به این ترتیب نیاز به اجرا شدن خط به خط کد برای هر بار اجرای کل برنامه نیست. از طرف دیگر زبانهای کامپایل شونده به برنامهنویس امکان استفاده از شیگرایی و دستورات ساختار یافتهتری را میدهند که در زبانهای تفسیر شونده این دو امکان موجود نیست.
امکان استفاده از سرویسهای داتنت فریمورک
محیط گرافیکی توسعه برنامه: همانطور که گفتیم، اولین ورژن این فریمورک همراه با ویژوال استودیو داتنت به بازار عرضه شد. این دو محصول مکمل یکدیگرند. محیط گرافیکی ویژوال استودیو داتنت امکانات مختلفی را با Drag and Drop در اختیار توسعهدهنده قرار میدهد.ذخیره اطلاعات جلسات حضور کاربراندر ASP برای این مسئله نیاز به کدنویسی بود اما NET این امکان را در اختیار شما قرار میدهد که اطلاعات حضور کاربران در سایت را ذخیره و بازیابی کنید.بهروزرسانی آنلاین برای ایجاد تغییر در سایت دیگر لازم نیست سایت را از کار بیندازید.ذخیره تنظیمات در فایل XMLفایلهای XML به راحتی قابل خواندن و ویرایش بوده و از همین جهت مناسبترین گزینه برای ذخیره تنظیمات به حساب میآیند.
NET Core. از اجزای زیر تشکیل شده است:
یک .NET Runtime که یک نوع سیستم را ارائه میدهد، Assembly Loading، جمع کننده اضافات، تبادل کننده داخلی اطلاعات و دیگر سرویسهای پایهای.تعدادی از کتابخانههای فریمورکی که انواعی از دادههای اولیه را ارائه میدهد، ترکیب کننده اپلیکیشنها، و ابزارهای دیگر.تعدادی ابزار SDK و کامپایلر زبان که تجربه توسعه پایهای را که در NET Core SDK. در دسترس است، فعال میکند.اپلیکیشن میزان DotNet که به منظور اجرای اپلیکیشنهای NET Core. مورد استفاده قرار میگیرد. این اپ، Runtime را انتخاب و میزبانی کرده و حریم شخصی و اجرای اپلیکیشنها را ارائه میدهد.