2009-02-11 17 views
16

मैं वर्तमान में एक वेब ऐप पर काम कर रहा हूं जो जेएसएफ और आइसफेस का भारी उपयोग करता है। हमने एक और प्रस्तुति परत में जाने की कुछ चर्चाएं की हैं, और मैंने सोचा कि मैं चर्चा को एसओ में ले जाऊंगा और देख सकता हूं कि विशेषज्ञ क्या सोचते हैं।विभिन्न जावा वेब प्रेजेंटेशन लेयर टेक्नोलॉजीज के पेशेवरों और विपक्ष

मैं उत्सुक हूं कि कोई भी विभिन्न जावा प्रस्तुति परत प्रौद्योगिकियों के पेशेवरों और विपक्षों पर वजन कर सकता है। यदि आपने केवल एक के साथ काम किया है, तो कहें कि आप इसे क्यों पसंद करते हैं या नफरत करते हैं। यदि आपने कई लोगों के साथ काम किया है, तो अपने इंप्रेशन दें कि वे एक-दूसरे के खिलाफ कैसे खड़े हो जाते हैं।

विचाराधीन हमारे प्रौद्योगिकियों हैं:

  • IceFaces
  • JSF (IceFaces के बिना)
  • GWT (गूगल वेब टूलकिट)
  • विकेट
  • टेपेस्ट्री

और अगर मुझे मेरी सूची से कुछ भी याद आ रहा है, मुझे बताएं।

धन्यवाद!

उत्तर

6

मेरे राय काफी भारी विकेट के प्रति पक्षपाती रहे हैं क्योंकि मैं एक के लिए उपयोग किया गया है था जबकि जेएसपी खानों पर बहुत अधिक बार यात्रा करने के बाद।

विकेट सकारात्मक:

  • लेआउट और कोड का सच जुदाई।
  • घटक आधारित जिसका अर्थ साइट तत्वों की उच्च पुन: प्रयोज्यता है; उदाहरण के लिए आप स्वचालित लेबलिंग और सीएसएस शैलियों और सब कुछ के साथ सुंदरता फॉर्म बना सकते हैं और घटक के कन्स्ट्रक्टर में इसकी डीएओ ऑब्जेक्ट को बदलकर यह किसी अन्य प्रोजेक्ट में पूरी तरह से पुन: प्रयोज्य है।
  • अजाक्स, Portlets और सामान्य रूप में विभिन्न व्यवस्थाएं सीधे तरह बातें बाहर के बॉक्स और अधिक महत्वपूर्ण यह slf4j/log4j से कुछ और पर निर्भर नहीं करता काम करने के लिए बहुत बढ़िया समर्थन, सब कुछ के वैकल्पिक!

विकेट विपक्ष:

  • विकास सामान्य और विकेट जेनरिक में चीजों के बारे में कुछ भ्रम की स्थिति है अभी हालांकि वे 1 में एक बहुत साफ किया गया है एक मेस का एक सा है।4
  • कुछ घटक (जैसे Form.onSubmit()) को आसानी से इंजेक्शन व्यवहार के लिए व्यापक उप-वर्गीकरण या अज्ञात विधि ओवरराइडिंग की आवश्यकता होती है। यह आंशिक रूप से विकेट के शक्तिशाली कार्यक्रम-आधारित डिज़ाइन के कारण है लेकिन दुर्भाग्यवश इसका भी अर्थ है कि विकेट के साथ कोड गड़बड़ करना आसान है।

रैंडम विपक्ष: (जो है, मैं उपयोग नहीं किया है लेकिन ये मेरे opionions और/या चीजों को मैंने सुना है कर रहे हैं)

  • GWT जो मेरे लिए बेवकूफ लग रहा है आधारित जावास्क्रिप्ट है। मुख्य मुद्दा यह है कि यह मुझे जेएसपी: एस और इसकी स्वत: उत्पन्न कक्षाओं को बहुत याद दिलाता है जो भयानक हैं।
  • टेपेस्ट्री मार्कअप और कोड को इस तरीके से ठीक से अलग नहीं करता है जिसे भविष्य में समस्याओं का कारण बनने वाले दोनों के बीच आसानी से सत्यापित किया जा सकता है।
