2010-09-09 14 views
29

ठीक है, तो शायद यह बंद हो जाएगा या जो भी हो, मुझे परवाह नहीं है। मुझे यह कहना है क्योंकि यह मुझे नरक की तरह निराश करता है।कोई सीएसएस जैसी जीयूआई निर्माता

एक समय पर, मैं एक एचटीएमएल/सीएसएस/पीएचपी पृष्ठभूमि से आवेदन विकास की विशाल गहराई में आया था। मैं जावा के घाटियों के चारों ओर घूम गया और सी # के रहस्यों की खोज की। मैं रूबी की सुंदरता पर gasped, बैश की जिद्दी सादगी पर गिर गया और समय-समय पर मेरे पुराने दोस्तों एचटीएमएल, सीएसएस और PHP देखने के लिए वापस आ गया।

यह तब तक था जब तक मुझे जावा में डेस्कटॉप एप्लिकेशन बनाने की तलाश नहीं थी, जब तक मुझे दर्द और पीड़ा के बारे में चौंक गया था, ताकि मुझे एप्लिकेशन को देखने और महसूस करने के मामले में कम या ज्यादा उपयोगकर्ता के अनुकूल बनाया जा सके। ।

मैं लेआउटमैनेजर्स, डॉकिंग पैरामीटर के एक दुःस्वप्न में फंस गया था और जो भी दुष्ट प्राणी java.swing और साथी के द्वार से परे झूठ बोला था।

इस बिंदु पर, मुझे एक प्रजनन प्रतीत होता था। जैसा कि कोब ने कहा था; सबसे लचीला परजीवी क्या है? जीवाणु? एक विषाणु? एक आंतों कीड़ा? एक विचार। लचीला ... अत्यधिक संक्रामक। एक बार जब मस्तिष्क को पकड़ लिया गया तो यह उन्मूलन करना लगभग असंभव है। एक विचार जो पूरी तरह से गठित है - पूरी तरह से समझा जाता है - वह छड़ें; ठीक कहीं कहीं। - योको, उस तरह का विचार।

मैं सोच रहा था, यह मेरे दोस्त सीएसएस के रूप में इतना आसान क्यों नहीं हो सकता था। इस तरह लेआउटिंग, मार्जिन, सीमाओं, फ्लोटिंग, जो भी हो।

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

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

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

क्या कोई भी वैसे ही महसूस करता है जैसा मैं करता हूं?

या (काफी समेकित क्या होगा) क्या ऐसा उपकरण है और मैं इसे खोजने के लिए बहुत मूर्ख था?

+0

दृश्य स्टूडियो का प्रयास करें, आपके पास कम से कम एएसपीनेट में एक सीएसएस डिजाइनर एकीकरण की कोशिश है। – MUG4N

+0

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

+7

स्टैक ओवरव्लो ब्लॉग नहीं है। एक विशिष्ट प्रश्न पूछने के लिए कृपया अपनी पोस्ट को फिर से लिखें, जिसे निश्चित रूप से उत्तर दिया जा सकता है। –

उत्तर

12

मोज़िला की एक्सएमएल-आधारित भाषा XUL सीई का उपयोग गुई लेआउट के लिए एक उपकरण के रूप में करती है। उनके पास "Skinnable XUL and CSS" पर एक लेख है। :)

+1

XUL का उपयोग XULRunner के साथ स्टैंड-अलोन ऐप्स के लिए भी किया जा सकता है। – slikts

+2

तो वहां आप जाते हैं। XULRunner == स्टैंडअलोन "वेब-आधारित" ऐप्स। – adib

+0

यह साफ है।=) –

13

माइक्रोसॉफ्ट नेट के डब्ल्यूपीएफ (विंडोज प्रेजेंटेशन फाउंडेशन) एक जीयूआई-सृजन समाधान है जो एचटीएमएल + सीएसएस के समान है।

