n-tier تصميم الموقع الخلفية الصفقة المعالج

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

  •  06-07-2019
  •  | 
  •  

سؤال

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

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

السؤال الآن, مع N-Tier ، فإنها تشير إلى جديد BLL لكل تطبيق.مع تخطيط تطبيق ما سبق ، يمكن القول أن الخلفية المعالج و الموقع هو واحد التطبيق في انسجام أو اثنين من تطبيقات مختلفة منطق الأعمال.ما يمكن أن يكون الطريقة المثلى للتعامل مع هذا ؟ قد يعمل مثل نظام واحد أو اثنين ؟

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

المحلول

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

والمنطق المجال هو "التقليدي" منطق الأعمال، وكيف من المفترض الأشياء للعمل، ما يتطلب (التحقق)، الخ منطق تطبيق أي شيء غير محددة إلى عرض تقديمي معين من المجال الخاص بك، IE عندما يقوم المستخدم بالنقر فوق هذا زر الإرسال في تطبيق ويب الخاص بك، ثم يتم توجيههم إلى صفحة الويب هذه أكثر من هنا (لاحظ أن هذا له <م> لا شيء يتعلق بكيفية التطبيق WinForms عناصر أو معالج خلفية ستعمل). يجب أن يعيش منطق التطبيق في التطبيق الخاص بك. يجب أن يعيش المنطق المجال في BLL وأقل، وتكون قابلة لإعادة الاستخدام عبر مختلف التطبيقات التي قد تستخدم المشترك "منطق الأعمال" الخاص بك.

ونوع من إجابة عامة، ولكن آمل أن يساعد.

نصائح أخرى

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

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

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

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

وأود أن الحفاظ على الأعمال المشتركة المنطق مكتبة برمجة واجهات بالكامل فصل من الاهتمامات الأخرى.

والطريقة "المثلى" للقيام بذلك تعتمد على المشروع في متناول اليد والاحتياجات المختلفة للنظام.

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

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