سؤال

إذا كنت تريد كتابة تطبيق واجهة المستخدم الرسومية (GUI) الذي يتم تشغيله محليًا ويستدعي خدمة ويب، ليكون عبر الأنظمة الأساسية، فهل يمكنك القيام بذلك باستخدام .Net، ما هي الأدوات التي توصي بها؟

كنت أفكر في Java لأنه سيكون من السهل نسبيًا تعلمها نظرًا لتشابهها مع C# ومن ثم يمكنني استخدام JVM.

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

المحلول

يجب أن تتعرف على مشروع مونو و MonoDevelop;الغرض الصريح من هذه المشاريع هو السماح ببناء وتشغيل تعليمات NET البرمجية على مجموعة متنوعة من الأنظمة الأساسية، بما في ذلك Windows وLinux وMac OSX.

نظرًا لأن Mono عبارة عن إعادة تنفيذ لـ .NET، فهو دائمًا يتخلف قليلًا عن Microsoft.NET، لكن لديهم تغطية جيدة لـ .NET 2.0 وبعض ميزات .NET 3.x.لاحظ أن Mono ينفذ ثنائيات .NET، لذا طالما أن ميزات برنامجك مدعومة بواسطة Mono، يمكنك أخذ تطبيق EXE الذي التزمت به على Windows وتشغيله على Linux/Mono دون إعادة الترجمة.

نصائح أخرى

خيار آخر جديد نسبيًا لتطوير .NET عبر الأنظمة الأساسية هو استخدام Eto.Forms Framework مفتوح المصدر، والذي يسمح لك بالحصول على قاعدة تعليمات برمجية واحدة لواجهة المستخدم تستهدف مجموعة الأدوات الأصلية لكل نظام أساسي.

بالنسبة لنظام التشغيل Windows، يستخدم WinForms أو WPF، وبالنسبة لنظام التشغيل Linux، يستخدم GTK#، وبالنسبة لنظام التشغيل OS X يستخدم MonoMac/Cocoa.

هناك أيضًا منافذ متنقلة (iOS/Android) قيد التطوير.

https://github.com/picoe/Eto

من الأفضل أن تكتبه باستخدام مجموعة أدوات متعددة المنصات.على الأرجح أنك لن تكون قادرًا على استخدام مصمم مرئي لطيف (يعتمد هذا حقًا على مجموعة الأدوات التي تختارها)، ولكن كتابة واجهة المستخدم يدويًا ليست بهذه الصعوبة حقًا.يقوم شباب HTML بذلك طوال الوقت وهي ممارسة شائعة جدًا في العالم غير المخصص لـ MS أيضًا.

بعض مجموعات أدوات واجهة المستخدم عبر الأنظمة الأساسية مع روابط .NET

  • جتك# (المعيار الفعلي لتطوير Mono، مونو ديفيلوب IDE لديه مصمم نموذج مدمج يستخدم مجموعة الأدوات هذه)
  • wxNET (يعتمد على wxWindows، وهو ناضج تمامًا ولكن سيتعين عليك إنشاء واجهة المستخدم الخاصة بك يدويًا)
  • كيوتو (استنادًا إلى QT، ربما يكون أفضل من wxWindows ولكن قد تحتاج إلى ترخيص تجاري من Trolltech إذا لم يكن لتطبيقك ترخيصًا مفتوح المصدر)

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

كثرة الوحيدات هو الخيار الوحيد حاليا.يعمل على هذه المنصات.وستكون هناك مشاكل، ليست بالضرورة ضخمة، لكنها لا تزال قائمة.

تفحص ال مشروع مونو

ألقِ نظرة أيضًا على سيلفرلايت أو فلاش لتطبيقات الإنترنت الغنية.

وكما قيل سابقاً، مشروع مونو هو أفضل رهان لك نظرًا لدعم المجتمع.

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

لقد كتبت مؤخرًا تطبيقًا صغيرًا لواجهة المستخدم الرسومية C# على Linux، وقمت بتجميعه وتشغيله باستخدام mono.لقد وجدت أنه يتعين علي استخدام برنامج التحويل البرمجي "gmcs" حتى أتمكن من الوصول إلى ميزات C# و.Net الحديثة (يأتي الإصدار mono 1.9 مزودًا بالعديد من برامج التحويل البرمجي المختلفة).

وعند تجميع ملف exe.، وجدت أنه يتعين علي إضافة مفتاح التبديل "-target:winexe" لتشغيل التطبيق على Windows دون الحاجة إلى ظهور سطر أوامر خلف التطبيق.

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

بصراحة سأقوم بتقييم قاعدة عملائك ومهاراتك الحالية.إذا حصلت على تقسيم بنسبة 50/50، أو حتى تقسيم بنسبة 70/30 لنظام Windows إلى نظام غير Windows، فمن الأفضل أن تكون في وضع أفضل باستخدام Java أو مجموعة أدوات أخرى مشتركة بين الأنظمة الأساسية.

Mono عبارة عن منصة لائقة (انظر تم طرح سؤال SO هذا منذ حوالي أسبوع)، ولكن إذا كنت تفعل أي شيء مهم، فسأختار مجموعة أدوات مصممة لذلك.

راجع للشغل، إذا كنت تريد أن ترى كيف يبدو تطبيق .NET GUI على Mono، فإليك المنشور الذي قمت به عندما قمت بتشغيل NUnit GUI على Mono:

http://www.cornetdesign.com/2006/07/nunit-gui-running-green-on-monolinux.html

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