मैंने पिछले दो वर्षों में कुछ डेटा आधारित विनफॉर्म एप्लिकेशन विकसित किए हैं और सभी ठीक काम करते हैं। यह एप्लिकेशन परतों (डेटाएप, बिजनेस लॉजिक और यूआई) पर बनाया गया है।अवलोकन योग्य चयन (टी) बनाम बाध्यकारी सूची (टी)?
Public MustInherit Class BaseEntity Inherits SerializableObject Implements IEntity Implements IComparer, _ IEditableObject, _ INotifyPropertyChanging, INotifyPropertyChanged, _ IApplicationSecurity End Class
ही कोर पुस्तकालय में: businness तर्क के लिए, मेरे सभी वस्तुओं निम्नलिखित परिभाषा (वहाँ कुछ कस्टम वस्तुओं और इंटरफेस, ढांचे तत्वों के साथ संयुक्त कर रहे हैं) के साथ BaseEntity नामक एक आधार वर्ग से विरासत , मेरे पास एक सामान्य आधार संग्रह BaseEntityCollection है। ये संग्रह मुझे डेटा आधारित अनुप्रयोगों में, प्रत्येक ऑब्जेक्ट के लिए, उनके संबंधित दृढ़ता से टाइप किए गए संग्रह को परिभाषित करने की अनुमति देता है, जो बहुत अंतरंग है। यहाँ यह आधार परिभाषा है है:
Public MustInherit Class BaseEntityCollection(Of T As BaseEntity)
Inherits BindingList(Of T)
Implements IEntityCollection
Implements INotifyPropertyChanged, INotifyPropertyChanging, ICopyable(Of T)
Implements IDisposable
Implements ISerializable
End Class
आप देख सकते हैं, मैं सब सामान है कि Winforms में सही डेटा बाइंडिंग के लिए आवश्यक है का उपयोग करें: वस्तु के लिए
- INotifyPropertyChanged, INotifyPropertyChanging, IEditableObject।
- मेरे संग्रह के लिए बाइंडिंगलिस्ट (टी) पर आधारित एक संग्रह।
मैं नई प्रौद्योगिकियों पर भी हस्तक्षेप कर रहा हूं, इसलिए मैंने हाल ही में WPF के बारे में कुछ वेबकास्ट देखा है। इन वेबकास्ट में, वे संग्रह और डाटाबेसिंग समर्थन के लिए आधार वर्ग के रूप में उपयोग करते हैं ObservableCollection (टी)।
मैं यूआई परत के लिए Winforms से WPF तक अपने कुछ अनुप्रयोगों को माइग्रेट करने पर सोच रहा हूं।
मेरा प्रश्न है, मेरे व्यापार तर्क के लिए, क्या यह मेरे संग्रह को बाइंडिंगलिस्ट (टी) के आधार पर बेहतर रखता है या क्या मुझे अपना बेस संग्रह वर्ग बदलना चाहिए ताकि इसे ऑब्जर्जेबल कोलेक्शन (टी) से प्राप्त किया जा सके। मैं अपनी सभी परियोजनाओं के लिए एक अद्वितीय आधार संग्रह रखना चाहता हूं, जिसका उपयोग विनफॉर्म एप्लिकेशन, डब्ल्यूपीएफ एप्लीकेशन या एएसपी.नेट में भी किया जा सकता है। मैं अपनी परियोजनाओं में ऑब्जेक्ट्स के लिए लिंक का भी उपयोग कर रहा हूं, इसलिए मेरे पास केवल प्रोजेक्ट 2.0 पर आधारित मेरी परियोजनाओं को रखकर प्रतिबंध नहीं है।
धन्यवाद,
ClaBer
'अवलोकन योग्य चयन' धागा सुरक्षित है, मुझे बाइंडिंगलिस्ट के बारे में पता नहीं है। – Shimmy
यह सही नहीं है। माइक्रोसॉफ्ट के दस्तावेज स्पष्ट रूप से बताते हैं कि ऑब्जर्वेबल कोलेक्शन थ्रेड सुरक्षित नहीं है। http://msdn.microsoft.com/en-us/library/ms668604.aspx – kevindaub
के बाद से ObservableCollection संग्रह विरासत और संग्रह को लागू करता है IList इंटरफ़ेस 1 बयान गलत है। –