Winforms تحتضر ويستخدم XAML والمصممون له يشبه قلع الأسنان. ماذا الان؟


لقد اعتدت أن أكون قادرًا على إنشاء تطبيق Windows بسيط إلى متوسط ​​التعقيد باستخدام Windows Forms، وأن أكون قادرًا على جعله يعرض كل شيء دون الكثير من الضجة. أستطيع أن أقضي معظم وقتي في المنطق. هذا جيد.

الآن، مع XAML وUWP وما إلى ذلك، أصبح استخدام المصممين يشبه زيارة طبيب الأسنان – ولكن هل هو ضروري؟

لست متأكدًا من أين أتجه من هنا، لأنه ما لم أكن أفعل ذلك بشكل خاطئ فإن هؤلاء المصممين لن يسرعوا مني على الإطلاق. فهي عديمة الفائدة. إنهم ليسوا جديرين بالاهتمام.

أفضل فقط ترميزه في C#.

ماذا عن القيام به؟ لا أستطيع أن أكون الوحيد.

ما حاولت:

الصبر. المواد الترفيهية. التخلي عن كل الأمل.

المصممين فظيعة فقط. فظيعة فظيعة فظيعة. إنها أصعب في الاستخدام من كتابة XML يدويًا وهذا أيضًا أمر فظيع.

الحل 2

كتب روجر دويتش سلسلة من المقالات حول هذا الموضوع: برمجة Windows 10: التركيز على UWP (1 من N)[^]. لقد عملت من خلال كل ذلك وقمت ببناء الأمثلة بنجاح. ولكن بما أن كل برمجتي هي للمتعة فقط، فلا أعتقد أنني سأستخدمها كثيرًا في المستقبل.

الحل 3

إجابتي، عبر نشر من الصالة[^].

إذا كنت لا أزال أستخدم XAML، فسأستخدم Blend معه. يستغرق الأمر بعض الوقت للتعود عليه، ولكنه أفضل بكثير من العمل مع مصممي التخطيط في VS. عندما أحتاج إلى كتابة تطبيق سطح مكتب خالص، أستخدم AvaloniaUI. إنها أفضل من ماوي. الآن، في أغلب الأحيان، أستخدم Blazor. القدرة على التشغيل في المتصفح وكتطبيق PWA لأولئك الذين يريدون تشغيله على سطح المكتب.

الحل 4

جرب Flutter، فلن يخيب ظنك
لقد واجهت نفس المعضلة التي واجهتك، وهي اختيار الإطار المناسب لمشروعي القادم.
لقد قمت بتقييم العديد من الخيارات، وأخيراً قررت اختيار Flutter: لقد غيرت قواعد اللعبة!
إن سرعة التطوير والمرئيات المذهلة التي يقدمها لكل من تطبيقات سطح المكتب والهاتف المحمول رائعة حقًا.
حتى بالنسبة للمبرمج المتمرس مثلي (الذي يحب C/C++!)، كان منحنى التعلم لـ Flutter سريعًا بشكل مدهش.

الحل 5

إضافة إلى الحلول الكثيرة بالفعل، طرحت على نفسي هذا السؤال مؤخرًا.
بالنسبة للعميل، أحتاج إلى استبدال تطبيقات VB6 القديمة في جميع أنحاء المصنع.
لا يعد الويب خيارًا لأنني أحتاج إلى التواصل مع الأجهزة الموجودة على الأجهزة (على الرغم من أن ذلك لا يبدو مشكلة الآن بعد أن نعمل عليه…).

على أية حال، سيكون المنافس الواضح WinForms، ولكن كما قلت، هذا هو الموت.
قامت Microsoft بنقل WinForms إلى .NET، لذا فهو لم يمت بعد، لكنني أردت أن يكون البرنامج الجديد حديثًا.

وماذا بعد WPF (مؤسسة العرض التقديمي لـ Windows) يمكن أن يكون الوريث المنطقي، حيث أنه تم نقله أيضًا إلى .NET.
ومع ذلك، WPF هو XAML، وكما قلت، هذا مثل قلع الأسنان.
لذلك سنقوم بسحب الأسنان في إطار عمل قديم تم نقله مؤخرًا فقط لإبقاء بعض المطورين القدامى الغاضبين سعداء (على ما أعتقد).

رأيت UWP (منصة Windows العالمية) المذكورة هنا، ولكن Microsoft أسقطت دعمها رسميًا بالفعل، لذا لم يعد هذا خيارًا بعد الآن!

ومع ذلك، استخدم UWP WinUI 2 تحت الأغطية و وينيو 3 هو الوريث الرسمي الذي لا يزال مدعومًا أيضًا.
إنها لغة XAML، ولكنها على الأقل حديثة!

