جهش به محتوا
ورود کاربران
وبلاگهاست ویندوز.Net Core چیست ؛ معرفی پلتفرم اپن سورس مایکروسافت
هر زمان نیاز به کمک داشتید، در کنار شما هستیم . با ما تماس بگیرید ( 031-3626 0000 ) یا درخواست خود را به صورت آنلاین ثبت نمایید.

.Net Core چیست ؛ معرفی پلتفرم اپن سورس مایکروسافت

وقتی که صحبت از فریم ورک ها و زبان های برنامه نویسی پیش می آید و یک برنامه نویس تازه کار بخواهد کار خود را با یکی از این فریم ورک ها شروع کند، همیشه حرف و حدیث های زیادی برای استفاده و یا عدم استفاده از یک فریم ورک مطرح می شود. فریم ورک های تحت مایکروسافت از آن دست فریم ورک هایی هستند که همیشه در مورد آنها و کاربردشان بزرگنمایی های زیادی می شود و در اینجا قصد داریم با بررسی این سوال که .NET Core چیست به بررسی این سوال بپردازیم که آیا این فریم ورک واقعا توانایی اینکه تا اندازه ای که ادعا می کنند خوب است یا نه!

در این مقاله ما قصد داریم تا به عنوان یک هاستینگ به بررسی  .Net Core بپردازیم . همینطور در مورد اینکه چه سرویسی برای میزبانی و هاست سایت هایی که روی این پلتفرم ارائه می شوند مفید می باشد. قبل از بررسی اینکه .Net Core چیست باید کمی در مورد .Net و پلتفرم هایی که مایکروسافت ارائه کرده است کمی بیشتر صحبت کنیم.

 

.Net و سایر پلتفرم های مایکروسافت

اگر یکی از استفاده کنندگان از سیستم عامل ویندوز باشید و برنامه های مختلف را روی ویندوز سیستم خود نصب کرده باشید قطعا تا حدودی با .NET Framework به عنوان یک پیش نیاز برای نصب خیلی از برنامه های ویندوزی آشنا شده اید. اگر بخواهیم یک تعریف علمی  کامل از .NET Framework ارائه کنیم باید بگوییم که این پلتفرم در واقع یک بستر برای پیوند دادن زبان های برنامه نویسی مختلف و ارائه کتابخانه های ضروری و حرفه ای با کاربرد هایی بسیار متنوع است که به برنامه نویسان اجازه می دهد از زبان های مخصوص بستر مایکروسافت به صورت کامل در یک بستر ثابت مانند ویژوال استودیو استفاده کنند و برنامه خود را ایجاد کنند.

 

.Net چیست

 

.NET Framework که به عنوان یک پیش نیاز در ویندوز شما نصب می شود و اگر نباشد بعضی از برنامه ها یا بازی ها اجرا نخواهند شد نیز در واقع تقریبا همین کار را انجام می دهد و مسئول این است که توابع مورد نیاز برنامه ها را فراهم کرده و این امکان که ماژول های مختلف آنها با هم کار کنند را فراهم می کند. .NET Framework را می توان یکی از بزرگترین دستاورد های مایکروسافت دانست که توانست با وجود کاستی های زیاد و ایراداتی که به آن وارد بود به کار خود ادامه دهد و مسیر رشد و برطرف کردن این ایرادات را به طور کامل پشت سر بگذارد.

به طور کلی می توان گفت که این پلتفرم یک ترکیب کامل را از زبان هایی مانند C#، و VB و همینطور پلتفرم های حرفه ای و کاملی مانند ASP.Net و ADO.Net را در اختیار برنامه نویسان گذاشت، یکی از ویژگی های بزرگی که این سیستم عامل به عنوان یک ستون قدرتمند به آن اتکا کرده بود، استفاده از زبان میانی است. در ادامه بیشتر در مورد اینکه زبان میانی چیست و چه کاری انجام می دهد صحبت خواهیم کرد.

 

زبان میانی چیست

وقتی که برنامه نوشته می شود، به دو نوع می توان آن را اجرا نمود. در اولین و قدیمی ترین حالت که از زمان ایجاد و ساخت زبان C مورد استفاده قرار می گرفته است، کد سطح بالا که برنامه نویس آن را نوشته است به یک کد زبان ماشین که برای سخت افزار قابل فهم باشد تبدیل می شود. به این عملیات تبدیل شدن کد کامپایل گفته می شود که توسط برنامه ای به نام کامپایلر صورت می گیرد. برنامه هایی که با استفاده از این روش به کد نزدیک به ماشین ترجمه می شوند، برنامه هایی بسیار سریع و قدرتمند خواهند بود که می توان گفت زمان پردازش در آنها بسیار کمتر از سایر موارد می باشد.

مورد دیگری که در مقابل زبان های برنامه نویسی کامپایلر قرار دارد، زبان های مفسری هستند، در زبان های مفسری کد به صورت خالص روی یک سیستم وارد شده و توسط مفسر ها در لحظه اجرا می شود. از این زبان ها می توان به زبان هایی مانند HTML و PHP اشاره کرد که به صورت مفسری اجرا شده و از معروف ترین این زبان ها به حساب می آیند. زبان های مفسری سازگاری خیلی بالاتری با پلتفرم های مختلف دارند اما می توان گفت که زمان پردازش در آنها زیاد بوده و کار پردازشی طولانی تر و سنگین تری را نسبت به زبان های کامپایلر طلب می کنند.

 

زبان میانی چیست

 

زبان میانی ایده ای بود که با زبان برنامه نویسی جاوا مطرح شد و در آن این اتفاق افتاد که کامپایلر کد را کامپایل می کرد اما نه به صورت کامل و نزدیک به ماشین. در واقع کد توسط یک مفسر به یک زبان دیگر به نام زبان میانی تبدیل شده بود که روی سیستم های مختلف بر اساس سخت افزار و سیستم عاملی که داشتند با بهترین بازدهی کار می کرد و یک بار هم عملیات کامپایل زبان میانی به صورت سبک تر روی سیستم هایی که آن را می شناختند انجام می شد. اینگونه بود که عمل سازگاری زبان های مفسری به همراه قدرت پردازشی و سرعت زبان های کامپایلر ترکیب شد. اولین پلتفرمی که مایکروسافت به عنوان یک پلتفرم زبان میانی معرفی کرد و به کاربران خود ارائه کرد همین .NET Framework بود.

 

