ما هي منصة العميل الغنية التي يجب استخدامها؟

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

  •  06-09-2019
  •  | 
  •  

سؤال

لقد بدأنا مؤخرًا في تطوير تطبيق Java لسطح المكتب وطلبت الإدارة منا الاستفادة من Rich Client Platform.أعرف أربعة لجافا وهي:

  1. كسوف RCP - رابط www إلى Ecipse RCP,
  2. نتبين RCP - موقع ويب Netbeans RCP,
  3. الربيع RCP - عميل الربيع الغني
  4. فالكيري RCP - عميل فالكيري الغني

هل لدى أي شخص أي خبرة في أي من هذه الأمور، وإذا كان الأمر كذلك، ما هي نقاط القوة والضعف في كل منها؟

شكرًا

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

المحلول

أوصي بإلقاء نظرة على JSR 296 - فهو لم يكتمل بعد بأي حال من الأحوال، لكنني أعتقد أنه يصل إلى النقطة المثالية لتوفير وظائف أساسية معينة تحتاجها حقًا في كل تطبيق Java GUI، دون إجبارك على العيش فيه إطار معقد للغاية.

لقد استخدمت JSR 296 بنجاح لإنشاء تطبيق متوسط ​​الحجم.لتخطيط النافذة في هذا التطبيق، نستخدم كلبي (ينصح به بشده).لإدارة التخطيط، نستخدم MiGLayout (يتجاوز الموصى به بشدة).لربط البيانات، نستخدم نموذجًا معدلاً لـ JSR 295 (قمنا بتنفيذ شيء مشابه لـ نموذج العرض أعلى JSR 295 الذي نستخدمه لربط واجهة المستخدم الرسومية الخاصة بنا).أنا بصدد دمج Guice كآلية DI ولكني لم أنهي هذا الجهد (حتى الآن، أعتقد أنه "سيعمل بشكل جيد" مع JSR 296 مع تعديل هنا وهناك).دعنا نرى...المثابرة هي الحلقة المفقودة الكبيرة هنا - أقوم بتقييمها حاليًا بسيط لاستمرارية XML، ولكني أواجه مشكلات في جعله يعمل مع حاويات DI مثل Guice.أملك بين تعمل، ولكن التبعيات على Betwixt ضخمة، لذلك نحن نبحث عن شيء أكثر بساطة.

آراء حول خيارات RCP الأخرى لـ Java:

نت بينز:لدي بعض الاعتراضات الفلسفية الأساسية على النهج الذي تستخدمه NetBeans (عدد كبير جدًا من أنماط التصميم المضادة لذوقي).في النهاية، يجبرك إطار العمل على اتخاذ قرارات تصميمية سيئة - ويكاد يكون من المستحيل استخدامه إذا كنت لا تستخدم NetBeans باعتباره IDE الخاص بك (لقد حاولت، لكنني لم أتمكن من التبديل من Eclipse إلى NB).من المحتمل أن أكون أنا فقط، ولكن يبدو أنه من الممكن كتابة تعليمات برمجية لإطار عمل RCP دون استخدام معالجات معقدة كبيرة وحزم من التعليمات البرمجية التي يتم إنشاؤها تلقائيًا وملفات XML.لقد أمضيت ساعات طويلة في استكشاف أخطاء تعليمات برمجية Visual C++ القديمة وإصلاحها التي تم إنشاؤها بواسطة Visual Studio لدرجة أنني أشعر بالقلق الشديد تجاه أي إطار عمل لا يمكن ترميزه يدويًا.

الربيع RCP:يمتلك الأشخاص في Spring تصميمًا قويًا وجيدًا، لكن التوثيق ضعيف حقًا.من الصعب جدًا أن تقوم بذلك بسرعة (ولكن بمجرد القيام بذلك، يمكنك إنجاز الأمور بسرعة كبيرة).

كسوف RCP:لم تستخدم Eclipse فقط بسبب عبء النشر (يعتمد على جمهورك المستهدف - بالنسبة لنا، لم ينجح نشر 50 ميجابايت إضافية من وقت التشغيل).بدون شك، يعد Equinox أمرًا جميلًا إذا كان تطبيقك يحتاج إلى وظائف إضافية مهمة (بالطبع، يمكنك تشغيل Equinox مع JSR 296 أيضًا، أو استخدام أنماط تصميم مشابهة لنمط Whiteboard الذي يروج له OSGi).

نصائح أخرى

