سؤال

انا جديد في الشركة (2 أسابيع) و بدأنا منصة جديدة على النظام باستخدام .NET framework 3.5 فريق مؤسسة من دوتنت نوك.لدينا "مهندس" يقترح نستخدم فئة واحدة المشروع.بالطبع أنا تتناغم مع "3-الطبقة" العمارة (الأعمال التجارية ، البيانات ، ويب فئة المشاريع).

هل هناك أي عيوب لاستخدام هذه العمارة ؟ برو سيكون فصل رمز من البيانات, حفظ كائنات فئة قليلة من التعليمات البرمجية الخاصة بك ، إلخ.

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

المحلول

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

كل شيء على ما هو مناسب لحجم المشروع ، المتوقع من المشروع النهائي و الميزانية!في بعض الأحيان, في حين لا تفعل الأشياء بشكل صحيح' جذابة تفعل شيئا أكثر من ذلك بقليل 'خفيفة' يمكن التجارية حق القرار!

نصائح أخرى

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

وأود أن تضغط بقوة من أجل N نهج متدرج حتى لو كان مشروع صغير.إذا كنت تستخدم أداة ORM مثل codesmith + nettiers سوف تكون قادرة على بسرعة إعداد مشاريع تطوير البرمجية التي يحل مشاكل العمل بسرعة.

فهو يقتل لي عند بدء مشروع جديد و قضاء أيام الجلوس حول عجلات الغزل يتحدث عن "العمارة" يجب أن يكون بالحلول.كنت تريد أن تنفق الوقت في حل مشكلة لا حل المشاكل التي حلها لك.باستخدام ORM (لا يهم حقا أي واحد, مجرد اختيار واحد والتمسك به) لمساعدتك على الحصول الأولي الجر سوف تساعد على إبقاء لكم ركزت على أهداف المشروع و لا يصرف تحاول حل "العمارة" القضايا.

إذا, في نهاية اليوم, مهندس يريد أن يذهب واحد نهج المشروع ، ليس هناك سبب لا يمكنك إنشاء مجلد app_code مع BLL الدال مجلد منفصل رمز الآن والتي سوف تساعدك على الانتقال إلى N-طبقات حل في وقت لاحق.

لأنك تريد القدرة أن تكون قادرة على توزيع طبقات على مستويات مادية مختلفة (أنا دائما استخدام "الطبقة" المادية ، و "طبقة" المنطقية) ، يجب عليك التفكير مرتين قبل أن مجرد وضع كل شيء في صف واحد لأن لديك الرئيسية refactorings تفعل إذا أو عندما تحتاج إلى البدء في توزيع.

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

أيضا, حتى إذا كان النظام الخاص بك هو صغير في هذه اللحظة ، قد ترغب في إضافة المزيد من الميزات إلى ذلك في وقت لاحق-لن-ن المتدرج قد consitute نوع من الديون التقنية على الجزء الخاص بك ، لذلك عليك أن تكون حذرا.

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

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

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

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