نقاط ضعف .NET Framework

 .NET Framework نیز مانند سایر پلتفرم های خوب و حرفه ای که این شرکت بزرگ ارائه کرده است برای خود این شرکت باقی اند و نتوانست به جایگاهی که حق آن بود دست پیدا کند. شاید این سوال برای شما پیش بیاید که این اتفاق چگونه رخ داده است و منظور ما چیست زیرا شما این امکان را خواهید داشت که به برنامه هایی که با .NET Framework نوشته شده اند در هر جایی دسترسی داشته باشید. در این باره باید به تعداد برنامه نویسان و قیمتی که برای یک اپلیکیشن در پلتفرم .NET Framework از شما خواهند گرفت اشاره کنیم.

اگر یک بررسی بین سرویس هایی که یک اپلیکیشن سطح وب و یا حتی یک سایت روی دو پلتفرم .NET Framework و PHP به شما ارائه می کنند نگاهی بیندازید متوجه خواهید شد که جریان از چه قرار است و هزینه های برنامه نویسی و توسعه اینگونه سایت ها و همینطور راحتی کار با آنها، آموزش ها و انجمن های کاربری موجود و رضایتی که مدیران از آنها دارند، کاملا گویای این امر خواهد بود که .NET Framework چرا یک زبان و پلتفرم تقریبا جامانده تلقی می شود.

 

نقاط ضعف .Net چیست

 

مایکروسافت از آنجایی که هیچوقت به سکون علاقه ای نداشته و همیشه می توان آن را به عنوان یکی از پیشرو ترین ارائه دهندگان تکنولوژی های کامپیوتری دانست، در گام بلند بعدی خود مجددا یک تجربه اپن سورسی دیگر را برای خود ایجاد نمود و با ارائه یکسری از ویژگی های کاربردی .NET Framework و چند تکنولوژی خوب و جدید، با استفاده از یک بستر اپن سورس که بتوان از آن به راحتی روی هر سیستم عاملی اعم از ویندوز و لینوکس برنامه های مختلف را نوشته و برای سایر دیوایس ها و پلتفرم ها از آنها خروجی گرفت، را ارائه کرد که این پلتفرم موضوع اصلی مقاله ما می باشد. در ادامه در مورد اینکه .Net Core چیست بیشتر صحبت خواهیم کرد.

 

.Net Core چیست ؛ یک پلتفرم کاربردی و اپن سورس از مایکروسافت

شرکت بزرگ مایکروسافت عموما به خاطر سیاست های سختگیرانه خود در زمینه های کپی رایت و پولی بودن برنامه و پلتفرم هایی که ارائه می کند معروف است اما اینبار برای صلاح خود و گرفتن بازار و راحتی برنامه نویسان هم که شده از خر شیطان پایین آمده و یک بار دیگر وارد زمینه پلتفرم های اپن سورس شده است. هرچند که از این کار خاطره خوبی هم ندارد و آخرین بار که این کار را کرد، دو سال قبل از .NET Core بود که یک پلتفرم و زبان برنامه نویسی به نام TypeScript منتشر نمود که در واقع همان JavaScript به همراه چند Add-Ons معمولی بود که کاربرد های آنها آنطور که باید مورد توجه قرار نگرفت.

به جز این زبان چند مورد اپن سورس دیگر نیز مانند یک پک فونت برای ترمینال و پاورشل، و خود پاورشل ویندوز سرور (PowerShell) را نیز به عنوان برنامه های اپن سورس ارائه داده بود اما هیچوقت به این وسعت پا به عرصه اپن سورس و دنیای آزاد برنامه نویسان نگذاشته بود. مایکروسافت که همیشه مهمترین اهرم فشار خود را به صورت غیر رایگان در اختیار می گرفت اینبار قابلیت های بسیار باور نکردنی را تحت عنوان .Net Core راهی بازار کرد.

 

فریم ورک .Net Core چیست

 

اگر بخواهیم به صورت علمی بگوییم که .Net Core چیست و یک تعریف شسته رفته از آن ارائه کنیم می توانیم بگوییم که .Net Core یک فریم ورک رایگان و اپن سورس برای تولید برنامه های کامپیوتری در زمینه های مختلف روی سیستم عامل های لینوکس، ویندوز و مکینتاش می باشد. .Net Core را می توان یک نسخه کراس پلتفرم و کامل از .NET Framework معرفی کرد که تحت لیسانس بنیاد نرم افزاری MIT که به ارائه استاندارد های نرم افزار های رایگان و اپن سورس نظارت دارد منتشر شده است.

اگر بخواهیم بگوییم که تاریخچه .Net Core چیست باید گفت که نیم توان تاریخچه چندانی را برای این فریمورک کراس پلتفرم نام برد زیرا تنها 6 سال است که ارائه شده است. اما می توان گفت که .Net Core برای اولین بار در سال 2014 و توسط میگل ایکازا که قبلا هم برای مایکروسافت پلتفرم زامارین را ارائه کرده بود و در این پروژه یکی از مهره های کلیدی به حساب می آید، معرفی گردید. وی این فریمورک را یک ورژن جدید از .NET معرفی نمود که تفاوت های زیرساختی زیادی در مورد لایبراری ها (Libraries) و کتابخانه های ایجاد شده است.

 

ورژن های .Net Core چیست

