2008-08-27 17 views
16

मैं एक डेटाबेस समर्थित इंटरएक्टिव AJAX वेबैप बनाना चाहता हूं जिसमें एक कस्टम (विशिष्ट प्रकार की घटनाएं, संपादन) कैलेंडिंग सिस्टम है। इसमें बहुत सारे जावास्क्रिप्ट और AJAX शामिल होंगे, और मैंने इंटरफेस के लिए Google वेब टूलकिट और सर्वर पक्ष के लिए रेल पर रूबी के बारे में सोचा था।क्या मुझे अपने नए वेबपैप के लिए Google वेब टूलकिट का उपयोग करना चाहिए?

क्या Google वेब टूलकिट विश्वसनीय और अच्छा है? यदि मैं Google वेब टूलकिट चुनता हूं तो क्या छुपे हुए जोखिम हो सकते हैं? क्या सर्वर आसानी से रेल पर रूबी के साथ आसानी से इसे जोड़ सकते हैं? या क्या मुझे jQuery जैसी जावास्क्रिप्ट लाइब्रेरी का उपयोग करने की कोशिश करनी चाहिए?

मुझे कुछ एचटीएमएल को छोड़कर वेब विकास में कोई अनुभव नहीं है, लेकिन मैं एक अनुभवी प्रोग्रामर (सी ++, जावा, सी #) हूं, और मैं इस परियोजना के लिए केवल मुफ्त टूल का उपयोग करना चाहता हूं।

उत्तर

12

आतंक विरोधी वास्तव में चीजों के रूप में आप बाकी ठीक से उपयोग कर रहे हैं के साथ अच्छी तरह से काम करने के लिए, जब तक GWT किया जाता है में से एक है। यह Google वेब टूलकिट एप्लीकेशन बुक में है, और आप इस तरह के विचार here का उपयोग कर पुस्तक से डेमो देख सकते हैं। यह कहना नहीं है कि आपको कोई समस्या नहीं होगी, लेकिन मुझे लगता है कि समर्थन इसके लिए निश्चित रूप से बाहर है।

आतंक विरोधी/GWT आसान है कि आप here (एमआईटी लाइसेंस) प्राप्त कर सकते हैं बनाने के लिए एक स्वच्छ परियोजना नहीं है। मुझे अभी तक इसे आजमाने का मौका नहीं मिला है, लेकिन ऐसा लगता है कि इसमें अच्छी तरह से विचार किया गया है। एक पकड़ यह है कि ऐसा लगता है कि इसका अभी तक 2.1 रेल के साथ पूरी तरह से परीक्षण नहीं किया गया है, केवल 2.0, ताकि आप कुछ (शायद मामूली और फिक्स करने योग्य) त्रुटियों में भाग सकें।

1

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

1

आप जावा में नहीं बल्कि जावास्क्रिप्ट/सीएसएस में अनुभवी रहे हैं, तो GWT एक lifesaver हो करने के लिए (बेशक, जब तक आप उन्हें सीखना चाहते हैं) जा रहा है। सीएसएस में इतने सारे स्पष्ट विवरण हैं। आधा दिन एक पिक्सेल misalignment फिक्सिंग असामान्य नहीं है जो केवल आईई 6 में होता है।

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

0

आप Grails ("रेल पर ग्रोवी") पर भी विचार कर सकते हैं जो आपको रेल फ्रेमवर्क और जावा वीएम के उपयोग के लाभ प्रदान करता है।

2

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

मैंने पहले रेल के साथ मेरी GWT लिंक कर लिया है, रेल में to_json समारोह का उपयोग कर और फिर पढ़ने GWT में JSON। यह सब समर्थित है, लेकिन यह जावा में बैक एंड करने की तुलना में कहीं अधिक परेशान है।

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

2

जीडब्ल्यूटी एक महान समुदाय के साथ बहुत उच्च गुणवत्ता है। हालांकि आपको सीएसएस को जानने की जरूरत है यदि आप चीजों के रूप में समायोजित करना चाहते हैं (आप करेंगे) - सीएसएस बहुत सारे लेआउट कर सकता है, जैसे नियमित वेब की तरह आप इसे चाहते हैं।जीडब्ल्यूटी-एक्सटी या एक्सटीजीडब्ल्यूटी जैसी लाइब्रेरी थोड़ी मदद कर सकती हैं क्योंकि उनके पास "बॉक्स से बाहर" आश्चर्यजनक है लेकिन कीमत के लिए (आपके ऐप के लिए अतिरिक्त आकार)।

4

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

अधिक जानकारी के लिए इस लिंक देखें:, JavaScript Overlay Types

तो आप अपने बैकएंड से JSON इनकोडिंग डेटा वापस कर सकता है के माध्यम से AJAX कॉल एक जावास्क्रिप्ट ऑब्जेक्ट में पार्स और फिर ओवरले का उपयोग कर अपने GWT जावा कोड के माध्यम से डेटा का उपयोग आपके द्वारा बनाई गई कक्षाएं या जब आप अपना पेज प्रस्तुत करते हैं तो आप डेटा को पकड़ने के लिए AJAX कॉल करने के बजाए, स्थिर कॉन्फ़िगरेशन डेटा को जावास्क्रिप्ट ऑब्जेक्ट्स के रूप में प्रस्तुत कर सकते हैं और इसे इस तंत्र के माध्यम से पढ़ सकते हैं।

1

मैंने हाल ही में the disadvantages of GWT में से कुछ के बारे में लिखा था। मुख्य रूप से, नुकसान हैं: आवेदन के कुछ हिस्सों में परिवर्तन के लिए लंबे तैनाती चक्र और एक बल्कि सीखने की वक्र। एक अनुभवी जावा प्रोग्रामर के रूप में, दूसरा एक समस्या से कम होना चाहिए और यदि आप एक अलग बैकएंड का उपयोग करते हैं, तो पहले भी कम हो जाता है (क्योंकि जब आप एप्लिकेशन के 'सर्वर' भाग को बदलते हैं तो पूरी तरह से पुनर्वितरण की आवश्यकता होती है)।

1

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

लेकिन हे, मैं इसके लिए कहता हूं। जीडब्ल्यूटी की संभावना बहुत बढ़िया है, और मुझे यकीन है कि यह भविष्य उज्ज्वल होगा।

1

आपको निश्चित रूप से एक नई परियोजना के लिए जीडब्ल्यूटी का उपयोग करना चाहिए (यह भी पुरानी परियोजना में उपयोग करना बहुत आसान है)।

मुझे लगता है कि यह सीखना और उपयोग करना बहुत तेज़ है। संकलित जावास्क्रिप्ट कोड किसी भी चीज़ से कहीं ज्यादा बेहतर है जिसे आप कभी भी हाथ से लिख सकते हैं और यह भी तेजी से काम करता है।

एक और लाभ आप कर रहे हैं कोड

1

इस ब्लॉग GWT के कई अनुभवी उपयोगकर्ताओं से इनपुट है डिबग करने के लिए (जो अकेले जावास्क्रिप्ट के साथ नरक है) और कुछ महान चर्चा अंक की क्षमता है। मैं अलग-अलग UI फ्रेमवर्क के साथ व्यक्तिगत रूप से बड़ा अनुभव करता हूं। मैं अपने दो सेंट जोड़ दूंगा। मौलिक फायदे और GWT

मौलिक लाभ

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

मौलिक नुकसान

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

ऐसा इसलिए है क्योंकि कॉन्फ़िगरेशन एक स्थिर डेटा है। इसे अक्सर पदानुक्रम की आवश्यकता होती है। यह पठनीय माना जाता है। इसे कभी संकलन की आवश्यकता नहीं है। इसे जावा प्रोग्रामिंग भाषा के ज्ञान की आवश्यकता नहीं है। संक्षेप में, यह एक अलग गेंद खेल है। अब सवाल यह है कि यह हमारी चर्चा से कैसे संबंधित है?

अब, वेब पेज के बारे में सोचें। क्या आपको लगता है कि जब हम एक वेब पेज लिखते हैं तो हम एक व्यवसाय तर्क लिखते हैं? बिलकुल नहीं। वेब पेज सिर्फ एक विन्यास है। यह पदानुक्रमित कंटेनर और क्षेत्रों की एक विन्यास है। हमें उस डेटा के लिए व्यावसायिक तर्क लिखना होगा जिसे वेब पेज पर कैप्चर और प्रदर्शित किया जाएगा और वेब पेज स्वयं नहीं बनाया जाएगा।

पिछला अनुच्छेद एक बहुत ही मजबूत कथन बनाता है। यह समझाएगा कि HTML और XML आधारित वेब पेज अभी भी सबसे लोकप्रिय क्यों हैं। कॉन्फ़िगरेशन लिखने के लिए एक्सएमएल व्यवसाय में सबसे अच्छा है। एक ढांचे को व्यापार तर्क से (वेब ​​एमवीसी ढांचे का लक्ष्य) से वेब पेज के स्पष्ट पृथक्करण की अनुमति देनी चाहिए। ऐसा करने से एक वेब डिज़ाइनर एक्सएमएल को कॉन्फ़िगर करके और प्रोग्रामिंग भाषा की जटिलताओं के बारे में परेशान किए बिना शानदार दिखने वाले वेब पेज बनाने के लिए विज़ुअलाइजेशन और कलाकृति के अपने कौशल को लागू करने में सक्षम होगा। डेवलपर्स बिजनेस लॉजिक लिखने के लिए बिजनेस जावा में अपना सर्वश्रेष्ठ इस्तेमाल करने में सक्षम होंगे।

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

+4

इस टूटे हुए अंग्रेजी – Yarin

+0

में अपनी प्रौद्योगिकियों बाज़ करने के लिए जगह एक बड़ा प्रोजेक्ट में GWT इस्तेमाल किया करने के बाद नहीं है, व्यापार की स्थापना, 6 महीने के लिए मैं दृढ़ता से सहमत हैं। जीडब्ल्यूटी असफल है। – rapadura

0

हमारी टीम को हाल ही प्रश्न पूछा, और हम, GWT साथ जाने के लिए विशेष रूप से डिजाइनर प्लगइन GWT टीम पर गैर जावा विशेषज्ञों के लिए अधिक सुलभ के साथ काम किया चुना है। जो भी इस विकल्प को बनाता है, बस सावधान रहें आप जीडब्ल्यूटी डिजाइनर प्लगइन का उपयोग न करें !! आईई 8 के साथ संगत एक जीडब्ल्यूटी एप्लीकेशन बनाने के लिए इसे अद्यतन नहीं किया गया है (जाहिर है, कम से कम एक वर्ष में)।

हमारी टीम ने लगभग हमारे आवेदन लेआउट पूरे किए हैं, जो क्रोम, एफएफ और सफारी में पूरी तरह से काम कर रहे थे। फिर वे आईई में उड़ा दिया। आईई 7 आंशिक पृष्ठों को लोड करेगा (लेकिन समग्र शामिल नहीं है), और IE8 भी एप्लिकेशन को लोड करने में सक्षम नहीं था। यह बस लटका हुआ है।

डिजाइनर प्लगइन में ऐसे बटन हैं जो उपयोगकर्ता को सेलटेबल विजेट जोड़ने की अनुमति देते हैं जो आईई संगत (सेलटेबल, डेकपैनल, क्षैतिज पैनल, वर्टिकल पैनल, दूसरों के बीच नहीं) हैं। जब डिजाइनर से सहायता के बिना जावा में लेआउट को फिर से किया जाना चाहिए तो ये तीव्र दर्द का कारण बनेंगे।

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

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