. NET كور 3 لسطح مكتب ويندوز

في أيلول (سبتمبر) ، أصدرنا دعم .NET Core لإنشاء تطبيقات سطح مكتب Windows ، بما في ذلك WPF و Windows Forms. منذ ذلك الحين ، يسرنا أن نرى العديد من المطورين يشاركون قصصهم حول نقل تطبيقات سطح المكتب إلى .NET Core. نسمع باستمرار قصصًا من مطوري .NET لتطبيقات سطح مكتب Windows حول كيفية دعمهم لأعمالهم باستخدام WPF و Windows Forms ، خاصةً عندما يفوز سطح المكتب ، بما في ذلك:

  • تطبيقات FOD (النماذج على البيانات) مع واجهة مستخدم كثيفة
  • استجابة ، واجهة المستخدم الكمون المنخفض
  • التطبيقات التي يجب أن تعمل دون اتصال
  • التطبيقات ذات التبعيات على برامج تشغيل الأجهزة المخصصة

ألق نظرة خاطفة لمعرفة المزيد حول فوائد .NET Core لبناء تطبيقات Windows.



لماذا يوجد سطح مكتب Windows على .NET Core؟


سيصبح .NET Core (وفي المستقبل .NET 5 ، الذي تم إنشاؤه على أساس .NET Core) مستقبل .NET. نسعى جاهدين لدعم .NET Framework لأطول فترة ممكنة ، ومع ذلك لن يتلقى أي ميزات جديدة ، وسيتم إضافتها فقط إلى .NET Core (وفي النهاية ، .NET 5). لتحسين مكدسات سطح مكتب Windows والسماح لمطوري سطح مكتب .NET بالاستفادة من جميع التحديثات المستقبلية ، قدمنا ​​Windows Forms و WPF for .NET Core. ستظل تقنيات Windows فقط ، لأنها ترتبط ارتباطًا وثيقًا بـ Windows APIs. لكن .NET Core ، بالإضافة إلى الأنظمة الأساسية ، لديه العديد من الميزات الأخرى التي يمكن أن تحسن تطبيقات سطح المكتب.

بادئ ذي بدء ، ستتم إضافة جميع تحسينات وقت التشغيل وميزات اللغة فقط في .NET Core ، وفي المستقبل في .NET 5. ومن الأمثلة الجيدة هنا C # 8 ، التي أصبحت متوفرة في .NET Core 3.0. بالإضافة إلى ذلك ، ستصبح إصدارات .NET Core من Windows Forms و WPF جزءًا من النظام الأساسي .NET 5. وعند نقل التطبيق إلى .NET Core ، تقوم بإعداده لـ .NET 5.

بالإضافة إلى ذلك ، يوفر .NET Core مرونة النشر للتطبيقات الخاصة بك مع خيارات جديدة غير متوفرة في .NET Framework ، مثل:

  • النشر الموازي يمكنك الآن الحصول على العديد من إصدارات .NET Core على جهاز كمبيوتر واحد ويمكنك اختيار الإصدار الذي يجب أن يركز عليه كل تطبيق.
  • حاليا النشر. يمكنك نشر نظام .NET Core جنبًا إلى جنب مع التطبيقات الخاصة بك وتصبح مستقلة تمامًا عن بيئة المستخدم النهائي - يحتوي التطبيق الخاص بك على كل ما تحتاجه لتشغيله على أي كمبيوتر يعمل بنظام Windows.
  • أحجام التطبيق أصغر. في .NET Core 3 ، قدمنا ​​ميزة جديدة تسمى linker (وتسمى أحيانًا أداة تشذيب) ستقوم بتحليل التعليمات البرمجية الخاصة بك وتضمينها في النشر دون اتصال فقط تلك التجميعات من .NET Core الضرورية لتطبيقك. وبالتالي ، سيتم حذف جميع تفاصيل المنصة غير المستخدمة في قضيتك.
  • ملفات. exe واحدة. يمكنك حزم التطبيق الخاص بك ومنصة .NET Core في ملف exe.
  • تحسين أداء وقت التشغيل. يحتوي .NET Core على العديد من تحسينات الأداء عبر .NET Framework. إذا كنت تتذكر محفوظات .NET Core ، التي تم إنشاؤها أصلاً لأعباء العمل على الويب والخادم ، فهذا يساعد على فهم ما إذا كان التطبيق الخاص بك يمكن أن يشعر بفوائد ملحوظة من تحسين وقت التشغيل. على وجه الخصوص ، من المرجح أن تُظهر تطبيقات سطح المكتب التي تعتمد اعتمادًا كبيرًا على I / O للملفات والشبكات وعمليات قاعدة البيانات تحسينات في الأداء لهذه السيناريوهات. تتعلق بعض المناطق التي قد لا تلاحظ فيها تغييرات كبيرة بأداء تقديم واجهة المستخدم أو تشغيل التطبيق.

