چرا ماکروسافت نسخه 4.6 دات را به یکباره کنار گذاشت و به سراغ ASP.NET Core 1.0 رفت ؟.
ASP.NET Core 1 چیست و به چه دلیل ماکروسافت دست به چنین تغییر عظیمی زد ؟.
اگر به تاریخچه ASP.NET نگاه کنیم ، خواهیم دید که عمر این محصول ماکروسافت کم هم نیست . حدود 14 سال است که این محصول سرپاست و در حال سرویس دهی به برنامه نویسان حوزه وب میباشد .از روز شروع و تولید این محصول زمان زیادی گذشته و ماکروسافت روزبه روز سعی در بهبود آن داشته ، ولی آنچه تحت عنوان ASP.NET Core 1.0 به بازار آمده ، یک انقلاب واقعی است .
شاید این فرضیه وجود داشته باشد که ASP.NET Core 1.0 عملن همان ASP.NET 4.6 است دیگر، ولی باید با جرات و جدیت اعلام کرد که "خیر" . ماکروسافت این نسخه را جدی جدی از اول نوشته است . این نسخه شاید قابلیتهای یکسانی با نسخه 4.6 داشته باشد ، ولی واقعن از صفر نوشته شده و به صورت محسوسی سبکتر و ماژولاتر است .
همین چند روز پیش بود که Scott Hanselman اسم نهایی این محصول را ASP.NET Core 1.0 گذاشت و به گمانه زنیهای مختلف بر روی اسم جدید این محصول پایان داد. اسامی مانند ASP.NET 5, ASP.NET vNext and Project K . حال مشخص شد که این اسامی همگی حدسیات بوده و نام جدید محصول ASP.NET Core 1.0 می باشد .
این صحیح است که بحثی در گرفته و عده ای این محصول جدید را همان نسخ قبلی فقط با شکل و نامی جدید طلقی میکنند ، ولی باید گفت که این نظریه صحیح نیست !. گروهی از کارشناسان ، بحث را به سمت MVC 6 برده و مدعی هستند نسخه جدید همان MVC 6 میباشد که در این نسخه جدید کل ASP.NET را به تسخیر خود در آورده است . مسئله اینجاست که ASP.NET Core 1.0 عملن یک تغییر ریشه ای است و میتوان گفت همه چیز از بنیان عوض شده است .
اگر اخبار را دنبال کرده باشید و به منابع و فورومهای ماکروسافت سر بزنید ، خواهید دید که این سری تغییرات و این انقلاب در حوزه ASP.NET ، برای ماکروسافت بسیار مهم و حیاتی محسوب میشود چرا که سرنوشت ASP.NET به این تغییرات و این نسخه بسیار مرتبط خواهد بود .
چه چیز در ASP.NET Core 1 تغییر کرده است ؟.
اولین نکته قابل بحث در جواب این سوال این است که کلن همه چیز در این ورژن دوباره نویسی شده است . باور میکنید System.Web و هر آنچه با آن همراه بوده ، دیگر وجود ندارد ؟!.
نکته بعدی Open Source بودن محصول بدون تعارف و شعار است . در کنار آن این نسخه واقعن Cross plat form هم هست . آیا میدانید ماکروسافت چقدر هزینه زمانی و مالی گذاشته تا این محصول واقعن Cross Plat Form شود ؟. یعنی در عمل ما یک CoreCLR جدید داریم که جایگزین Mono خواهد شد . با این نسخه شما میتوانید برای Mac یا Linux یا ویندوز به انتخاب خودتان سیستم طراحی کنید . این یعنی PowerShell توسط Core 1 کنار گذاشته شده و ماکروسافت به سراغ Node.JS رفته است . در عمل این Node.JS است که مراحل Pre-RUN و Build را مبتنی بر Grunt یا Gulp به عهده دارد.
یکی دیگر از تغییرات مهم حذف .csproj و جایگزینی آن توسط فایلهای project.json است . به همین دلیل است که همه Library های جدید از طریق Nuget هندل خواهند شد چرا که از این طریق میتوان پروژه ها را بر روی Mac هم سوار کرد .
نکته بعدی IDE ماکروسافت است . این بار ماکروسافت جدی جدی تصمیم گرفت و عمل کرد . شما میتوانید VS.NET را روی سیستم عاملهای دیکر هم نصب کنید . در کنار آن ، ماکروسافت به صورت جدی تصمیم به Open Source شدن دارد و این یعنی یک تغییر بزرگ !.
سوال اینجاست که چرا ماکروسافت دست به چنین تغییر بزرگی زد ؟.
ماکروسافت نگران از دست دادن برنامه نویسانش بود . بعد از نابودی Silverlight و عدم توان رقابت با IOS و Android ، دیگر چه چیز برای ماکروسافت میماند ؟. در بستر موبایل که برنامه نویسی Windows Mobile با 2 رقیب آن اصلا قابل مقایسه نیست و ماکروسافت شکست را پذیرفته است . تنها جایی که امکان رقابت با Node, Ruby, Python, Java همین بستر وب است و بس. سیستمهای تحت ویندوز یا همان Windows Application ها را که باید مرده بحساب آورد پس تنها صحنه رقابت و جنگ برای ماکروسافت همین بستر وب است . مسئله بعدی Startup ها هستند . آنها به بسترهای Open Source و ارزان نیاز دارند . ماکروسافت با وضعیت قبلی ASP.NET ، اصلن مورد توجه Startup ها قرار نمیگرفت و این بسیار دردناک بود .
حال باید دید چرا این تغییرات میتواند ASP.NET را دوباره به مدار باز گرداند .
1- مجانی و Open Source شدن
2- Cross Platform بودن
3- سادگی در استفاده
4- سبک ، قوی و ساده بودن
با این 4 ویژگی ASP.NET با دیگر محیطها و زبانهای توسعه وب در یک سطح خواهد بود ، مضاف بر اینکه زبان قدرتمند و زیبای C#.NET همچنام هسته اصلی توسعه باقی خواهد ماند و این یعنی یک برتری بسیار بزرگ نسبت به دیگر زبانها !.
سوال دیگر اینجاست که چه بر سر ASP.NET 4.6 خواهد آمد ؟. جواب را کسی نمیداند ، ولی بر اسای مشاهدات ، باید آنرا هم مرده فرض کنید . روی اسب مرده شرط بندی نکنید و Core 1.0 را برنده بدانید .مسلما ورژنهای پایینتر همچنان کار خواهند کرد چنانکه ASP Classic هم هنوز بر روی IIS قابل اجراست ، ولی از لحاظ بازار کار ، پشتیبانی و به روز بودن محصول باید Core 1.0 را به عنوان امید اول این جایگاه حساب نماییم .
آنچه در حال حاضر از دست من و شما بر می آید این است که آرزو کنیم ماکروسافت خسته نشود و دوباره یک محصول نیمه کاره و دارای خطاهای فاحش به بازار عرضه نکند . باید منتظر بود و دید آیا ماکروسافت اینبار محصولی که بتوان به آن افتخار کرد را ارائه میکند یا نه .