+0

एस्को, मैं जावास्क्रिप्ट के लिए अपना विकृत साझा करता हूं, लेकिन आप डगलस क्रॉकफोर्ड की "जावास्क्रिप्ट: द गुड पार्ट्स" पर एक नज़र डालना चाहते हैं। साथ ही, JQuery के साथ काम करने के दौरान जावास्क्रिप्ट का उल्लेख होने पर मेरे गैग रिफ्लेक्स को दबाने के लिए बहुत कुछ किया है। – rtperson

+0

धन्यवाद, मैंने अभी पुस्तक के नाम को एक पोस्ट में लिखा है, इसलिए मैं इसे अंततः देख लूंगा। ओह और विकेट के लिए jQuery स्टफ (घटक इनक्यूबेटर सबप्रोजेक्ट) के माध्यम से jQuery, mootools, dojo और speacaculous के लिए बहुत अच्छा समर्थन है। – Esko

+0

टेपेस्ट्री 5 चलो आप मार्कअप और कोड अलग करते हैं, लेकिन इसे विकेट की तरह लागू नहीं करते हैं। – Sergey

5

मैंने कुछ छोटी परियोजनाओं के लिए जीडब्ल्यूटी का उपयोग किया है। ये कुछ चीजें हैं मैं इसके बारे में पसंद कर रहे हैं:

  1. यह डिफ़ॉल्ट रूप से ajax है, तो बनाने के लिए यह ajax मैं नहीं था, यह सिर्फ GWT का उपयोग कर के साथ आया था।
  2. क्लाइंट बनाम सर्वर-साइड कोड का अच्छा अलगाव हो गया है।
  3. मैं जूनिट
  4. का उपयोग करके अपने क्लाइंट कोड को यूनिट-टेस्ट कर सकता हूं, यह आपको कुरकुरा, स्नैपी ऐप्स बनाता है, क्योंकि यह अजाक्स है।

बातें मुझे पसंद नहीं है:

  1. कुछ बातें अपेक्षा के अनुरूप काम नहीं करते। उदाहरण के लिए, मैंने उन मामलों को देखा है जहां क्लिक घटनाओं की उम्मीद के रूप में नहीं आग लग गई थी, इसलिए मुझे एक कामकाज करना पड़ा।
  2. ग्रहण में चल रहे टॉमकैट पर ऑटो-तैनाती कभी-कभी काम करना बंद कर देता है, और मैं कभी नहीं समझ सकता था।
3

सबसे बड़ा सवाल मैं पूछूंगा कि आप प्रस्तुति परत क्यों बदल रहे हैं? यह एक बहुत महंगा लागत है और मैं दूसरों को अधिक से अधिक लागत से बदलकर एक तकनीक का लाभ देख सकता हूं ...

+1

अच्छा सवाल। IceFaces के साथ हमारी असंतोष एक से उत्पन्न होता है) रहस्य-मांस नरक से अपवाद - जेएसएफ जीवन चक्र के लिए स्थानिक समस्या, बी) यह यहां बहुत से लोगों द्वारा भारी और धीमी, और सी) गरीब समुदाय समर्थन के रूप में माना जाता है। हम एक नई परियोजना के लिए बदलाव पर विचार कर रहे हैं, न कि हमारे मौजूदा ऐप। – rtperson

+0

यह अच्छा है अगर यह एक नई परियोजना के लिए है। मैं IceFaces पर आपकी प्रतिक्रिया के बारे में भी उत्सुक हूं क्योंकि मैंने इसे पहले भी माना है। जब यह पहली बार ओपन सोर्स बन गया, तो यह एक बहुत ही रोचक समाधान की तरह लग रहा था। लेकिन मैंने इसे पूर्ण पैमाने पर ऐप पर कभी भी कोशिश नहीं की है ... बहुत रोचक। –

+1

IceFaces के साथ बड़ा समर्थक यह है कि यह AJAX- सक्षम इंटरफ़ेस बनाने में बहुत आसान बनाता है। यह बहुत जटिलता छुपाकर ऐसा करता है। लेकिन, ज़ाहिर है, कई बार आप हुड के नीचे देखना चाहते हैं, और आइसफेस इसे होने की तुलना में अधिक कठिन बनाता है। (जारी ...) – rtperson

