سؤال

أنا أتطلع إلى كتابة بعض التعليمات البرمجية C# لينكس/ويندوز/ماك/أي منصة أخرى ، وأنا أبحث عن أفضل الممارسات رمز المحمولة.

المشروع مونو رائعة ترقية الموارد.

ما هي أفضل الممارسات المحمولة C# ؟

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

المحلول

لقد استخدمت فعلا winforms وكان على ما يرام.كانت قبيحة ، لكنه يعمل.

لا تستعمل P/استدعاء أو أي win32 الاشياء مثل التسجيل.أيضا أن تكون على بينة من أي طرف ثالث DLL.على سبيل المثال, نحن نستخدم طرف ثالث سكليتي dll الذي يحتوي على التعليمات البرمجية الأصلية في ذلك الذي يجب أن مبادلة إذا كنا نريد تشغيل ماك/لينكس.

نصائح أخرى

أنا أكره مصطلح "أفضل الممارسات" لأنه يبدو أن بعض الممارسات يمكن أن يكون أفضل في أي سياق ، وهو شيء خطير, ولكن انا اقول ما أعتبره "الممارسات الجيدة" على منصة متعددة رمز (و هو نوع من التطوير):

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

يبدو أكثر تعقيدا ؟ حسنا ، إذا كنت حقا بحاجة إلى دعم منصات متعددة ، من الأفضل أن تفعل ذلك.مهما كنت حذرا مع التعليمات البرمجية الخاصة بك و مكتبة الاستخدام ، إذا كنت اختبار في وقت متأخر جدا, سوف تجد نفسك تنفق looong ساعات إعادة صياغة أجزاء كبيرة من التطبيق.

احترس من أي شيء للقيام مع اسم الملف والمسار التلاعب واستخدام المحمولة .صافي الطرق في النظام.IO.المسار ie.

بدلا من:

string myfile = somepath + "\\file.txt";

هل:

string myfile = Path.Combine(somepath, "file.txt");

إذا كنت بحاجة إلى تحديد مسار فاصل ثم يمكنك استخدام مسار.فاصل الخ

لا تستخدم " " على خط جديد.استخدام البيئة.السطر

تذكر :

  • *لا يستخدم فقط حرف السطر الجديد (" ")
  • يستخدم Windows " "
  • ماكنتوش يستخدم " " (مع أني لست متأكد من هذا - لا تتردد أن تصحح لي).

L. E.:يبدو أن بعض أحدث MacOSes لا تستخدم " " خط فاصل بعد الآن.

لا تستخدم ويندوز.أشكال واجهات, ولكن أحادية ربما ذكر ذلك بالفعل.Gtk# هو أكثر من ذلك بكثير متسقة وموثوق بها عبر منصة واجهات.

قبل بضع سنوات كنت قد نصحت لك لشراء نفسك نسخة من الكتاب على عبر منصة .صافي ، ولكن الكتاب إلى حد ما خارج التاريخ الآن كنت حقا بحاجة إلى التمسك معلومات أحادية الموقع.

على أحادية الهجرة محلل (موما) هو أداة جيدة لتحليل وهو exsisting .NET و تحذير من قابلية مشاكل, ولكن أفضل رهان القانون الجديد هو استخدام أحدث نسخة مستقرة من أحادية أجل تطوير العمل.

كما أوريون قال عليك أن تكون حذرا عند استخدام 3rd الطرف DLLs ، على الرغم من أن المؤلف المشارك كتب NativeProbe أداة تحليل دلس ف/استدعاء dependenecies إذا كنت لا تريد أن تحقق بسرعة 3rd الطرف البرمجيات.

إذا كنت عازمة على تطوير على مايكروسوفت .صافي ثم عليك أن تحاول التأكد أيضا بناء وحدة الاختبار على أحادية ، و يجب أيضا احترس من عدد من ويندوز مساحات محددة مثل مايكروسوفت.Win32 و النظام.إدارة مساحات الأسماء.

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

هناك بعض الأشياء البسيطة.مثل لا تفترض مسار الشخصيات.أو أسطر.

أنا واحد من الناس الذين بانتظام يجمع NUnit على أحادية على لينكس أو ماك.

أيضا, لا تفترض أن المجمعين تعمل بالضبط نفس الشيء.لقد وجدت مشكلة في الآونة الأخيرة حيث MS C# compiler يبدو بما في ذلك الأشياء التي أحادية لا تتطلب مراجع إضافية في بناء السيناريو.

بخلاف ذلك ، فقد كانت واضحة جدا.أتذكر المرة الأولى لدينا واجهة المستخدم الرسومية تعمل على أحادية/لينكس - كان من المثير جدا (حتى لو كان كان قبيحة جدا)

واحد في عداد المفقودين البند:تأكد من أن أسماء الملفات حساسة لحالة الأحرف.الملف.فتح ("MyFile.txt");لن تعمل على يونكس إذا كان لديك ملف اسمه myfile.txt.

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