في نوفمبر 2022، أصدرت Microsoft إصدارًا جديدًا من .NET 7، مع تحسين في الأداء والعديد من الميزات الجديدة لـ C# وASP.NET Core وBlazor و.NET MAUI وWeb APIs وWPF وWinForms وغيرها الكثير. دعنا نستعرض التغييرات الأكثر إثارة للاهتمام.

.NET 7 يبقى على المسار الصحيح

.NET هي منصة المطورين مفتوحة المصدر من Microsoft لبناء أنواع مختلفة من التطبيقات لأنظمة تشغيل متعددة. يواصل إطار العمل تطوره كمنصة تطوير موحدة لبناء مجموعة واسعة من التطبيقات التي يمكن تشغيلها على أنظمة تشغيل مختلفة مع تسهيل عملية التعلم على المطورين. تم إصدار C# 11 إلى جانب .NET 7 مع ميزات جديدة رائعة وتحسينات في الأداء. تتمتع النسخة الجديدة من .NET بإمكانات كبيرة في مجالات مختلفة.

Microsoft .NET promotional slide titled "Build anything with a unified platform." A central .NET logo connects via dotted lines to seven application targets: Cloud, Web, Desktop, Mobile, Gaming, IoT, and AI. Below, three supporting categories are shown — Tools (Visual Studio Family, Visual Studio Code, CLI), Operating System (Windows, Linux, macOS), and Ecosystem (NuGet, GitHub, components and library vendors).

المصدر: مؤتمر Microsoft .NET 2022

تُعد المصادقة جزءًا أساسيًا من واجهات برمجة التطبيقات (APIs). ونظرًا لتعقيدها، يقدم إصدار جديد تكوينًا مبسّطًا للمصادقة والتفويض. وتتطلب المصادقة المبسّطة استدعاء طريقة واحدة فقط، مما يسهّل عمل المطورين.

تُعد الحاويات (Containers) واحدة من أسهل الطرق لتجميع التطبيقات وشحنها في السحابة على أي منصة، لذا فإن تحسين دعم .NET للحاويات مفيد جداً. يوفر .NET 7 دعماً مدمجاً للحاويات، مما يجعل من الممكن إنشاء الحاويات ونشرها بسهولة باستخدام CLI دون استخدام أدوات خارجية مثل Docker for desktop أو غيرها.

يدعم ASP.NET Core أحدث البروتوكولات والمعايير. مع إصدار .NET 7، أصبح بروتوكول HTTP/3 وWeb Sockets عبر HTTP/2 مدعومين. كما أُضيف دعم تجريبي جديد لبروتوكول WebTransport ويمكن استخدامه لتعدد إرسال التدفقات عبر اتصال HTTP/3 نفسه.

عادةً ما تتم مشاركة كود C# الشائع بين المشاريع من خلال مكتبة الفئات (Class Library) كملف .dll أو حزمة nuget. يمكن مشاركة مكونات ASP.NET Core Razor ونماذج البيانات في مكتبة فئات Razor بحيث يمكن استخدامها في مشاريع أخرى واستهلاكها من قبل عملاء Blazor server وWebAssembly و.NET MAUI.

Architecture diagram showing the Razor Class Library as the top layer, containing Razor components, Controllers, Razor views, View components, Page models, and Data models. Below it, two consumer platforms are shown: ASP.NET Core (used by Blazor Server and Blazor WebAssembly) and .NET MAUI (used by .NET Android, .NET Mac, .NET iOS, and WinUI).

لجميع المطورين الذين يستخدمون ASP.NET ويرغبون في الانتقال إلى ASP.NET Core، هناك أداة جديدة لـ Visual Studio تُسمى أداة الترقية التدريجية، تتيح ترحيل نقاط النهاية واحدة تلو الأخرى، حتى نتمكن من صيانة الإصدار القديم وتطويره أثناء الترقية.

Entity Framework Core 7 – ما الجديد؟