مقدمة - تخطي إذا كنت مصلحة فقط في النتيجة؛)
كنت أقوم بتطوير محرر لغة برمجة مخصصة Simmilar Simmilar على JSP. أولا لقد قمت بتنفيذ المحرر كأطروحة باستخدام منصة netbeans. وبعد بعد الانتهاء من المدرسة لدي وظيفة وأرادوا لي أن ينفذ نفس الشيء في eclipse rcp., ، حتى الآن يمكنني مقارنة هذين المنصتين على الأقل في الأشياء التي كنت أتواجهها خلال هذا المشروع.

نتيجة - إذا كان لدي خيار بين منصة NetBeans و Eclipse RCP، فسأختار بالتأكيد منصة NetBeans. وبعد لماذا ا؟
Screencasts العظيمة، والبرامج التعليمية الجيدة، ومجتمع حقيقي ودية ومفيد للغاية، موثقة جيدا تماما ومكفوف التعليمات البرمجية المصدر مكتوبة بشكل جيد ومع اتفاقيات التعليمات البرمجية الجيدة. يحتوي أيضا على بعض الأدوات المثيرة للاهتمام (ملفات تعريف الارتباط، البحث). انها ببساطة يناسبني.

ولماذا eclipse rcp لا يناسبني؟
الوثائق أضعف وستكون الاتفاقيات و API أحيانا .. هسم .. غريبة بالنسبة لي :-) من دواعي انطلك جدا أن نرى طرق مثل:

/**
* Returns a description of the cursor position.
*
* @return a description of the cursor position
* @since 2.0
*/
protected String getCursorPosition() {
..
}

حسنا، اعتقدت أنه يجب أن يمزحني: - كيف من المفترض أن أستخدم هذه الطريقة؟ او مثل هذا:

/**
* Returns the range of the current selection in coordinates of this viewer's document.
*
* @return a <code>Point</code> with x as the offset and y as the length of the current selection
*/
Point getSelectedRange();

على الرغم من أن رقم ونوع السمات Fitts، لا أجد كائن نقطة مثالية لكائن البيانات لمجموعة تخزين ؛-)

هناك أرقام من هذه الخلافات في Eclipse RCP

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

سأذهب إلى Netbeans RCP، 1) منصة NetBeans. إنه ناضج للغاية وقد تطور هو منصة "سهلة الاستخدام" لتطوير التطبيقات.

2) من السهل جدا البدء مع، في حين أن منحنى التعلم من Eclipse RCP شديد الانحدار. فقط goto، http://netbeans.org/kb/trails/platform.html., وهناك سوف تقوم برامج تعليمية ومقاطع الفيديو (هل تشاهد أعلى 10 أشرطة الفيديو API بالإضافة إلى تجربة البرامج التعليمية قبل أن تقرأ الكتب، بهذه الطريقة سوف تحصل على تعليق من الأشياء مسبقا).

3) كتب عن NetBeans RCP (أعتقد أن هناك 2 على NetBeans RCP) هي رفعت (تغييرات صغيرة فقط لن يكون لديك الكثير من المشكلات مع). في حين أن الكتاب الرئيسي على RCP لم يكن متاحا لفترة طويلة (مؤخرا، هذا هو، مايو 2010، تم إصدار النسخة الجديدة، لذلك هذا شيء جيد للغاية لمطوري RCP Eclipse. لم يكن هناك عندما كنت أحاول لتعلمه. أشعر بالإحباط من المؤلفين الذين لا ينشرون طبعات جديدة، وتركوا مطورين جدد تقريبا في Lurch. ليس الجميع يحبون قراءة المستندات. لا يقوم بنشر الكتب المحدثة بمبالغ تقريبا لقتل التكنولوجيا). أحب أن أرى كتاب نوع طبيب لكلا المنصات.

4) NetBeans لديها باني واجهة المستخدم الرسومية متكاملة كاملة، والذي هو كبير زائد. Eclipse RCP، إما عليك أن يدخل رمز أو شراء بعض باني جوي الطرف الثالث.

5) منصة NetBeans لديها هذا api البحث الرائعة جدا لاتصالات intermodule. أعتقد أن الرجال eclipse يستخدمون نقاط التمديد لهذا الغرض. لكن API البحث سهلا بمجرد الحصول على تعليق منه.