من خلال تعيين الخصائص <PublishSingleFile> و <RuntimeIdentifier> و <PublishTrimmed> في ملف تعريف المنشور ، يمكنك نشر التطبيق المستقل <PublishTrimmed> كملف .exe مفرد ، كما هو موضح في المثال أدناه.

 <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <PublishSingleFile>true</PublishSingleFile> <RuntimeIdentifier>win-x64</RuntimeIdentifier> <PublishTrimmed>true</PublishTrimmed> </PropertyGroup> 

الاختلافات بين. NET Framework سطح المكتب و. NET الأساسية سطح المكتب


عند تطوير تطبيقات سطح المكتب ، لن تلاحظ اختلافًا كبيرًا بين إصدارات WPF و Windows Forms لـ .NET Framework و .NET Core. جزء من جهودنا هو توفير أوجه التشابه الوظيفية بين منصات سطح المكتب هذه وتوسيع قدرات .NET Core في المستقبل.

يتم دعم تطبيقات WPF بشكل كامل في .NET Core ، ويمكنك البدء في العمل معها أثناء العمل على التحديثات والتحسينات الطفيفة. بالنسبة لـ Windows Forms ، تم نقل وقت التشغيل بالكامل إلى .NET Core ، ويعمل الفريق حاليًا على Windows Forms Designer. نحن نخطط لإعداده للربع الرابع من عام 2020 ، ولكن الآن يمكنك التحقق من الإصدار الأولي من المصمم في Visual Studio 16.4 Preview 3 أو إصدار أحدث. تذكر أن تحدد المربع الموجود ضمن أدوات-> خيارات-> معاينة الميزات-> استخدم مصمم معاينة نماذج Windows لتطبيقات .NET Core وأعد تشغيل Visual Studio. يرجى الانتباه إلى أن تجربة الاستخدام لا تزال محدودة ، حيث لا يزال العمل جارياً.

تغييرات مهمة


كانت هناك بعض التغييرات الرئيسية على .NET Framework و .NET Core ، ولكن تم نقل معظم التعليمات البرمجية المتعلقة بمساحات Windows Forms و WPF إلى Core بالطريقة نفسها. إذا سبق لك استخدام مكونات مثل عميل WCF و Code Access Security ونطاقات التطبيق و Interop و Remoteing ، فستحتاج إلى إعادة تشكيل الرمز إذا كنت تريد التبديل إلى .NET Core.

شيء واحد يجب أخذه في الاعتبار: مسارات الإخراج الافتراضية في .NET Core مختلفة عن المسارات في .NET Framework ، لذلك إذا كانت التعليمات البرمجية الخاصة بك تحتوي على بعض الافتراضات حول بنية الملف / المجلد للتطبيق قيد التشغيل ، فمن المحتمل أن تقع في وقت التشغيل.

