C#クラスライブラリの開発/ランタイムライセンスメカニズム? [閉まっている]
-
06-07-2019 - |
質問
.Netクラスライブラリ(データプロバイダー)を開発しており、将来の購入者にライブラリのライセンスをどのように処理するかについて考え始めています。ライセンスとは、ソフトウェアライセンス(Apache、Gnuなど)ではなく、ライブラリを購入していない人がライブラリを使用しないようにする仕組みを意味します。
ライセンスを扱ったことは一度もありませんでした。過去には、ライブラリではなくアプリを常に開発してきました。私は顧客にとって物事を難しくしたくありません。それを鉄で覆うことは不可能であることを知ってください。お客様がフープを飛び越えたり、歯を噛んだりすることなく、まともな保護を提供するメカニズムがいくつかあります。
クラスがランタイムモードではなく開発モードで使用されている場合(顧客のソフトウェアが顧客にリリースされている場合)、メカニズムは有効なライセンスをチェックすると思います。ライブラリは通常、開発者ごとに販売されると思いますが、メカニズムを顧客にとって不快なものにせずにそれをどのように実現できるかはわかりません。多分それは名誉制度に委ねられます。
これをグーグルで検索し、多くのアプローチを見つけました。理想的には、一般に受け入れられ、一般的なもの、つまり「正しい」ことをしたいと思います。クラスライブラリのライセンスが存在する場合は、顧客にさらに別のライセンスメカニズムを処理させるのではなく、ライセンスされます。正しい方向へのしっかりしたプッシュは大歓迎です!
解決
これは.NETが提供するソリューションです
他のヒント
クライアントがクラスライブラリをインスタンス化するとき、コンストラクタコードでライセンスをチェックします。ベンダーに有効な/不足しているライセンスがない場合、ライセンス例外をスローできます。これにより、誰かがクラス/ライブラリを使用できなくなります。 1つのクラスでライセンスが有効な場合、他のすべてのクラスがライセンスチェックをスキップするように、これを1回だけ行う必要があります。