پس از معرفی .Net Core و استقبال از آن مایکروسافت به جای اینکه با روال همیشگی خود همه چیز را پرمیوم کند و حال همه کسانی که از این پلتفرم استفاده می کنند را بگیرد و همان مایکروسافت همیشگی باشد که همه برنامه نویسان می شناسند، در جهت اصلاح آن و ارائه ورژن هایی که قابلیت های بهتر و بیشتری دارند گام برداشت. اولین ورژن این برنامه تخت عنوان .Net Core 1.0 در ژوئن سال 2016 به همراه آپدیت سوم ویژوال استودیو 2015 به بازار معرفی شد.

در مورد اینکه دومین ورژن .Net Core چیست باید بگوییم که یک سال بعد از ارائه این ورژن، ورژن دوم با نام .Net Core 2.0 در آگوست سال 2017 به همراه ویژوال استودیو 2017 و همینطور یک فریم ورک اوپن سورس دیگر از مایکروسافت به نام Entity Framework که یک فریم ورک برای ADO.Net بود معرفی شد.

 

ورژن های مختلف .Net Core چیست

 

یکی دیگر از ورژن هایی که توانست به صورت موفق عمل کند و اگر بخواهیم بگوییم که ورژن پایانی .Net Core چیست باید ورژن 3 که در سال 2019 ارائه شد را نام ببریم. ورژن های بعدی با یک تغییر نام همراه بودند که در ادامه به بررسی آنها خواهیم پرداخت.

ورژن بعدی که اکنون مورد استفاده قرار می گیرد و اگر بخواهیم بگوییم که جدیدترین ورژن .Net Core چیست باید بگوییم که .Net 5 می باشد و خبری از .Net Core نیست. مایکروسافت در ورژن جدید خود و اصطلاحاتی که در سال 2020 ارائه کرد. .Net Core را به .NET تغییر نام داد و با حذف ورژن 4 و جهش ناگهانی به ورژن پنجم، تمامی موارد مربوط به .Net Core را محو و پاک نموده و تمامی قابلیت های آن را به .NET جدید خود منتقل کرد که در واقع همان .NET Framework قدیمی بود. اما با رنگ و لعابی جدید که همه آن را می شناسند.

تا اینجای کار دیدیم که .Net Core چیست و از کجا آمده است و چه دردسر ها و داستان هایی پست آن است و همچنین در مورد اینکه چینش و ترتیب ورژن های .Net Core چیست و اکنون در چه ورژنی از آن هستیم صحبت کردیم. اکنون نوبت به این موضوع رسیده است که ببینیم ویژگی های .Net Core چیست و این فریمورک پر سر و صدا و پرحاشیه چه ویژگی هایی را برای ما فراهم خواهد کرد.

 

ویژگی های .Net Core چیست

در مورد این سوال که ویژگی های .Net Core چیست تا کنون به صورت موردی و کم و بیش آنها را عنوان کرده ایم. اما اگر بخواهیم یک لیست جامع و کامل از اینکه .Net Core چه قابلیت هایی دارد و چه ویژگی هایی را به عنوان موردی ترین و معروف ترین ویژگی های آن می توان ارائه کرد، باید به این موارد اشاره کنیم:

 

اپن سورس و رایگان است

در مورد یک پلتفرم و یا فریمورک ارائه شده توسط مایکروسافت اپن سورس بودن و رایگان بودن یکی از اولین ویژگی هایی است که می توان آن را عنوان کرد. مایکروسافت معمولا عادت دارد دوبرابر استفاده ای که محصولاتش دارند از شما پول بگیرد و اگر فرهنگ بیخیال کپی رایت بودنی که ما در ایران عموما از آن تبعیت می کنیم را نادیده بگیریم شاید بتوان گفت که تقریبا صد در صد برنامه هایی که در داخل با پلتفرم های غیر رایگان مایکروسافت نوشته می شوند کاملا غیر قانونی و بلا استفاده هستند.

 

ویژگی های .Net Core چیست

 

اما این بار مایکروسافت می خواست چیز به این مهمی را به صورت رایگان به ما بدهد که این مورد در کل دنیا یک موضوع عجیب به حساب می آید.

 

کراس پلتفرم یا همان چند سکویی بودن

کراس پلتفرم یا چند سکویی موردی است که خیلی از برنامه ها و فریم ورک های مختلف از آن پشتیبانی می کنند. و به این معناست که محصول مورد نظر می تواند روی چند سیستم عامل که همگی از نظر ساختاری با هم تفاوت هایی را دارند کار کند. به عنوان مثالی ساده از این دست برنامه ها می توان Xampp را نام برد. اما اگر بخواهیم بگوییم که معنی این چند سکویی بودن روی .Net Core چیست باید بگوییم که در اینجا وقتی برنامه ای با این فریم ورک نوشته می شود و از زبان ها و امکاناتی که این برنامه فراهم کرده است استفاده می کند می تواند روی سیستم عامل های مختلف و یا سیستم عاملی که مد نظر ما می باشد اجرا شود.

 به عنوان مثال شما قادر خواهید بود تا برنامه ای را برای لینوکس و یا برنامه ای را صرفا برای ویندوز با استفاده از .Net Core بنویسید یا اینکه برنامه ای را بنویسید که روی هر دوی این سیستم عامل ها کار کند. موضوع چند سکویی بودن در این پلتفرم یک مفهوم گسترده است و باید در زمان طراحی برنامه نیز توجه زیادی به آن شود.

 

چند کاربردی بودن

فریم ورک های مختلفی وجود دارند که می توانند به صورت کراس پلتفرمی و با استفاده از زبان میانی برنامه های خود را ارائه کنند اما معمولا چند کاربردی بودن موضوعی است که در خیلی از آنها دیده نمی شود، اگر بخواهیم بگوییم که مفهوم چند کاربردی بودن در .Net Core چیست باید بگوییم که شما این امکان را خواهید داشت تا در این فریم ورک برنامه های مختلفی برای هر محیط اجرایی و هر بستری طراحی و پیاده سازی کنید. به عنوان مثال شما هم می توانید برنامه های موبایل را روی آن بنویسید و هم یک اپلیکیشن تحت وب را روی یک سایت با استفاده از ASP و Blazor پیاده سازی کنید.

