في الرابع من ديسمبر ، تم إصدار .NET Core 2.2. "من الذي يمكن أن يفاجأ بالأخبار قبل أسبوع؟" - أنت تسأل وسوف تكون على حق ... وبالمناسبة ، هل قمت بالفعل بتحديث؟ )
الآن إلى القضية. يتضمن الإصدار الجديد تحسينات تشخيصية في وقت التشغيل ، ودعم ARM32 لـ Windows ، ودعم Azure Active Directory لعميل SQL. أكبر التحسينات على هذا الإصدار هي ASP.NET Core.

تم إصدار ASP.NET Core 2.2 و Entity Framework Core 2.2 في نفس اليوم.
.NET Core 2.2 لنظام التشغيل Windows و macOS و Linux في انتظارك بالفعل على الروابط:
يتوفر دعم .NET Core 2.2 في Visual Studio 15.9 و Visual Studio for Mac و Visual Studio Code.
تتوفر حاويات الإرساء في microsoft / dotnet لكل من .NET Core و ASP.NET Core.
يمكن العثور على المعلومات الكاملة حول هذا الإصدار في ملاحظات إصدار .NET Core 2.2 . هناك إرشادات إضافية ومشكلات معروفة وطرق للتغلب عليها. يرجى إعلامنا بأي عيوب موجودة في هذا المستند في التعليقات على dotnet / core # 2098 .
تجميع المتدرج
التجميع متعدد المستويات هو ميزة تتيح لوقت التشغيل استخدام برنامج التحويل البرمجي JIT بشكل أكثر ذكاءً لتحقيق أداء أفضل في كل من مرحلة تشغيل التطبيق وفي مرحلة زيادة الأداء أثناء التشغيل. تمت إضافة القدرة على القيام بذلك كميزة اختيارية في .NET Core 2.1 وتم تشغيله لاحقًا بشكل افتراضي في .NET Core 2.2 Preview 2. لقد فكرنا وقررنا أننا ما زلنا غير متأكدين من معنى إدراجه في الإصدار النهائي من .NET Core 2.2 ، وذلك مرة أخرى جعله اختياريًا ، تمامًا كما كان في .NET Core 2.1. ومع ذلك ، في .NET Core 3.0 ، سننتقل إليه تمامًا.
أحداث وقت التشغيل
عادة ما يكون من المنطقي مراقبة خدمات وقت التشغيل ، على سبيل المثال ، GC أو JIT أو ThreadPool للعملية الحالية ، لفهم كيف تتصرف هذه الخدمات أثناء حياة التطبيق. في أنظمة Windows ، يتم ذلك عادةً باستخدام ETW ومراقبة أحداث ETW للعملية الحالية. لا تزال هذه الطريقة رائعة ، لكن استخدام ETW غير ممكن دائمًا ، وقد يكون ذلك صعبًا. على سبيل المثال ، أنت تعمل في بيئة ذات امتيازات غير كافية أو على Linux / macOS.
بدءًا من .NET Core 2.2 ، يمكن معالجة أحداث CoreCLR بواسطة فئة EventListener
. تصف هذه الأحداث سلوك GC و JIT و ThreadPool والتداخل. هذه هي نفس الأحداث المتوفرة الآن كجزء من موفر CoreCLR ETW لنظام التشغيل Windows. يسمح هذا النهج للتطبيقات بمعالجة الأحداث أو استخدام آليات النقل لإرسال الأحداث إلى خدمة تجميع القياس عن بُعد.
هذه هي الطريقة التي يمكنك الاشتراك في الأحداث:
internal sealed class SimpleEventListener : EventListener {
دعم AccessToken في SqlConnection
يدعم موفر ADO.NET لـ SQL Server ، SqlClient ، الآن إعداد خاصية AccessToken ، التي تتيح مصادقة الاتصالات بـ SQL Server باستخدام Azure Active Directory. لبدء استخدام هذه الميزة ، تحتاج إلى الحصول على رمز وصول باستخدام مكتبة مصادقة Active Directory لـ .NET ، والذي يأتي مع حزمة NuGet من Microsoft.IdentityModel.Clients.ActiveDirectory.
فيما يلي كيفية مصادقة الاتصالات بـ SQL Server باستخدام Azure AD:
لمزيد من المعلومات ، راجع وثائق ADAL.NET و Azure Active Directory .
رمز التشغيل قبل الرئيسي
يتيح لك .NET Core الآن تضمين التعليمات البرمجية قبل بدء الطريقة الرئيسية ، ويتم ذلك باستخدام Startup Hook. تسمح هذه الخطافات للمضيف بتخصيص سلوك التطبيق بعد نشره ، دون الحاجة إلى إعادة إنشاء أو تعديل التعليمات البرمجية.
هنا ، نعني أن موفري الاستضافة سينشئون التكوينات والسياسات الخاصة بهم ، بما في ذلك الإعدادات التي يمكن أن تؤثر على سلوك تحميل نقطة الإدخال الرئيسية للتطبيق ، على سبيل المثال ، AssemblyLoadContext. يمكن استخدام الخطاف لإعداد التتبع أو تنفيذ القياس عن بُعد أو الاتصال بردود الاتصال أو أي إعدادات سلوك خاصة ببيئة تشغيل معينة. الخطافات هي كيان منفصل تمامًا فيما يتعلق بنقطة الإدخال ، وبالتالي لا تتطلب تغيير رمز التطبيق.
وصف أكثر تفصيلا في الوثائق .
ويندوز ARM32
نضيف دعمًا لنظام Windows ARM32 ، على غرار الدعم الموجود بالفعل لنظام التشغيل Linux ARM32 ، بدءًا من .NET Core 2.1. يدعم Windows WIN32 لبعض الوقت ، وذلك بفضل Windows IoT Core . كجزء من إصدار Windows Server 2019 ، تمت إضافة دعم ARM32 إلى Nanoserver. يمكن الآن استخدام .NET Core على كل من Nanoserver و IoT Core.
ستظهر حاويات عامل ميناء Nanoserver لـ ARM32 ، كما هو الحال دائمًا ، في microsoft / dotnet على Docker Hub.
نود نشر تجميعات .NET Core لنظام التشغيل Windows ARM32 اليوم ، لكننا عثرنا على خطأ متأخر يجعل نشرها بلا معنى. نأمل أن تظهر التجميعات لـ .NET Core 2.2.1 في حوالي يناير 2019.
.NET Core 2.2 مدعوم على أنظمة التشغيل التالية:
- عميل Windows: 7 ، 8.1 ، 10 (1607+)
- خادم ويندوز: 2008 R2 SP1 +
- ماك: 10.12+
- RHEL: 6+
- فيدورا: 26+
- أوبونتو: 16.04+
- دبيان: 9+
- SLES: 12+
- openSUSE: 42.3+
- جبال الألب: 3.7+
منصات الأجهزة المدعومة:
- إلى x64 - Windows و macOS و Linux
- إلى x86 - ويندوز
- ARM32 - Linux (Ubuntu 16.04+، Debian 9+)
- ARM32 - ويندوز (1809+ ؛ متاح في يناير)
الخاتمة
.NET Core 2.2 هو إصدار يتميز بالتحسينات الرئيسية للنظام الأساسي. نوصي بشدة بتجربته وإخبارنا برأيك. بالإضافة إلى ذلك ، فمن المنطقي فهم التحسينات في ASP.NET Core 2.2 و Entity Framework 2.2.
لا تنس أن سعر تذاكر DotNext من 1 يناير سيرتفع. الشخصية - لألف ، والمعيار - لمدة ألفي. تفاصيل حول إيرلي بيرد موجودة على الموقع .