jsf - Mojarra और MyFaces के बीच अंतर




jsf-2 (5)

अगर मैं माईफैस का उपयोग करता हूं तो मुझे और जार की आवश्यकता क्यों है?

क्योंकि उन commons-* निर्भरताओं को MyFaces में बंडल नहीं किया जाता है। दूसरी तरफ, यदि आप Apache.org से अन्य पुस्तकालयों का उपयोग कर रहे हैं जो उन कॉमन्स- commons-* निर्भरताओं का भी उपयोग करते हैं, तो आप अंततः छोटे कुल आकार पुस्तकालयों के साथ समाप्त होते हैं।

नोट किया जाना चाहिए कि Mojarra 2.1.6 एक एकल जेएआर फ़ाइल प्रारूप javax.faces.jar उपलब्ध है।

क्या मुझे मोजररा को हल्का पसंद करना चाहिए

यह एक गैर-तर्क है। आपको देखना चाहिए कि जेएसएफ कार्यान्वयन कितना मजबूत और अच्छी तरह से बनाए रखा है।

मोजाररा के दादा, सन जेएसएफ आरआई 1.0, और आरआई 1.1 के शुरुआती संस्करणों को गंदे बगों से घिरा हुआ था। उस पल में (लगभग 2004-2006), माईफेस निश्चित रूप से अधिक स्थिर विकल्प था।

2006 की शुरुआत में 1.1_02 और 1.2_02 के बाद से नई सन / ओरेकल जेएसएफ देव टीम ने बहुत अच्छा काम किया। न केवल बगफिक्सिंग के साथ, बल्कि प्रदर्शन संवर्धन के साथ भी। मोजरा 1.2 जीवनकाल (2007-2009 के आसपास) के करीब आधे रास्ते में, मोजाररा माईफैस की तुलना में बेहतर विकल्प था।

चूंकि जेएसएफ 2.0, जो कि नए आंशिक राज्य बचत प्रबंधन के साथ आया था, माईफेस राज्य के डेल्टा की गणना करने के एक अलग और अधिक कुशल दृष्टिकोण के कारण बेहतर विकल्प था, खासकर बड़े घटक पेड़ों का उपयोग करते समय। Mojarra संस्करण 2.1.22 बाद से पकड़ा। 2.0 / 2.1 टाइमलाइन के दौरान, मोजरा के पास जटिल / नेस्टेड रचनाओं में <ui:repeat> साथ केवल गंभीर समस्याएं थीं (एओ टूटा राज्य की बचत, केवल अंतिम पुनरावर्तित प्रपत्र प्रसंस्करण, असफल <f:ajax> , आदि) और फ्लैश स्कोप कार्यान्वयन के साथ ( प्रारंभिक कार्यान्वयन पूरी तरह से बुलेट प्रमाण नहीं था)। माईफेसेस के पास भी बग का सेट था, लेकिन वे प्रबंधनीय थे।

अभी, जेएसएफ 2.2 के साथ, कोई वास्तव में पहले से नहीं कह सकता कि कौन सा बेहतर है। बग अक्सर बाद में सामने आते हैं और मजबूती का मूल्यांकन केवल बाद के दौरान किया जा सकता है। बस जो भी कार्यान्वयन आपको "महसूस" करना सबसे अच्छा है चुनें। पूर्व निर्धारित मुद्दों और वर्तमान में खुले मुद्दों के बारे में जानने के लिए अपनी समस्या रिपोर्ट ( MyFaces और Mojarra ) के माध्यम से ब्राउज़ करें। यदि आपको एक विशिष्ट बग का सामना करना पड़ता है, तो एक और दूसरे को बाहर करने के लिए दोनों कार्यान्वयन के साथ प्रयास करें। दोनों कार्यान्वयन की समग्र गुणवत्ता को उच्च रखने के लिए आवश्यक होने पर रिपोर्ट करें।

इसके अलावा डाउनलोड पेज वास्तव में जेएसएफ Mojarra है ?

उनके मुखपृष्ठ को कई बार स्थानांतरित कर दिया गया है। वर्तमान में (सितंबर 2017) यह https://javaserverfaces.github.io पर स्थित है आप org.glassfish:javax.faces में पुस्तकालयों को पा सकते हैं org.glassfish:javax.faces सेंट्रल में org.glassfish:javax.faces भी। आप GitHub में javaserverfaces/mojarra प्रोजेक्ट में स्रोत कोड पा सकते हैं। आप वहां पर README.md में स्थापना निर्देश पा सकते हैं।

यह भी देखें:

