سؤال

أنا في مشروع نحاول بناء استبدال GUI لتطبيق قديم. قبل أن ننفذ الوظيفة بالفعل، بدأنا النماذج الأولية باستخدام Eclipse RCP (منصة العميل الغنية) و GWT (Google Widget Toolkit، تطبيق إنترنت غني). ما هي تجربتك مع جيس RIA و RCP؟ متى يكون من المنطقي استخدام RIA وفي أي حالات عميل غني أكثر ملاءمة؟ مع إمكانيات RIA الحالية، يصبح أكثر صعوبة في رسم الخط .. هل لديك أي تجارب؟


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

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

المحلول

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

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

فيما يتعلق بالوظائف، فإن المنطقة الكبيرة التي ستصل فيها GWT، ستكون قصيرة تصورات البيانات الأكثر ثراء: الرسم البياني، الشجرة / العقدة، مخططات الشبكة، إلخ. هذه الأشياء ممكنة مع GWT وبعض المساعدة على الخادم ولكن قيود DHTML تبدأ إظهار، حتى مع مجموعة أدوات قوية مثل GWT. من ناحية أخرى، يمنحك RCP القوة الكاملة ل Java 2D لتصور أي شيء تريده. قد لا تكون هذه الأنواع من الميزات ضرورية لك ولكنها أيضا تلك التي تجعل التطبيقات مثيرة للاهتمام حقا، أكثر من مجرد فوضى عن علامات التبويب وضوابط شبكات الأشجار والبيانات.

لقد كنت أتطور مع Adobe Flex لعدة سنوات الآن وتجد أن تكون قوية حقا، حيث أن نفس أو أقل مزايا النشر نفسها كشيء مثل GWT ولكنه يقدم نفس النوع من القوة مثل RCP. قد ترغب في التحقق من ذلك أيضا.

نصائح أخرى

على الرغم من أن GWT يقطع شوطا طويلا، إلا أنه لا يمنح نفس المرونة وإمكانية الوصول إليها كتطبيق مناسب.

حتى Thhhg تطبيق GWT يمكن أن يفعل كل شيء تقريبا يمكن تطبيق حقيقي، يشير عدد من العوامل إلى أن RCP سيكون أفضل أداة.

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

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

RCP ونظام العمل ليس من السهل العمل مع، لكنك تحصل على الكثير مجانا إذا كان التطبيق سيستفيد من نموذج العمل "المجاني" والمفتوح مع عدة طرق عرض مفتوحة / محررين إلخ.

إذا كان التطبيق هو لمهام أكثر عرضية، فإن GWT جيد حقا.

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

تذكر أنه يمكنك استخدام Java WebStart لنشر تطبيقات RCP.

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

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

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

منذ فترة طويلة تم ترك نسخة RCP في الوظيفة. بقدر ما نشعر بالقلق، فإن الكسوف على ما يرام كبيئة تطوير (ل Java، ليس لدينا أي خبرة مع اللغات الأخرى) ولكن الجهد الذي وضعوه في تقسيم IDE من واجهة المستخدم الرسومية (لجعل RCP ممكن) ليس كذلك الى حد كبير تم الانتهاء من.

من ناحية أخرى، يبدو JQuery مخصص مخصص لهذا النوع من الأشياء (ربما لأنه تم تصميمه مخصص لهذا النوع من الأشياء). كل من تطوير وتشغيل التطبيقات لطيفة جدا.

تطبيقات الإنترنت الغنية هي طريقة جيدة لإجراء برنامج قوي يعمل مثل برنامج سطح المكتب التقليدي. مشكلة واحدة مشتركة مع RIA هي أن العديد من المطورين يميلون إلى وضع منطق الأعمال في رمز جانب العميل. منطق الأعمال والدول في رمز جانب العميل غير آمن للغاية حيث يمكن للمرء معالجة رمز جانب العميل في وقت التشغيل. بالإضافة إلى ذلك، إنه نظام Whitebox، والذي يسمح للمتسللين بفحص التعليمات البرمجية والعثور على نقاط الضعف، مثل التحقق من صحة الإدخال فقط في رمز جانب العميل أو الدول التلاعب به. لا تنخدع عن طريق التعرض، لأنها تبطئ فقط بقليل، ولكن لا يمنعه. كتب بيلي هوفمان كتابا جيدا عن أمن أجاكس (يسمى، تا الدعاء, "أمان Ajax") وأوصي به لكل مطور ريا.

هذا لا يعني أن RIA هو بحكم تعريفه سيئا، يمكنك كتابة RIA آمنة إذا كنت تعرف ما تفعله (لا يوجد منطق أعمال في رمز جانب العميل، ولا توجد أي ولاية، وصحة الإدخال [أيضا] على جانب الخادم، إلخ). هناك بضعة أطر تنفذ هذا خادم المؤمن مدفوعة RIA، واحد هو مجموعة أدوات مطحنة. (بناء على GWT) و ICEACES. يجب أن يكون أيضا واحدة لمعرفتي.

في تجربتي، يميل ريا لغوي إلى أن يكون قويا بما يكفي لتوصيل معظم المعلومات للمستخدمين. هناك بعض بعض الاستثناءات على الأرجح، لكنني لا أستطيع التفكير في واحدة جيدة الآن. تتمتع RIA بميزة الوصول إلى أي شخص من خلال متصفح الويب دون تثبيت عميل سميكة (RCP). ما لم يكن لديك بعض الشاشة المعقدة الخاصة التي لا يمكن القيام بها من خلال تقنيات الويب أوصي بتوجيه الطريق إلى RIA.

منظمة عملت في اختيار RCP لأن مستخدميهم بحاجة إلى العمل مع التطبيق عبر الإنترنت وغير متصل (عندما يكونون على الطريق، إلخ). أعلم أن هذا ممكن مع Google Grears الآن ولكن التروس لا تعميم حقا بما يكفي بالنسبة للتنظيم الكبير لتأسيس المنتج الرئيسي على ذلك. ولكن إذا لم يكن لدى المستخدمين الخاص بك الحاجة إلى عدم الاتصال بالإنترنت، فستحصل حقا على مشاحنات مزامنة بيانات المستخدم / تحديثات المنتج إلخ بين تطبيق RCP والخادم الخاص بك، وسوف تكون RIA هي الطريقة التي يجب أن تذهب في هذه الحالة.

هناك أيضا إمكانية نشر RCP مع بعض فوائد ريا. أحد الحلول التي يتم التحقيق فيها لعملائنا (للاستخدام فقط من قبل الموظفين داخل شركتهم) هي استخدام تطبيق Java الذي تم إطلاقه عبر Servlet Java.

تشمل بعض الفوائد التي تم تحديدها:

  • يتم ترقيته بسهولة، مثل RIA (فقط إعادة نشر ملف جرة الخاص به، وسيتم اختياره في المرة التالية في أي وقت يتصفح في الصفحة باستخدام التطبيق الصغير)
  • يبدو، يشعر، يتصرف ويؤدي مثل تطبيق الأصلي، مثل RCP (بفضل SWT)

تشمل بعض الاحتياجات التي تم تحديدها:

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

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

يعمل الآخر الهامي على جهاز برمجيات حيث حصلت على Ajax كوسيلة لتكوين الجهاز. مجموعة الميزة للتكوين غنية ومحاذاة جيدا مع RIA. وبالمثل، فإن الاضطرار إلى تثبيت البرنامج محليا على متصفح الويب مثبط للغاية.

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