2010-05-27 3 views
5

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

यहाँ मेरी स्थिति

1) यह प्रत्येक मशीन पर स्थानीय रूप से चलाने के हो जाएगा, सभी Windows कंप्यूटर

2) है मैं करूंगा वास्तव में रंग, अच्छा स्क्रीन, मेनू, सूचियों के साथ एक अच्छा देख जीयूआई की तरह , आदि,

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

4) मैं इस कार्यक्रम को पूरी तरह से पोर्टेबल होना चाहते हैं तो यह पूरी तरह से

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

मेरी स्थिति के लिए है?),/मैं इसे एक ब्राउज़र अनुप्रयोग बना सकते हैं चाहिए? मेरी स्थिति के लिए पेशेवर और विपक्ष क्या होगा?

उत्तर

4

स्थानीय रूप से होस्ट किए गए वेब एप्लिकेशन के रूप में डेस्कटॉप एप्लिकेशन लिखना आम तौर पर एक अच्छा विचार नहीं है। हालांकि यह HTML, सीएसएस, और जावास्क्रिप्ट के साथ महान यूजर इंटरफेस बनाने के लिए संभव है, यह अब तक पारंपरिक जीयूआई चौखटे के साथ इंटरफेस बनाने के लिए आसान है।

अपने डेस्कटॉप जीयूआई बनाने के लिए वेब तकनीकों का उपयोग करना आपके आवेदन के लिए अनावश्यक जटिलता का एक बड़ा सौदा पेश करेगा।

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

मैं इसके बजाय डेस्कटॉप जीयूआई ढांचे का उपयोग करने की सलाह देता हूं। विशेष रूप से, मुझे लगता है कि wxPython आपके लिए उपयोग करने के लिए सबसे अच्छा जीयूआई ढांचा होगा; यह स्थिर, व्यापक रूप से उपयोग किया जाता है, अच्छी तरह से प्रलेखित, और अत्यधिक पोर्टेबल है। इसके अलावा, आप अपने आवेदन की यूजर इंटरफेस डिजाइन करने के लिए एक जीयूआई आधारित इंटरफेस बिल्डर जैसे Boa Constructor या संभवतः wxGlade उपयोग कर सकते हैं। संक्षेप में, लगभग किसी भी डेस्कटॉप जीयूआई ढांचे के साथ एक एप्लीकेशन बनाना वेब प्रौद्योगिकियों का उपयोग करने से आसान होगा।

3
  1. आपने यह उल्लेख नहीं किया कि आप विंडोज़ या लिनक्स या किसी अन्य ओएस पर हैं या नहीं।
  2. आप एक ब्राउज़र लिख रहे हैं, तो इसका मतलब है कि प्रत्येक उपयोगकर्ता के एक वेबसर्वर स्थानीय स्तर पर चल रहा है के लिए है प्रत्येक उपयोगकर्ता अपने स्थानीय मशीन => पर एप्लिकेशन चला जाता है तो ऐप्लिकेशन पहली बात आप की जरूरत करने जा रहे हैं एक वेब सर्वर है।

इसके अलावा बहुत सारे रैपिड डेवलपमेंट जीयूआई टूलकिट्स हैं जैसे डब्ल्यूएक्सपीथन और ग्लैड जो जीयूआई ऐप्स को डिज़ाइन सरल और आसान बनाते हैं।

मैं सुझाव दूंगा कि यदि आप नेटवर्क ऐप बना रहे हैं -> ब्राउज़र मार्ग लें।

यदि आप स्टैंडअलोन ऐप बना रहे हैं तो मूल एप्लिकेशन के साथ जाएं।

यहां सभी ढांचे की लगभग पूरी सूची है। आप जो कुछ भी अपनी जरूरतों को पूरा कर सकते हैं चुन सकते हैं। http://wiki.python.org/moin/GuiProgramming

मैं व्यक्तिगत रूप से PyGTK पक्ष, लेकिन यह अगर आप किसी भी जीयूआई प्रोग्रामिंग से पहले किया नहीं किया इसके साथ जुड़े एक छोटे से सीखने की अवस्था है।

3
+0

क्या यह एक पोर्टेबल ऐप के रूप में चलाया जाएगा? (सभी एक फ़ोल्डर से, किसी भी प्रकार की आवश्यकता नहीं है) – ChrisC

1

मुझे लगता है कि यह काम करना चाहिए। आप किस बात से भयभीत हैं? प्रॉक्सी सेटिंग, फ़ायरवॉल?

मुझे लगता है कि वेब सर्वर स्थानीय स्तर पर चल रहा है उपयोगकर्ता सत्ता के लिए मुश्किल नहीं है बल्कि यह औसत उपयोगकर्ता (यहां तक ​​कि अपने अनुप्रयोग के साथ एकीकृत) के लिए एक समस्या हो सकती है।

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

