2009-07-04 8 views
5

मुझे बैक ऑफिस उद्देश्यों के लिए एक वेब एप्लिकेशन बनाना चाहिए और मुख्य आवश्यकताओं में से एक एक अच्छा यूआई है।बैक-एंड वेब एप्लिकेशन के लिए आप क्या करेंगे: फ्लेक्स, जीडब्ल्यूटी, JQuery?

सर्वर-साइड पर मैं क्लाइंट-साइड का उपयोग करने के आधार पर जावा का बहुत अधिक उपयोग स्प्रिंग फ्रेमवर्क का उपयोग करूंगा।

  • एक "सामान्य" वेब अनुप्रयोग, JSP पृष्ठों, JQuery ढांचे का उपयोग कर अर्थ:

    मुझे लगता है कि मूल रूप से क्लाइंट साइड के लिए 3 विकल्प है। इस मामले में, मैं पूर्ण वसंत की विशेषताओं का उपयोग करूंगा, पूर्ण एमवीसी पैटर्न इत्यादि। मैं वसंत और JQuery का उपयोग 2 वर्षों से कर रहा हूं, इसलिए मैं इन तकनीकों को बहुत अच्छी तरह से जानता हूं। लेकिन मुझे यह भी पता है कि कुछ प्रभावों को समझने के लिए काफी जटिल है, अधिक जावास्क्रिप्ट कोड शामिल है, खासकर जब AJAX कॉल से निपटने और पृष्ठ संरचना के गतिशील परिवर्तन।

  • स्प्रिंग के साथ एकीकृत करने के लिए BlazeDs जैसे ऐड-ऑन के साथ फ्लेक्स। मुझे फ्लेक्स का उपयोग करने का कोई अनुभव नहीं है, मैंने इसके बारे में कुछ लेख और ट्यूटोरियल पढ़ा है, लेकिन मैं वास्तव में कुछ नया सीखना चाहता हूं :-)
  • Google वेब टूलकिट, शायद gwt-ext जैसे कुछ के साथ। कोई अनुभव नहीं, लेकिन मैं वास्तव में सीखना पसंद करता हूं। अगर मुझे ज़रूरत है तो वहां बहुत सारे समर्थन हैं, लेकिन मुझे लगता है कि मैं उसी परियोजना में स्प्रिंग एमवीसी और जीडब्ल्यूटी को बनाए रखने के लिए संघर्ष करूंगा, मैंने पढ़ा है कि यह इतना आसान नहीं है लेकिन कुछ पैटर्न का पालन करना है।

क्या आपके पास कोई सलाह है?

अग्रिम धन्यवाद

उत्तर

5

में मुझे लगता है कि आप पूरी तरह से चुनाव स्थगित कर सकते हैं अलग सेवाओं और एक दृश्य स्तरीय में अपने एप्लिकेशन विभाजन है। बैक एंड राइट प्राप्त करें और आप इच्छानुसार दृश्य तकनीकों को बाहर और बाहर स्वैप कर सकते हैं।

पसंद के लिए, वह चुनें जिसे आप और आपकी टीम को सर्वोत्तम पता है। सबसे महत्वपूर्ण विचार समर्थन और रखरखाव है। मुझे यकीन है कि सभी तीन पर्याप्त प्रयासों और पॉलिश के साथ आपकी जरूरतों को पूरा कर सकते हैं।

मेरी निजी पसंद फ्लेक्स और स्प्रिंग ब्लेज़डीएस होगी। यह सेक्सी है।

+0

+1। –

+0

हां, विभाजन पर आपकी अच्छी सलाह के लिए धन्यवाद! मैं पहले से ही – emas

2

फ्लेक्स आपके उद्देश्यों के लिए उपयुक्त है जो मैं कहूंगा। एमएक्सएमएल का उपयोग करना, गतिशील संरचना परिवर्तन और प्रभाव के साथ महान दिखने वाले उपयोगकर्ता इंटरफेस बनाना बहुत आसान है। चूंकि आप विकास के शुरुआती चरण में भी हैं, मैं सुझाव दूंगा कि आप फ्लेक्स के आगामी संस्करण का उपयोग करने के लाभों पर विचार करें, पहले कोड Gumbo नामित किया गया था।

गम्बो विशेष रूप से डिजाइन विभाग में बहुत सारे स्वागत अपडेट प्रदान करता है। उदाहरण के लिए, अब FXG का उपयोग करके गतिशील स्किन के साथ आकर्षक दिखने वाले यूआई बनाने के लिए अब और अधिक आसान है, जो कि ग्राफिकल आकृतियों को पाठ रूप से परिभाषित करने के लिए उपयोग किए जाने वाले मार्कअप का एक प्रकार है। एफएक्सजी भी एक महत्वपूर्ण तकनीक Flash Catalyst है, जो डिज़ाइन को वास्तविक कोड में बदलने के लिए उपयोग किया जाने वाला टूल है। जबकि उत्प्रेरक वर्तमान स्थिति में उत्पादन गुणवत्ता कोड के लिए उपयोग योग्य नहीं हो सकता है, प्रोटोटाइप बनाते समय यह निश्चित रूप से बहुत उपयोगी होता है।