0

मुझे आश्चर्य होगा कि क्या आपके पास एक सेवा परत है जो वेब क्लाइंट से अलग है, कुछ ऐसा जो वेब नियंत्रक बस अपना काम पूरा करने के लिए आह्वान करते हैं।

यदि आप करते हैं, तो वेब यूआई तकनीक की पसंद को पीछे के अंत से हटाया जा सकता है। यदि यह अनुबंध पहली वेब सेवा के रूप में सामने आया है, तो आप अलग-अलग ऐप्स साझा कर सकते हैं। जब तक आपके ग्राहक एक्सएमएल भेज और प्राप्त कर सकते हैं, वे आपकी सेवाओं से बातचीत कर सकते हैं। फ्लेक्स पर स्विच करना चाहते हैं? कोई चिंता नहीं - इसे सेवा पर इंगित करें और एक्सएमएल प्रतिक्रिया प्रस्तुत करें।

+0

यह एक अच्छा विचार है। हमारी परतें काफी हद तक decoupled हैं, हालांकि काफी SOA-शक्ति नहीं है। और, जब हम यहां वेब सेवाओं का उपयोग करते हैं, तो हमारी प्रस्तुति और सेवा परतों के बीच प्रदर्शन एक मुद्दा है कि हम शायद इस दिशा में इस दिशा में नहीं जाएंगे। – rtperson

2

संक्षेप में:

= JSF =

पेशेवरों:

  • घटक वास्तुकला;
  • कई पुस्तकालय & उपकरण;
  • कुछ हद तक अच्छा आईडीई समर्थन

कान्स:

  • भारी वजन, दोनों सीपीयू/स्मृति में और सीखने की अवस्था;
  • जब कुछ अपेक्षा के अनुरूप काम नहीं है, यह

= विकेट =

पेशेवरों डिबग करने के लिए मुश्किल है:

  • हल्के;
  • समझदार टेम्पलेटिंग सिस्टम;
  • अच्छे ट्यूटोरियल;

कान्स:

  • संदर्भ दस्तावेज़ इतनी अच्छी तरह से संगठित और गहरी के रूप में ट्यूटोरियल हैं नहीं है,
  • विकास दल को कुछ गंभीर कठिनाइयों का सामना करना पड़ा, खासकर जब प्रोजेक्ट बनना और उगाया गया। ढांचे के महत्वपूर्ण पहलुओं पर भ्रम की स्थिति के लिए यह सीसा, उस समय मैं इस वजह से एक और ढांचे के लिए स्विच करने के लिए ...
+0

विकेट हल्के वजन? –

+0

उस समय मुझे हल्के वजन महसूस हुए ... ठीक है, जेएसएफ की तुलना में कम से कम हल्का – Megadix

1

मेरी पिक विकेट होगा। इसका इस्तेमाल किया है और उत्कृष्ट पुनः उपयोगिता देता है। यह सबसे जीवंत मंच/मेलिंग सूची में से एक है। एक प्रश्न के रूप में और इसके मिनटों में उत्तर दिया जाएगा। यह AJAX के लिए उत्कृष्ट समर्थन है। विकेट को जिम्मेदार सामान्य विपक्ष में से एक सीधी सीखने की वक्र है। वैसे वे बूढ़े युग में से एक थे जिनके पास अब कोई मूल्य नहीं है।

जेएसएफ: इससे बेहतर रहें। जेएसएफ पर एक परियोजना विकसित करने वाली एक और टीम अब इसके साथ हमारी सफलता के बाद विकेट में स्थानांतरित करने की सोच रही है।

@Megadix: जैसे तुमने कहा प्रलेखन शुरुआत में गरीब था, लेकिन किसी भी अधिक नहीं। विकेट के डेवलपर्स द्वारा लिखित विकेट इन एक्शन नामक एक उत्कृष्ट पुस्तक है। साइट पर प्रदान किया गया नमूना कोड भी शुरू करने और सीखने के लिए

संबंधित मुद्दे