2009-09-03 13 views
7

मैं एक दस्तावेज़ आधारित क्लाइंट अनुप्रयोग लिख रहा हूँ और मैं एक डोम या WPF तरह की जरूरत है, लेकिन गैर दृश्य मॉडल है कि:संपत्ति विरासत और घटना बुलबुले के साथ पदानुक्रमित वस्तु मॉडल?

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

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

मेरा वर्तमान प्लेटफ़ॉर्म .NET/C# है, लेकिन अगर किसी को कुछ भी पता है जो प्रेरणा या एम्बेडिंग के लिए उपयोगी हो सकता है, प्लेटफ़ॉर्म पर ध्यान दिए बिना, मुझे जानना अच्छा लगेगा।

उत्तर

1

मुझे नहीं लगता कि यह आपके द्वारा निर्दिष्ट सभी आवश्यकताओं को पूरा करता है, लेकिन क्या आपने एक्सएमएल डोम (एचटीएमएल डोम के विपरीत) के साथ काम करने पर विचार किया है? आप .NET में प्रोग्रामेटिक रूप से एक XML दस्तावेज़ बना सकते हैं और इसे DOM विधियों और गुणों का उपयोग करके कुशलतापूर्वक बना सकते हैं, और XPath क्वेरीज़ जैसी चीजें भी कर सकते हैं। .NET की XmlDocument ऑब्जेक्ट देखें। यह एक उचित प्रारंभिक बिंदु हो सकता है।

0

ग्रहण ईएमएफ मदद कर सकता है, लेकिन यह आपके लिए भी अधिक हो सकता है। आईएमएचओ अच्छी तरह से डिज़ाइन की गई भाषा को इस तरह का कार्य बेहद आसान बनाना चाहिए ...

0

नेटबीन्स प्लेटफ़ॉर्म काफी वही करता है जो आप चाहते हैं।

+0

यह एक टिप्पणी होगी - हालांकि हम समझते हैं कि आपको टिप्पणियां पोस्ट करने के लिए 50 प्रतिनिधि की आवश्यकता है। इसलिए कृपया अपने उत्तर का समर्थन करने के लिए और अधिक प्रासंगिक जानकारी जोड़ें। – bonCodigo

0

क्या आप ऑब्जेक्ट मॉडल के लिए सलाह चाहते हैं? कैसे:

// C#-ish code that probably doesn't compile 
class Element { 
    public object GetAttribute(string attribute) { 
     if (this.Attributes.HasKey(attribute)) 
      return this.Attributes[attribute]; 
     else 
      return this.Parent.GetAttribute(attribute); 
    } 

    private IDictionary<string,object> Attributes; 

    private Element Parent; 
    private IList<Element> Children; // maybe not needed 

    // etc. 
} 

और वहां से जाएं?

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