2008-09-19 21 views
7

हमारे पास 12 वर्षीय एमएस एक्सेस ऐप है जिसे हम अपने मूल सूची गोदाम और चालान प्रणाली के लिए उपयोग करते हैं। यह पहले से ही एक SQL सर्वर बैकएंड पर चल रहा है, लेकिन सभी "तर्क", रूप और रिपोर्ट एक्सेस में हैं। बड़ी मात्रा में रखरखाव कीचड़ का अनुभव करने के बाद यह गैर-अस्थायी से अस्थायी तक सूची लेनदेन को चालू करने के लिए लिया गया, मुझे एहसास हुआ कि मुझे किसी दिन इस कोड को कोड में परिवर्तित करने की आवश्यकता है ताकि मैं तर्क को अधिक रखरखाव और परीक्षण योग्य वातावरण में बेहतर तरीके से प्रबंधित कर सकूं।एमएस एक्सेस एप्लिकेशन को .NET एप्लिकेशन में कनवर्ट करने के लिए कुछ अच्छी तकनीकें क्या हैं?

कुछ तकनीकों है कि मुझे एक प्रबंधनीय और कुशल तरीके से एक नेट आवेदन में परिवर्तित करने की अनुमति होगी क्या हैं?

एक विचार संग्रहित प्रक्रियाओं के लिए क्वेरी परिवर्तित करने के लिए है, तो एक ADP project.But में एप्लिकेशन मैं अभी भी कैसे रूपों और की शिकायतों पर कार्य करने के लिए के रूप में अनजान हूँ परिवर्तित किया गया था।

इसके अलावा, अगर मैं मायने रखता हूं, तो मैं अपनी कंपनी के लिए एकमात्र डेवलपर हूं।

उत्तर

5

आप पहले से ही कुछ व्यापार तर्क के साथ asp.net है के रूप में आप एक वेब सेवा (ASMX फ़ाइलें) के रूप में उपयोग करने के लिए इस खोल सके। Google के माइक्रोसॉफ्ट ऑफिस वेब सर्विसेज टूलकिट के लिए आपके उपयोग के संस्करण (एक्सपी/2003 इत्यादि) के लिए Google और वेब सेवा को कॉल करने के लिए यह आपके लिए vba प्रॉक्सी कक्षाएं लिखेंगे। आप वेब सेवा डेटा को कोड के माध्यम से फॉर्म (vba को पढ़ने और लिखने के लिए लिखने) के माध्यम से बाध्य कर सकते हैं या वेब सेवा से डेटा के साथ स्थानीय टेम्पलेट टेबल बना सकते हैं और नियमित पहुंच बाध्यकारी का उपयोग कर सकते हैं।

जो आप सबसे अधिक आरामदायक (कोड/tsql) के आधार पर करते हैं, आप संग्रहीत प्रक्रियाओं में या व्यावसायिक लॉजिक लेयर या हाइब्रिड (दोनों) में तर्क डाल सकते हैं। मुझे संग्रहीत प्रक्रियाओं की तुलना में कोड का परीक्षण करना आसान लगता है और जैसे कि व्यवसाय तर्क के लिए एसक्यूएल सर्वर से बंधे नहीं हैं, यदि आप डेटाबेस को बदलना चाहते हैं या डेटाबेस के बिना ऑफ़लाइन घटकों को विकसित/परीक्षण करना चाहते हैं। LINQ जैसे नई .NET सुविधाओं में बहुत अच्छा प्रदर्शन है, इसलिए आपको डेटाबेस गतिविधियों के लिए संग्रहीत प्रक्रियाओं पर भरोसा नहीं करना है।

एक्सेस फ्रंट एंड यूजर इंटरफेस को तब तक रखें जब तक कि आपने वेब सेवाओं पर अपने सभी व्यावसायिक तर्क/डेटा तक पहुंच को दोबारा नहीं किया है। फिर आप एक एएसपीनेट ऐप बना सकते हैं जो वेब सेवाओं या Winform ऐप का उपभोग करता है यदि आप चाहें। (WPF का स्पष्ट रहो, एक ui के रूप में, कुछ समय के रूप में यह एक खड़ी सीखने की अवस्था है और अभी तक एक datagrid कि पहुँच डेटापत्रक दृश्य में तुलना कर सकते हैं नहीं है के लिए।)

रिपोर्ट