मैं JSF2.0 पर शुरू कर रहा हूं मैंने एक ट्यूटोरियल का संदर्भ के रूप में उपयोग किया लेकिन मेरे पास निम्न प्रश्न है:

ट्यूटोरियल ने केवल 2 libs का उपयोग किया: jsf-api.jar , jsf-impl.jar (लेकिन जेएसटीएल भी था) Mojarra परियोजना से।

मैंने उन्हें भी डाउलोड करने की कोशिश की लेकिन लगता है कि साइट पहुंच योग्य नहीं है। इसलिए मैंने अपाचे माईफेस का इस्तेमाल किया लेकिन उदाहरण चलाने के लिए मुझे 8 जार ( myfaces-* , myfaces-* ) जोड़ना पड़ा।
अगर मैं माईफैस का उपयोग करता हूं तो मुझे और जार की आवश्यकता क्यों है? क्या मुझे मोजररा को हल्का पसंद करना चाहिए? इसके अलावा डाउनलोड पेज वास्तव में जेएसएफ Mojarra है ?

धन्यवाद


Mojarra और MyFaces के बीच बहुत अंतर नहीं है। आप यह जांच सकते हैं कि कौन सा एक स्थिर संस्करण है। जैसा कि बलुस्क ने कहा है, माईफेस सबसे स्थिर संस्करण है (2005-2006 में)। इसके अलावा, कई लोगों ने 2.0 के बाद मोजाररा का उपयोग शुरू किया क्योंकि यह माइफेस की तुलना में स्थिर हो गया है


जवाब मेरे ब्लॉग से आता है:

http://lu4242.blogspot.com/2011/06/10-reason-why-choose-myfaces-core-as.html http://lu4242.blogspot.com/2012/05/understandingjsf-2-and-wicket.html

अद्यतन जुलाई 2013 : जेएसएफसीएन्ट्रल पर 2013 के लिए आलेखों की श्रृंखला और अद्यतन देखें:

http://www.jsfcentral.com/articles/understanding_jsf_performance_3.html

पहले विचार में, जेएसएफ कार्यान्वयन (माईफैस और मोजाररा) दोनों एक ही हैं, क्योंकि वे एक ही मानक पर आधारित हैं। तथ्य यह है कि आप एक कार्यान्वयन से दूसरे में बदल सकते हैं जेएसएफ मानक स्पेक की गुणवत्ता का एक तथ्य है।

लेकिन नीचे के कारण कई कारण हैं कि माईफैस कोर 2.x मोजाररा से बेहतर क्यों है। नोट: मैं माईफैस प्रोजेक्ट का एक कमिटर हूं, इसलिए मैं आपको यहां सिर्फ अपना दृष्टिकोण दूंगा:

  • बहुत सारे मुद्दे तय किए गए हैं। 2.0.0-अल्फा से 2.0.7 तक केवल 2.0.x शाखा में इसे 835 मुद्दों को बंद कर दिया गया है। यह उस समय "समुदाय" द्वारा प्रदान किए गए योगदान और प्रतिक्रिया के "कच्चे" उपाय प्रदान करता है। यह उस समय बंद मुद्दों के लिए संख्या है: 2.0.0-अल्फा: 274, 2.0.0-बीटा: 58, 2.0.0-बीटा -2: 41, 2.0.0-बीटा -3: 3 9, 2.0.0 : 51, 2.0.1: 148, 2.0.2: 77, 2.0.3: 63, 2.0.4: 23, 2.0.5: 27, 2.0.6: 2 9, 2.0.7: 5।

