سؤال

لدي تطبيق ASP.NET مع بنية ثلاثية ثلاثية:

  • طبقة العرض التقديمي: ASP.NET

  • طبقة Bussiness: مكتبة C #.

  • طبقة الوصول إلى البيانات: مكتبة C #
    كائنات إطار كيان ADO.NET.

ستعود بعض الأساليب في طبقة Bussiness كائنات كيان ADO.Net ولكن طبقة الوصول إلى البيانات غير مرئية في طبقة العرض التقديمي لا أستطيع القيام بذلك.

سؤالي هو: على طريقة عرض التصميم، هل صحيح لفضح كائنات الكيان في طبقة العرض التقديمي؟ أعتقد أنني لا بد لي فقط ربط مكتبة طبقة البيانات باستخدام تطبيق ASP.NET.

شكرًا لك!

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

المحلول

أقترح أن تنظر في مفاهيم الرؤية الكائنات ... أو كائنات نقل البيانات (DTO). قد تفكر في استخدام أداة مثل Automapper أو مماثلة مما يؤدي إلى إنشاء كائن مجال معين من كياناتك. بشكل عام، قد يكون لديك شاشات تحتاج إلى كيان موجود لأداء عملها. ولكن في كثير من الأحيان، ستحتاج إلى اجتياز العديد من الكيانات المختلفة. في هذه الحالة، أنت أفضل حالا لإنشاء DTO واحد يحتوي على كل هذه الكيانات. من خلال القيام بذلك، تقوم بإضافة طبقة من الفصل بين طبقة العرض التقديمي وطبقة عملك. في كثير من الأحيان تضم كياناتك قوة أكثر مما قد ترغب في فضح طبقة العرض التقديمي. و ... العكس. في كثير من الأحيان قد تحتاج إلى الحصول على بعض رسائل واجهة المستخدم إلى طبقة العرض التقديمي بناء على بعض التحقق من الصحة التي يتم وضع علامة عليها في طبقة عملك. بدلا من جعل UI أكثر تعقيدا مما يجب أن يكون (من خلال المرور في كياناتك الكاملة)، يمكنك فقط تمرير ما تحتاجه UI في شكل DTO. أيضا، لا توجد حاجة أبدا إلى كائنات عملك لرعاية أي شيء محدد لطبقة العرض التقديمي. أقترح عدم وجود بيانات DataBind مباشرة إلى أي شيء آخر مرة أخرى مثل طبقة الوصول إلى البيانات. من الناحية الفنية يجب أن تعرف طبقة التقديم الخاصة بك بأقل قدر ممكن حول طبقة عملك. في حالة MVP أو MVC، من السهل جدا تحقيقه عن طريق قطع النهاية الأمامي والنهاية الخلفية عن طريق هذا الفصل الإضافي!

نصائح أخرى

من المرغوب فيه مطلقا أن يكون لديك كائنات كيانك المتاحة للاستخدام والاستهلاك في مستويات العرض التقديمي. هذا ما هو كل العمل هو ل.

  • مجموعة ملزمة من الكائنات إلى الشبكة / ListView / المنسدلة
  • رش كائن واحد (أي العميل) على نموذج للقراءة / التحديث / حذف

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

قد تكون هذه كائنات كيان أو حتى كائنات Poco الخاصة بك التي كانت ترطيبها من كائنات الكيان.

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

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

يرى الإشراف على المراقب المالي و عرض سلبي

إذا قمت بنزال الكيان، فأنت تحكم في الأساس في تحكم. وإلا فأنت منظر سلبي.

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

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

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