بالنظر خارج حزمة Microsoft، لدينا المزيد من الحلول المستندة إلى الويب، مثل رفرفة و منصة أونو.
لقد برز اثنان بالنسبة لي، وهما بديلان حقيقيان لـ Flutter وUno على التوالي، الإلكترون و واجهة المستخدم أفالونيا.
تم إنشاء Visual Studio Code باستخدام Electron، حتى تحصل على فكرة عما يمكن أن يفعله وكيف يمكن أن يبدو.
فهو يستخدم التقنيات المستندة إلى الويب، مثل HTML وCSS وJavaScript ويجمعها بطريقة ما كتطبيقات سطح مكتب متعددة الأنظمة الأساسية.
يستخدم Avalonia UI لغة XAML (في الواقع، يعتبر الوريث الروحي لـ WPF)، ولكنه ينتج أيضًا تطبيقات سطح المكتب عبر الأنظمة الأساسية.
إذا كان اختيارك يعود إلى Avalonia UI أو Uno، فإن Avalonia هو الفائز الواضح مع مجتمع أكبر على GitHub.
بالإضافة إلى ذلك، يضم فريق Avalonia مطورين (سابقين) من فريق WPF!
مشكلتي مع هذه التقنيات، على الرغم من أنها تبدو وكأنها تعمل وتبدو رائعة، هي أنها ليست تطبيقات أصلية، مما يعني أنها تقوم بالرسم الخاص بها بدلاً من ترك ذلك لنظام التشغيل.
والنتيجة هي أنها يمكن أن تبدو وكأنها ليست تطبيقات سطح المكتب/Windows/Apple على الإطلاق.

في نهاية المطاف، ذهبت ل تم إصلاح الشبكة.
.NET MAUI هو خليفة Xamarin، وهو بالطبع إطار عمل متنقل.
ومع ذلك، يمكن لـ .NET MAUI إنشاء تطبيقات متعددة المنصات تعمل على الهاتف المحمول وسطح المكتب!
من الناحية النظرية، على الأقل، لأنه من الناحية العملية سوف تواجه الكثير من التحديات.
.NET MAUI، مثل Xamarin، يستخدم XAML أيضًا.
فلماذا اخترت .NET MAUI؟
نحن نستهدف Windows فقط في الوقت الحالي، وبالنسبة لنظام التشغيل Windows يتم تجميعه إلى WinUI 3، وهي تطبيقات Windows الأصلية.
يحتوي WinUI 3 على المزيد من الخيارات لأنه ليس من الضروري أن يعمل على الهاتف المحمول أيضًا، ولكن .NET MAUI هو الأحدث وأتوقع بالفعل بعض العمل على الهاتف المحمول في المستقبل أيضًا.
ومع ذلك، يعد .NET MAUI نوعًا من المقامرة أيضًا، حيث يبدو أن Microsoft لا تقوم بتحديثه بشكل جيد وبالنسبة لبعض الأخطاء الخطيرة في .NET 7 قالت ببساطة “سيتعين عليك الانتظار حتى .NET 8 لأن نحن لا نقوم بتصحيح .NET MAUI لـ .NET 7.”
ونتيجة لذلك، لم يعتمد الكثير من مطوري Xamarin .NET MAUI ويبحثون عن بدائل.
يبدو الأمر جيدًا حتى الآن بالنسبة لنا، وآمل فقط أن تتبناه Microsoft والمجتمع أكثر قليلاً.

وأخيرًا وليس آخرًا، يمكنك استخدام .NET ماوي مع بليزر، والذي يسمح لك بتشغيل تطبيق ويب (HTML وCSS وJavaScript ممزوجًا بـ .NET) على سطح المكتب الخاص بك في تطبيق .NET MAUI shell.
لقد كان ذلك بمثابة اعتبار جدي، ولكن بصراحة تامة لم أرغب في الانزعاج من تقنيات الويب أيضًا، ولن يتم تجميعه كتطبيق Windows أصلي أيضًا.

لقد اكتشفت كل ذلك في وقت سابق من هذا العام، لذا اعتبر هذا ملخص بحثي.

[Add]

للإجابة على سؤال كيفية التعامل مع XAML، فهو لا يختلف كثيرًا عن HTML، أليس كذلك؟
فقط تمتصه على ما أعتقد.
[/Add]

الحل 1

إذا كنت تريد الصراخ، أطلق النسيم، وما إلى ذلك، ثم استخدمه الردهة[^] المنتدى. هذا مخصص لأولئك الذين عالقون أو في حيرة من أمرهم ويحتاجون إلى مساعدة في التعليمات البرمجية.

コメント

タイトルとURLをコピーしました