अद्यतन मई 2012: 2.1.0: 47, 2.1.1: 6, 2.1.2: 84, 2.1.3: 9, 2.1.4: 74, 2.1.5: 7, 2.1.6: 35, 2.1.7: 52

  • समुदाय पर कोड: MyFaces समुदाय जेएसएफ पर उत्कृष्ट ज्ञान के साथ बहुत से लोगों के साथ गिना जाता है। उपयोगकर्ता और देव मेलिंग सूची के बारे में जानने के लिए सबसे अच्छा तरीका है कि क्या हो रहा है, प्रतिक्रिया प्राप्त करें और जेएसएफ में रुचि रखने वाले अन्य लोगों को जानें। माईफेस मेलिंग सूचियां देखें

  • अपाचे सूर्य / ओरेकल से सबकुछ लेने और इसे बेहतर बनाने के लिए जाना जाता है। इस मामले में, माईफैस कोर में आंशिक राज्य की बचत, समग्र घटकों और बहुत कुछ पर कुछ अच्छे अनुकूलन हैं!

  • माईफेस कोर ओएसजीआई अनुकूल है। यह विशेष सेटअप से निपटने के लिए कुछ एसपीआई इंटरफेस प्रदान करता है, जब आपको क्लासलोडिंग पर अधिक नियंत्रण की आवश्यकता होती है।

  • माइफेस कोर के चेहरे 1.1.x के साथ बेहतर संगतता है! बस org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS वेब कॉन्फ़िगरेशन पैरा को सत्य पर सेट करें, और एक विशेष मोड सक्रिय हो जाएगा। नहीं सी: अगर टैग या सी: के लिए या यूई: अब टूटा हुआ शामिल है! अद्यतन मई 2012 माईफैस कोर के अंदर एक बेहतर एल्गोरिदम किया गया था जो राज्य के आकार को भागों में भी कम करता है जब चेहरे का उपयोग घटक पेड़ को गतिशील रूप से अद्यतन करने के लिए किया जाता है। यह परम अब आवश्यक नहीं है।

  • माईफेसेस में अन्य परियोजनाएं हैं (त्रिनिदाद, टोबैगो, टॉमहॉक, एक्स्टवाल, सीओडीआई, ऑर्केस्ट्रा, पोर्टलेट ब्रिज आरआई, ....) जो कोड को ट्यून अप रखने में मदद करता है, क्योंकि ये सभी परियोजनाएं माईफैस कोर के खिलाफ परीक्षण करती हैं, और यदि कोई बग है, तो यह है अधिक तेज़ी से संभाला।

  • आप svn का उपयोग करके चेकआउट कर सकते हैं और आसानी से किसी भी MyFaces प्रोजेक्ट का निर्माण कर सकते हैं, क्योंकि उनमें से सभी मेवेन आधारित हैं और अधिकांश आईडीई मैवेन सपोर्ट प्रदान करते हैं।

  • वर्तमान समय में मोजरा (जून 2011) में राज्य की बचत से संबंधित कुछ गड़बड़ियां हैं, माईफेसेस के पास नहीं है क्योंकि इसका कार्यान्वयन पूरी तरह से अलग है। वास्तव में, माईफेसेस आंशिक राज्य बचत एल्गोरिदम Mojarra की तुलना में जेएसएफ 1.2 राज्य बचत के साथ बेहतर संगतता प्रदान करता है। लेकिन ध्यान दें कि मोजाररा लोग उस पर काम कर रहे हैं, लेकिन ठीक है कि उन्हें महीनों, यहां तक ​​कि साल लगेंगे।

  • माईफेस पर अभिनव होता है।

मई 2012 अद्यतन करें

इस आलेख को देखें http://lu4242.blogspot.com/2011/06/10-reason-why-choose-myfaces-core-as.html

जो लोग प्रदर्शन तुलना देखना चाहते हैं उनके लिए माईफैस, मोजररा और विकेट देखें http://lu4242.blogspot.com/2012/05/understandingjsf-2-and-wicket.html

अद्यतन जुलाई 2013

तुलना स्प्रिंग एमवीसी, टेपेस्ट्री, ग्रेल्स 2 और विकेट जैसे अन्य ढांचे को शामिल करने के लिए बढ़ा दी गई थी। JSFCentral पर आलेख देखें: JSFCentral पर http://www.jsfcentral.com/articles/understanding_jsf_performance_3.html


मुझे मोजाररा (2.2.8) के साथ गंभीर सिरदर्द हो रहा था, अजीब व्यवहार जैसे कि AJAX विधियों को केवल पिछले फॉर्म अपडेट के कारण दूसरे उपयोगकर्ता इंटरैक्शन के बाद चल रहा था। सब मायफेस के साथ चले गए।


मैं कहूंगा कि यह वास्तव में कोई फर्क नहीं पड़ता।

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

अगर मैं माईफैस का उपयोग करता हूं तो मुझे और जार की आवश्यकता क्यों है?

  • माईफेस-इम्प्ल और माईफेसेस-एपीआई जेएआरएस मोजररा के जेएसएफ-इंपोर्ट और जेएसएफ-एपीआई के बराबर हैं।
  • Myfaces-Bundle में इनमें से दोनों सुविधा के लिए हैं, आपको या तो यह या अन्य दो की आवश्यकता है, सभी तीन नहीं।
  • कॉमन्स- * ऐसे पुस्तकालय हैं जिनमें संग्रह, जावा बीन्स इत्यादि से निपटने के लिए उपयोगी बुनियादी कार्यक्षमता होती है, जिन्हें किसी को अन्यथा पुन: कार्यान्वित करना होगा (शायद धीमी और अधिक बग के साथ)। कई अन्य परियोजनाएं भी इनका उपयोग करती हैं।