2011-03-10 21 views
5

हम फीडर रीडरविंडोज डेस्कटॉप- और आईपैड एप्लिकेशन के रूप में बनाने की योजना बना रहे हैं। जैसा कि हम वेबसाइटों को दिखाने के लिए और को इस एप्लिकेशन में चलाने के लिए जावास्क्रिप्ट दिखाने के लिए सक्षम होना चाहते हैं, हमने एचटीएमएल/सीएसएस/जावास्क्रिप्ट के रूप में एप्लिकेशन को वितरित करने के बारे में सोचा, बस कुछ .NET नियंत्रण या कोको टच वेबब्रोसर द्वारा लिपटे घटक। तो हाथ में कार्य यह पता लगाने के लिए है कि एप्लिकेशन में एम्बेड करने के लिए HTML/CSS/JS फ़ाइलों को बनाने के लिए किस ढांचे का उपयोग करना है।आर्किटेक्चर प्रश्न: जीडब्ल्यूटी या वाडिन डेस्कटॉप एप्लिकेशन बनाने के लिए?

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

सवाल यह है कि: आप कौन सा विकास ढांचा चुनेंगे (दिए गए आप इस परियोजना को लागू करना चाहते थे और आपने ज्यादातर जावा को अब तक किया था) और क्यों? यदि बेहतर ढांचे के विकल्प हैं (List of Rich Client Frameworks), तो कृपया मुझे बताएं।

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

संपादित 2: हम (वास्तविक रूप से यदि आप संदेह करते हैं) कम से कम 10000 उपयोगकर्ताओं की अपेक्षा करते हैं।

उत्तर

6

Vaadin के साथ मेरा अनुभव के आधार पर, मुझे लगता है कि के लिए जाना चाहते हैं, लेकिन अपनी आवश्यकताओं को कुछ हद तक शुद्ध GWT बजाय पक्ष कर रहे हैं।

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

क्योंकि Vaadin बहुत जल्दी विकसित करना है, तो आपको पहले एक छोटे से Vaadin संस्करण का निर्माण और अगर है कि वास्तव में आईपैड पर समस्या यह है देख सकता था।

दूसरी तरफ, यदि आप तुरंत ऑनलाइन जाकर मान सकते हैं, तो आप स्थानीय सर्वर स्थापना को पूरी तरह से छोड़ सकते हैं। बस एप्लिकेशन को ऑनलाइन चलाएं और ऑपरेटिंग सिस्टम डिफ़ॉल्ट ब्राउज़र नियंत्रण (यानी आपके द्वारा सुझाए गए .NET नियंत्रण) का उपयोग कर डेस्कटॉप संस्करण को लागू करें। फिर वाडिन आसान है।

4

Vaadin GWT पर सिर्फ ढांचे का आधार है, लेकिन दो बहुत ही महत्वपूर्ण विशेषताएं हैं:

  • GWT संकलक चलाने के लिए जरूरत नहीं है। यह शुद्ध जावा है। बेशक अगर एडॉन्स नहीं जोड़ते हैं तो gwt compiler को चलाना चाहिए।
  • आपको संचार कोड लिखने की आवश्यकता नहीं है। इसलिए आपको डीटीओ समस्याओं को हल करने की आवश्यकता नहीं है, गैर-क्रमिक ऑब्जेक्ट मैपिंग्स और सर्लेट लिखने की आवश्यकता नहीं है।

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

इस मामले में आपको एमवीपी पैटर्न और डोमेन संचालित विकास का उपयोग करना चाहिए।

  • बुसिन बीन्स डोमेन ऑब्जेक्ट्स और तर्क है जो प्रतिक्रिया भेजने के लिए इंटरफेस का उपयोग करते हैं।
  • कस्टम वैडिन घटक (मानक घटकों को बढ़ा सकता है) कार्यान्वयन इंटरफेस देखें।

यह तरीका अच्छा है जब आप यूआई इंजन को बदलने का फैसला करते हैं यदि वाडिन आपके लिए नहीं है। बस guice/spring mappings को फिर से लिखें और दृश्य इंटरफेस के नए कार्यान्वयन लिखें।

3

मेरे 3 सेंट:

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

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

आशा यह आप निर्णय लेने में मदद करेगा।

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