स्वाभाविक रूप से, किसी भी डिज़ाइन में फ्रंट-एंड तकनीक की पसंद को बैक-एंड के साथ जोड़ा जाना चाहिए, ताकि आप फ्रंट-एंड स्तरीय स्वैप कर सकें।

+0

के बारे में सोच रहा था, मुझे अगले फ्लेक्स संस्करण के बारे में कोई जानकारी नहीं मिली, मुझे निश्चित रूप से विचार होगा कि मैं फ्लेक्स – emas

3

यह सब तीन बातें करने के लिए नीचे आता है:

  1. आप का निर्माण कर रहे आवेदन किस प्रकार?
  2. तकनीकी कौशल सेट क्या है जिसे आप परिचित हैं और यदि आवश्यक हो तो अपने कौशल को माइग्रेट करना आरामदायक है?
  3. आपके आधारभूत संरचना की तकनीकी आवश्यकताओं क्या हैं?

यदि एप्लिकेशन सुविधाएं तकनीक चला रही हैं, तो आपको यह निर्धारित करना होगा कि एक उन्नत हाइपरटेक्स्ट-आधारित एप्लिकेशन आपकी आवश्यकताओं (AJAX, XHTML) के लिए उपयुक्त है या नहीं, या अधिक समृद्ध मीडिया तकनीक अधिक उपयुक्त है, फ्लैश प्लेटफार्म के रूप में (जिसमें फ्लेक्स एक हिस्सा है)।

संख्या # 2 और # 3 अक्सर समान होते हैं, जिसमें वे आपकी टीमों के मौजूदा कौशल और बुनियादी ढांचे को ध्यान में रखते हैं। यदि आपकी आवेदन आवश्यकताएं ऐसी हैं कि एप्लिकेशन को या तो तकनीक के साथ तैनात किया जा सकता है, तो आपको कौशल और बुनियादी ढांचे के समर्थन का आकलन करने की आवश्यकता है: यदि आप पहले से ही जावा का उपयोग कर रहे हैं और आपकी टीम मुख्य रूप से AJAX में अनुभव की जाती है, तो उसके साथ जाएं; यदि आपकी टीम के पास फ़्लैश/फ्लेक्स और एलसीडीएस/एफएमएस में अधिक अनुभव है, तो इसका उपयोग करें।

लेकिन मुझे लगता है कि यह एक बड़ी गलत धारणा है कि फ्लैश प्लेटफ़ॉर्म-आधारित आरआईए को छोटे आर्किटेक्चरल परिवर्तनों के साथ AJAX- निर्मित आरआईए की तरह बनाया जा सकता है, या आप "अपने ऐप को अलग-अलग सेवाओं और दृश्य स्तर में विभाजित कर सकते हैं ... और आप इच्छानुसार दृश्य तकनीकों को बाहर और बाहर स्वैप कर सकते हैं। " कि मेरे दोस्त आपदा के लिए एक नुस्खा है। एक फ्लैश प्लेटफॉर्म/फ्लेक्स एप्लिकेशन का निर्माण करना मतलब है कि बैकएंड क्लाइंट-साइड एप्लिकेशन के लिए दास है, न कि दूसरी तरफ, क्योंकि एप्लिकेशन इंटेलिजेंस क्लाइंट पर अधिकांश भाग के लिए होगा। यदि आप एक एजेक्स ऐप की तरह फ्लेक्स ऐप बनाते हैं, तो आप पूरी तरह से अतिरंजित गड़बड़ी के साथ हवा में जा रहे हैं, मैंने देखा है कि यह कई बार होता है। यह चाल ग्राहक को रखने के लिए नियंत्रक/सेवाओं के कौन से हिस्सों को जानती है, और जो सर्वर पर रखती है।

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

+0

के लिए जाता हूं, मुझे लगता है कि यह एक अच्छा दृष्टिकोण है, धन्यवाद। फ्लेक्स पर कभी भी कोई अनुभव नहीं था, मैं अगले दिन कुछ प्रोटोटाइप बनाने की कोशिश करूंगा। – emas

0

यदि आपकी मुख्य पूर्व-आवश्यकताएं एक अच्छी यूआई है, तो सुनिश्चित करें कि आपको मदद करने के लिए किसी प्रकार का डिज़ाइनर प्राप्त हो। आप लगभग किसी भी भाषा में एक अच्छा यूआई बना सकते हैं, इसलिए यह ढांचा नहीं है जो इसे निर्धारित करेगा।

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

