Rất nhiều mã nguồn .NET có sẵn và phần lớn là Mã nguồn mở, mặc dù theo các giấy phép khác nhau. Vẫn còn mã khác, nhưng chỉ cho mục đích tham khảo và không thể được sử dụng trong mã của bạn.
Cho rằng mục tiêu đã nêu là:
Tôi muốn tăng giới hạn đó cho một ứng dụng hiện có phức tạp bị ràng buộc để đạt giới hạn này. Tôi không muốn thay đổi giao diện của loại. Tôi không tự tin rằng tôi có thể thay đổi giao diện của loại mà không đưa các lỗi tinh vi vào tất cả các mã sẽ phải thay đổi.
nếu ý định cập nhật loại Phân cấp hiện tại, thì mã nguồn có phải là Nguồn mở hay không là không liên quan vì ngay cả khi đó, bạn sẽ không bao giờ có thể đưa ra bất kỳ thay đổi nào trong hệ thống tổng thể: ngay cả khi bạn có thể thay thế Hội trong SQL Server, bạn sẽ không thể ký nó với cùng một Chứng chỉ / Khóa riêng và do đó nó sẽ không được hệ thống sử dụng.
Tuy nhiên, bạn có thể xây dựng Loại xác định người dùng (UDT) SQLCLR của riêng bạn để cung cấp chức năng mong muốn.
Tuy nhiên , vì nó liên quan đến việc hiểu rõ hơn về .NET Framework:
Bạn có thể xem mã nguồn của hầu hết mọi thứ ở đây: https://github.com/Microsoft/referencesource
và thậm chí nhiều thứ khác ở đây: https://github.com/dotnet/corefx
Cả hai kho lưu ý ở trên đều là Nguồn mở và chủ yếu được quản lý theo giấy phép MIT, mặc dù bạn cần xem lại thông tin cấp phép ở từng vị trí và đôi khi trong các thư mục khác nhau, để chắc chắn.
Rất nhiều mã còn lại có thể được tìm thấy ở đây: http://referencesource.microsoft.com/
Mã được tìm thấy tại ReferenceSource.Microsoft.com (liên kết trực tiếp ở trên) không được tìm thấy ở hai liên kết đầu tiên (là Nguồn mở) không phải là Nguồn mở và thay vào đó được điều chỉnh bởi MICROSOFT TÀI LIỆU THAM KHẢO (MS-RSL) , phần có liên quan (được chỉnh sửa nhẹ để đặt định nghĩa về "sử dụng tham chiếu" ngay sau khi sử dụng cụm từ đó):
Bên cấp phép cấp cho bạn giấy phép bản quyền không thể chuyển nhượng, không độc quyền, trên toàn thế giới, miễn phí bản quyền để sao chép phần mềm để sử dụng tham chiếu: sử dụng phần mềm trong công ty của bạn làm tài liệu tham khảo, dưới dạng chỉ đọc, cho mục đích gỡ lỗi duy nhất sản phẩm của bạn, bảo trì sản phẩm của bạn hoặc tăng cường khả năng tương tác của sản phẩm với phần mềm và đặc biệt loại trừ quyền phân phối phần mềm bên ngoài công ty của bạn.
Tuy nhiên, dường như Microsoft.SqlServer.*
không gian tên không có sẵn ở bất kỳ vị trí nào trong số đó. Điều đó có nghĩa là câu trả lời đơn giản cho câu hỏi: "là Nguồn mở HVELyID?" là: Không .
Nếu mong muốn là nhìn thấy mã nguồn, thì bạn sẽ cần mở DLL - Microsoft.SqlServer.Types.dll - bằng trình dịch ngược. NHƯNG, có những vấn đề pháp lý và / hoặc đạo đức tiềm năng để giải quyết. Đây là mã độc quyền nên có hai điểm chính cần xem xét:
như đã nêu trong Thỏa thuận cấp phép người dùng cuối của SQL Server (EULA) (và như được trích dẫn trong câu trả lời của @ TomV ), bạn chỉ có thể " thiết kế ngược, dịch ngược hoặc phân tách " mã không được cung cấp " chỉ trong phạm vi luật pháp hiện hành cho phép rõ ràng " . Có nghĩa là đối với một số người, việc làm này là hoàn toàn hợp pháp, nhưng đối với những người khác, không quá nhiều. Vì vậy, bạn có thể muốn tham khảo ý kiến một luật sư sở hữu trí tuệ địa phương.
nếu nó hợp pháp để bạn dịch ngược, mục đích của ngôn ngữ pháp lý, cộng với thực tế là một số mã nguồn được cung cấp (như được liên kết ở trên cùng) nhưng mã này không phải, chắc chắn ngụ ý rằng mong muốn của công chúng là không thấy hoặc có mã này Vì vậy, việc hợp pháp để dịch ngược không nên được thực hiện vì nó cũng hợp pháp để sao chép, nhưng nhiều hơn để nó có thể được sử dụng làm tài liệu tham khảo (ví dụ để gỡ lỗi, v.v.).