تقديم معاينة .NET 5 1

في أواخر العام الماضي ، قمنا بإصدار .NET Core 3.0 و 3.1. في هذه الإصدارات ، تمت إضافة نماذج Windows (WinForms) و WPF و ASP.NET Blazor لتطبيقات سطح المكتب لإنشاء تطبيقات من صفحة واحدة و gRPC للرسائل عبر الأنظمة الأساسية التعاقدية. أضفنا أيضًا نماذج لإنشاء الخدمات ، وإنشاء رائع لرمز العميل للتواصل مع gRPC ، وخدمات REST API والمزيد. يسعدنا أن .NET Core 3 أصبح أسرع إصدار مقبول من .NET ، وخلال العام الماضي لدينا مليون مستخدم آخر.

لقد عملنا أيضًا على هذه الإصدارات لإكمال ترحيل نماذج التطبيقات من .NET Framework. في .NET Core 3 ، قمنا بترحيل جميع نماذج التطبيقات الأكثر استخدامًا وقدمنا ​​بنية أساسية جديدة عبر الأنظمة الأساسية بدلاً من تلك التي لم يتم نقلها.

تحسبًا للإصدار الرئيسي التالي من .NET 5 ، سنستمر في دمج .NET في نظام أساسي واحد من خلال تضمين نموذج تطبيقات الجوال .NET الخاص بنا (Xamarin) في .NET 5. NET 5 سيتضمن ASP.NET Core و Entity Framework Core و WinForms ، WPF و Xamarin و ML.NET. وللمرة الأولى ، ستستخدم المنصة بأكملها BCL موحد (مكتبة الفئة الأساسية) لجميع نماذج التطبيقات. إن وجود الإصدار 5 ، وهو أعلى من .NET Framework و .NET Framework ، يوضح أيضًا أن .NET 5 هو مستقبل .NET ، وهو نظام أساسي موحد لإنشاء أي نوع من التطبيقات.

لقد قلنا هذا عدة مرات ، لكننا سنكرر ذلك مرة أخرى ؛ .NET Core ، ثم .NET 5 ، هو .NET ، الذي يجب أن تنشئ به جميع تطبيقاتك الجديدة. سيتم دعم .NET Framework طالما كان Windows نفسه مدعومًا. سنستمر في توفير الأمان وإصلاح الأخطاء ، بالإضافة إلى تحديث واجهات برمجة التطبيقات الخاصة بالشبكات والتشفير. سيظل آمنًا ومدعومًا لتشغيل تطبيقاتك القديمة على .NET Framework.



تثبيت .NET 5.0 Preview 1


سنقوم اليوم بإصدار أول Preview .NET 5 ، ومن المقرر إطلاق النسخة الكاملة منه في نهاية هذا العام في نوفمبر.


اقرأ تحديثات ASP.NET Core في .NET 5 Preview 1 للتعرف على إصدار اليوم من ASP.NET Core.

تتضمن المعاينة 1 دعمًا لـ Windows ARM64 لأول مرة. يتضمن إصدار اليوم أيضًا وقت تشغيل .NET Core. نتوقع إضافة SDK (ASP.NET core ، ولكن ليس WPF أو Windows Forms) في Preview 2. ستتضمن المعاينات اللاحقة نماذج WPF و Windows. سيتم أيضًا دعم Windows ARM64 لدعم .NET Core 3.1. سنشارك المزيد من التفاصيل حول هذا في منشور حول المعاينة 2.

تحديث المشاريع القائمة


يمكنك ترقية المشاريع القائمة عن طريق تحديث النظام الأساسي المستهدف على النحو التالي:

<TargetFramework>netcoreapp5.0</TargetFramework>