صدرت نسخة جديدة من Entity Framework Core 7 مع دعم أعمدة JSON، مما يتيح تعيين الكيانات المجمّعة المبنية من الأنواع إلى مستندات JSON. توفر الميزة الجديدة إمكانية تعيين الكيان المجمّع إلى عمود JSON في قاعدة بيانات SQL Server باستدعاء طريقة واحدة فقط. يمكننا استخدام استعلامات LINQ على الكيانات المجمّعة التي ستُترجم إلى استعلامات SQL للتعمق في بيانات JSON.

يتتبع Entity Framework Core 7 التغييرات التي تطرأ على الكيانات، وعند استدعاء أسلوب SaveChanges، يقوم بتحديث الكيانات المعدّلة في قاعدة البيانات. يقدم EF7 أسلوبين جديدين هما ExecuteUpdate وExecuteDelete، واللذان يمكنهما تعديل أو حذف الكيانات دون استخدام متتبع التغييرات وسيعملان بكفاءة أعلى.

يحسّن EF7 أيضاً أداء طريقتي SaveChanges وSaveChangesAsync التي تولد استعلامات SQL أسرع. يقدم الإصدار الجديد دعماً لتعيين أوامر الإدراج والتحديث والحذف إلى الإجراءات المخزنة.

في SQL Server، تكون سلاسل الاتصال في .NET 7 مضبوطة افتراضياً على قيمة Encrypt تساوي true، بينما في الإصدارات السابقة كانت القيمة الافتراضية false. وهذا يضمن تهيئة الخادم بشهادة صالحة، ويتعين على العميل الوثوق بتلك الشهادة، وإلا سيتم رفع استثناء SqlException.

.NET Blazor

هناك العديد من التحسينات في بناء واجهة مستخدم الويب باستخدام ASP.NET Core وBlazor. مع Blazor يمكننا إنشاء واجهة مستخدم ويب بلغة C#، ويمكن مشاركة هذه المكونات عبر تطبيقات الويب والجوال وسطح المكتب. يمكننا استخدام مكونات Blazor في تطبيقات JavaScript الحالية مع دعم العناصر المخصصة الجديد.

أنشأ فريق Blazor ميزة جديدة هي Blazor hybrid التي تتيح تشغيل مكونات Razor في تطبيق سطح مكتب (Windows Forms)، أو الويب (WPF)، أو تطبيق جوال أصلي (.NET MAUI). لا تعمل مكونات Razor في المتصفح. بل يتم عرضها في عنصر تحكم Web View مضمّن ولديها إمكانية الوصول إلى قدرات الجهاز الأصلية مع أنماط مكونات خاصة بكل منصة.

ستعمل معظم الميزات الجديدة بالطريقة نفسها عبر جميع نماذج الاستضافة – خادم Blazor أو WebAssembly أو الهجين مع .NET MAUI، لكن بعض الميزات خاصة بنموذج استضافة معين.

QuickGrid هي الميزة الجديدة لجميع نماذج الاستضافة المتاحة كمعاينة. وهي لا تحل محل الشبكات الأخرى ولكنها توفر مجموعة أساسية من الميزات التي ستغطي السيناريوهات الأكثر شيوعًا. يمكن لـ QuickGrid إجراء الترقيم الافتراضي والمحاكاة الافتراضية، مما يتيح لنا العمل مع كميات أكبر من البيانات بأداء جيد.

العناصر المخصصة هي إضافة جديدة أخرى مثيرة للاهتمام تتيح تسجيل مكونات Blazor كعناصر مخصصة يمكن عرضها في تقنيات ويب أخرى. يمكننا استخدام هذه الميزة مع العرض من جانب العميل مثل Angular وReact وVue أو ما شابه، وكذلك العرض من جانب الخادم مثل PHP أو Rails.

في Blazor WebAssembly، هناك تحسينات كبيرة في أداء بيئة التشغيل، وأُجريت تحسينات في المصادقة تمنح المطورين مزيدًا من التحكم فيها. كما يُعدّ مؤشر تقدم التحميل ميزة جديدة رائعة تُظهر تقدم تحميل التطبيق افتراضيًا، وهو أمر مفيد جدًا للمستخدمين على اتصال شبكة بطيء.

