Net Core. چیست و چرا ماکروسافت دست به همچین تغییر عظیمی زده؟

Net Core. چیست و چرا ماکروسافت دست به همچین تغییر عظیمی زده؟⁣برای مدت زمان طولانی ، زمانی که توسعه دهندگان NET. نیازمند این بودند که Solution خود را به پلتفرم دیگری غیر از ویندوز بیاورند ، عموما این شامل زبان های دیگر همانند Java و C میشد ، و این بدان معنا بود که پایگاه های داده همواره تقسیم شده و تکراری و با تکنولوژی های مختلف می‌شدند . پیاده سازی راه حل با جاوا یا دیگر زبان های Cross Platform در این مورد ، اجرا شدنش زیاد راحت و بی دردسر نیست و همواره شامل یکسری توافقات می‌باشد . تا همین اواخر این امر همیشه یک مشکل و چالش بزرگ برای توسعه دهندگان و سازمان ها بود … . یا برنامه نویس هایی که میخواستن پروژه ایی به صورت Cross Platform یا مخصوص سیستم عامل دیگر(لینوکس) بنویسن Net. گزینه خوبی برای اون ها نبود، چون Cross Paltfrom نبود(با پروژه MONO میشه Net. رو روی لینوکس اجرا کرد منتها به خوبی و بی باگ بودن ویندوز نیست) و سراغ راه حل های دیگه میرفتن مثل java, java script, ++c میرفتن، که دردسر های خودشون رو داشتن. برای مثال جاوا عمدا برای کارهای بزرگ کارآمد بود چون هزینه نیرو و زمان توسعه و نوع توسعه زمانگیر بود و برنامه نویس های جاوا حقوق های به نسبت بالاتری داشتن، هر پروژه ایی ارزش استفاده از جاوا رو نداره. از اونو ++C توسعه سختی تو وب داره و هرکسی نمیره سمت، و نیرو متخصص کمی تو حوضه وب کار میکنن. اما Java Script تفاوتی بین این دو داشت و روز به روز در حال گسترش هست، با استفاده از Node js توسعه سخت و زمانبری نداره، از طرفی بازدهی خیلی عالی از خودش به جا میزاره البته قبل Net Core. !!، از سمتی Cross Platform هست، از طرف دیگه خیلی راحت میشه با استفاده از ابزار هایی مثل Electron برنامه Desktop به صورت Cross Platform نوشت مانند Atom, Slack, Visual Studio Code و.. برنامه های بزرگی هستن که با Electron نوشته شدن.⁣برگردیم سر بحث اصلی⁣ ماکروسافت در گذشته یک سیاست داشت که بر دور هر کدی دیوار می‌کشید و کدهای Open Source را بد میدانست، حتی استیو بالمر مدیریت قبلی ماکروسافت، لینوکس رو سرطان نامید که داره دنیا رو فرا میگیره. اما حالا تحت رهبری ساتیا نادلا ، سیاستی را در پیش گرفته است که همه چیز Open و با جامعه باشد، سیاست ساتیا نادلا ماکروسافت رو به فروغ گذشته و بیشتر از اون رسانده، تو این مدت چند سال اخیر ماکروسافت همیشه جزو شرکت هایی بوده که بیشترین کامیت و repo رو روی گیتاپ داشته، حتی مواقعی بیشترین کامیت همواره در اختیار ماکروسافت بوده. الآن ماکروسافت سورس های خیلی زیادی رو روی گیتاپ قرار داده که نشان از این سیاست خوب دارد. در حال حاظر پروژه های بزرگی که روی گیتاپ هستن، میشه از Asp , Entity Framework, visual studio code, kestrel ,dot net … .⁣خب NET Core. چیست و به چه دلیل برای ما مهم است ؟Net Code. از ابتدا نوشته شده و بسیار سبک و ماژولار و Cross Platform و Open Source هست. خود ماکروسافت در مورد فرق بین Net. و Net Core . این شکلی بیان میکنهچرا باید از Net Core. استفاده کنیم؟1- اگه نیاز به مستقل بودن از Platform داریم (به معنی Cross Platform بودن و اجرا شدن پروژه روی لینوکس-مک-ویندوز است)2- اگه نیاز به معماری ⁣Microservices داریم (این معماری به شدت در حال رشد و استفاده در شرکت های بزرگ هست و Auzre ماکروسافت هم داحل سرویس خود از این امکان پشتیانی میکنه)3- استفاده از ⁣Containers ها (مثل داکر)4- نیاز به سرعت و بازدهی بالا در مقیاس بزرگنمیخام زیاد وارد بحث Net Core. بشم، بیشتر بحث رو سمت وب میبرم یعنی Asp Net Core که از Net Core. که بالا بحث کردیم استفاده میکنه.برنامه هایی که با Asp Net Core نوشته میشن مزیت های زیر دارن:1- مستقل از Platform: یعنی برنامه وب شما در همه سیستم عامل ها مک، لینوکس، ویندوز به راحتی اجرا میشن.2- فریمورک Open Source هست و همه افراد جهان میتونن سورس رو ارتقا بدن 3- وب سرویس ⁣Kestrel: به این معنی هست که ماکروسافت پروژه اپن سورسی رو روی گیتاپ قرار داده به اسم ⁣KestrelHttpServer که میتونه پروژه رو بدون IIS اجرا کنه. جالب اینجا هست این وب سرویس از کتابخونه ⁣libuv استفاده میکنه که برای هاست کردن Node Js نوشته شده بود و تاکید اون اجرای عملیات IO به صورت Async هست. جالبته بدونید در تست هایی که ماکروسافت از این سرویس گرفته که سورس اون تو گیتاپ هست بنده بعدا براتون میزارم، این وب سرویس نزدیک به 8 برابر از Node Js که به سرعت معروف هست سریعتره !! واقعا جای تقدیر داره فکر کنید 8 برابر :)4- تزریق وابستگی به صورت توکار: به صورت توکار IOC Container با امکانات خوب برای بحث Inversion Of Controll داره5- با فریمورک های مدرن سمت کلاینت یکپارچه شده: فریمورک های مثل Gulp ,…6- بازدهی (Performance): طبق تست های انجام شده برنامه های نوشته شده به شدت بازدهی بالایی دارن، نزدیک به 8 برابر سریعتر از Node Js , نزدیک به 3 برابر سریعتر از زبان Go , نزدیک به 2/5 برابر سریعتر از Java Servlet7- محیط توسعه Cross Paltfrom: شما میتونید داخل هر سیستم عامل برنامه Asp Net Core رو توسعه بدید مثل لینوکس و مک8- پشتیبانی از DBMS های معرف: با Entity Framework جدید خیلی راحت میتونید با دیتابیس های اراکل، Mysql،DB2،Sqllite و.. متصل شوید.9- باز نویسی Asp: این فریمورک از ابتدا باز نویسی شده و بسیار ماژولار و سبک هست، مهندسی نویسی شده. شما همه جاها باید از Interface ها استفاده کنید که خیلی راحت میتونید Class خودتون رو داخل کانفیگ پروژه Impl و Inject کنید

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.