أعلى الأهداف. NET 5


  • تجربة .NET SDK الموحدة:
    • BCL ( ) .NET 5. Xamarin Mono BCL, .NET Core BCL, .
    • (Xamarin) .NET 5. , .NET SDK mobile. , «dotnet new XamarinForms» .
  • , : « », , , Window Desktop, Microsoft Duo (Android) iOS, , .
  • تطبيقات الويب التي تدعم أنظمة أساسية متعددة: مشروع Blazor واحد يدعم تطبيقًا يمكن تشغيله في المستعرضات وعلى الأجهزة المحمولة وكتطبيق سطح مكتب أصلي (على سبيل المثال ، Windows 10x).
  • تطبيقات السحابة الأصلية: خدمات مصغرة عالية الأداء بملف واحد (.exe) <50 ميغابايت ودعم إنشاء العديد من المشاريع (واجهات برمجة التطبيقات وواجهات الويب والحاويات) محليًا وفي السحابة.
  • التحسينات المستمرة ، مثل: تسريع الخوارزميات في BCL ، تحسينات دعم الحاوية في وقت التشغيل ، دعم HTTP3.

لا تحتوي المعاينة 1 بعد على نتائج جميع هذه الأهداف ، ولكننا سنواصل الإعلان عن المزيد من الميزات في المعاينات المستقبلية.

التحسينات في المعاينة 1


التحسينات التالية في المعاينة 1:

تحسينات أداء التعبير العادي


لقد استثمرنا بكثافة في محرك Regex. في العديد من التعبيرات التي اختبرناها ، تؤدي هذه التحسينات عادةً إلى إنتاجية أعلى 3-6 مرات ، وفي بعض الحالات ، أكثر من ذلك بكثير. قريباً سيكون لدينا منشور مدونة سيتم فيه وصف هذه التحسينات بمزيد من التفصيل.

تحسين جودة التعليمات البرمجية في RyuJIT


يتضمن كل إصدار مجموعة من تحسينات الأداء للرمز الذي ينشئه JIT. نحن نسمي هذا النوع من التحسينات "CQ" أو جودة الكود. في معظم الحالات ، تنطبق هذه التحسينات أيضًا على التعليمات البرمجية التي تم إنشاؤها للصور الجاهزة للتشغيل.


event pipe


لقد أضفنا معلومات حول تحميل التجميع في أنبوب الحدث. هذا التحسين هو بداية توفر ميزات تشخيصية مماثلة تشكل جزءًا من .NET Framework مع  عارض Log Fusion . يمكنك الآن استخدام  dotnet-trace  لجمع هذه المعلومات باستخدام الأمر التالي:

dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 --process-id [process ID]

سير العمل موضح في قسم تتبع تجميع التحميل مع ماسورة الأحداث . يمكنك مشاهدة معلومات تحميل التجميع لتطبيق اختبار بسيط.



واجهة برمجة تطبيقات تشكيل الأحداث (توجيه الأحداث)


Event Pipe هو نظام فرعي جديد وواجهة برمجة تطبيقات أضفناهما إلى .NET Core 2.2 ليصبح من الممكن تشغيل تشخيصات الأداء وغيرها في أي نظام تشغيل. في .NET 5.0 ، تم توسيع "ممر الأحداث" حتى يتمكن المحللون من تسجيل أحداث ممر الأحداث. هذا السيناريو مهم لأدوات ملفات التعريف التي استخدمت ETW سابقًا لمراقبة سلوك التطبيق والأداء.

دمج مستودع جيثب


كجزء من إصدار .NET 5 ، قمنا  بتقليل عدد المستودعات على GitHub التي تم استخدامها لإنشاء .NET وحزمه. حدود المستودعات لها تأثير كبير على العديد من جوانب المشروع ، بما في ذلك التجميع وإدارة المشاكل. باستخدام .NET Core 1.0 ، كان لدينا أكثر من 100 مستودع في ASP.NET و EF و .NET Core. الآن تغير كل شيء. لقد قمنا أيضًا بترحيل جميع المستودعات تقريبًا إلى dotnet org.

تحقق من المستودعات الموحدة الجديدة:

  • dotnet / runtime  (كانت dotnet / corefx و dotnet / coreclr و dotnet / core-setup)
  • dotnet / aspnetcore  (كان هناك العديد من المستودعات في aspnet org)
  • dotnet / sdk  (كانت dotnet / sdk ، dotnet / cli)

All Articles