हमारे पास अपनी व्यक्तिगत आवश्यकताओं के लिए शुरू में घर में विकसित एक बहुत बड़ा एमएस एक्सेस एप्लीकेशन है जिसे तब एक वाणिज्यिक सॉफ्टवेयर में बदल दिया गया था और सफलतापूर्वक बेचा गया था। सॉफ्टवेयर एक प्रकार का "ऑल-राउंड-सॉफ़्टवेयर-फॉर-योर-बिज़नेस" है और इसमें कई मॉड्यूल शामिल हैं जिनमें दस्तावेज़ प्रबंधन प्रणाली, एंटरप्राइज़ संसाधन योजना, इन्वेंटरी प्रबंधन, ग्राहक संबंध प्रबंधन, डेटा विश्लेषण आदि शामिल हैं। हम वर्तमान से काफी संतुष्ट हैं। एप्लिकेशन की कार्यक्षमता, लेकिन अपने ग्राहकों से अनुरोधों को पूरा करने के लिए हमें एहसास होता है कि हमें कुछ नया करना है।
हमने अपने आवेदन को धीरे-धीरे .Net की ओर ले जाने का फैसला किया क्योंकि हम Visual Basic .Net से चिपके रह सकते हैं: भले ही यह यहाँ के अधिकांश डेवलपर्स के लिए एक नई भाषा है, लेकिन हमें VBA और VB6 में लागू कई दर्जन छोटी परियोजनाओं का गहरा ज्ञान है।
हमने पहले से ही अपने एप्लिकेशन की डेटा लेयर कार्यक्षमता को MS SQL सर्वर पर ले जाना शुरू कर दिया है, ताकि हर डेटा हेरफेर और खोज सीधे सर्वर पर की जाए।
हम जो देख रहे हैं, वह हमारे व्यापक जीयूआई को धीरे-धीरे आगे बढ़ाने के लिए सबसे अच्छा अभ्यास है (लगभग 500-600 अलग-अलग रूप शामिल हैं, बहु-भाषा समर्थन आदि के साथ लगभग 200 रिपोर्ट)। डीएमएस में दस्तावेजों पर अतुल्यकालिक डेटा एन्क्रिप्शन को लागू करने के लिए हमारे संभावित ग्राहक के हालिया अनुरोध के बाद हम एमएस एक्सेस से इस हिस्से को पूरी तरह से समाप्त करने और इसे नेट में लागू करने के लिए भी खुश होंगे।
सवाल यह है कि मौजूदा एमएस एक्सेस सिस्टम के साथ .Net एप्लिकेशन को मूल रूप से कैसे एकीकृत किया जाए, ताकि हम इसे कुछ मापदंडों (उपयोगकर्ता अधिकारों आदि) के साथ लागू कर सकें और इस एप्लिकेशन और एमएस एक्सेस एप्लिकेशन को चलाने के बीच डेटा विनिमय को सक्षम कर सकें।
संपादित करें:
हमने मार्टिन फाउलर की पुस्तक " एंटरप्राइज इंटरग्रेशन पैटर्न " से कुछ प्रथाओं को लागू करने की कोशिश की, जो एमएस एक्सेस एप्लिकेशन और कुछ छोटी उपयोगिताओं के बीच एकीकरण को प्राप्त करने के लिए हैं। हमने विभिन्न आवश्यकताओं के लिए नेट में लागू किया। लेकिन हम केवल "साझा डेटाबेस" पैटर्न का उपयोग करने में कामयाब रहे और वास्तव में हमारे समाधान से संतुष्ट नहीं थे।
उदाहरण के लिए, हमने विंडोज सेवा के रूप में चलने वाली एक छोटी सी उपयोगिता को लागू किया जो POP3 कनेक्शन का उपयोग करके मेल सर्वर से सभी संदेशों को स्वचालित रूप से डाउनलोड करता है और उन्हें एक तालिका में संग्रहीत करता है, जबकि सभी अनुलग्नक फ़ाइल सिस्टम में संग्रहीत होते हैं।
हमने मुख्य रूप से क्या किया है, एमडीबी प्रारूप में सीधे एमएस एक्सेस डेटाबेस तक पहुंचने के लिए हमने ADO.NET का उपयोग किया है और कुछ संसाधित डेटा के साथ तालिका पॉप्युलेट करें (जैसे ऊपर दिए गए उदाहरण से मेल संदेशों के बारे में डेटा: हमारे पास FROM, TO, CC, BCC, के लिए फ़ील्ड हैं) विषय और शरीर)।
.Net से MDB डेटा प्रारूप के साथ काम करने के लिए बिल्कुल कोई समस्या नहीं है , इसके अलावा, हम MDB के साथ नहीं रहना चाहते हैं और MS SQL Server 2008 के लगभग सभी चीज़ों को अपग्रेड कर दिया है - इससे हमें डेटा प्रबंधन और स्केलेबिलिटी के संबंध में बहुत अधिक स्वतंत्रता मिलती है।
यहां मुख्य समस्या यह है कि हम एक्सेस में "कॉलबैक" के एक प्रकार को लागू करना नहीं जानते हैं ताकि हम डेटा अपडेट पर कुछ VBA कोड के निष्पादन को ट्रिगर कर सकें।
MS Access 2010 सपोर्टिंग अपडेट और डेटा टेबल के लिए ट्रिगर्स सम्मिलित करने के साथ हमें बहुत उम्मीदें थीं , लेकिन यह पता चला कि हम केवल इन ट्रिगर्स के लिए MS Access मैक्रोज़ का उपयोग कर सकते हैं और ट्रिगर के भीतर किसी भी कस्टम VBA कोड को निष्पादित करने का कोई तरीका नहीं है।
हमने कुछ यूज़-इनवॉक्ड डेटा आवश्यकता की नकल करने के लिए सीधे एमएस एक्सेस विंडो पर कीस्ट्रोक्स भेजने के साथ कुछ समाधानों की कोशिश की । यह काम करता है, लेकिन हमें नहीं लगता कि यह एक वास्तविक समाधान है जिसका उपयोग उत्पादन में किया जा सकता है।
हमने MS प्रवेश के लिए DDE में भी देखा, लेकिन हम DDE आदेशों को लागू करने और इन-मेमोरी डेटा और कमांड एक्सचेंज के लिए उपयोग करने का कोई अच्छा नमूना समाधान नहीं ढूंढ सके ।
तो, मुख्य समस्या एमएस एक्सेस और .नेट एप्लीकेशन का सह-अस्तित्व और एक-दूसरे के साथ सहभागिता करना है।
EDIT2 :
मैं यह उल्लेख करना भूल गया कि हमने .NET और MS एक्सेस के बीच संदेश भेजने के लिए VBA में MSMQ लाइब्रेरी को क्या लागू किया है , समस्या फिर से यहाँ कॉलबैक की कमी थी: हमें वास्तव में नए संदेशों के लिए कतार का चुनाव करना पड़ा और यह देखते हुए कि VBA वास्तव में समर्थन नहीं करता है बहु सूत्रण यह वास्तव में एक अच्छा समाधान नहीं था।