آنچه که .Net Core به شما ارائه می کند آزادی عمل در هر زمینه ای است و برای این کار خود امکانات خیلی خوبی را نیز در اختیار شما قرار خواهد داد که براحتی می توانید از آن برای نوشتن برنامه ها برای هر دیوایس و هر پلتفرمی استفاده کنید.

 

کتابخانه های غنی و حرفه ای

اگر بخواهیم بگوییم که یکی از مهمترین ویژگی های .Net Core چیست و چه چیزی را مایکروسافت به عنوان یک هدیه ارائه کرده است که اپن سورس بودن این پلتفرم را تا این اندازه عجیب می کند، لایبرری ها و کتابخانه های غنی مایکروسافت است که به شما توابع بسیار زیاد و کاربردی را برای برنامه های مختلف می دهد.

توابع و کتابخانه هایی که تا چندی پیش و در نسخه های مختلف ویژوال استودیو باید برای آنها قیمت های سنگینی را پرداخت می کردید ممنون برای گسترش راحت و سریع برنامه ها در اختیار شما قرار دارد و از این بابت می توان مطمئن بود که .Net Core نه تنها کم نمی آورد، بلکه می تواند یکی از مدعیان ارائه کتابخانه های حرفه ای و کامل نیز باشد.

استفاده از این ماژول های آماده می تواند تا حد بسیار زیادی در وقت و هزینه ای که برنامه نویسان متحمل می شوند، صرفه جویی کند.

 

کتابخانه های .Net Core چیست

 

در این قسمت دیدیم ویژگی های .Net Core چیست و چه کارهایی را انجام می دهد. اما احتمالا این سوال برای شما ایجاد شده است که .Net Core چه ایجنت ها و المان هایی را در خود دارد که می تواند این کارها را انجام دهد. در بخش بعد به معرفی این موضوع که تکنولوژی های ارائه شده توسط .Net Core چیست و چه چیز هایی به صورت Embedded در این فریمورک وجود دارند که می توانند چنین کارهایی را انجام دهند.

 

تکنولوژی های ارائه شده در .Net Core چیست

در پاسخ به این سوال که تکنولوژی های ارائه شده در .Net Core چیست و این پلتفرم با چه چیزی تا این اندازه رشد کرده است می توان نام خیلی از فریم ورک های حرفه ای مایکروسافت را ذکر کرد. اگر شما از اسم های پر آب و تاب این پلتفرم ها خوشتان می آید و می خواهید بدانید که این موراد چه هستند وقت شما را بیش از این نمی گیریم و مستقیم به سراغ معرفی آنها خواهیم رفت.

 

Xamarin

در مورد اینکه زامارین (Xamarin) چیست می توان گفت که یک پلتفرم است که با استفاده از آن می توان با زبان C# برنامه هایی را برای موبایل های اندروید و IOS نوشت. البته بیشتر شهرت این پلتفرم در رابطه با IOS می باشد و خیلی در اندروید نتوانست برای خود اعباری دست و پا کند.

اگر شما از آن دست علاقه مندانی به برنامه نویسی هستید که دنبال شایعات و حواشی مربوط به پلتفرم ها می گردید متاسفانه باید بگوییم که هر آنچه در مورد زامارین شنیده اید حقیقت دارد و این برنامه تا مدت ها به عنوان بدترین پلتفرم برنامه نویسی از نظر برنامه نویسان شناخته می شد و در نظرسنجی ها صدرنشین بود. البته در این که این پلتفرم در برنامه نویسی موبایل قدرتمند است شکی نیست، ولی خب تجربه کاربری بدی که ارائه داده است خیلی ها را نا امید کرده است.

البته اصلاحات خوبی در آن صورت گرفته و از زمان همراهی با .Net Core توانسته است برای خود یک شهرت خوب فراهم کند به خصوص اینکه مدیر ارشد هر دوی این پروژه ها یک نفر بوده و میکل ایکانزا رهبری این گروه را نیز بر عهده دارد.

 

تکنولوژی های .Net Core چیست

 

 

Blazor

اگر قصد دارید تا با استفاده از زبان C# یک وب سایت را برای خود راه اندازی کنید Blazor گزینه ای خواهد بود که باید به سراغ آن بروید. اگر بخواهیم ببینیم که نقش این قابلیت در .Net Core چیست باید گفت که این فریم ورک، یکی از فریم ورک های جانبی ای بود که یک سال پس از ارائه .Net Core و تقریبا می توان گفت که برای تکمیل آن ارائه شد.

بنیاد .NET این پلتفرم را در سال 2018 ارائه کرد و شما می توانید شاهد یک همکاری خوب از C# و HTML روی آن باشید. همینطور شما قادر خواهید بود که از ASP.Net نیز در انجام پروژه های این فریم ورک کمک بگیرید. این فریم ورک چند ویراست مختلف ارائه کرده است که کارایی های مختلفی برای مصارف سرور، اسمبل کردن وبسایت ها، به صورت هیبریدی برای سایت و اپلیکیشن، برای ساخت برنامه های پیشرفته وب و همینطور یک نسخه به صورت نیتیو را می توان به عنوان پنج دسته اصلی این فریم ورک نام برد.

 

Web API 2

شاید بتوان در پاسخ به این سوال که محبوب ترین گزینه ارائه شده تویط مایکروسافت در بین تکنولوژی های .Net Core چیستهمین گزینه را ارائه نمود. API ها یا همان Application Programming Interface ها در واقع یک درگاه و رابط هستند که با استفاده از آنها می توان یک برنامه و یا یک اپلیکیشن تحت وب را به یک برنامه دیگر متصل نموده و از آنها استفاده کرد.

اگر بخواهیم بگوییم که نقش Web API 2 در تکامل .Net Core چیست باید گفت که این API توانست با فراهم کردن یک رابطه خوب برای کار با HTTP روی تمامی پلتفرم ها و فریم ورک هایی که در .Net Core وجود دارد یک قابلیت حرفه ای را به فریم ورک خود اضافه کند که یکی از ویژگی های خوب خود یعنی ASP.Net را به تمام این پلتفرم ها تزریق کند و هر کجا که کم می آورد عضو قدرتمند خود که حکم یک Muscle را برای مایکروسافت دارد وارد عمل کرده و نیاز برنامه نویسی خود را رفع کند.

 