एक्सेस रिपोर्ट को एसक्यूएल सर्वर रिपोर्टिंग सेवाओं में अपसाइज़ किया जा सकता है (रिपोर्ट में वीबीए अपसाइज़ नहीं होता है और संग्रहित प्रक्रियाओं में कुछ tsql लिखना बेहतर होता है)। यदि आपके पास पूर्ण एसक्यूएल सर्वर उत्पाद नहीं है, तो आप अभी भी रिपोर्ट लिखने के लिए रिपोर्टव्यूयर नियंत्रण का उपयोग कर सकते हैं (http://www.gotreportviewer.com/) asp.net (या मानक संस्करण या विजुअल स्टूडियो के साथ Winform) में ado.net डेटासेट के लिए बाध्यकारी।

अन्य विकल्प: आप .NET dlls लिख सकते हैं और कॉम इंटरऑप का उपयोग कर सकते हैं। यह दृष्टिकोण आपको धीरे-धीरे कार्यक्षमता लिखना शुरू करने की अनुमति देता है। .NET UI का उपयोग न करें उदा। एक Winform के रूप में यह उपयोग ui के साथ अच्छी तरह से खेल नहीं होगा। आप व्यवसाय तर्क या डेटा एक्सेस तर्क लिख सकते हैं और फिर इन वर्गों को vba से कॉल कर सकते हैं। यदि आवश्यक हो तो आप इस कोड को एएसपीनेट या वेब सेवाओं पर ले जा सकते हैं।

चीजें बाहर शासन करने के लिए:

मैं पक्ष संस्करणों से कंधा मिलाकर साथ एक नई एप्लिकेशन लिखने के दृष्टिकोण पसंद नहीं है। एक डेवलपर के रूप में आपके पास चिंता करने के लिए पर्याप्त है। आप शायद दोनों संस्करणों में सुविधाओं को जोड़ने और एक के बजाय दो संस्करणों को डिबग करने का अंत करेंगे।

वीबी 6 फॉर्म इंटरऑप एक्सेस के लिए काम नहीं करता है।

एडीपी जैसा कि बताया गया है वह काफी मृत है। (मैंने उन्हें कभी पसंद नहीं किया क्योंकि मैं अक्सर प्रदर्शन को अनुकूलित करने के लिए स्थानीय टेबल का उपयोग करता हूं और उन्हें केवल कोड के माध्यम से बुलाया जा सकता है और लिंक नहीं किया जा सकता है)

आप विजुअल बेसिक का उपयोग करके vb.net पर अपने vba मॉड्यूल और क्लास मॉड्यूल को परिवर्तित करने में सक्षम हो सकते हैं अपग्रेड विज़ार्ड (विजुअल स्टूडियो में) लेकिन यह सबकुछ अपवाद नहीं करता है (उदाहरण के लिए दाओ/एडीओ कोड ado.net कोड में) और यह कोड नहीं बनाता है जो .NET के लिए अनुकूलित है और यूनिट परीक्षणों को लिखना आसान नहीं हो सकता है वीबीए कोड का डिजाइन। मैं कोड को फिर से लिखने की अनुशंसा करता हूं (यदि आप इसे पसंद करते हैं तो यह देखने के लिए परीक्षण करने के बारे में गंभीर हैं तो परीक्षण संचालित विकास का प्रयास करें)।

+0

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

6

संक्षिप्त उत्तर: माइग्रेशन आसानी से स्वचालित की तरह प्रतीत नहीं होता है।

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

उदाहरण के लिए, आप एक उपयोगकर्ता जिनका काम भूमिका उसे सिर्फ एक स्क्रीन पूरे दिन का उपयोग करने की आवश्यकता है हो सकता है। यदि आप उस स्क्रीन को पहले कार्यक्षमता के साथ माइग्रेट करते हैं, तो वह उपयोगकर्ता तुरंत नई प्रणाली पर हो सकता है और आपके रखरखाव भार को कम करने के बाद पुराना पीछे छोड़ सकता है।

तो ये बहुत अधिक जानकारी के आधार पर कुछ विचार हैं। मुझे उम्मीद है कि यह वैसे भी मदद करता है।

2

मैं Interop Forms Toolkit को देख पर विचार करेंगे। जैसा कि मैं इसे समझता हूं, यह टूल वीबी 6 के भीतर से .NET रूपों का उपयोग करना आसान बनाता है, तो शायद इसका उपयोग माइक्रोसॉफ्ट एक्सेस के भीतर भी किया जा सकता है? यदि ऐसा है, तो यह एप्लिकेशन को एक वृद्धिशील फैशन में .NET पर माइग्रेट करने में आपकी सहायता कर सकता है। एक त्वरित खोज करने के बाद, मैं माइक्रोसॉफ्ट एक्सेस के साथ इसका उपयोग करने पर कोई गाइड नहीं ढूंढ पाया, इसलिए अगर मैं अंधे गली बन जाता हूं तो मैं क्षमा चाहता हूं।

1

एक ADP में कनवर्ट कर रहा लंबे समय में एक अच्छा समाधान नहीं होगा - इस तकनीक माइक्रोसॉफ्ट द्वारा छोड़ दिया जाता है।

यदि आप .NET पर स्विच करना चाहते हैं (क्यों? आपके पास .NET का पक्ष लेने का कोई कारण है?) मेरा सुझाव है कि आप कुछ पढ़ना शुरू करें, कुछ सरल ऐप्स बनाने का प्रयास करें और फिर इस डेटाबेस को कनवर्ट करने का कार्य शुरू करें आवेदन।

लेकिन ...

मैं तुम्हें और कंपनी इस परियोजना में शामिल जोखिम के बारे में सोचने की जरूरत है। यदि आप बीमार हो जाएंगे तो बस क्या होगा, प्रबंधन में कुछ रिपोर्टों की आवश्यकता है जो पहले से मौजूद नहीं हैं? मैं सुझाव दूंगा कि आप एक छोटी स्थानीय सॉफ्टवेयर विकास कंपनी की तलाश करेंगे, वे आपकी मदद करने में प्रसन्न होंगे। हो सकता है कि आप व्यवस्थित कर सकें कि आप 'लीड डेवलपर' बने रहें और केवल बैक-अप के लिए उनका उपयोग करें।

+0

दिलचस्प विचार। मैं नेट का चयन करूंगा क्योंकि मैं पहले से ही हमारी वेबसाइट को बनाए रख रहा हूं, जो Asp.Net में है। तो मैं संक्षेप में सूची प्रणाली से हमारे वर्तमान बुनियादी ढांचे में व्यापार तर्क को एकीकृत करता हूं। व्यवसाय तर्क का कुछ ही पहले से ही दोनों जगहों पर डुप्लिकेट किया गया है। – Gilligan

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

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