سؤال

هل حاولت استخدام MVC أو أي نمط واجهة مستخدم آخر لرمز عميل GWT.ما هي المزالق/المزايا التي واجهتها في الأساليب المختلفة؟

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

المحلول

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

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

نصائح أخرى

تمت مناقشة نمط MVC لـ GWT في هذا سؤال, ، والذي يحتوي أيضًا على رابط لهذا التعمق مشاركة مدونة.

الشيء الوحيد الذي أود إضافته هو أن الكود الجانبي للعميل بأكمله يمكن اعتباره "V" في "MVC"، مما قد يغير الطريقة التي تنظر بها إليه.عند التفكير في التعليمات البرمجية من جانب العميل باعتبارها مكون MVC المتداخل الخاص بها، حسنًا، إنها Java، وهي موجهة للكائنات، لذا يمكن تصميمها مثل تطبيق Swing إلى حد كبير.أعتقد أنه من مصلحتك سحب أكبر قدر ممكن من كود وحدة التحكم من العرض قدر الإمكان للتعامل مع عناصر GWT RPC.في بعض الأحيان يكون النموذج أكثر إشكالية، لأنه قد يتعين عليك أن تقرر ما إذا كنت تريده على الخادم بدلاً من العميل.أو إنشاء وكيل نموذجي، وما إلى ذلك.

http://code.google.com/p/gwt-mvc/ يمكن أن تساعدك.

الإيجابيات :

  • وحدة تحكم سهلة القراءة
  • إدارة الرموز التاريخية
  • يتم اختبار وحدات التحكم باستخدام JMock (لكن ليس GwtTestCase)
  • MVC الهرمي
  • وراثة بسيطة لبدء ترميز طريقة العرض ووحدات التحكم والنماذج الخاصة بك.

هل حاولت GWTruts ( http://sourceforge.net/projects/gwtruts/ ) ؟ وهي أيضا مفتوحة المصدر GWT MVC الإطار التي تفصل عرض وتحكم في GWT

وعن طريق نوع من نوع MVC / MVP النمط المهم حقا عندما تصبح التطبيقات GWT خارج أصغر مشروع آخر لك التحكم فقط فضفاضة ما يجري.

وبصرف النظر عن ما سبق ذكره هناك أيضا تنفيذ GXT في MVC التي اطلعت على هنا: <لأ href = "http://www.bristol-gtug.org/؟p=45" يختلط = "نوفولو noreferrer "> http://www.bristol-gtug.org/؟p=45

وهذا الكلام في جوجل IO بدأ العام الماضي الكثير من الناس من التفكير في MVC / MVP على GWT: <لأ href = "http://code.google.com/events/io/2009/sessions/GoogleWebToolkitBestPractices.html "يختلط =" noreferrer نوفولو "> http://code.google.com/events/io/2009/sessions/GoogleWebToolkitBestPractices.html .

ولقد لاحظت في الآونة الأخيرة أن هناك أيضا الآن على البرنامج التعليمي على العمارة MVP في وثائق GWT وهي بداية جيدة: <لأ href = "http://code.google.com/webtoolkit/doc/latest/tutorial/mvp -architecture.html "يختلط =" نوفولو noreferrer "> http://code.google.com/webtoolkit/doc/latest/tutorial/mvp-architecture.html

يمكنك إلقاء نظرة على JetPad-Mappers، وهو إطار عمل MVC مبسط تم تطويره في JetBrains واستخدامه في العديد من المنتجات (التي لم يتم إصدارها حاليًا).

إخلاء المسؤولية، أنا منخرط في تطوير هذا الإطار.

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