ASP.Net Core MVC

در بخش قبلی در مورد اینکه فایده ASP.Net برای .Net Core چیست صحبت کردیم و دیدیم که چگونه با استفاده از Web API 2 آن را به خدمت گرفته است. ASP.Net Core MVC یکی از قابلیت های ویژه ای است که می توان با استفاده از آن از برنامه نویسی به روش مدل-نما یا همان MVC روی زبان ASP بهره برد و یک برنامه کاملا قدرتمند مناسب با ویژگی های وب را ایجاد نمود که برای سایت های مختلف بازدهی بسیار خوب و ایده آلی را دارد.

با استفاده از این امکان قادر خواهید بود تا به صورت کامل یک برنامه حرفه ای را هم به صورت بک اند و هم به صورت فرانت اند شبیه سازی کنید و از آن استفاده نمایید.

 

UWP

اگر بخواهیم بگوییم که برگ برنده .Net Core چیست و برترین قابلیتی که در این فریم ورک ارائه شده است چیست می توانیم به UWP یا همان Universal Windows Platform اشاره کرد. با استفاده از این پلتفرم قوی شما این قدرت را خواهید داشت که بدون طراحی و برنامه نویسی مجدد از برنامه های خود روی پلتفرم های مختلف سازگار با پردازش های ویندوز 10 خروجی های اجرایی دریافت کنید.

به عنوان مثال شما این امکان را دارید تا با نوشتن یک برنامه روی پلتفرم ویندوز از آن برای ویندوز فون ۱۰، ایکس باکس، HoloLens و خیلی از پلتفرم های دیگری که از این امکان پشتیبانی می کنند، خروجی دریافت کنید. بدون اینکه نیاز باشد تغییرات خاصی را روی آنها اعمال کنید.

در این بخش دیدیم که تکنولوژی های مورد استفاده در .Net Core چیست و می توان از این موراد این نتیجه را استناد کرد که مایکروسافت به هیچ عنوان بی گدار به آب نزده است و تمام المان های قدرت خود را با خود به همراه آورده است. در ادامه به بررسی این موضوع که بهترین گزینه برای میزبانی سایت ها و اپلیکیشن های ساخته شده با .Net Core چیست و اگر می خواهید از این پلتفرم برای کار برنامه نویسی خود استفاده کنید و نیاز دارید تا برنامه های نوشته شده با آن را تحت وب اجرا کنید به چه سرویسی نیاز دارید.

 

بهترین میزبانی برای .Net Core چیست

در مورد اینکه بهترین سرویس میزبانی برای .Net Core چیست و چه چیزی را می توانید برای میزبانی برنامه هایی که با استفاده از این فریم ورک ساخته اید، انتخاب کنید باید گفت که به طور معمول سرویس های ویندوزی پیشنهاد می شود. اما اگر قصد دارید تا سازگاری های برنامه ای که می خواهید بسازید را روی لینوکس بنا کنید و بیشتر به آن سمت گرایش داشته باشید سرویس های لینوکسی نیز بی نقص خواهند بود.

 

بهترین هاست برای .Net Core چیست

 

اما از آنجا که معمولا استفاده کنندگان از .Net Core همچنان برنامه نویسان ویندوزی و همان کسانی هستند که از ASP و سیستم های تحت آن استفاده می کردند. می توان گفت که استفاده از سرویس های ویندوزی گزینه بهتری برای شما خواهد بود. به عنوان مثال اگر بخواهیم بگوییم که بهترین هاست برای سایتی که طراحی شده با .Net Core چیست می توان به هاست ویندوز اشاره کرد. همینطور سرور مجازی ایران با سیستم عامل ویندوز نیز می تواند یک گزینه خوب را برای شما فراهم کند که بتوانید با استفاده از آن یک اپلیکیشن های ویندوزی را در بهترین حالت ممکن اجرا کنید.

تا اینجا به صورت کامل در مورد ویژگی ها و کارهایی که انتظار داریم این فرم ورک برای ما انجام دهد صحبت کردیم و دیدیم که داستان آن از چه قرار است. اکنون نوبت به این رسیده است که به صورت دقیق این موضوع را بررسی کنیم که این فریم ورک تا چه اندازه می تواند برای ما کارایی داشته باشد و در صورتی که یک برنامه نویس به سراغ استفاده از آن برود، چه مزایا و گزینه های خوبی در اختیار وی خواهد بود. در ادامه در مورد اینکه مزیت های .NET Core چیست صحبت خواهیم کرد.

 

مزایای .NET Core چیست

در صورتی که بخواهیم به صورت دقیق و با جزئیات بالا موارد مربوط به پسخ ان سوال که مزیت های .NET Core چیست را در کنار هم قرار دهیم می توانیم به یک فهرست بسیار بلند بالا دسترسی داشته باشیم که مطمئنا درک خیلی از آنها برای کسانی که با سیستم های تحت مایکروسافت و دردسر های آنها آشنایی ندارند، بسیار مشکل خواهد بود. در واقع اگر بخواهیم بگوییم داستان از چه قرار است باید گفت که .NET Core شیری است که در بیشه خود پادشاه است. اما اگر بخواهیم این موارد را برای خیلی از برنامه نویسان پلتفرم های دیگر توضیح دهیم، مطمئنا به ما خواهند گفت از اول چرا باید چنین دردسر هایی وجود داشته باشد که چنین مزایایی برای رفع و شروع کردن آنها ذکر شود.

در صورتی که بخواهیم بگوییم مزایا و ویژگی های خوبی که این فریم ورک دارد و می توان واقعا آنها را از مزایای قابل رقابت با سایر فریم ورک ها تلقی کرد را معرفی کنیم، می توانیم به این فهرست اشاره کنیم:

 