आईएमओ, यह एचटीएमएल की तुलना में अधिक बहुमुखी है, लेकिन अभी भी उपयोग करना आसान है (और पठनीय जीयूआई कोड बनाने के लिए)।

<DockPanel> 
    <Label Content="Dock Panel Layout Demo" 
    FontSize="15" FontWeight="Bold" Background="LightBlue" 
    Foreground="Blue" DockPanel.Dock="Top"/> 

    <Label Content="Footer" FontSize="15" FontWeight="Bold" 
      Background="LightGray" 
      DockPanel.Dock="Bottom" /> 

    <Label Content="Left Pane" FontSize="15" FontWeight="Bold" 
      Width="125" Background="Firebrick" 
      DockPanel.Dock="Left"/> 

    <Label Content="Content Pane" FontSize="15" FontWeight="Bold" 
      Width="255" 
      Background="Beige"/> 

    <Label Content="Right Pane" FontSize="15" FontWeight="Bold" 
      Width="125" Background="Khaki" 
      DockPanel.Dock="Right"/> 
</DockPanel> 

और शैलियों:

<Window.Resources> 
    <Style x:Key="myStyle" TargetType="Button"> 
     <Setter Property="Background" Value="Orange" /> 
     <Setter Property="FontStyle" Value="Italic" /> 
     <Setter Property="Padding" Value="8,4" /> 
     <Setter Property="Margin" Value="4" /> 
    </Style> 
</Window.Resources> 
+0

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

+6

मैं डब्ल्यूपीएफ के एक्सएएमएल कोड लिखने के लिए कोई डिजाइनर नहीं उपयोग करता हूं। आईएमओ डिजाइनर कोड लिखने से धीमा है। मुझे डब्लूपीएफ के साथ झुका हुआ है - विजुअल स्टूडियो की विनफॉर्म डिजाइनर फाइलें समय-समय पर बैकअप का उपयोग करने के लिए मजबूर होती हैं। डब्ल्यूपीएफ के साथ ऐसा कोई खतरा नहीं है। –

+0

आप हाथ से एक्सएएमएल लिख सकते हैं। आपको डिजाइनर का बिल्कुल उपयोग करने की ज़रूरत नहीं है। – Ikke

4

क्यों के रूप में जल्द ही एचटीएमएल परेशान और जावास्क्रिप्ट सार्वभौमिक और उपयोगकर्ता- लिखने के सर्व-व्यापक तरीका होगा

परिभाषित लेआउट इस उतना ही आसान है अनुप्रयोगों का सामना करना ^^

इसके अलावा, मैंने वास्तव में WPF का उपयोग नहीं किया है, लेकिन ऐसा लगता है कि आप अपने सपनों का वर्णन करने के तरीके में "घोषणात्मक" यूआई बिल्डिंग तकनीक शामिल करते हैं और यह विस्तारित होता है सिल्वरलाइट और माइक्रोसॉफ्ट प्रौद्योगिकियों के सभी प्रकार। वे उस दृष्टिकोण में अकेले नहीं हो सकते हैं ...

+0

नहीं, यह नहीं होगा। जावास्क्रिप्ट वर्तमान में इसकी क्षमताओं की चोटी के करीब है। – doc

+0

इसका मतलब यह नहीं है कि वेब-एप्लिकेशन उत्पादक काम (जो वे करेंगे) के लिए वास्तविक कार्यक्रम होने में अधिक से अधिक विकसित नहीं होंगे –

+0

@ डॉक वेबसाइस्प्लर्स –

2

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

8

क्यूटी अनुप्रयोगों में, आप एक सीएसएस जैसे सिंटैक्स का उपयोग कर सकते हैं, जिसे क्यूएसएस कहा जाता है।
अगले संस्करण में "घोषणात्मक यूआई" भी होगा, जिसे क्यूएमएल कहा जाता है।

डब्ल्यूपीएफ और सिल्वरलाइट एक्सआईएमएल नामक उनके यूआई के लिए एक्सएमएल आधारित घोषणात्मक भाषा का भी उपयोग करते हैं।