من Xamarin إلى .NET MAUI

إطار عمل واجهة مستخدم التطبيقات متعددة المنصات .NET (MAUI) هو تطور لـ Xamarin. إنه منصة موحدة لبناء تطبيقات العملاء الأصلية لنظامي Windows وMac وAndroid وiOS باستخدام .NET.

مع إصدار .NET 7، أصبح MAUI مدعوماً أيضاً للإصدار السابق .NET 6. يمكن للمطورين إنشاء تطبيقات من قاعدة تعليمات برمجية واحدة يمكن تشغيلها على Windows وAndroid وmacOS وiOS ونظام Tizen OS من سامسونج. أبرز التغييرات في الإصدار الصادر حديثاً هي تحسينات الأداء، وحل مشكلات أداء التخطيط مع عرض صفحات أسرع بنسبة 51% وتمرير أسرع. أصبح ترقية .NET MAUI الآن يمتلك كل ما نحتاجه لاجتياز عملية التطوير – الاختبار – البناء – التوزيع – المراقبة.

تطوّرت Xamarin إلى .NET MAUI وستتلقى الدعم حتى مايو 2024. توصي Microsoft بترحيل التطبيقات من Xamarin Forms إلى .NET MAUI ومن Xamarin إلى .NET 6 أو .NET 7.

.NET Multi-platform App UI (MAUI) diagram marked "Generally available," showing a single project system and single codebase connecting to four platforms — WinUI, Mac Catalyst, iOS, and Android — represented by icons for Windows laptop, macOS, iPhone, and Android device. Key benefits listed: Unified .NET, Mobile/desktop/hybrid support, Productive development, and Native APIs with native performance.

لمساعدة المطورين في ترحيل التطبيقات بسلاسة، تمت ترقية الأداة المساعدة لدعم .NET MAUI – ولا تزال الوثائق والعينات المتعلقة بكيفية الترحيل قيد الإعداد. أثناء الترحيل، يجب إجراء بعض التغييرات داخل المشروع، لكنه ليس إعادة كتابة كاملة للتطبيق.

Timeline diagram titled "Release schedule, support & patching" showing .NET MAUI, Xcode, Android, and Xamarin support across three .NET releases: .NET 7 (November 2022), .NET 8 (November 2023), and .NET 9 (November 2024). Xamarin reaches End of Support in May 2024. Key notes: each .NET MAUI major version ships with .NET and receives patches for 6 months after a successor ships; Xamarin SDKs are supported until May 2024.

التطوير والدعم المستقبلي لـ .NET 7

تم إصدار .NET 7 كدعم قياسي مؤقت STS وسيُدعم لمدة ستة أشهر بعد إصدار STS أو LTS لاحق.

من المخطط إصدار .NET 8 في نوفمبر 2023 كإصدار دعم طويل الأجل LTS سيحصل على دعم مجاني لمدة ثلاث سنوات. يمنحنا هذا الجدول الزمني وقتاً كافياً لاكتشاف ميزات جديدة رائعة وترقية تطبيقاتنا إلى أحدث إصدار.

Timeline diagram showing .NET release history split into two tracks: LTS (Long-Term Support, patched for 3 years) covering .NET Core 3.1 (December 2019), .NET 6 (November 2021), and .NET 8 (November 2023); and STS (Standard-Term Support, patched for 18 months) covering .NET 5 (November 2020), .NET 7 (November 2022), and future releases.

لقد غطينا فقط بعضًا من وظائف وحلول .NET 7 المذهلة التي ستعود بفائدة كبيرة على أي مطور يعمل بها. هناك الكثير مما يمكن اكتشافه، لذا تابع واستمتع بها! اعتبر هذا المقال دليلاً بسيطًا لرحلتك الخاصة في التعمق في .NET 7.

لقطة من Learn & Chill الكرواتية الأخيرة

هل تريد معرفة المزيد عن فعاليتنا؟ ستجد هنا مزيداً من المعلومات ونموذج التسجيل.