6) على أي حال، لها قرار تصميم كبير، حول أي منصة للاختيار. منصة netbeans يعمل بالنسبة لي. قد لا تعمل من أجلك. تتطلب كلا النظامين الجهود، حيث يوفر كلاهما رائع من ميزات "خارج الصندوق". اختبار القيادة على حد سواء ثم اتخاذ قرار.

لدي خبرة مع eclipse rcp وسوف أوصي بها.

الايجابيات:

  • مكونات - مكون / بلو في النموذج يسمح بإعادة الاستخدام.
  • الاستخدامات ساخر و jface التي تسمح ليونا المظهر
  • وجهات النظر القابلة للتوصيل والمحررين ووجهات النظر جعل التخطيطات سهلة وقابلة للتكوين.
  • نقاط تمديد Eclipse تجعل تمديد وتكامل مع APIs والأدوات ذات الطرف الثالث سهل.

سلبيات:

  • منحنى التعلم

إذا اخترت Eclipse RCP، احصل على هذا الكتاب بتحد، فهو غير مباشر عند بدء التشغيل مع الإطار: http://www.amazon.com/eclipse-rich-client-platform-applications/dp/0321334612.

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

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

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

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

بالطبع يعتمد كل شيء على نوع التطبيقات والخدمات التي تريد تقديمها، والبيئة المستهدفة. ولكن يمكنني أيضا أن أوصي OSGI كمنصة تطوير ونشر. العمارة والمواصفات الأساسية قد تم تطويرها بشكل جيد للغاية وثبتها.

إلى جانب Eclipse RCP، يجب أن يكون لديك نظرة على Apache Felix (http://felix.apache.org.) و knopflerfish (http://www.knopflerfish.org.)، والتي هي (أصغر) تطبيق OSGI مفتوح المصدر OSGI.

من وجهة نظر المستخدم النهائي.

لقد رأيت المزيد من التطبيقات في الكسوف أكثر من الاثنين الآخرين. في الواقع، أعرف عن تطبيقات NetBeans ولكن لم أحصل على واحدة في يدي.

من الربيع هذه هي المرة الأولى التي سمعت عنها.

في حين أن إجابتي هي بالتأكيد طريقة عرض فائقة 10000 قدم

أيضا، الفرق يتناسب مع الوقت الذي توفر النظام الأساسي. تذكر Eclipse إنشاء SWT لحل المشكلات قد ظهرت Java Swing في 1.3 حيث كان بطيئا ببساطة.

لقد تم تحسين NetBeans من قبل تحسينات JVM ويتم تشغيلها الآن بسرعة كبيرة للغاية.

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

إليك مقال حول هذين منصة منصة Eclipse RCP مقابل Netbeans RCP. قد يكون مفيدا

http://blogs.oracle.com/geertjan/entry/eclipse_platform_vs_netbeans_platform.

NetBeans RCP ممتاز. انها تأتي شوطا طويلا على مر السنين. يستخدم تقنية أكثر قوة ("تأرجح") أن الكثير من الناس يستخدمونهم وفهمهم. Eclipse RCP (أكثر تحديدا SWT) فقط حيرة لي.

يوفر Eclipse RCP آلية المكونات الإضافية بحيث يمكنك إضافة ميزات جديدة في وقت لاحق من النشر. أيضا من خلال آلية التحديث، يمكنك تغيير النظام دون تدخل المستخدم. في مرحلة التطوير، يوفر Eclipse RCP أرضا سريعة وقوية مع وجهات نظر وآراء ومحرر وآليات القيادة والعمل. إذا كان مشروعك يتطلب العديد من النوافذ المختلفة مع شريط أدوات وقوائم مختلفة (وأيضا قوائم السياق المخصصة) أقترح عليك استخدام Eclipse RCP. أنا فقط التحقق من مقاطع الفيديو من منصة NetBeans وتشغيل مشروع HelloWorld ولكن يبدو بطيئا وخرايدا :) 40 ثانية للبدء (يمكنك إعادة تحميل التطبيق على الرغم من إعادة تشغيل W / O.) Vogella.de عبارة عن مجموعة جيدة من البرامج التعليمية eclipse rcp.

هناك أيضا توليد واجهة المستخدم القائمة على الانعكاس والتخصيص.

بدلا من تخصيص IDE لتناسب احتياجاتك، سوف تقوم بتخصيص واجهة المستخدم الرسومية التي تم إنشاؤها بشكل افتراضي. قد يكون من المثير للاهتمام تجربة نهج جديد.

https://github.com/dotxyteam/reflectionui.

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