मैं निम्नलिखित कारणों से इंटरनेट पर डेटाबेस सर्वर से सीधे कनेक्ट होने वाले क्लाइंट प्रोग्राम के खिलाफ दृढ़ता से सलाह देता हूं:
- क्लाइंट पुस्तकालयों को इस धारणा के आसपास डिज़ाइन और निर्मित किया गया है कि डेटाबेस कुछ मिलीसेकंड दूर है, विशेष रूप से बहुत ही चतुर प्रोटोकॉल (एमएसएसक्यूएल इनमें से एक है)। परिणामस्वरूप छोटे संचालन में काफ़ी अधिक समय लग सकता है।
- यह एक सुरक्षा दायित्व है, न केवल आप अपने डेटाबेस सर्वर को इंटरनेट पर उजागर कर रहे हैं, बल्कि आप अपने एप्लिकेशन में कनेक्शन विवरण (जैसे पासवर्ड) भी एम्बेड कर रहे हैं।
- यह खुद को मापनीयता के लिए उधार नहीं देता है। क्या होगा यदि आप एकाधिक लोड-संतुलित या फ़ेलओवर डेटाबेस सर्वर पेश करते हैं, तो आपको अपने क्लाइंट को फिर से लिखना होगा।
- यह भी मानता है कि कनेक्टिविटी की कोई समस्या नहीं होगी। कई नेटवर्क (विशेष रूप से मोबाइल नेटवर्क) अपने नेटवर्क के दुरुपयोग को रोकने के लिए पोर्ट 80/443 के बाहर गतिविधि को प्रतिबंधित करते हैं (जैसे कि ज़ोंबी उपयोगकर्ता हमले शुरू करना)।
इन मामलों में आदर्श समाधान आपके डेटाबेस के लिए एक वेब-सेवा फ़्रंटएंड विकसित करना है; आपका एप्लिकेशन तब आपके डेटाबेस के बजाय वेब-सेवा के साथ इंटरफेस करेगा। इसके अन्य फायदे हैं।
बेशक, क्लाइंट (विशेष रूप से मोबाइल क्लाइंट) को डेटा कैश का उपयोग करना चाहिए ताकि ऑफ़लाइन होने पर एप्लिकेशन काम करना जारी रखे।
विषय पर वापस:मान लीजिए कि आप अभी भी सीधे कनेक्शन के साथ जाना चाहते हैं, तो मुझे नहीं लगता कि MySQL क्लाइंट लाइब्रेरी 4.5 पर क्यों काम नहीं करेगी। आप असेंबली के मेनिफेस्ट/कॉन्फ़िगरेशन को संशोधित कर सकते हैं ताकि यह .NET CLR के भविष्य के संस्करणों पर चले (आप केवल समस्याओं में भाग लेंगे यदि कहा गया है कि पुस्तकालय हटाए गए प्रकारों और सदस्यों का उपयोग करता है या बदले हुए व्यवहार पर निर्भर करता है। .NET ढांचे में है पीछे और आगे की संगतता के लिए एक अच्छी प्रतिष्ठा)।