سؤال

كنت أتساءل حالات الحافة الموجودة التي يمكن أن تجعل توافق مواصفات اللغة العامة مقبول. حتى عندما لا تنوي الوصول إليها من لغات أخرى، أعتقد أن المرتبطات المؤكدة من قبل CLSCompliantAttribute هي أفضل الممارسات جيدة.

هل واجهتك / تعرف الحالات التي ياجنان يفوق أفضل الممارسات؟

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

المحلول

[SIC] ما هو الاستخدام هناك لكونه متوافق مع CLS؟"

ثقة متوسطة, ClickOnce., ، يعمل من محرك أقراص شبكة مشترك، ملفات تعريف ضيف في إعداد مجال، إلخ. هناك الكثير من المواقف الأمنية حيث لا يمكن تشغيل الكود الخاص بك إذا قمت بقطع الامتثال CLS.

لقد شاهدت شخصيا الكثير من المواقف التي يحاول فيها المستخدمون تشغيل تطبيقهم من محرك أقراص شبكة مشترك ولا يمكن أن يكون المشرف المحلي قد قتل تطبيقات متوافقة مع CLS في ملف التعريف الأمني.

بشكل عام، هناك عادة طرق للتغلب على القضية على أي حال. سأأخذ النهج المعاكس للتعليقات أعلاه، لماذا كسرها؟ أنت تكتب شفرة مدارة، لماذا تريد الحد من طلبك عن قصد؟

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

نصائح أخرى

حسنا، "Params" صفائف على السمات في بعض الأحيان تكون في بعض الأحيان مغرية (ولكن غير متوافق). لكنني أوصي باستخدام نهج متوافقة مع CLS كلما أمكن ذلك.

أعتقد أنه من المقبول بالنسبة للمكتبة الداخلية إلى منتج عند العمل مع الطبقات القديمة التي تتطلب هذا النوع من الميزات أو لأسباب الأداء.

ولكن يجب بعد ذلك إعادة إخراج هذه الواجهات غير المطابقة على مستوى أعلى.

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