سؤال

كنت أعمل حاليًا على تطوير تطبيق سطح مكتب بلغة C# باستخدام mono واختباره في SuSE وWindows.لا يهم هذا المفهوم كثيرًا، ولكنه عبارة عن برنامج "web lint" الذي سيقوم بفحص موقع ويب وإرجاع المشكلات المحتملة المتعلقة بالأمان و/أو التوافق عبر المتصفحات.ومع ذلك، أريد أن أكون قادرًا على تقديم الثنائيات لمنصات متعددة.هل يجب أن أبقى مع Mono، أم أن هناك نظامًا أساسيًا آخر من شأنه أن يمنحني توفرًا أفضل للمنصات، مثل أجهزة Mac وWindows وLinux وغيرها (ربما منصات متنقلة)، ويجعل النقل أسهل؟

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

المحلول

من المحتمل أن تكون C# وMono مشتركة بين الأنظمة الأساسية بما يكفي لمعظم بيئات سطح المكتب.ستكون الحيلة هي متطلبات "المنصة المتنقلة".

تتنوع أنظمة تشغيل الأجهزة المحمولة بشكل كبير وليس هناك الكثير مما يمكنك فعله للتعميم.البعض لديه جافا، مثل بلاك بيري.قد تنقلك لغة C# إلى الأنظمة الأساسية المستندة إلى Windows Mobile.أجهزة iPhone تفعل شيئًا خاصًا بها.يتعين عليك إلى حد كبير اختيار منصة واستهدافها.قد يؤدي ذلك في النهاية إلى إعلام اختيار النظام الأساسي لسطح المكتب الخاص بك.

نصائح أخرى

حسنًا، أفضل رهان لك دائمًا هو استخدام لغة موجودة بالفعل على جميع الأنظمة الأساسية.أعتقد أن هذا يعني عادةً Java، على الرغم من أن لغة Perl لديها نكهات لمنصات الأجهزة المحمولة (اعتمادًا على منصة الهاتف المحمول المعنية).

أقوم بمعظم أعمالي عبر الأنظمة الأساسية باستخدام C وPerl، ولكن هناك بعض المشاكل مع C (الكثير من #ifdef's)، وقد لا يكون Perl موجودًا على منصة متنقلة تهتم بها (حتى الآن).سيتعين عليك تقييم اللغات/المترجمين/المترجمين الفوريين المشتركين بين جميع الأنظمة الأساسية التي تريد استهدافها ثم الاختيار من تلك القائمة.وبدون معرفة القائمة الكاملة لهذه المنصات، سنواجه صعوبة في إخبارك بما يجب استخدامه، على الرغم من أن Java تتمتع بما يكفي من الكلمات الطنانة التي من المحتمل أن تكون مرشحًا قويًا.

إذا كنت تعرف C++، كيو تي سوف تغطي العديد من المنصات.

ما عليك سوى التمسك بـ Mono، وتأكد من أن مفتش كود Gendarme (FxCop for Mono) يتحقق من الكود الخاص بك بحثًا عن مشكلات قابلية النقل، ويجب أن تكون على ما يرام.

سيتم تشغيل Java على أنظمة التشغيل Windows وLinux وMac.يجب أن يكون من السهل الانتقال من C# - استخدم Apache HTTPClient للحصول على محتوى الويب الذي تقوم بمسحه ضوئيًا، ويجب أن يكون رمز المسح هو نفسه تقريبًا.ومع ذلك، فإن الجانب السلبي يتطلب من المستخدم تثبيت وقت تشغيل Java.

تعد Python خيارًا آخر - يمكنك إنشاء ملفات تنفيذية مستقلة لنظام التشغيل Windows، وهي تأتي مع معظم توزيعات Linux افتراضيًا، وكذلك نظام التشغيل Mac OS X (بحاجة لمصدر؛) ).يعد هذا أمرًا أقل إزعاجًا لمستخدمي Windows (يتم تجميع اللغة في الملف القابل للتنفيذ، ولا يلزم تنزيلات أخرى).

إذا كان نظام mono يعمل على نظام التشغيل Mac OS X، فمن المؤكد أن هذه منصة جيدة أيضًا؟

يعتمد الأمر حقًا على ما تريد القيام به.بالنسبة لتطوير الويب، إذا كان HTML/JavaScript كافيًا، فالتزم به.إذا كنت بحاجة إلى المزيد من الأشياء المتقدمة، فسأستخدم ASP.NET مع Mono (وهو ما ربما فعلته) لأنك تعرف ذلك بالفعل.(يمكنك استخدام Visual Studio هنا.)

قد يكون هناك خيار آخر (نظرًا لأنك مطور C#) لاستخدام Silverlight.وهذا يمنحك منصات Windows وMac المغطاة ونأمل ضوء القمر سوف تغطي منصة Linxu في وقت لاحق.(يمكنك استخدام Visual Studio وExpression Blend هنا.)

إذا كنت بحاجة إلى تطبيق سطح مكتب، فربما تكون Java هي الأسهل لأنك تعرف C# بالفعل.ولكن إذا كنت تعرف C/C++ حاول إلقاء نظرة عليه wxWidgets على سبيل المثال.

لماذا تقتصر على لغة C#/Java التقليدية؟ألق نظرة على Adobe AIR وMicrosoft SilverLight

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