2008-08-22 22 views
5

मैं एक बाहरी एपीआई कि COM + या .NET लेनदेन का समर्थन नहीं करता का उपयोग कर एक "व्यवहार" प्रक्रिया बनाने के लिए एक की जरूरत है (शेयरप्वाइंट सटीक होना करने के लिए)लेन-देन संबंधी डिजाइन पैटर्न

मैं क्या करने की जरूरत है करने के लिए सक्षम होने के लिए है अनुक्रम में कई प्रक्रियाएं करें, लेकिन उस अनुक्रम में किसी भी विफलता का अर्थ है कि मुझे पिछले सभी चरणों को मैन्युअल रूप से पूर्ववत करना होगा। मेरे मामले में केवल 2 प्रकार के चरण हैं, दोनों एएफ जो पूर्ववत/वापस रोल करने के लिए काफी आसान हैं।

क्या किसी के पास डिज़ाइन पैटर्न या संरचनाओं के लिए कोई सुझाव है जो इसके लिए उपयोगी हो सकता है?

उत्तर

3

अपने परिवर्तनों को SharePoint ऑब्जेक्ट मॉडल तक किया जाता है, तो आप तथ्य यह है कि परिवर्तन के लिए प्रतिबद्ध नहीं कर रहे हैं जब तक आप फोन का उपयोग कर सकते संशोधित ऑब्जेक्ट की Update() विधि, जैसे SPList.Update() या SPWeb.Update()

अन्यथा, मैं कमांड डिज़ाइन पैटर्न का उपयोग करूंगा। Head First Design Patterns में अध्याय 6 में एक उदाहरण भी है जो पूर्ववत कार्यक्षमता लागू करता है।

3

गोफ कमांड पैटर्न पूर्ववत संचालन का समर्थन करता है।

मुझे लगता है कि समान पैटर्न अनुक्रमिक संचालन (अनुक्रमिक आदेश) के लिए उपयोग किया जा सकता है।

0

यदि आप सी ++ (या स्कोप समाप्त होने पर निर्धारक विनाशक निष्पादन के साथ कोई अन्य भाषा) का उपयोग कर रहे हैं तो आप Scope Guards पर एक नज़र डाल सकते हैं। इस तकनीक को शायद स्कोपगार्ड लागू करने के लिए .NET को भी अनुकूलित किया जा सकता है और आवश्यकतानुसार "उपयोग" कथन छिड़काव कर सकता है।

1

जीओएफ Command Pattern के बगल में आप P of EAA से Transaction Script पैटर्न पर भी देखना चाहेंगे।

आपको शायद एक समग्र कमांड (या लेनदेन स्क्रिप्ट) बनाना चाहिए जो अनुक्रम में निष्पादित हो।

2

रोलबैक/पूर्ववत के लिए एक और अच्छा तरीका Memento Pattern है। यह आमतौर पर किसी दिए गए समय पर ऑब्जेक्ट का स्नैपशॉट लेने के लिए उपयोग किया जाता है और ऑब्जेक्ट को स्मृति को वापस करने की अनुमति देता है।

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

  • कोई संबंधित समस्या नहीं^_^