سؤال

لا تضع الكثير من سطح المكتب / نماذج Windows التطبيقات ، ولكن ذلك قد خطر لي أنه قد يكون هناك بعض الفوائد باستخدام MVC (Model View Controller) نمط نماذج Windows .صافي التنمية.

وقد أي شخص تنفيذها MVC في نظام التشغيل Windows النماذج ؟ إذا كان الأمر كذلك ، هل لديك أي نصائح حول التصميم ؟

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

المحلول

ما قمت به في الماضي هو استخدام شيء مشابه ، نموذج عرض مقدم.

[ملاحظة:هذه المادة تستخدم لتكون متاحة على شبكة الإنترنت.أن ترى ذلك الآن, سوف تحتاج إلى تحميل آلية غرفة تبادل المعلومات ، ومن ثم عرض خصائص الملف ثم انقر فوق إلغاء الحظر.ثم يمكنك فتح CHM والعثور على المادة.شكرا مليون, مايكروسوفت! تنفس الصعداء]

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

إذا كان لي أن استخدام كامل Model-View-Controller, أعتقد أنني كنت تفعل ذلك بهذه الطريقة:

  • شكل هو عرض.يرسل الأوامر إلى نموذج يثير الأحداث التي تحكم يمكن الاشتراك و تؤيد الأحداث من النموذج.
  • على تحكم هي الفئة التي تؤيد عرض أحداث ويرسل الأوامر إلى عرض النموذج.
  • على نموذج تثير الأحداث التي عرض تأييدها.

هذا من شأنه أن يصلح مع الكلاسيكية MVC الرسم البياني.أكبر عيب هو أنه مع الأحداث ، يمكن أن يكون من الصعب معرفة من هو الاشتراك ما.MVP نمط يستخدم أساليب بدلا من الأحداث (على الأقل لم تنفذ ذلك).عندما شكل/عرض يرفع الحدث (مثلا ، someButton.انقر فوق) ، شكل ببساطة يدعو الأسلوب على مقدم لتشغيل المنطق لذلك.عرض نموذج لم يكن لديك أي اتصال مباشر على الإطلاق ؛ كلاهما يجب أن تذهب من خلال مقدم.

نصائح أخرى

حسنا, في الواقع نماذج Windows تنفذ "مجانا على غرار" نسخة من MVC, مثل بعض الأفلام تنفيذ بعض كربي "مجانا على غرار" تفسير بعض الكتب الكلاسيكية (روميو & جولييت تتبادر إلى الذهن).

أنا لا أقول نماذج Windows تنفيذ سيئة ، إنها فقط...مختلفة.

إذا كنت تستخدم ويندوز أشكال السليم OOP تقنيات و ربما ORM مثل EntitySpaces الخاص بك الوصول إلى قاعدة البيانات, ثم هل يمكن أن نقول أن:

  1. ORM/OOP البنية التحتية هو النموذج
  2. أشكال آراء
  3. معالجات الحدث هي تحكم

على الرغم من وجود عرض وحدة تحكم ممثلة نفس الكائن جعل فصل رمز من التمثيل وسيلة أكثر صعوبة (لا يوجد طريقة سهلة المكونات في "GTK+ عرض" في فئة مشتقة من Microsoft.يقوم نظام ويندوز.أشكال.شكل).

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

نماذج Windows ليست مصممة من الألف إلى الياء باستخدام MVC.لديك خياران.

أولا, يمكنك لفة الخاص بك تنفيذ MVC.

ثانيا يمكنك استخدام إطار MVC تصميم نماذج Windows.

الأول هو بسيط للبدء به ، ولكن أيضا في الأمر أكثر تعقيدا من ذلك.أقترح أن تبحث عن الخير ، الإيجاد و مجربة, MVC framework مصممة للعمل مع Windows Forms.أعتقد هذا بلوق وظيفة هو نقطة انطلاق لائقة.

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

ووفقا لمايكروسوفت ، UIP التطبيق كتلة ذكرها @jasonbunting هو "المحفوظة." بدلا من البحث في الذكية تطبيق العميل كتلة أو حتى أحدث الذكية برنامج العميل مصنع, الذي يدعم كلا من WinForms و WPF SmartParts.

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

"إن UIP كتلة تطبيق يستند إلى نموذج-view-controller (MVC) النمط".

نلقي نظرة على MS الأنماط والممارسات الذكية تطبيق العميل الكتلة التي لديها بعض التوجيهات و الطبقات التي المشي لكم من خلال تنفيذ نموذج عرض مقدم طقطق في نماذج windows - نلقي نظرة على تطبيق المرجعية المدرجة.

ل WPF هذا يجري superseced من قبل المنشور المشروع

البرنامج المصانع النهج هو وسيلة رائعة لتعلم أفضل الممارسات

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