6

"शुद्ध, सरल, आसान सीएसएस"

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

सत्य आपके विचार से कहीं अधिक दर्दनाक है।

मैं कभी भी एक और "बॉक्स-मॉडल हैक" का उपयोग करने के लिए हमेशा से आभारी रहूंगा।

+1

आपको वास्तव में यहां बिंदु मिल गया है;) – MUG4N

+0

@ ApoY2k - यह सच हो सकता है, लेकिन मानक होने का क्या मतलब है कि कोई भी उसी तरह से व्याख्या नहीं करता है? मूक बिंदु, व्यावहारिक रूप से हम प्रत्येक स्वाद के लिए खानपान समाप्त करते हैं। मैं समझता हूं कि फ्लैश ने – Jonathan

+2

@ ApoY2k से बाजार हिस्सेदारी को पकड़ लिया है: मुझे कठोर याद है जब मैं सीएसएस के साथ काम करने के साथ कुछ प्रभाव हासिल करने की कोशिश कर रहा था। सीएसएस कुछ तत्वों के दिखने को परिभाषित करने में अच्छा है, लेकिन जब लेआउट सीएसएस की बात आती है तो वास्तव में रैली खराब उपकरण होता है। मुझे आश्चर्य है कि इस प्रश्न का लेखक जीयूआई अनुप्रयोगों में लेआउट के लिए सीएसएस का उपयोग करना चाहता है, जबकि मैं वेब दुनिया में जीयूआई लेआउट तकनीकों को आयात करने के इच्छुक हूं। – doc

7

यह सब परिप्रेक्ष्य का मामला है। मैं कुछ दशकों के लिए डेस्कटॉप ऐप विकास कर रहा हूं। मुझे लगता है कि सीएसएस बिल्कुल भयानक है। एक सभ्य लेआउट बनाने के लिए हास्यास्पद रूप से कठिन है, और सच्ची अंतःक्रियाशीलता शाही दर्द है। मेरी राय में।

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

+1

मुझे नहीं मिल रहा है कि आप स्विंग को इतनी ज्यादा क्यों दोष देते हैं। इसके साथ इतना बुरा क्या है? कुछ समय पहले यह गंदा था, लेकिन अब यह बेहतर दिखता है। शायद यह सबसे अच्छा उपयोगकर्ता अनुभव नहीं लाता है, लेकिन इसमें लिखना काफी आसान है। अब एडब्ल्यूटी और स्विंग को छोड़कर आपके पास जावा में कम से कम SWT और Jambi है। लेकिन सीएसएस लेआउट आलोचकों के लिए +1 (ऊपर मेरी पोस्ट या नीचे पढ़ें)। – doc

+0

@ डॉक: एक उदाहरण के रूप में: स्विंग में आठ या तो लेआउट प्रबंधक हैं (सीमावर्ती, बॉक्सलाउट, ग्रिडबैगलाउट, आदि)। प्रत्येक एक दूसरे से अलग है, प्रत्येक को कुछ हद तक उपयोग करना मुश्किल है। उस तुलना में उस राशि की तुलना करें जिसमें वास्तव में तीन (और केवल दो जो आमतौर पर उपयोग किए जाते हैं)। और उन तीनों के साथ मैं कोड की काफी कम लाइनों के साथ स्विंग कर सकते हैं कि किसी भी लेआउट डुप्लिकेट कर सकते हैं। यही कारण है कि मैं स्विंग नापसंद करता हूं। ऐसा नहीं है कि आप इसके साथ बहुत कुछ नहीं कर सकते हैं, यह सिर्फ इतना है कि कुछ भी पूरा करने के लिए कोड की बहुत सारी रेखाएं होती हैं। –

+0

मैं मानता हूं, ग्रिडबैग लेआउट और इसकी बाधाएं थोड़ा परेशान हैं। लेकिन आखिरकार यह मेरी राय में सीएसएस के साथ लेआउट बनाने से बेहतर है। – doc

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