2012-03-01 21 views
5

हमारे पास हमारी दुकान में आवर्ती समस्या है जहां हम एक ही कक्षा/इकाई के 3 या 4 अलग-अलग प्रस्तुतिकरणों के साथ समाप्त होते हैं।क्या मॉडल संचालित आर्किटेक्चर इसके लायक है और टूलींग में कला की स्थिति क्या है?

एक जावा संस्करण, एक एक्सएमएल संस्करण, एक हाइबरनेट संस्करण, एक जेसन संस्करण ... आपको बिंदु मिलता है।

स्पष्ट रूप से यह रखरखाव की समस्याएं पैदा करता है।

मॉडल संचालित वास्तुकला शायद इस की तुलना में अधिक है, लेकिन क्या मैं सच में करना चाहते हैं एक प्रणाली मुझे एक बार एक वर्ग या एक इकाई को परिभाषित, एक तरह से, और उसके बाद विभिन्न अभ्यावेदन उत्पन्न करने देता है। (शायद मैं इसके लिए सही शब्दावली का उपयोग नहीं कर रहा हूं)

यह वास्तव में सीधे आगे नहीं है, क्योंकि मान लें कि हमारे पास जावा वस्तु है जिसे हम तार पर भेजने के लिए JSON में बदलना चाहते हैं - वहां जावा ऑब्जेक्ट में सदस्यों के बीच जेएसओएन के क्षेत्रों में सटीक 1-1 पत्राचार नहीं हो सकता है - कुछ अनुकूलन हो सकते हैं, या जो भी हो।

मैंने अतीत में एंड्रॉइड और ईएमएफ जैसी चीजों को देखा है, और उन्हें या तो कमी या बेकार पाया है। मुझे नहीं पता कि वे इन दिनों कैसे ढेर करते हैं, या अन्य प्रणालियों क्या हैं।

एमडीए और मेटा-डेटा संचालित प्रोग्रामिंग पर एसओ की राय क्या हैं? गंभीर विचारों के लिए उपकरण पर्याप्त परिपक्व हो गए हैं?

धन्यवाद।

+1

भी देखें http://stackoverflow.com/questions/4479883/mda-model-driven-architecture और http://stackoverflow.com/questions/696021/are-you-doing-mda- मॉडल-संचालित-आर्किटेक्चर-दाएं-अब-अगर-तो-टू-टूल्स-डू-यो और http://stackoverflow.com/questions/21091/do-you-use-mda-mdd-mdsd-any-kind- ऑफ-द-द-द-फ़्यूचर और http://stackoverflow.com/questions/70781/what-do-you-think-of-model-driven-software-development – DNA

उत्तर

1

चेक बाहर नग्न वस्तुओं

http://nakedobjects.codeplex.com/

और यह बराबर

http://isis.apache.org/index.html

तथ्य यह है कि इन चौखटे के दोनों अपने प्रश्न का उत्तर दे पाएगी IMHO लगभग अनसुना कर रहे हैं अपाचे के। मुझे लगता है कि एक ही वस्तु के असंगत प्रतिनिधित्व के साथ समाप्त होने से आपकी प्रक्रिया में एक दोष दिखाई देता है, जो कुछ ऐसा नहीं है जिसे आपको ढांचे के साथ हल करने और हल करना चाहिए।

+3

यह उत्तर एक असमर्थित तर्क पर टिका है। –

2

अपनी मूल चिंता का समाधान करने के लिए, आप अपने डोमेन ऑब्जेक्ट के लिए जावा क्लास को परिभाषित कर सकते हैं। फिर, आप कक्षा को जेएक्सबी और हाइबरनेट एनोटेशन के साथ एनोटेट कर सकते हैं। इस तरह आपके पास अपनी इकाई (जावा क्लास) की एक परिभाषा है जो विभिन्न प्रस्तुतियों में उत्पादन हो सकती है, जेएसओएन और एक्सएमएल के लिए जेएक्सबी, दृढ़ता के लिए हाइबरनेट।

6

दोनों Naked Objects और Apache Isis के लिए एक योगदानकर्ता के रूप में, मैं @ dnellis74 से अन्य जवाब दिया पुष्टि कर सकते हैं कि इन दोनों एक ही बात का अधिक प्रतिनिधित्व होने के मुद्दे का समाधान; इन ढांचे के साथ आप एक बार अपनी डोमेन ऑब्जेक्ट लिखते हैं, और फिर यह उपयोगकर्ता को दृढ़ता परत के रूप में स्वचालित रूप से दिखाई देता है।

बेशक, (और मैं यह कहूंगा, है ना?) मैं @ dnellis74 से सहमत नहीं हूं कि तथ्य यह है कि इन ढांचे को कम ज्ञात नहीं है, इसका मतलब है कि उन्हें हाथ से बाहर कर दिया जाना चाहिए; आपको अपने लिए निर्णय लेना चाहिए।

एक अन्य बिंदु जो ब्याज का हो सकता है; ये ढांचे Restful Objects spec को लागू करने की प्रक्रिया में हैं, जिसका लक्ष्य है कि आप अपने डोमेन ऑब्जेक्ट्स को स्वचालित रूप से एक रीस्टफुल एपीआई के माध्यम से बेनकाब करें, और आपको फिट होने पर इसे त्वचा या इसके साथ एकीकृत करने दें। .NET इम्प्लास बहुत पूर्ण है, जावा इम्प्लाइट थोड़ा सा है लेकिन यहां तक ​​कि एक डेमो भी है जिसे आप check out कर सकते हैं।

एमडीए के लिए, मैं शुरुआत से ही संदेह था जब इसे ओएमजी द्वारा पहली बार बताया गया था, इस सीमा तक मैंने article को द सेर्वरसाइड पर लिखा था। मुझे लगता है कि मैंने इसे सही कहा है।

दान