شرکت مایکروسافت با تبلیغات و جو سازی های رسانه ای بسیاری اعلام کرده است که ابزار منبع آزاد ( open source ) .NET Framework آن خواهد توانست کاربران و مشترکان کلود را به خود جلب نماید . تجزیه و تحلیل های مربوط به .NET Core تنها در حدود یک سال است که با روی کار آمدن .NET Core در منابع آزاد شرکت مایکروسافت آغاز شده است . .NET Core یک کراس پلتفرم .NET Framework مخصوص ویندوز است . NET Framework به خودی خود چیز مهمی نیست اما ، دیگر معلوم است که تمرکز عمده کارخانه بر روی .NET Core به عنوان آینده توسعه و پیشرفت پلتفرم های آن می باشد . .NET Framework شرکت مایکروسافت به سال های بسیار دور بر می گردد که برای اولین بار در TechEd Europe شرکت و در سال 2000 رسانه ای شد .در آن زمان از این سیستم به عنوان سیستم دفاعی در برابر Java ی Sun یاد می شد . زیرا Java ی Sun با استفاده از قابلیت کراس پلتفرم ترکیبی خود با زبان برنامه ریزی که کارایی آن را بسیار بهتر از C or C++ می کرد ، ویندوز را تهدید کرده بود .
C# اولیه شرکت مایکروسافت ، Java را مد نظر قرار نداد اما در زمینه نرم افزار های تجار محبوبیت قابل قبولی را به دست آورد .همچنین این شرکت زبان خود را نیز بسیار سریع تر از آنچه Sun می توانست با Java انجام بدهد ، رشد و گسترش داد . این امر نشانگر این است که یک تیم داخلی توانمند می تواند به موفقیت های بسیار بیشتری در مقایسه با یک تیم وابسته دارای فرایند مدیریتی پراکنده دست یابد .ASP.NET که به صورت مشترک توسط Scott Guthrie شرکت مایکروسافت ایجاد شده است ، در برابر ASP (Active Server Pages) قدیمی و به عنوان فریم ورک برای نرم افزار های وب پیشرفت بزرگی محسوب می شد .پس چرا شرکت مایکروسافت تصمیم گرفت که .NET Framework را با وجود تمامی خطر ها و ریسک های گیج کننده ای که متوجه کراس پلتفرم و منبع آزاد می شود ، به چند قسمت منشعب نماید ؟ چندین دلیل برای این کار وجود دارند .
اولین دلیل این است که .NET Framework یکپارچه بود و وابستگی های درونی آن برای شرکت مایکروسافت دشواری ایجاد می کرد که در پروژه های معین از آنها استفاده نماید . به ویژه این که شرکت خواهان همگردان کردن .NET به کد های بومی واقعی بود بدون اینکه به هیچ گونه نصب در محل نیازی باشد .
مزایای این کار را می توان در استارت آپ سریع تر و عملکرد سریع تر در برخی از سناریو ها نامید اما مهمتر از همه ی اینها گسترش و آرایش راحت تر و منظم تر را می توان نام برد . اگر چنانچه نرم افزار ها به زمان عمل یک سیستم عامل وابسته باشند همواره این ریسک وجود دارد که ممکن است در صورت آپدیت کردن سیستم عامل مشکلاتی برای آن نرم افزار بوجود بیاید و حتی برنامه قابل اجرا نباشد .مساله سازش پذیری و سازگاری همواره از پایین آمدن سرعت پیشرفت رانتایم جلوگیری می نماید .
ابزار های جدید شرکت مایکروسافت مجبور بودند .NET Framework را به یک سیستم جدید تر و بهتر با ویژگی های متفاوت تغییر داده و تعمیر نمایند اما با این وجود هم نسخه قبلی را به منظور همان چیزی که سازش پذیری و سازگاری نامیده می شود حفظ نموده اند . این نسخه جدید .NET Core. می باشد .این مورد برای اولین بار در مورد Windows 8 Store apps به کار گرفته شد و به همین خاطر هم هست که پروژه ی .NET Native در ابتدا هدف خود را بر روی Store apps قرار داد و الان می بینیم که نرم افزار های Universal Windows Platform (UWP) ویندوز 10 را نیز در بر می گیرد .
در گردهمایی Connect که در هفته های اخیر در شهر New York برگزار شد ، شرکت مایکروسافت از مرحله ی بعدی که برای .NET Native در نظر گرفته است رونمایی کرد . این نمونه .NET Core هدف خود را بر روی Linux ، Mac و Windows قرار داده است . همچنین در این گردهمایی از .NET Core که برای کد بومی روی Ubuntu گردآوری شده بود نیز رونمایی شد . بنابر این این ویژگی هنوز به ظور رسمی و در محافل عمومی ارائه نشده است .
Next page: .NET Core – optimised for DevOps?
چرا .NET Core شرکت مایکروسافت ، آینده توسعه و پیشرفت پلتفرم های آن محسوب می شود ؟شرکت مایکروسافت با تبلیغات و جو سازی های رسانه ای بسیاری اعلام کرده است که ابزار منبع آزاد ( open source ) .NET Framework آن خواهد توانست کاربران و مشترکان کلود را به خود جلب نماید .
آیا .NET Core برای DevOp ها خیلی خوش بینانه و امیدوار کننده است ؟
خواه یا ناخواه .NET Native در حال استفاده است و کاربران آنها را در آزاد سازی نرم افزار های .NET از رانتایم سیستم عامل استفاده می نمایند که با گرایش های موجود امروزی برای نرم افزار ها و میکرو سرویس های انتقال و نرم افزار های توزیع شده متشکل از اجزایی که خودشان قادر به به روز رسانی و ابقای خود هستند نیز بسیار سازگارر تر می باشد .
نسخه کات داوت Nano Server Windows Server قادر است .NET Core را اجرا بکند اما قادر به اجرای .NET Framework نیست . دوباره باید گفت که همه اجزای این کار هم در جهت DevOp ها و ظرفیت سازی که به صورت خودکار و مداوم در تحویل نرم افزار ها وجود دارد ، کاربرد دارند .
به یاد داشته باشید که به غیر از نرم افزار های UWP ، .NET Core برای نرم افزار های سرور مناسب است و نرم افزار های کامپیوتری سازگاری خوبی با آن ندارند . شرکت مایکروسافت نیز فریم ورک هایی مانند Windows Forms ، Windows Presentation Foundation را به .NET Core متصل نمی کند . از آنجایی که این مورد منبع آزاد محسوب می شود بنابراین همواره این امکان وجود دارد که برخی جاها سازگاری هایی با فریم ورک های GUI صورت بگیرد .
و البته همواره ارتباطی میان .NET Core و Mono وجود دارد که اجرای .NET منبع آزاد و مستقل در سال 2001 توسط Miguel de Icaza انجام شده است . Mono نرم افزار های ویندوز را نیز پشتیبانی می نماید . هم اکنون هم de Icaza در دستور کار دست اندر کاران NET Foundation. تا آن را تحت نظارت .NET Core در بیاورند . در صحبت هایی که در خلال گردهمایی 2015 dotnetConf در ماه مارس سال 2015 انجام گرفت ، de Icaza چنین عنوان کرد که به احتمال زیادMono سرانجام یک هسته رانتایم خواهد شد که همگردان "Roslyn" و منابع شالوده CoreFx را از .NET Core به امانت خواهد گرفت .
حالا نوبت به سوال بعدی می رسد : چرا کراس پلتفرم و چه را open source ( منبع آزاد ) ؟ به نظر می رسد که این دو پرسش به همدیگر مرتبط باشند . در جریان dotnetConf ، Program Manager Immo Landwerth منبع آزاد را به عنوان " قابل تحمل ترین راه ساخت یک توده کراس پلتفرم " معرفی می نماید . دلیلی که برای اعمال کراس پلتفرم داده شده است این است که مشتریان و کاربران جدید را به .NETمتصل نمایند و یک محیط کار قدرتمند تری مانند منابع third-party و نرم افزار هایی که بر روی .NET اجرا می شوند ، ایجاد نمایند .
در مورد هر دو مورد یعنی منابع آزاد و نیز کراس پلتفرم ها ریسک های مشخصی متوجه شرکت می شود . شرکت مایکروسافت حقوق قابل قبولی به کاربران خود ارائه می دهد و از آن جمله می توان به دادن قدرت اجرای نرم افزار های .NET روی سیستم های غیر ویندوزی بدون پرداخت هزینه مجوز اشاره نمود .
اساسا در شرکت مایکروسافت روال بر این است که موقعیت های تجاری برای .NET Core ایجاد بشوند . با صحبت هایی که در رابطه با .NET Foundation انجام می شود اینگونه به نظر می رسد که همه کار در رابطه با کلود پلتفرم های مایکروسافت Azure باشد . Azure همانطوری که Windows را پشتیبانی می کند Linux را نیز پشتیبانی می نماید و اگر شما آرایش را به Azure تغییر دهید ، شرکت مایکروسافت فارغ از هر سیستم عاملی که در اختیار شما باشد پول خود را دریافت خواهد نمود .
اشتراک با Red Hat که به تازگی اطلاع سانی شده است ، بدون وجود استراتژی های منابع آزاد و کراس پلتفرم امکان پذیر نخواهد بود . بر اساس همین گزارشات Red Hat Enterprise Linux هم اکنون بر روی Azure و " سیستم عامل منبع مورد نیاز برای .NET Core روی Linux " پشتیبانی می شود .
فاکتور و مولفه دیگر این است که .NET Core Microsoft امیدوار است تا استفاده از زبان های خود شامل C# و F# را به عنوان یک زبان برنامه نویسی اساسی تشدید بکند . اگر شما با این زبان ها کد بکنید ، شرکت مایکروسافت هزاران منبع دارد که شما را به طرف SharePoint یا Office 365 خواهد کشاند . برای مثال با انجام این کار شرکت مایکروسافت می تواند از مجوز ها و یا توافق نامه های خود کسب درآمد نماید .
Next page: How serious is Microsoft about .NET Core?
چرا .NET Core شرکت مایکروسافت ، آینده توسعه و پیشرفت پلتفرم های آن محسوب می شود ؟شرکت مایکروسافت با تبلیغات و جو سازی های رسانه ای بسیاری اعلام کرده است که ابزار منبع آزاد ( open source ) .NET Framework آن خواهد توانست کاربران و مشترکان کلود را به خود جلب نماید .
کار شرکت مایکروسافت در رابطه با .NET Core تا چه اندازه جدی است ؟
کار شرکت مایکروسافت در رابطه با .NET Core تا چه اندازه جدی است ؟ همانطوری که هر کسی می تواند بگوید ، شرکت در رابطه با این کار و پلاگین مرورگر Silverlight موجود در چند سال پیش بسیار هم جدی بوده است بنابراین این چیز ها می تواند تغییر یابد . Richard Lander به عنوان مدیر برنامه در dotnetConf اعلام کرد که حدود 100 تا 200 نفر بر روی .NET Core کار می کنند تیم هایی مانند تیم های مرتبط با Visual Studio و ASP.NET از این میان حذف شده اند . باز هم وی اضافه می کند که " این سرمایه گذاری سرمایه گذاری بزرگی " می باشد .
سر نخ دیگر را سرپرست اجرایی .NET Foundation آقای Martin Woodward از شرکت مایکروسافت می دهد و ادعا می کند که تنها کارمند تمام وقت آن هم حاضر بوده است . وی در گردهمایی اخیر Future Decoded در لندن صحبت کرد و در نمایش های موجود در گردهمایی نیز حضور داشت . وی در ادامه با صحبت کردن در رابطه با ارتباط میان .NET Framework و .NET Core اعلام کرد که " در حال حاضر ویژگی جدید غالبا در .NET Core اتفاق می افتد " و همان کد بعد ها به درون .NET Framework راه پیدا کرد تا همان پشتیبانی ها را نیز با خود منتقل کرده باشد .
در همایش Connect شرکت مایکروسافت اعلام کرد که .NET Core در حال حاضر در مرحله Release Candidate قرار دارد و با مجوز " go-live " تکمیل شده است و به این ترتیب نرم افزار های این محصول مورد پشتیبانی قرار می گیرند . حال آیا در اینجا رد شدن از مطلب جایز است یا خیر ؟
احتمالا هنوز نه . سر نخ دیگری که توسط .NET Core به دست می آید این است .NET Core با .NET Framework کامل مرتبط است و نرم افزار های موجود بدون وجود کار خاصی بعید است که به اجرا در بیایند . Frans Bouma که یک برنامه نویس و توسعه دهنده است در صفحه Twitter آورده است که " .NET Core v1 در مقابل بسیاری از برنامه ها ناتوان است " . اگر برنامه ( نرم افزار ) شما از یک DataTable استفاده می کند ، برای مثال قسمتی از منبع ADO.NET را بگوییم که در این حالت برنامه در .NET Core کار نخواهد کرد زیرا پورت نشده است .
شرکت مایکروسافت منابع داده ای Entity Framework Object-Relationalخود را به .NET Core متصل کرده است اما ، برخی از برنامه نویسان و توسعه دهندگان به دلایل عملکردی از آن اجتناب می ورزند . Entity Framework 7 (EF7) RC1 اخیرا رونمایی شده است و در اطلاعیه های شرکت مایکروسافت از زبان Rowan Miller نوشته شده است که " به خاطر تغییرات زیربنایی در EF7 ، در این مرحله از کار انتقال یک نرم افزار EF6.x به EF7 توصیه نمی شود . "
EF7 همچنین در این رونمایی کند تر از EF6 عمل میکند و به همین دلیل Miller گفته است که به هنگام بیرون دادن نسخه کامل آن سرعت عملکرد آن نیز بالا تر خواهد رفت و از وضعیت مناسبی برخوردار خواهد شد . هم اکنون محیط بسیار بزرگی بر روی .NET Framework ایجاد شده است و اتصال و ارتباط آن به .NET Core امر بسیار مهمی به شمار می رود . با در نظر گرفتن این موضوع .NET Framework هنوز هم در جایگاه قبلی خود مشغول فعالیت است و اصلا مشخص نیست که آیا برنامه نویسان و توسعه دهندگان وقت و سرمایه خود را صرف انتقال از .NET Framework به نمونه دیگری را بکنند یا خیر .
عملکرد .NET Core در برابر .NET Framework در کل چگونه است ؟ در حالت کلی اینگونه گفته می شود که این دو عملکردی مشابه دارند و .NET Core برای موارد همزمانی بهینه سازی شده است و در برخی مواقع عملکردی بهتر دارد و تنها .NET Framework کامل می تواند در شرایط دیگر بهتر عمل بکند .علی رغم برخی مسائل و دشواری ها این کار آغازی بزرگ در مایکروسافت است ، یعنی چیزی که به طور مرتب با DevOp ها و کارهای کامپیوتری کلود هماهنگ شده است . این مطلب هم مثل روز روشن است که شرکت مایکروسافت به این امر به عنوان آینده پلتفرم های .NET نگاه می کند و به یاد داشته باشید که همانند بسیاری از برنامه ها این کار برای UWP نیز انجام شده است . بنابراین افرادی که با .NET کار می کنند باید توجه داشته باشند که احتمالا انجام کار های واقعی و مهم با این ابزار و در این مرحله شاید خیلی زود باشد .
ثبت نظر