और भलाई के लिए, वसंत? मैं लौ युद्ध शुरू नहीं करना चाहता हूं लेकिन वास्तव में, कोई भी खुद को ऐसा क्यों करेगा? अपनी परियोजना को सामान्य ईजेबी 3/जेपीए बिजनेस टियर, हल्के वजन वाले वेब स्तरीय और जीडब्ल्यूटी क्लाइंट जैसे अधिक मानक तकनीक पर स्विच करें, और आप बहुत खुश होंगे। कम कोड होगा, इसे बनाए रखना बहुत आसान होगा और आपको उस वसंत इंजेक्शन/अवरोध अजीबता के बारे में चिंता करने की ज़रूरत नहीं है। वसंत पीछे की तरफ है जो स्ट्राट्स फ्रंट एंड, एंटीक्टेड, क्लंकी और बूढ़े के लिए है;)

+0

मुझे नहीं लगता कि वसंत "कट्टरपंथी और पुराना" है, जब एक वीआईपी ऐप बनाते हैं तो यह वास्तव में उपयोगी होता है, लेकिन हो सकता है कि आप इसे जीडब्ल्यूटी के साथ एक साथ उपयोग करने के लिए सही हो, तो यह एक और स्तर की जटिलता पेश करेगा – emas

+0

ऑटोवॉयरिंग के साथ वसंत पर बकवास, FWIW महसूस नहीं करता है। ऑटोवॉयरिंग के बिना वसंत धीमी गति में दांत खींचने जैसा लगता है, हालांकि। –

1

मुझे वसंत के जंगली मूल्यांकन के साथ असहमत होना है। इसे लगातार अद्यतन किया जा रहा है, और इसमें बहुत सारी शक्ति है।

ऐसा कहकर, मैं जीडब्ल्यूटी का बड़ा प्रशंसक हूं। मैं यह नहीं कह सकता कि यह किसी अन्य तकनीक से बेहतर है, लेकिन मुझे यह पसंद है।

यह इस बात पर निर्भर करता है कि आपको कितनी अश्वशक्ति की आवश्यकता है। यदि आपके पास सिर्फ सौ उपयोगकर्ता हैं, तो यह कोई बड़ा सौदा नहीं है, लेकिन यदि आपके पास एक बड़ा उपयोगकर्ता आधार है, तो आपको बड़ा सोचने की आवश्यकता होगी। जीडब्ल्यूटी शायद उन स्थितियों में ठीक काम करता है, लेकिन मैंने जो बड़ी परियोजनाएं की हैं, वे अन्य तकनीकों के साथ थीं।

मेरा वर्तमान शौक परियोजना http://penwag.com है। मैं फ्रंट एंड एंड बैक एंड के लिए जीडब्ल्यूटी का उपयोग करता हूं, और दृढ़ता के लिए हाइबरनेट + माईएसक्यूएल का उपयोग करता हूं। पूरी चीज टोमकैट के तहत चलती है, जो एक rapidvps.com सर्वर पर दावा करती है (!) 128 एम गारंटीकृत रैम, और 100 मेगाहर्ट्ज सीपीयू।

यदि आप चाहते हैं, तो आप जीडब्ल्यूटी का उपयोग कर एमवीसी या एमवीपी पैटर्न का पालन कर सकते हैं। लेकिन, यदि आप जीडब्ल्यूटी का उपयोग कर रहे हैं, तो एमवीपी दृष्टिकोण भी ले सकते हैं, क्योंकि यह आपको एमवीसी की तुलना में चिंताओं का थोड़ा बेहतर अलगाव देता है।

कोई अनुमान है कि आपका उपयोगकर्ता आधार कितना बड़ा हो सकता है?

संपादित करें:

यहाँ एक gallery of GWT क्षुधा BTW है।

+0

क्या आपको लगता है कि जीडब्ल्यूटी का उपयोग कर प्रदर्शन समस्याएं हो सकती हैं? मेरा उपयोगकर्ता आधार हजारों उपयोगकर्ताओं के लिए होना चाहिए, संभवतः 5000, लेकिन सर्वर और आधारभूत संरचना बहुत शक्तिशाली हैं, उन्होंने मुझे बताया, मुझे हार्डवेयर के बारे में अभी बहुत कुछ पता नहीं है, मैं निश्चित रूप से – emas

+0

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

1

यह डफिमो के उत्तर के समान ही हो सकता है, लेकिन यह दोहराने लायक है: क्लाइंट अज्ञेय को सर्वर से रखें।

मेरी वर्तमान परियोजना में, हमारे पास क्लाइंट और सर्वर के बीच एक JSON REST इंटरफ़ेस है। यह हमें पसंद के रूप में कई अलग-अलग ग्राहक कार्यान्वयन करने की अनुमति देता है। चेहरे में, सर्वर जावा से पूरी तरह से .NET में बदल सकता है और जब तक डेटा एपीआई समान नहीं रहता तब तक कोई भी ग्राहक तब तक परवाह नहीं करेगा।

इस प्रकार का वातावरण शुद्ध डेटा परीक्षण में भी मदद कर सकता है। आप JSON को आगे और आगे खिलाकर क्लाइंट और सर्वर (लाइव और स्वतंत्र रूप से) दोनों का परीक्षण कर सकते हैं। विभाजन पर अच्छी सलाह के लिए

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