إنشاء تطبيق C#/Winform عبر الأنظمة الأساسية - هل يجب علي استخدام AIR أو Mono أو أي شيء آخر؟

StackOverflow https://stackoverflow.com/questions/72580

  •  09-06-2019
  •  | 
  •  

سؤال

لدي تطبيق كتبته في C#/WinForms (تطبيقي الصغير).لجعله مشتركًا بين الأنظمة الأساسية، أفكر في إعادته في Adobe AIR.هل هناك أي حجج لصالح WinForms كتطبيق متعدد المنصات؟هل هناك مستقبل عبر الأنظمة الأساسية لـ Winforms (على سبيل المثال، Mono، وما إلى ذلك)؟اقتراحات لتطوير واجهة المستخدم عبر الأنظمة الأساسية؟

أعني عبر الأنظمة الأساسية حاليًا أنظمة Mac OSX وWindows وLinux.

كان هذا السؤال سأل مرة أخرى وأجاب بنجاح أفضل.

هل كانت مفيدة؟

المحلول

أفكر في إعادته في Adobe AIR

نظرًا لعدم قضاء الكثير من الوقت مع AIR، فإن رأيي الشخصي هو أنه من الأفضل إحضار تطبيق ويب إلى سطح المكتب وتوفير غلاف له أو تشغيل مشروع الفلاش/المرن الموجود لديك على سطح المكتب.

راجع للشغل، إذا كنت لا تعرف ActionScript، أعني تفاصيله ومراوغاته وما إلى ذلك، فلا تنس أن تأخذ في الاعتبار الوقت الذي سيستغرقه البحث على Google للحصول على الإجابات.

هل هناك أي حجج لصالح WinForms كتطبيق متعدد المنصات؟هل هناك مستقبل عبر الأنظمة الأساسية لـ Winforms (على سبيل المثال، Mono، وما إلى ذلك)؟

من الصعب دائمًا التنبؤ بما سيحدث، ولكن هناك مشروعًا واحدًا على الأقل (Plastic SCM) أعرفه يستخدم Mono Winforms على أنظمة التشغيل Win وMac وLinux، لذا فمن المؤكد أنه قابل للتنفيذ.ومع ذلك، يقولون إنهم بنوا معظم عناصر التحكم الخاصة بهم من الألف إلى الياء (ويزعمون أنهم يريدون إصدارها كمصدر مفتوح، ولكنهم غير متأكدين من ذلك أو متى)، لذلك ستحتاج إلى القيام ببعض الأعمال لجعل الأمور تبدو "جميلة" .

لقد لعبت مع Winforms على منصات لا تعمل بنظام Windows، ولسوء الحظ، فهي ليست "ناضجة" تمامًا (خاصة على نظام Mac).لذا فإن ما تخرجه من الصندوق قد يكون أو لا يكون كافيًا لاحتياجاتك.

إذا قررت أن تطبيق سطح المكتب ليس أفضل طريقة لتوفير حل عبر الأنظمة الأساسية، فيمكنك دائمًا استخدام منطق عملك المكتوب بلغة C# وإنشاء تطبيق ويب كامل باستخدام ASP.NET أو استخدام Silverlight، والعديد من الخيارات الأخرى موجود مع C#.

نصائح أخرى

بقدر ما تمتد خبرتي في البرمجة النصية للعمليات Flex/AIR/Flash، فإن بيئة تطوير Adobe AIR ومجموعات أدوات الترميز/تصحيح الأخطاء أدنى بكثير من Visual Studio و.NET SDK في الوقت الحالي.بالرغم من ذلك، فإن مجموعات أدوات واجهة المستخدم متفوقة.

ولكن كما لديك بالفعل رمز C# فعال, ، قد يتطلب نقله إلى ActionScript إعادة التصميم نظرًا لأن ActionScript لديه طريقة مختلفة في التفكير/البرمجة، فهم يستخدمون أنواع بيانات بدائية مختلفة، على سبيل المثال، يستخدمون فقط Number بدلاً من int float double إلخ.وأدوات تصحيح الأخطاء غير متوفرة مقارنةً بـ VS IMO.

وسمعت ذلك مونو جتكشارب هادئة منصة لائقة.

ولكن إذا كنت لا تمانع في مشاكل أدوات الترميز/تصحيح الأخطاء، فإن AIR يعد منصة رائعة.تعجبني الطريقة التي تقوم بها Adobe بدمج تجربة Flash فيها، على سبيل المثال.يمكنك البدء في تثبيت تطبيق AIR عبر نقرة زر في مقطع فيديو فلاش، وهذا النوع من التكامل.

يتم دعم WinForms بالكامل بواسطة Mono، لذا فهي مشتركة بين الأنظمة الأساسية.

لماذا تذهب مع الهواء؟

يستخدم جتك #, ولديك محرك نماذج متعدد المنصات ويمكنك الاحتفاظ برمز C# الخاص بك.

حسنًا، أعتقد أن الطريقة الوحيدة للربط بين الأنظمة الأساسية بشكل موثوق باستخدام لغة C# هي مايكروسوفت سيلفرلايت, ، ولكنه ليس WinForms حقًا، ولا يعتمد على المتصفح.بخلاف ذلك، نعم مونو فرصة.

إذا كنت تريد استخدام .net Framework، فإن Microsoft Silverlight هو الخيار الجيد (الوحيد؟).يقوم المتصفح بعمل جيد كصدفة، ولكن يمكنك أيضًا كتابة غلاف التطبيق الخاص بك له.على سبيل المثال، سكوت هاندلمان يذكر The NY Times Reader مكتوب بلغة Silverlight ومضيف على Cocoa على جهاز Mac.

لا أعتقد أن هناك مستقبل لـ WinForms على الإطلاق.نظرًا لأنه يبدو أنه كان حلاً مؤقتًا حتى في عالم MSFT (غلاف رفيع جدًا حول Win32).ويبدو أنه لم يتم إجراء أي تغييرات تقريبًا على System.Windows.Forms في كل من .NET 3.0 و3.5

</speculation>

سأستخدم Java أو Air.

أعتقد أنه طالما أنك تتأكد من أن كود منطق الأعمال الذي تكتبه هو عبارة عن منصة مشتركة (أي.استخدام الخطوط المائلة العكسية في المسارات يعمل فقط على نظام التشغيل Windows - تعمل الخطوط المائلة للأمام على جميع أنظمة التشغيل)، فلا ينبغي أن يواجه Mono مشكلات كبيرة في تشغيل برنامج WinForms غير المعدل.فقط تأكد من اختبار مواطن الخلل الرسومية.

لقد طرحت سؤالا مماثلا في الأسبوع الماضي.لقد كنت أستخدم Mono طوال الوقت، ولم أواجه أية مشكلات في تشغيل التطبيقات التي أقوم بتجميعها إلى IL لتشغيلها على SuSE linux (عادةً ما أقوم بتشغيل KDE) أو Windows، ومع ذلك، لم أخرج وحصلت على جهاز Mac بعد لاختباره عليه.سأكون قريبًا، على الرغم من ذلك، ربما في غضون أسبوعين.لكن كل التطويرات في Mono كانت جيدة جدًا في إنشاء التطبيقات التي سيتم تشغيلها على منصات متعددة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top