प्रोजेक्ट में मैं वर्तमान में काम कर रहा हूं कि डिस्क पर एक बड़ी डेटा संरचना को सहेजने की आवश्यकता है (संपादित करें: एमबी के दर्जनों को सोचें)। आशावादी होने के नाते, मैंने सोचा कि ऐसी समस्या के लिए एक मानक समाधान होना चाहिए;संस्करण अनुकूल, विस्तारणीय बाइनरी फ़ाइल प्रारूप
- .NET 2.0 समर्थन, अधिमानतः एक FOSS कार्यान्वयन
- संस्करण अनुकूल (इस रूप में व्याख्या की जानी चाहिए साथ: एक पुराने संस्करण पढ़ने हालांकि, अब तक मैं एक समाधान है जो निम्न आवश्यकताओं को संतुष्ट नहीं मिला है अंतर्निहित डेटा संरचना में परिवर्तन सरल हैं, यदि फ़ील्ड जोड़ने/छोड़ने का कहना सरल है)
- यादृच्छिक पहुंच के कुछ रूपों को करने की क्षमता जहां प्रारंभिक निर्माण के बाद डेटा का हिस्सा बढ़ाया जा सकता है, आवश्यकता के बिना इस बिंदु पर बनाए गए संग्रह को deserialize करने के लिए (मध्यवर्ती परिणामों के विस्तार के रूप में इस बारे में सोचें)
- अंतरिक्ष और कुशल समय (एक्सएमएल विकल्प के रूप में शामिल नहीं किया गया है इस आवश्यकता को देखते हुए)
विकल्प अब तक माना जाता:
- XmlSerializer: एक्सएमएल क्रमबद्धता के बाद से ठुकरा दिया गया था आवश्यकता 3 और 4 को पूरा नहीं करता
- SerializableAttribute: का समर्थन नहीं करता आवश्यकताओं 2 और 3
- Protocol Buffers: के बारे में दस्तावेज़ Large Data Sets के फैसले से ठुकरा दिया गया था - के बाद से इस टिप्पणी को एक और परत ओ जोड़ने का सुझाव दिया एन शीर्ष, यह अतिरिक्त जटिलता के लिए कॉल करेगा जिसे मैं फ़ाइल प्रारूप द्वारा ही संभालना चाहता हूं।
- HDF5, EXI: नहीं करता है: .net कार्यान्वयन
- SQLite/SQL Server Compact edition है लगता नहीं है: हाथ में डेटा संरचना एक बहुत जटिल तालिका संरचना है कि बहुत लक्षित उपयोग
- BSON के लिए दिग्गज लगता है में परिणाम होगा समर्थन की आवश्यकता के लिए प्रतीत होता है 3.
- Fast Infoset: ऐसा लगता है कि .NET कार्यान्वयन का भुगतान किया गया है।
कोई भी सिफारिश या पॉइंटर्स की बहुत सराहना की जाती है। इसके अलावा यदि आप मानते हैं कि उपर्युक्त जानकारी में से कोई भी सत्य नहीं है, तो कृपया मुझे गलत साबित करने के लिए पॉइंटर्स/उदाहरण प्रदान करें।
एचडीएफ 5 में कुछ .NET समर्थन है: http://www.hdfgroup.org/projects/hdf.net/ –
@ रिचर्ड मॉर्गन अब तक मुझे केवल .NET धन्यवाद के संबंध में hdfgroup.org पर मृत लिंक मिले हैं। –
hdf.net के साथ आपूर्ति किए गए उदाहरण को देखते हुए, यह विचार है कि .NET असुरक्षित और कस्टम मार्शलिंग का उपयोग कर रहा है, कोई मजा नहीं। –