मैं अन्य समाधान पसंद करूंगा। मैं शायद क्यूटी के साथ जावा (स्विंग) या सी ++ का उपयोग करूंगा। लेकिन मुझे आपका दृष्टिकोण पसंद है, खासकर यह आसान प्रोटोटाइप की अनुमति देता है। यदि आप वेब स्टाइल डेवलपमेंट पसंद करते हैं तो आप http://www.appcelerator.com/products/titanium-desktop-application-development/ आज़मा सकते हैं, यह एचटीएमएल + जावा स्क्रिप्ट + वेबकिट का उपयोग कर डेस्कटॉप ऐप बनाता है। लेकिन मैंने इसे स्वयं नहीं किया (लेकिन मैं चाहूंगा)।

इसके अलावा एडोब एयर शायद आपके लिए अच्छा विकल्प हो सकता है।

+0

एक त्वरित नज़र पर, एस्सेलरेटर बहुत दिलचस्प लग रहा है। मुझे पूरा यकीन है कि मैं पाइथन के साथ अन्य विकल्पों पर रहना चाहता हूं, और यह कहता है कि इसमें पाइथन के लिए पूर्ण समर्थन है (हालांकि मुझे यकीन नहीं है कि "पूर्ण समर्थन" का अर्थ वास्तव में क्या है)। – ChrisC

4

मैंने विंडोज़ पर एक डेस्कटॉप ऐप चलाया है और मुझे लगता है कि यह ऐप विकसित करने का एक शानदार तरीका है।

मैं bottle पर एक नज़र डालने की सिफारिश करता हूं। यह हल्का वेब ढांचा है। उदाहरण के लिए Django से कम capabale है लेकिन यह अच्छी तरह से करता है। यदि आप पाइथन के बिना मशीनों पर तैनाती करना चाहते हैं तो इसे py2exe से पैक किया जा सकता है।

आपकी मदद करने के लिए वेब पर बहुत सारे जावास्क्रिप्ट libs हैं। मुझे jquery और jquery-ui, raphaeljs पसंद है ... लेकिन कुछ अन्य हैं।

मेरा ऐप mshtml component of Pyjama-Desktop पर आधारित एक छोटे ब्राउज़र में चल रहा है। इस तरह, उपयोगकर्ता नहीं जानता कि यह एक वेब ऐप है। लेकिन आप ऐप को पसंदीदा ब्राउज़र में चलने दे सकते हैं, webbrowser python module आपके लिए दिलचस्प हो सकता है।

यदि आपके ऐप को आपके फाइल सिस्टम तक पहुंचने की आवश्यकता है, तो ब्राउज़र-आधारित ऐप मुश्किल हो सकता है। सुरक्षा कारणों से, ब्राउज़र के पास आपके फाइल सिस्टम में पूर्ण पहुंच नहीं है। हालांकि, आप फ़ाइल को ajaxupload के साथ खोल सकते हैं और फ़ाइल को iframe से सहेज सकते हैं।

यदि यह केवल एक SQL डेटाबेस से संबंधित है, तो मुझे लगता है कि यह एक बहुत अच्छी पसंद है।

मुझे आशा है कि यह मदद करता है

1

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

एक वेब इंटरफेस का उपयोग करके आप इस तरह के रूप में अधिक शक्तिशाली उपयोगकर्ता इंटरफ़ेस उपकरण में से कुछ, का उपयोग करने के लिए अनुमति देता है:

  • शानदार डिजाइन
  • जावास्क्रिप्ट उपयोगिताएँ की उपलब्धता के लिए सीएसएस उपयोग करने की क्षमता (jQuery , ExtJS, आदि)
  • आसानी
  • उच्चतर पहुंच
  • अनुरूप यूआई डेस्कटॉप अनुप्रयोगों की तुलना में संशोधित (जैसे उपयोगकर्ता पहले से ही पता कैसे "वापस" काम करता है, आदि)
  • केन्द्रीकृत अद्यतन (बस सर्वर, प्रत्येक ग्राहक नहीं) को अद्यतन
1

आवेदन प्रकार आपके मनपसंद प्रौद्योगिकी की कमी के दोनों संबंधित हो जाएगा और के प्रकार उपयोगकर्ता अनुभव जो आप वितरित करने की योजना बना रहे हैं।

  • रिच क्लाइंट अनुप्रयोग: आमतौर पर एक स्टैंड-अलोन आवेदन के रूप में विकसित किया है। डिस्कनेक्ट या कभी-कभी जुड़े परिदृश्यों का समर्थन कर सकते हैं। स्थानीय मशीन के प्रसंस्करण और संग्रहण संसाधनों का उपयोग करता है।

  • वेब अनुप्रयोग: एकाधिक प्लेटफ़ॉर्म और ब्राउज़र का समर्थन कर सकता है। केवल जुड़े परिदृश्यों का समर्थन करता है। सर्वर के प्रसंस्करण और संग्रहण संसाधनों का उपयोग करता है।

मैं पोर्टेबल एप्लिकेशन के लिए आपके मामले में व्यक्तिगत रूप से पीईक्यूटी का पक्ष लेता हूं।

