मैं एक एएसपी.NET वेब एप्लिकेशन पर काम कर रहा हूं जो क्लाइंट पक्ष पर बहुत सारी जावास्क्रिप्ट का उपयोग करता है ताकि उपयोगकर्ता को सूचियों की ड्रैग-ड्रॉप रीडरिंग जैसी चीज़ें करने की अनुमति मिल सके, आइटम ढूंढ रहे हों सूची में आइटम जोड़ने के लिए (जैसे Google खोज बार में सुझाव),जावास्क्रिप्ट और सी # ऑब्जेक्ट मॉडल के बीच सुसंगतता बनाए रखना
मेरे पास एक जावास्क्रिप्ट "क्लास" है जिसका उपयोग मैं क्लाइंट साइड पर प्रत्येक सूची आइटम को स्टोर करने के लिए करता हूं अच्छी तरह से जानकारी के बारे में जानकारी के रूप में उपयोगकर्ता ने आइटम पर क्या कार्रवाई की है (जोड़ें, संपादित करें, हटाएं, स्थानांतरित करें)। पृष्ठ पर सर्वर को पोस्ट करने का एकमात्र समय होता है जब उपयोगकर्ता किया जाता है, पृष्ठ सबमिट होने से ठीक पहले मैं JSON में किए गए परिवर्तनों के बारे में सारी जानकारी को क्रमबद्ध करता हूं और इसे पृष्ठ पर छिपे हुए फ़ील्ड में संग्रहीत करता हूं।
जो मैं खोज रहा हूं वह सी # में मेरी कक्षाओं को बनाने के बारे में कुछ सामान्य सलाह है। मुझे लगता है कि सी # में कक्षा होना अच्छा लगेगा जो जावास्क्रिप्ट से मेल खाता है, इसलिए मैं इस वर्ग के उदाहरणों के लिए जेएसओएन को बस अचयनित कर सकता हूं। ऐसा लगता है कि सर्वर पक्ष पर कक्षाएं होने के बावजूद यह थोड़ा अजीब लगता है कि दोनों जावास्क्रिप्ट कक्षाओं को सीधे डुप्लिकेट करते हैं, और केवल जावास्क्रिप्ट यूआई कार्यान्वयन का समर्थन करने के लिए मौजूद हैं।
यह एक संक्षिप्त प्रश्न है। मैं सिर्फ कुछ मार्गदर्शन फॉर्म ढूंढ रहा हूं जिन्होंने मेलिंग क्लाइंट और सर्वर साइड ऑब्जेक्ट मॉडल को बनाए रखने के मामले में समान चीजें की हैं।
धन्यवाद, यह RelaxNG का उपयोग करने के लिए एक दिलचस्प विचार की तरह लगता है। मैं हाल ही में Google प्रोटोकॉल बफर के साथ कुछ सामान कर रहा हूं, जो इस तरह की कक्षा को परिभाषित करने के लिए अपनी भाषा का उपयोग करता है ताकि आप जो भी भाषाएं कोड कर रहे हों, उसके लिए उपयुक्त संस्करण उत्पन्न कर सकें। यह दिलचस्प है कि इस तरह का विचार कैसे लागू किया जा सकता है कई अलग-अलग परिदृश्यों और प्रौद्योगिकियों में। मुझे विश्वास नहीं है कि मैंने पहले ऐसा करने के बारे में नहीं सोचा था। –
या, मैंने प्रोटोबफ के बारे में भी सोचा। मुझे आश्चर्य है कि एक प्रोटोबफ से उत्पन्न जेनरेट कोड .idl protobufs serializer के बिना प्रयोग योग्य है। यदि ऐसा है, तो आप .NET में JsonSerializer का उपयोग कर सकते हैं, सी # कोड के साथ जो protobufs उपकरण उत्पन्न करता है। – Cheeso
तो आप सुझाव दे रहे हैं कि मैं सी # कक्षा के एक धारावाहिक उदाहरण की तुलना जेएसओएन युक्त एक स्थिर दस्तावेज़ से करता हूं जो मेरी डेटा संरचना का प्रतिनिधित्व करता है। यदि वे मेल खाते हैं तो मुझे पता है कि सी # कक्षा सही है। फिर मैं जावास्क्रिप्ट में जेएसओएन दस्तावेज़ में एक ही कक्षा के उदाहरणों की तुलना करता हूं और यदि वे मेल खाते हैं तो यह सत्यापित करता है कि मैं क्लाइंट से सर्वर पर डेटा को आगे और पीछे क्रमबद्ध करने में असमर्थता के बिना डेटा का आदान-प्रदान कर पाऊंगा। –