امکان استفاده از NuGet

NuGet یا همان نوگت یک بسته استفاده از ماژول های مجدد است که به شما کمک می کند که از کد های مختلفی که قبلا نوشته شده است به صورت آماده در پروژه خود استفاده کنید و در واقع با این کار می توانید با یک بار نوشتن چیزی چند بار از آن استفاده کنید. نوکت قبلا به نام NuPack شناخته می شد و یکی از امکانات محبوب در برنامه نویسی های مایکروسافت به شمار می آید. کاربران .NET Core می توانند با نصب یک افزونه ساده که روی Visual Studio نصب می شود این ویژگی را برای پروژه های خود به کار گرفته و کد های یکه لازم دارند را روی پروژه خود وارد کنند.

در مورد این ویژگی باید فگحت که یکی از بهترین و مهمترین مزیت هایی به شمار می رود که می توان آن را برای برنامه نویسی در محیط .NET Core به کار گرفت و کار را تا حد زیادی جلو خواهد برد. از زمانی که این ویژگی در سال ۲۰۱۰ معرفی شد، تاکنون تغییرات بسیار زیادی را داشته است و باید گفت که به یکی از بزرگترین ویژگی های این فریم ورک و محیط برنامه نویسی تبدیل شده است.

سیستم های جانبی زیادی وجود دارند که می توانند با این ویژگی کار کنند و برای راه اندازی آن مکانیزم های مختلفی مانند چاکلتی(Chocolatey) ارائه شده است که اگر بخواهیم همه آنها را توضیح دهیم خود مقاله ای جداگانه خواهد بود. اما اصل موضوع این است که این ویژگی می تواند امکان استفاده از ماژول ها و کدهای Reusable را برای .NET Core فراهم کند و یکی از مزیت های مهم و خوب آن است.

 

منبع باز بودن

در رابطه با این ویژگی باید گفت که بالاخره در بین مزایایی که یکی از فریم ورک های مایکروسافت دارد هم عبارت Open Source به چشم خورد و باید بگوییم که چیزی که همیشه نقطه ضعف بزرگ سیستم های مایکروسافت به شمار می آمده است اکنون در ردیف مزایای آن قرار گرفته است. در مورد اینکه این مزیت از .NET Core چیست باید گفت که این فریم ورک به صورت رایگان و منبع باز ارائه شده است و همه می توانند از آن استفاده کرده و همینطور سورس های کتابخانه های موجود در آن را ببینند و آن را ویرایش کرده و یا توسعه دهند.

از این نظر باید گفت که وقتی یک ویژگی نرم افزاری آن هم در سطح فریم ورک که ساز و کاری پایه ای دارد به صورت منبع باز و Open Source معرفی می شود، علاوه بر رایگان بودن، مزایای دیگری هم دارد که از مهمترین آنها می توان به قابلیت اطمینان و استفاده در ابعاد وسیع اشاره کرد. باید گفت که برنامه نویسان حرفه ای با چیزی که بدانند دقیقا چطور کار می کند و آیا در دل آن گیر و گور خاصی وجود دارد یا نه بهتر کنار می آیند. انتظار اتفاقات غیر منتظره و غیر قابل پیش بینی از برنامه هایی که نمی دانیم در آنها چه خبر است همیشه یکی از موضوعات مهمی بوده است که برای فریم ورک های غیر اوپن سورس در نظر گرفته شده است و در مورد برنامه های مایکروسافتی هم کم نبوده است.

از نمونه های آن می توان به ارور های وب سرور IIS که آن را در مقاله IIS چیست به صورت کامل معرفی کردیم اشاره کرد. در این وب سرور اگر حمله دیداسی انجام می شد، احتمال وقوع اتفاقات غیر قابل پیش بینی بود و از سرور کارهای عجیب و غریبی سر میزد. اما باید گفت که در سیستم های منبع باز از این موارد خبری نیست و ارور هایی که ایجاد می شود کاملا واضح و قابل اصلاح است و یا در صورتی که ماژول و یا کتابخانه ای مشکل خاصی داشته باشد، برنامه نویسان از آن به صورت آگاهانه استفاده می کنند و یا اصلا طرف آن نمی روند.

 

ابزار Visual Studio Code

یکی دیگر از مواردی که می توان در پاسخ به این سوال که مزایای .NET Core چیست به آن اشاره کنیم، IDE یا همان محیط توسعه یکپارچه Visual Studio Code است که خیلی از برنامه نویسان آن را بهترین IDE موجود می دانند. IDE ها برنامه ها یا ابزار هایی هستند که به ما امکان مدیریت پروژه های برنامه نویسی و همینطور ساخت برنامه ها را می دهند و در واقع مجموعه ابزار های خاص برای مدیریت کدها، فایل ها، پروژه ها و کتابخانه های مورد استفاده در این پروژه ها را می دهند و می توان کار برنامه نویسی و ساخت یک برنامه را با استفاده از آنها خیلی راحت تر و بهتر انجام داد.

همه ما با IDE های مختلفی کار کرده ایم که می توان گفت هر کدام از آنها نقطه ضعف های خاص خود را دارند اما یکی از بهترین IDE های موجود همین Visual Studio Code است که روی سیستم های لینوکسی و ویندوزی به بهترین شکل ممکن کار می کند و می تواند یک پروژه را بدون هیچ محدودیتی مدیریت کند.

 

بازدهی و Performance بالا

یکی دیگر از مواردی که عمدتا در این .NET Core وجود دارد این است که بازدهی این فریم ورک بالا می باشد. در مورد اینکه این مزیت از .NET Core چیست باید گفت که این فریم ورک از آندست فریم ورک هایی است که با امکانات خوب و زیادی که دارد می تواند یک برنامه حرفه ای و کامل را در مدت کوتاه و با نیروی کار کمتری نسبت به خیلی از گزینه ها ارائه می کند. در این رابطه باید گفت که این بالا رفتن سرعت کار و کمتر شدن نیرو به این منجر خواهد شد که در مدت کوتاه تری پروژه های بیشتری انجام شود و این برای یک تیم برنامه نویسی به معنی کار سریعتر و بهتر و همینطور درآمد بیشتر با صرف نیروی کمتر است.