هناك أيضًا تغييرات على تكوين وظائف .NET. بدلاً من استخدام ملف machine.config ، يستخدم .NET Core ملف <something>.runtimeconfig.json الذي يأتي مع التطبيق وله نفس الغرض الرئيسي ومعلومات مماثلة. بعض التكوينات ، مثل system.diagnostics أو system.servicemodel أو system.servicemodel ، غير مدعومة ، لذلك لا يمكن تحميل ملف تكوين التطبيق إذا كان يحتوي على أي من هذه الأقسام. ينطبق هذا التغيير على تتبع System.Diagnostics ونصوص عميل WCF التي تم تكوينها مسبقًا باستخدام تكوين XML. في .NET Core ، تحتاج إلى تكوينها في التعليمات البرمجية بدلاً من ذلك. لتغيير السلوك دون إعادة الترجمة ، حاول تخصيص أنواع التتبع و WCF باستخدام القيم التي تم تنزيلها من مصدر Microsoft.Extensions.Configuration أو من appSettings .

يمكنك العثور على مزيد من المعلومات حول الاختلافات بين .NET Core و .NET Framework في الوثائق .

لتبدأ


تحقق من هذه الدروس القصيرة:


ترقية من .NET Framework إلى .NET Core


بادئ ذي بدء ، قم بتشغيل " محلل إمكانية النقل" (محلل إمكانية النقل) ، وإذا لزم الأمر ، قم بتحديث الرمز لضمان توافقه بنسبة 100٪ مع .NET Core. فيما يلي إرشادات لاستخدام محلل قابلية النقل. . نوصي باستخدام عنصر التحكم المصدر أو عمل نسخة احتياطية من التعليمات البرمجية الخاصة بك قبل إجراء أي تغييرات على التطبيق الخاص بك ، في حالة فشل إعادة البيع بالطريقة التي تريدها ، وقررت العودة إلى حالتك الأصلية.

عندما يكون التطبيق الخاص بك متوافقًا تمامًا مع .NET Core ، فستكون جاهزًا لنقله. كنقطة بداية ، يمكنك تجربة الأداة التي أنشأناها للمساعدة في أتمتة تحويل مشاريع .NET Framework إلى .NET Core - try-convert .

من المهم أن تتذكر أن هذه الأداة هي مجرد نقطة انطلاق في رحلتك إلى .NET Core. أيضا ، هذا ليس منتج Microsoft معتمد. على الرغم من أنه قد يساعدك في بعض الجوانب الميكانيكية للترحيل ، إلا أنه لن يتعامل مع جميع السيناريوهات أو أنواع المشاريع. إذا كانت هناك مشاريع في حلك ترفضها الأداة أو لا يمكن تحويلها ، فسيتعين عليك نقلها يدويًا. لا تقلق ، لقد أعددنا العديد من الدروس حول كيفية القيام بذلك (في نهاية المقال).

ستحاول أداة try-convert نقل ملفات المشروع القديمة إلى نمط SDK الجديد وإعادة تكوين المشروعات المقابلة في .NET Core. بالنسبة لمكتباتك ، نترك الأمر لك لاختيار النظام الأساسي: .NET Core أو .NET Standard. يمكنك تحديد واحد منهم في ملف المشروع عن طريق تحديث قيمة <TargetFramework> . يمكن للمكتبات التي لا تحتوي على تبعيات خاصة بـ .NET Core ، مثل WPF أو Windows Forms ، الاستفادة من اختيار .NET Standard:

 <TargetFramework>netstandard2.1</TargetFramework> 

بحيث يمكن استخدامها بواسطة المتصلين الذين يستهدفون العديد من منصات .NET المختلفة. من ناحية أخرى ، إذا كانت المكتبة تستخدم وظيفة تتطلب .NET Core (على سبيل المثال ، واجهة برمجة تطبيقات واجهة مستخدم سطح مكتب Windows) ، فيجب أن تركز المكتبة على .NET Core:

 <TargetFramework>netcoreapp3.0</TargetFramework> 

try-convert هي أداة عالمية يمكنك تثبيتها على جهاز الكمبيوتر الخاص بك ثم الاتصال من CLI:

 C:\> try-convert -p <path to your project> 

أو

 C:\> try-convert -w <path to your solution> 

كما ذكرنا سابقًا ، إذا لم تنجح أداة try-convert في حالتك ، فإليك المواد المتعلقة بكيفية توصيل التطبيق يدويًا.

فيديو


الوثائق




انظر أيضا: 7 دورات مجانية للمطورين

Source: https://habr.com/ru/post/ar475116/


All Articles