أفضل طريقة للإشارة إلى كائنات الأعمال من طبقة العرض التقديمي..؟

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

سؤال

أرغب في تطوير تطبيق مؤسسي يتضمن طبقة العرض التقديمي WindowsForms ومكونات الطبقة المتوسطة لمنطق الأعمال والوصول إلى البيانات وقاعدة بيانات MsSQL Server.يجب أن تحتوي مكونات الطبقة الوسطى على بعض كائنات الأعمال وسيتم استدعاؤها من طبقة العرض التقديمي باستخدام .NET Remoteing.ما هي أفضل طريقة (ولماذا) للإشارة إلى كائنات الأعمال هذه من طبقة العرض التقديمي؟

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

المحلول

ربما لا توجد إجابة واضحة ومحددة لهذا السؤال، فهذا يعتمد على ما تفعله.

  • أ سيكون في كثير من الأحيان جيدًا بما فيه الكفاية في كثير من الحالات.بالنسبة لمشروعات "التطبيق الفردي" الصغيرة، لا يوجد أي سبب يمنعك من الرجوع إلى مكتبة كائنات الأعمال مباشرةً من طبقتي واجهة المستخدم وBL.إنها بالتأكيد الأبسط، وفي بعض الأحيان تكون البساطة هي الأفضل.

  • ب ربما هو "الأفضل"، فسوف تقوم بتجريد تطبيقاتك الفعلية بعيدًا حتى تكون التغييرات المستقبلية ممكنة دون فسخ العقود، ويكون اختبار الوحدة أسهل إذا كان لديك واجهات.الميزة الأخرى لهذا هو أنك لن تجد صعوبة كبيرة في التبديل من B إلى C في المستقبل إذا وجدت ذلك ضروريًا.

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

بشكل عام، دون معرفة مجال التطبيق أو نطاقه بالضبط - ب هي نقطة انطلاق جيدة.

نصائح أخرى

لقد رأيت جميع الأساليب الثلاثة تعمل بشكل جيد.

ما يمكن أن يكون جيدًا في بعض الأحيان هو البدء بـ A، ثم مع زيادة التعقيد، انتقل إلى B، ثم C.

في المشاريع البسيطة، يمكن تضمين "كائنات الأعمال" في نفس المشروع مثل طبقات العرض والثبات - على الرغم من أن الأمر قد يبدو بدعة، إلا أن تعريف الكائنات باستخدام مساحات أسماء مختلفة يمكن أن يوفر فصلًا كافيًا بين "الطبقات".

قد ترغب في إعادة النظر في استخدام .NET Remoting - تعد WCF تقنية أفضل بكثير وأسهل في الاستخدام.

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