پس از سالهای زیادی، NET. حرکت جدیدی کرده است. فریمورک NET. یک برادر جوان دارد: NET Core.! فریمورک NET. سورسش بسته بود و فقط برای سیستمهای ویندوزی در دسترس بود. اکنون، NET Core. متن باز است و بر روی Linux نیز در دسترس است و از الگوهای نوین استفاده میکند. اکنون ما میتوانیم پیشرفتهای خیلی بزرگی در اکو سیستم NET. مشاهده کنیم.
با استفاده از #C و ASP .NET Core، شما میتوانید برنامهها و سرویسهای تحت وبی بسازید که بر روی ویندوز، لینوکس و مک اجرا میشوند. شما میتوانید از Runtime ویندوز برای نوشتن برنامههای ویندوز بومی (همچنین به عنوان Universal Windows Platform و UWP نیز شناخته میشوند) از #C و XAML و همچنین NET Core. استفاده کنید. با Xamarin شما میتوانید با استفاده از #C و XAML برنامه هایی بسازید که بر روی اندروید و iOS اجرا شوند. با کمک NET Standard. میتوانید کتابخانه هایی بنویسید که بتوان آنها را بین ASP .NET Core، برنامههای ویندوز و Xamarin به اشتراک گذاشت. علاوه بر این شما همچنان میتوانید برنامههای سنتی ویندوز فرم و WPF بسازید. همه این موارد در این کتاب پوشش داده شده اند.
فریمورک NET. تاریخچه ای طولانی دارد، اما NET Core. خیلی جوان است. NET Core 2.0. دارای APIهای خیلی جدیدی است که از NET Framework. آمده اند تا انتقال برنامههای NET Framework. را به دنیای NET Core. سادهتر کنند.
به عنوان حرکتی ساده تر، شما میتوانید کتابخانه هایی با استفاده از NET Standard 2.0. بسازید که از برنامههای NET Framework. با NET Framework 4.6.1. گرفته تا برنامههای NET Core 2.0. و برنامههای ویندوز از بیلد 16299 به بعد را پشتیبانی کند.
امروزه دلایل زیادی نمیتوان پیدا کرد تا از ASP .NET Core با وجود انتقال ساده به NET Standard. و کتابخانه هایی که بیشتر و بیشتر میتوان در NET Core. استفاده کرد، در backend مورد استفاده قرار نداد. از نگاهی بالاتر، ASP .NET Core MVC خیلی شبیه به برادر بزرگترش ASP .NET MVC به نظر میرسد. با این حال ASP .NET Core MVC خیلی انعطاف پذیر تر، کار کردن با آن با استفاده از الگوهای NET Core. سادهتر و به سادگی بسط مییابد.
برای ایجاد برنامههای جدید وب، استفاده از تکنولوژی صفحات Razor ممکن است تمامی چیزی باشد که شما به آن احتیاج داشته باشید. اگر برنامه رشد پیدا کرد، صفحات Razor را به سادگی میتوان به الگوی Model-View-Controller با استفاده از ASP .NET Core MVC گسترش داد.
در زمان نوشتن این کتاب، نسخهی NET Core. کتابخانه SignalR، تکنولوژی ای برای ارتباطات بلادرنگ، در نزدیکی عرضه شدن خود قرار دارد. ASP .NET Core به خوبی با تکنولوژیهای جاوا اسکریپت مثل Angular و React/Redux کار میکند. حتی قالب هایی برای ایجاد پروژه هایی با این تکنولوژی ها در ترکیب با ASP .NET Core به عنوان backend وجود دارد.
زمانی که #C در سال 2002 منتشر شد، زبانی بود که برای NET Framework. توسعه داده شده بود. سیشارپ بر اساس ایده هایی از ++C، جاوا و پاسکال طراحی شده بود. Anders Hejlsberg به همراه تجربههای خود از توسعه زبان Delphi از Borland به مایکروسافت آمد. آندرس هایلسبرگ در مایکروسافت بر روی نسخهی مایکروسافتی جاوا به نام ++J قبل از به دنیا آمدن #C کار میکرد. زبان #C فقط به عنوان زبان برنامه نویسی همه منظوره شی گرا پا به عرصه نگذاشت بلکه به عنوان زبان برنامه نویسی مبتنی بر کامپوننت که از property ها، رویداد ها، (attributes (annotations و ساختن اسمبلیها (باینریهای شامل متادیتا) منتشر شد.
در طول زمان، #C با generic ها، زبان پرس و جوی یکپارچه (LINQ)، عبارات لامبدا، امکانات dynamic و برنامه نویسی سادهتر آسنکرون تکمیلتر شد. سیشارپ زبانی ساده برای برنامه نویسی نیست چرا که امکانات زیادی را ارائه میدهند، اما دائما ویژگی هایش که کاربردی هستند را توسعه میدهد. با این ویژگی ها، #C بیشتر از یک زبان شی گرا یا مبتنی بر کامپوننت، شامل ایدههای زبانهای برنامه نویسی تابعی نیز میشود.
با C# 6، سورس کد کامپایلر به صورت کامل بازنویسی شد. این بیشتر از این است که pipeline جدید کامپایلر را بتوان در برنامههای شخصی استفاده کرد؛ مایکروسافت همچنین سورسهای جدید را دریافت میکند که تغییرات بخشهای دیگر برنامه را نیز بهم نریزد. بنابراین توسعه کامپایلر بسیار راحت شده است.
سیشارپ 7 مجددا ویژگیهای جدیدی را اضافه کرده است که از برنامه نویسی تابعی (functional programming) میآیند مثل توابع محلی، tupleها و pattern matching.