8

リフレクターを使用して汎用辞書コレクション (Dictionary<TKey, TValue>) のコードを表示し、そのコードを修正してスレッド セーフにしました。このコードを自分のブログに投稿して、他の人がレビューできるように (そして、私が何か間違ったことをしたかどうかを教えて)、必要に応じてプロジェクトで使用できるようにしたいと考えています。法的に言えば、私はそうすることが許されていますか? 元のコードを大幅に変更しました (元のコードからすべてではなくいくつかのメソッドのみを使用しました) が、基本コードは同じままです。

注: スレッド セーフな辞書の実装を教えてくれる人がいる場合に備えて、ReaderWriterLockSlim を使用したスレッド セーフな辞書の実装が既にあることは知っていますが、読み取り時 (書き込み時のみ) にロックは必要ありません。 3.5ではなく.net 2.0を使用しているため、とにかくReaderWriterLockSlimを使用できません。また、2.0のReaderWriterLockのパフォーマンスが非常に悪いことをどこかで読んだので、使用したくありません。

4

3 に答える 3

12

Microsoftの辞書ソースコードは、Microsoft Reference Source Licenseの修正バージョンによって管理されており、基本的にはコードを読み取ることしかできません。したがって、このライセンスの下で変更されたコードを再配布することは絶対に許可されていません。

一方、MIT / X11でライセンスされているため、MonoのDictionary <K、V>の実装を使用して、ニーズに合わせて変更することができます。.netのものと比較して非常によく機能します。

于 2009-03-24T23:52:19.313 に答える
6

.NET フレームワークがソース形式でリリースされ、そのような変更 (通常は派生物と呼ばれる) を作成および配布できるライセンスの下でリリースされていない限り、いいえ、現在、これを行うことは許可されています。

.NET フレームワークの一部のソースはリリースされていますが、それらは参照ライセンスの下でのみ利用できます。そのページから直接;

Microsoft 参照ソース ライセンス (Ms-RSL) は、Microsoft ソース コード ライセンスの中で最も制限が厳しいものです。ライセンスは、参照目的でコードを表示する以外のソース コードのすべての使用を禁止します。このライセンスの目的は、ライセンサーがレビュー目的のみに、より機密性の高い知的財産資産をリリースできるようにすることです。

独自のスレッドセーフな辞書コレクションを提供したい場合、それは問題なく、間違いなく崇高な目標ですが、変更する権利がないものに基づいてそれを基にすることはできません。

于 2009-03-24T23:41:20.200 に答える
4

まず、弁護士に相談してください。私は1人ではないので、私が言ったことを一粒の塩で受け止めてください。また、これらは私が最もよく知っている法律であるため、このアドバイスは米国/西ヨーロッパ中心になります。

そうは言っても……

技術的には、自分がしたことをすることさえ許可されていません。.NET Frameworkは、オペレーティングシステムの補足としてライセンスされています。EULA for .NET 2.0を読むと、次の内容が含まれます。

Microsoft Corporation (or based on where you live, one of its affiliates) licenses this supplement to you. If you are licensed to use Microsoft Windows operating system software (the “software”), you may use this supplement. You may not use it if you do not have a license for the software. You may use a copy of this supplement with each validly licensed copy of the software.

Windows Vista / XPのライセンスは、.NETFrameworkに付属のEULAに従って法的権利を決定します。

これにより、これを行うことができなくなります。特に:

Windows Vistaライセンス契約から:

You may not

· work around any technical limitations in the software

· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation

これらは彼らの最初の2つのポイントです-どちらもあなたがやろうとしているように聞こえます。再配布は、用語の後半に含まれています。詳細については、OSのライセンスをお読みください

于 2009-03-24T23:53:30.950 に答える