PyQt के लिए मुखपृष्ठ http://www.riverbankcomputing.com/software/pyqt/

PyQt विंडोज, लिनक्स, यूनिक्स और MacOS/एक्स प्लेटफार्मों का समर्थन करता है है।

पीईक्यूटी 4 क्यूटी 4 के लिए पायथन बाइंडिंग का एक सेट है जो जीपीएल (संस्करण 2 और 3, अतिरिक्त लाइसेंस अपवादों के साथ) और एक वाणिज्यिक लाइसेंस के तहत दोहरी लाइसेंस प्राप्त है। नोकिया द्वारा पाईसाइड भी है - एलजीपीएल लाइसेंस के साथ नई वैकल्पिक बाइंडिंग (नवंबर 200 9 तक) जो पीईक्यूटी 4 के साथ एपीआई संगत (कम से कम क्यूटी 4.6 तक) होने का संघर्ष करती है।

उपकरण और डॉक्स

  • PyQt संदर्भ प्रलेखन।

  • PyQt4 पुस्तक: http://www.qtrac.eu/pyqtbook.html

  • pyuic4 उपयोगिता यूआईसी मॉड्यूल के लिए एक कमांड लाइन इंटरफेस है। कन्वर्ट xml ui क्यूटी से पायथन तक कनवर्ट करें।

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

  • विजेट की एक व्यापक सेट

  • लचीला लेआउट प्रबंधकों

    अनुप्रयोगों के लिए
  • स्टैंडर्ड जीयूआई सुविधाओं (उदाहरण: PyQt4 क्यूटी 4 (नोकिया से) अजगर को की कार्यक्षमता का ज्यादा, सहित उजागर करता है मेनू, टूलबार, डॉक विंडोज़)

  • एप्लिकेशन घटकों (सिग्नल और स्लॉट) के बीच आसान संचार

  • पारदर्शिता, विरोधी aliasing, ओपन एकीकरण और एसवीजी समर्थन

  • अंतर्राष्ट्रीयकरण (i18n) समर्थन और क्यूटी भाषाविद् अनुवाद उपकरण के साथ एकीकरण

  • आदि

साथ एक एकीकृत चित्रकला प्रणाली
0

आप सवाल थोड़ा सा व्यापक है। मैं जितना कर सकता हूं उतना कवर करने की कोशिश करूंगा।

पहला, जो मैंने समझा और मेरी धारणाएं।

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

यहां कुछ विचार हैं जो ध्यान में आते हैं।

  • आप (या तो वेब आधारित या डेस्कटॉप) पायथन में एक आवेदन को विकसित हैं, तो आप एक भी निष्पादन योग्य के रूप में यह पैकेज और यह अपने उपयोगकर्ताओं को वितरित करना होगा। उन्हें पाइथन रनटाइम के साथ-साथ आपके द्वारा उपयोग किए जा रहे किसी भी अतिरिक्त मॉड्यूल को स्थापित करना पड़ सकता है।
  • Guis जावास्क्रिप्ट के साथ ब्राउज़र में एक स्टैंडअलोन विजेट सिस्टम का उपयोग करके विकसित करने के लिए मेरे अनुभव में आसान है। पजामा जैसी चीजें हैं जो इसे बेहतर बनाती हैं लेकिन यह अभी भी कठिन है।
  • हालांकि यह स्थानीय वेब अनुप्रयोगों प्रत्येक कंप्यूटर पर चल रहा है करने के लिए असंभव नहीं है, अपने वास्तविक लाभ आने अगर आप इसे केंद्रीकृत। सॉफ्टवेयर अद्यतन करने के लिए एक जगह। "वितरित" करने की कोई आवश्यकता नहीं है। यह निश्चित रूप से यह है कि आप एक अधिक शक्तिशाली डेटाबेस सिस्टम का उपयोग करते हैं और आप वास्तव में एकाधिक उपयोगकर्ताओं का प्रबंधन कर सकते हैं। यह भी आवश्यक होगा कि आप ब्राउज़र विशिष्ट quirks के बारे में चिंता करते हैं।

मैं एक पूर्व-पैकेज टूलकिट (शायद Tkinter जो अजगर के साथ जहाजों) का उपयोग करता है एक सरल डेस्कटॉप ऐप्लिकेशन के साथ जाना चाहते हैं। यह दृष्टिकोण का सबसे अच्छा नहीं है लेकिन यह आपके लिए समस्याओं से बच जाएगा। मैं ऐसी भाषा का उपयोग करने पर भी विचार करूंगा जो सी # जैसे विंडोज़ पर अधिक "प्रथम श्रेणी" है ताकि रनटाइम और अन्य चीजें पहले से मौजूद हों। एक फैंसी जीयूआई के लिए आप की आवश्यकता माध्यमिक है और मैं सलाह देते हैं कि आप कार्यक्षमता ठीक काम कर रहा से पहले आप घंटियाँ और सीटी पर ध्यान केंद्रित करने से मिलता है।

शुभकामनाएं।

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