كيف يمكنني دمج نمط ASP .Net Model View Presenter (MVP) وأساليب الصفحة الثابتة المميزة بـ [WebMethod]؟

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

  •  02-07-2019
  •  | 
  •  

سؤال

في تطبيق asp.net، أرغب في الجمع بين استخدام Webclient Software Factory (WCSF) ونمط عرض نموذج العرض (MVP) المرتبط به، مع طريقة الصفحة، وهي أساليب ثابتة في طرق عرض .aspx المميزة بـ سمة [WebMethod]

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

كيف يمكن توسيع نمط MVP الخاص بـ asp .net في WCSF لدعم [WebMethods] على الصفحة، المعروف أيضًا باسم العرض؟

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

المحلول

لقد واجهت مشكلة مماثلة مؤخرًا عند القيام بمشروع من نمط MVP وأردت الكثير من تكامل AJAX.من الأفضل أن يكون لديك خدمات ويب تتوافق مع نمط MVP الذي تتصل به.

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

الوجه الآخر للعملة هو ما يفعله PageMethod الخاص بك، إذا كانت طريقة صفحتك لا تحتاج إلى التفاعل مع النموذج (على سبيل المثال، فهي تتعامل مع الحسابات الحسابية المعقدة التي تكون أسرع في C#/VB.NET من JS) فإن العملية تكون إنها حقًا عملية على مستوى واجهة المستخدم وربما لا تكون ذات صلة إذا كنت تريد تحويل التطبيق إلى WinForm (أو أي شيء آخر).

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

نصائح أخرى

أعتقد أنه يمكنك الاقتراب مما تبحث عنه باستخدام خدمة ويب ASP.Net AJAX بدلاً من أساليب الصفحة الثابتة.تتميز خدمة الويب بأنها ليست ثابتة، واعتمادًا على كيفية تنفيذ طرق العرض الخاصة بك، (لست على دراية بتفاصيل نمط WCSF MVP)، فمن المحتمل أن تجعل خدمة الويب طبقة "العرض" الخاصة بك.. أو على الأقل شيء قريب إلى حد ما.

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

أحد الأشياء التي أعجبتني في هذا النهج هو أن جميع الأجزاء، بما في ذلك خدمة الويب، قابلة للاختبار.

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