مواردی که تا اینجا بررسی کردیم موارد عمومی و مهمی است که می توان برای مزایای .NET Core چیست معرفی کنیم، هرچند که خود مایکروسافت لیست های بسیار طولانی تری را از مفاهیم تخصصی تر از برنامه نویسی معرفی می کند که باید گفت در خیلی از فریم ورک های دیگر اصلا مفهوم ندارند و پیچیدگی هایی هستند که این زبان ها ایجاد کرده اند. در ادامه در مورد اینکه معایب .NET Core چیست هم صحبت خواهیم کرد.

 

معایب و ایرادات .NET Core چیست

هر فریم ورکی در کنار تمامی مزایا و ویژگی های خوبی که به کاربران خود ارائه می کند، معایبی هم دارد که این یک موضوع کاملا طبیعی است و به نوعی ماهیت برنامه های کامپیوتری همین می باشد. شما هر چقدر که به سیستم خود امکانات اضافه کنید، به جای آن باید هزینه هایی را برای آن بپردازید که این هزینه ها به صورت معایب بروز می کنند. اگر حتی یک فریم ورک همه امکانات خوب و ایده آل را هم یکجا به شما بدهد، باز می توان گفت که یک ایراد دارد و آن پیچیدگی زیاد بخاطر ویژگی های بالای آن است.

سوالی که اینجا پیش می آید این است که اگر این ایرادات همه جا هستند و تمام فریم ورک ها درگیر ایراداتی هستند، اصلا دلیل بررسی ایرادات .NET Core چیست و چرا باید این کار را انجام داد. اینجاست که باید بگوییم دلیل بررسی این ایرادات این نیست که ببینیم .NET Core خوب است یا بد. بلکه دلیل این است که اگر شما یکی از برنامه نویسانی هستید که تصمیم گرفته اید وارد دنیای برنامه نویسی با این فریم ورک بشوید، باید بدانید که دقیقا با چه چیزی سر و کار دارید و دارید به چه مسیری پا می گذارید.

این که برنامه نویس قبل از استفاده از یک سیستم بداند در آنجا دقیقا چه خبر است از موارد مهمی است که باید به آن توجه ویژه ای داشته باشد و باید بداند وقتی می خواهد پروژه ای را انجام دهد باید با چه مشکلاتی دست و پنجه نرم کند. در این بخش با ارائه یک ارزیابی دقیق از این فریم ورک به شما خواهیم گفت که اگر قصد وارد شدن به آن را دارید، در مسیری که دارید ممکن است با چه مواردی مواجه شوید.

متاسفانه باید گفت اگر بخواهیم بگوییم ایرادات .NET Core چیست با لیست کوتاهی مواجه نخواهیم بود و فهرست ما به این صورت خواهد بود:

 

اضافه نشدن ASP .NET Forms

یکی از ویژگی های خوبی که باید گفت مایکروسافت آن را در این پک اوپن سورس خود قرار نداده است و دردسر هایی را برای خیلی از کاربران در طراح وب درست کرده است ASP .NET Form ها هستند. در این رابطه باید گفت که .NET Core از مهمترین و اصلی ترین نیاز هایی که کاربران برای راه انداز برنامه های تحت وب نیاز داشتند را در این میان قرار نداده است و شما نمی توانید همانطور که با ASP.NET کار می کردید و به راحتی فرم های برنامه های تحت وب را ایجاد می کردید و به صورت درگ و دراپ کار خود را انجام می دادید، اینا هم با آن کار کنید و این بخش جزو موارد رایگانی که مایکروسافت به شما داده است نیست.

این کار می تواند به کاربر بگوید که قرار است با چیزی بسیار ضعیف تر از آن فریم ورک .NET Framework قدرتمند طرف باشیم و ظاهرا مایکروسافت نمی خواهد از خیلی از موارد به صورت ساده و راحت دست بکشد و آنها را برای کاربران وفادار خود باقی نگه داشته است. هر چند که باید گفت این موارد نمی تواند جلوی شما را بگیرد و شما باز هم می توانید از این موارد غیر رایگان به صورت رایگان استفاده کنید، اما باید گفت که در تجمیع پروژه خود با .NET Core به مشکلاتی برخواهید خورد و باید به سراغ .NET Framework بروید.

 

فقدان سرویس های Workflow

مورد دیگری که می توان آن را از ایرادات .NET Core و همین طور تفاوت هایی که .NET Core و .NET Framework دارند معرفی کنیم عدم ارائه سرویس های کنترل جریان کاری یا همان WorkFlow ها می باشد که در .NET Core به کاربران ارائه نمی شود. البته بعضی از این سرویس ها در اختیار شما قرار خواهد گرفت اما سرویس های اصلی مانند Windows Workflow Foundation، Workflow Services (WCF + WF) و همینطور  ADO.NET Data Services در این فریم ورک به شما ارائه نمی شود.

در مورد اینکه این سرویس ها برای شما چه کاری را انجام می دهند و نتیجه فقدان آنها در .NET Core چیست باید گفت آن راحتی ای که برنامه نویسی در فریم ورک های مایکروسافت داشت و بیشتر کارها در آن به صورت خودکار انجام می گرفت در این فریم ورک اوپن سورس وجود ندارد. در واقع کاری که این سرویس ها انجام می دادند کنترل و خودکار سازی تمامی مراحل ساخت یک برنامه بود و هر امکانی که نیاز داشتید را برای شما ایمپورت کرده و در اختیار شما قرار می دادند، اما ظاهرا این امکانات نیز برای ارائه در یک فریم ورک .NET Core و بستر های منبع باز حیف بوده اند و مایکروسافت راضی به ارائه آنها نشده است.

 

نیاز به سرور های صرفا ویندوزی

