هل من المقبول أن يكون لديك رمز في جذر المشروع؟

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

  •  10-07-2019
  •  | 
  •  

سؤال

أحاول التوصل إلى أفضل الممارسات بشأن بنية دليل المشروع.

آخر أفكاري هي أنه لا ينبغي أن تكون هناك فئات في الدليل الجذر للمشروع.يجب أن تندرج كافة الفئات ضمن أحد الدلائل التالية

  • واجهة المستخدم
  • الكائنات الأعمال
  • منطق الأعمال
  • الدخول الى البيانات

أود أن أسمع أشخاصًا آخرين يفكرون فيما إذا كانت هناك حالات استخدام لوضع الأشياء على مستوى الجذر أو العثور على فئات لا تتناسب معها

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

المحلول

إذا كنت تتحدث عن C#، فسأقوم بفصل DAL وBLL وGUI إلى مشاريع مختلفة بدلاً من مشروع واحد.ولها حل واحد.سيؤدي هذا إلى فرض وجود كل ملف تعليمات برمجية داخل أحد المشاريع.

لقد قمت بإضافة مثال:

  • حل:اسم المشروع
    • مشروع:دال (مساحة الاسم:اسم المشروع.DAL)
      • مجلد:المستودعات (مساحة الاسم:اسم المشروع.DAL.المستودعات)
      • مجلد:العقود (مساحة الاسم:اسم المشروع.DAL.العقود)
      • الملفات:تكوين تعيين الكيان الخاص بك
    • مشروع:BLL (مساحة الاسم:اسم المشروع.BLL)
      • مجلد:الخدمات (مساحة الاسم:مشروع.BLL.الخدمات)
      • مجلد:الكيانات (مساحة الاسم:المشروع.BLL.الكيانات)
      • الملفات:فئات تكوين IoC/منطق الأعمال العام
    • مشروع:مشترك (مساحة الاسم:اسم المشروع.مشترك)
      • الملفات:المنطق المشترك العام عبر التطبيق بأكمله (على سبيل المثال ثابت InvalidIdentifier)
      • يجب ألا يشير هذا المشروع إلى مشاريع أخرى في الحل..
    • مشروع:موقع الويب (مساحة الاسم:اسم المشروع.موقع الويب)
      • واجهة مستخدم موقع asp.net الخاص بك
    • مشروع:Winforms (مساحة الاسم:اسم المشروع.Winforms)
      • واجهة مستخدم Winforms الخاصة بك

إذا أمكن، يجب عليك إعطاء موقع الويب ومشروع winforms اسمًا مرتبطًا بتطبيقك.

نصائح أخرى

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

الملفات الوحيدة التي أضعها في المجلد الجذر هي Program.cs و Program.ico (إذا كان تطبيقًا قابلاً للتنفيذ).

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

أضع دائمًا الفئة الأساسية لاستثناءات مشاريعي في الجذر.

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