2011-12-14 13 views
11

क्या MySQL के लिए कोई गैर-जीपीएल ADO.NET प्रदाता है?MySQL के लिए गैर-जीपीएल ADO.NET प्रदाता?

यहाँ
http://dev.mysql.com/downloads/connector/net
से आधिकारिक एक भी नहीं है लेकिन दुर्भाग्य से, यह जीपीएल, नहीं LGPL के अंतर्गत है।

मैं डेटाबेस पहुंच के लिए एक सार कक्षा विकसित कर रहा हूं।
मुझे परवाह नहीं है कि अमूर्त परत जीपीएल,
होने पर है, लेकिन यदि यह MySQL का उपयोग करता है (मेरा मतलब है MySQL ADO.NET प्रदाता, MySQL डेटाबेस स्वयं नहीं) यह जीपीएल होगा, और इस प्रकार, कोई भी आवेदन कि उस परत है, जो कुछ मैं नहीं करना चाहता है ...


ओह का उपयोग करता है, और मैं के बारे में nHibernate/सबसोनिक/otherORMs है, लेकिन यह मेरी जरूरतों से मेल नहीं खाती।

एडीओ.NET प्रदाता पाठ्यक्रम के ओडीबीसी का उपयोग करने से कम है।

संपादित करें/स्पष्टीकरण:
ध्यान दें कि द्वारा "डेटाबेस पहुँच के लिए अमूर्त वर्ग", मैं अपने ही सार्वभौमिक ADO.NET प्रदाता लिखने का मतलब यह नहीं है। मेरा मतलब है कि पहले से मौजूद एडीओ.NET प्रदाताओं के एक सेट के आसपास एक रैपर वर्ग लिखना है।

+0

कनेक्टर का उपयोग करने से आपको उस कोड को ओपनसोर्स करने के लिए मजबूर नहीं किया जाता है, यह केवल तभी होता है जब आपने उस कनेक्टर को एक सुविधा जोड़ा जो आपको कनेक्टर को खोलने के लिए है। –

+1

@ जोसेफ ले ब्रेच: लेकिन यह एलजीपीएल होगा, जीपीएल अलग है ... –

+0

यदि आप इसके बारे में चिंतित हैं तो इसे अपने .cs फ़ाइल में सार दें। एलजीपीएल स्थिर रूप से जुड़े पुस्तकालयों के लिए है। लेकिन आप गतिशील रूप से लिंक कर रहे होंगे और कनेक्टर को कोई नई सुविधाएं नहीं जोड़ेंगे। यदि आप वास्तव में चिंतित हैं तो एसक्यूएल सर्वर का उपयोग करें। –

उत्तर

6

के लिए DevArt के ADO.NET प्रदाता है।
आप हमेशा कह सकते हैं, यह सामान्य ओडीबीसी है, विशेष रूप से MySQL के साथ कुछ भी नहीं है, आसानी से बदला जा सकता है।
और जो भी आप कनेक्शन स्ट्रिंग में डालते हैं वह आपके ग्राहकों की समस्या है।
एसक्यूएल कि आप ODBC कनेक्शन पर भेज MySQL/MariaDB में काम करता है केवल, कि अफसोस की बात है - लेकिन कोई कानूनी समस्या;)

संपादित - 2016 अद्यतन:
आप के लिए एमआईटी लाइसेंस प्राप्त MySqlConnector उपयोग कर सकते हैं .NET कोर (जो .NET के लिए भी काम करता है) https://github.com/mysql-net/MySqlConnector

+0

क्या कोई संसाधन है जिसे मैं मारियाडीबी के साथ ओडीबीसी का उपयोग करने के लिए पढ़ सकता हूं? वर्तमान में मैं एक आवेदन विकसित कर रहा हूं और मैं लाइसेंसिंग मुद्दों से बचना चाहता हूं। – masterLoki

0

माइक्रोसॉफ्ट एफयूडी निगलना बंद करो।

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

+1

पढ़ें कि गतिशील लिंकिंग में संयुक्त कार्य शामिल है या नहीं, इसके बारे में कुछ तर्क है एफएसएफ का कहना है कि यह वही है जब अन्य कानूनकार कहते हैं कि यह नहीं है, http://stackoverflow.com/a/1717509/35233 तो यह थोड़ा आलसी हो सकता है, और यह अनिश्चितता एफएसएफ से आ रही है। –

+0

@ सिम्बाबीन: निश्चित रूप से नहीं। अन्यथा मैं जीपीएल कार्यक्रमों को एक डीएलएल में पैक करना संभव होगा, जीपीएल लाइब्रेरी के शीर्ष पर लाइब्रेरी में शीर्ष पर कुछ फ़ंक्शन संशोधित करें और इसे बेच दें। इसके शीर्ष पर, एलजीपीएल के अस्तित्व के लिए कोई कारण नहीं होगा ... –

+0

@Quandary: जो वही है जो विक्रेता पहले से ही वैध रूप से करते हैं। – symcbean

0

लेकिन अगर यह MySQL का उपयोग करता है यह जीपीएल

आह होगा - कोई। आप इसे इस तरह से प्रोग्राम कर सकते हैं, यह भी नहीं जानता कि यह MySQL से कनेक्ट हो।

  • सभी पृथक्करण को एक अलग असेंबली में अलग करें।
  • इस (अनुमत) में अपने प्रॉपर्टी इंटरफेस को लागू करें।
  • जीएसएल के रूप में mySql के अमूर्तता को वितरित करें।

समाप्त हुआ।

एक System.Data.Odbc उपयोग कर सकते हैं इसके चारों ओर पाने के लिए:

+0

नहीं, यह नहीं होगा। केवल अगर यह MySQL स्रोत कोड का उपयोग करता है, जो सी # लाइब्रेरी के लिए असंभव है। MySQL जीपीएल रहेगा और आपको अभी भी एक MySQL लाइसेंस प्राप्त करने की आवश्यकता होगी, लेकिन केवल तभी जब आप MySQL का उपयोग करते हैं, न केवल जब आप ड्राइवर को शामिल करते हैं। अगर यह जीपीएल v3 था, तो यह सच होगा, लेकिन यह जीपीएल v2 है। –

+0

पढ़ें कि मैं फिर से क्या कहता हूं, आपने इसे मिश्रित किया - पूरी तरह से। – TomTom

+0

मुझे लगता है कि अब तक मेरा मतलब क्या है। नहीं ! मैं MySQL के बारे में बात नहीं कर रहा था। ध्यान से पढ़ें: मैं "MySQL ADO.NET प्रदाता" के बारे में बात कर रहा था, और जब मैं "MySQL" लिखता हूं तो यह "MySQL ADO.NET प्रदाता" को संदर्भित करता है जो कि जीपीएल भी है ... मैं खुद को लिखने के बारे में बात नहीं कर रहा था ADO.NET प्रदाता, मैं उन एडीओ.NET प्रदाताओं का उपयोग करने के बारे में बात कर रहा हूं। मैं निश्चित रूप से एक संपूर्ण ADO.NET प्रदाता लिखने का इरादा नहीं रखता हूं। मैं बस प्रत्येक ADO.NET प्रदाता के चारों ओर एक रैपर वर्ग का निर्माण। –

3

मैं सही जवाब मिल गया MySQL

http://www.devart.com/dotconnect/mysql/

+0

मुझे "नो रॉयल्टी" के रूप में भी मुफ्त में जोड़ा जाना चाहिए था। –

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