2011-12-14 52 views
11

Có nhà cung cấp NON-GPL ADO.NET nào cho MySQL không?Nhà cung cấp không phải GPL ADO.NET cho MySQL?

Có là một quan chức từ đây
http://dev.mysql.com/downloads/connector/net
nhưng không may, đó là theo GPL, không phải là LGPL.

Tôi đang phát triển một lớp trừu tượng để truy cập cơ sở dữ liệu.
Tôi không quan tâm liệu lớp trừu tượng sẽ là GPL,
nhưng nếu nó sử dụng MySQL (tôi có nghĩa là nhà cung cấp ADO.NET MySQL, không phải là cơ sở dữ liệu MySQL), nó sẽ là GPL, và do đó, bất kỳ ứng dụng nào sử dụng lớp đó, đó là điều tôi không muốn ...


Ồ, và tôi biết về nHibernate/Subsonic/otherORMs, nhưng nó không phù hợp với nhu cầu của tôi.

Nhà cung cấp ADO.NET thiếu sử dụng ODBC trong khóa học.

Edit/Làm rõ:
Lưu ý rằng bởi "lớp trừu tượng để truy cập cơ sở dữ liệu", tôi không có nghĩa là viết cung cấp ADO.NET phổ quát của riêng tôi. Tôi có nghĩa là viết một lớp bao bọc xung quanh một tập hợp các nhà cung cấp ADO.NET hiện có.

+0

sử dụng trình kết nối không bắt buộc bạn phải mở mã đó, chỉ khi bạn thêm tính năng vào trình kết nối mà bạn phải mở nguồn kết nối đó. –

+1

@ Joseph Le Brech: Nhưng đó sẽ là LGPL, GPL là khác nhau ... –

+0

Nếu bạn lo lắng về việc nó chỉ trừu tượng hóa nó trong tệp .cs của bạn. LGPL dành cho các thư viện được liên kết tĩnh. nhưng bạn sẽ liên kết động và không thêm bất kỳ tính năng mới nào vào trình kết nối. Nếu bạn đang thực sự lo lắng sau đó sử dụng máy chủ sql. –

Trả lời

6

tôi có câu trả lời hoàn hảo:

Người ta có thể sử dụng System.Data.Odbc để có được xung quanh nó.
Bạn luôn có thể nói, đó là ODBC chung chung, không có gì đặc biệt để làm với MySQL, dễ dàng thay thế.
Và bất cứ điều gì bạn đặt trong chuỗi kết nối là vấn đề của khách hàng của bạn.
Nếu SQL mà bạn gửi qua kết nối ODBC làm việc trong MySQL/MariaDB chỉ, đó là đáng tiếc - nhưng không có vấn đề pháp lý;)

Chỉnh sửa - 2016 Cập nhật:
Bạn có thể sử dụng MySqlConnector MIT cấp phép cho .NET Core (cũng hoạt động cho .NET) https://github.com/mysql-net/MySqlConnector

+0

Có tài nguyên nào tôi có thể đọc để sử dụng ODBC với MariaDB không? Hiện tại tôi đang phát triển một ứng dụng và tôi muốn tránh các vấn đề cấp phép. – masterLoki

0

Dừng nuốt Microsoft FUD.

Điều này được bao gồm bởi v2 của GPL, do đó, trừ khi bạn có ý định sửa đổi mã được cung cấp và phân phối lại nó (trái với việc đóng gói nó với ứng dụng của riêng bạn), bạn chỉ cần nhấn mạnh rằng gói này bao gồm GPL v2.0 mã được cấp phép và tham chiếu đến chủ sở hữu bản quyền (bạn hầu như luôn luôn phải thực hiện với hầu hết các phần mềm được cấp phép thương mại).

+1

Có một số tranh cãi về việc liệu liên kết động bao gồm một công việc kết hợp, FSF nói rằng trong khi các luật sư khác nói rằng nó không phải là, http://stackoverflow.com/a/1717509/35233 để nó có thể hơi mơ hồ, và sự không chắc chắn đó đến từ FSF. –

+0

@symcbean: Chắc chắn là không. Khác tôi sẽ có thể đóng gói các chương trình GPL thành một dll, sửa đổi một số chức năng trên đầu trang trong thư viện trên đầu trang của thư viện GPL và bán nó. Trên hết, sẽ không có lý do gì để LGPL tồn tại ... –

+0

@Quandary: đó chính là điều mà nhiều nhà cung cấp đã hợp pháp làm. – symcbean

0

nhưng nếu nó sử dụng MySQL nó sẽ GPL

Ah - không có. Bạn có thể lập trình nó theo cách nó thậm chí không BIẾT nó kết nối với MySql.

  • Cô lập tất cả các thao tác trừu tượng thành một hội đồng riêng biệt.
  • Triển khai giao diện propietary của bạn trong này (được cho phép).
  • Phân phối trừu tượng của mySql dưới dạng gpl.

Hoàn tất.

+0

Không, không. Chỉ khi nó sử dụng MySQL sourcecode, mà không chắc cho một thư viện C#. MySQL sẽ vẫn là GPL và bạn vẫn cần phải có giấy phép MySQL, nhưng chỉ khi bạn sử dụng MySQL, không chỉ khi bạn kết hợp trình điều khiển. Nếu đó là GPL v3, thì điều đó đúng, nhưng đó là GPL v2. –

+0

Đọc những gì tôi nói một lần nữa, Bạn trộn nó lên - hoàn toàn. – TomTom

+0

Tôi nghĩ rằng tôi đã có những gì bạn có ý nghĩa bây giờ. KHÔNG! Tôi đã không nói về MySQL. Đọc kỹ: Tôi đã nói về "MySQL ADO.NET Provider", và khi tôi viết "MySQL" nó đề cập đến "nhà cung cấp ADO.NET của MySQL" cũng là GPL ... Tôi đã không nói về việc viết của riêng tôi Nhà cung cấp ADO.NET, tôi đang nói về việc sử dụng các nhà cung cấp ADO.NET đó. Tôi chắc chắn không có ý định viết toàn bộ nhà cung cấp ADO.NET. Tôi chỉ đơn giản là xây dựng một lớp bao bọc xung quanh mỗi nhà cung cấp ADO.NET. –

Các vấn đề liên quan