یکی دیگر از مشکلاتی که خیلی از موارد برای این فریم ورک ارائه می شود، نیاز به سرور های ویندوزی برای اجرای آنها است که در آنها باید از سیستم عامل ویندوز شبکه استفاده شده باشد که در خیلی از مواقع می تواند برای شما هزینه بر باشد. البته باید گفت که استفاده از امکاناتی مانند هاست ویندوز هم می تواند میزبانی لازم برای کار شما را فراهم کند و در اختیار شما قرار دهد اما در کل باید گفت که سرور های ویندوزی دردسر های مربوط به خود را دارند و کار کردن با یک فریم ورک رایگان که در آخر شما را گیر سرور هایی که لایسنس های غیر رایگان و سنین ریز و درشت زیادی دارند کمی به نظر غیر منطقی می رسد و باید گفت از این نظر .NET Core یکی از سیستم هایی است که دارای ایرادات زیادی به نظر می رسد.

 

عدم استفاده از کتابخانه های جانبی

یکی دیگر از مشکلاتی که می توان آن را در بین پاسخ های ارائه شده به این سوال که معایب استفاده از .NET Core چیست جای داد این است که .NET Core نمی تواند از سایر کتابخانه های جانبی و خوبی که برای برنامه نویسی در مایکروسافت ارائه شده است استفاده کند و سازگاری بین این فریم ورک و خیلی از این کتابخانه ها که برای کار با .NET Framework ایجاد شده اند به شدت دچار مشکل بوده و تازه عموم آنها به صورت عمدی از این فریم روک حذف شده اند و با آن کار نمی کنند.

پس باید گفت خیلی از امکاناتی که برای فریم ورک های دیگر مایکروسافت فعال بوده است در مجموعه .NET Core کار نمی کند و از آنها هم نمی توانید روی پروژه ای که دارید استفاده نمایید.

 

عدم وجود نسخه پایدار

یکی دیگر از مواردی که باید به آن دقت کرد این است که نسخه پایدار و خوبی از .NET Core وجود ندارد. این موضوع به این معنی است که در آنچه که ما از این فریم ورک می بینیم به نوعی نسخه هایی هستند که به صورت آزمایشی ارائه شده اند و ممکن است که تغییرات کلی ای را داشته باشند. شاید این تغییرات کلی در جهت اضافه شدن امکانات قبلی و خوبی باشد که از نبود آنها صحبت کردیم، اما باید گفت هر تغییری می تواند اوضاع کاری حدید شما را به هم ریخته و در یادگیری و دنبال کردن این پروژه شما را با مشکل مواجه سازد.

در صورتی که بخواهیم مثالی از این ایراد بزنیم باید بگوییم ممکن است ویزگی ای مه شما از آن برای پروژه قبلی خود در سه ماه پیش استفاده کرده بودید امروز برای پروژه حدید تغییر کرده باشد و شما را مجبور به یادگیری موارد جدید و رفتن سراغ راه خل های دیگر بکند. البته باید گفت که اجبار به یادگیری موضوع خوبی است اما نه در وسط یک پروژه و با استرس اینکه اوضاع کاری که روی دست ما مانده است چطور خواهد شد.

 

بازار کار ضعیف

یکی دیگر از مواردی که می توان برای این سوال که معایب .NET Core چیست معرفی کرد بازار کار نسبتا ضعیفی است که دارد. برنامه نویس های مایکروسافت زمانی از پردرآمدترین اقشار برنامه نویس ها و دولوپر ها بودند. البته اکنون هم همین موضوع برقرار است و قیمت یک پروژه در این فریم ورک ها و روی این پلتفرم ها بسیار بالا تر از سایرین خواهد بود. اما باید گفت که تقاضا برای آن کم است و می توان گفت که فریم ورک های php و جاوا اسکریپت بازار را در اختیار گرفته اند و با توحه به بازدهی و کیفیتی که برنامه های این دو فریم ورک دارند کار را به خوبی انجام می دهند.

در کل باید گفت که بازار برنامه نویسی در زبان های تحت مایکروسافت رو به زوال گذاشته است و به صورت حهاتی نی اوضاع در حال تغییر بوده و اوپن سورس ها ابتکار عمل را در دست گرفته اند. البته هر چند که .NET Core هم یک اوپن سورس است اما دیدیم که ظاهرا کاربرد هایی که این اوپن سورس داستان ما در اختیار کاربران خود قرار می دهد با آنچه که ما از اوپن سورس می شناسیم بسیار متفاوت است.

در مجموع اگر بخواهیم از .NET Core و معایب آن صحبت کنیم باید بگوییم که مایکروسافت زیاد به این قضیه اوپن سورس بودن و منبع باز بودن اهمیتی نداده است و صرفا برای ورود به آن بخشی از فریم ورک .NET را آزاد گذاشته است که وارد این حوزه شده باشد. اما در صورتی که به دنبال کاربرد های اصلی هستید باید بدانید که این کاربرد ها غیر رایگان بوده و مانند همان وضعیتی که از این فریم ورک به صورت غیر قانونی استفاده می شد، برقرار می باشد و هر برنامه ای هم که با امکانات کامل در این محیط نوشته می شود، از همان روش های قبلی استفاده می کند و ظاهرا .NET Core چیزی را عوض نکرده است.

 

نتیجه گیری

در این مقاله دیدیم که .Net Core چیست و تمامی زوایای تلاش مایکروسافت را برای ورود به عرصه پلتفرم های اپن سورس بررسی کردیم و دیدیم که این پلتفرم چگونه از آب درآمده است. به صورت کلی می توان گفت که تکنولوژی های خوبی که برای این فریم ورک به کار گرفته شده است می تواند باعث شود تا .Net Core به یک ابزار قدرتمند تبدیل شود. اما در مورد اینکه آیا این ابزار رایگان و اپن سورس باقی می ماند یا مانند سایر پروژه های اپن سورس مایکروسافت رها می شود، نمی توان نظری داد.

 

این مقاله برای شما مفید بود؟
بلهخیر

دیدگاهتان را بنویسید

Solve : *
29 + 9 =