「このメッセージを再度表示しない」設定やその他のユーザーのインターフェイス固有の選択など、インターフェイスの選択を保存するために広く受け入れられている方法は何ですか?レジストリ?設定ファイル?私のプログラムはすでにデータベースにアクセスできるので、データベースに保存することもできます。
編集 私の現在のプログラムはローカルですが、将来的にはWebベースにしたいと思います。
「このメッセージを再度表示しない」設定やその他のユーザーのインターフェイス固有の選択など、インターフェイスの選択を保存するために広く受け入れられている方法は何ですか?レジストリ?設定ファイル?私のプログラムはすでにデータベースにアクセスできるので、データベースに保存することもできます。
編集 私の現在のプログラムはローカルですが、将来的にはWebベースにしたいと思います。
データベースは使いません。データベースを切り替えることにした場合はどうなりますか? ここで、ユーザー データを移行する必要があります。アンインストールするとどうなりますか?
Windows では、ユーザーの AppData フォルダー内の設定ファイルが適切です。アンインストール時にこれらを削除しないことも許容されるため、設定はその間も保持されます。ユーザー設定のレジストリを敬遠します。その領域は、システム設定により適しています。
*nix システムにも同様の領域がありますが、頭の中でよくわかりません。お久しぶりです。
Cookie は、Web ベースのプログラムのコンピュータ固有の唯一のオプションです。ほとんどの消費者向けインターネット オプションでは IP が 1 日 1 回から 1 週間に 1 回ローテーションされるため、IP ベースのフィルターはお勧めできません。MAC フィルターを使用できますが、生のソケットを使用して MAC アドレスを取得する必要があります。それでも、コンピュータではなくルーターのアドレスになる可能性があります。1 台のルーターで 2 人が同じ設定を取得することを意味します。
これについては、プログラムで Web サービスにクエリを実行する必要があります。サービスは、その時点で最適な方法で自由に実装できます。データベースはこのシナリオに適しています。ユーザー データが既に存在し、そこにキーが設定されている可能性が高いため、データを特定のユーザーに簡単に関連付けることができます。
Web 関連の環境の場合: どれくらい滞在させたいかによって異なります。データベース内にメンバー登録がある場合、それをデータベースに保存することは完全に理にかなっています。それ以外の場合は、Cookie または ip/setting としてデータベースに保存できます。
Windows アプリケーションを意味すると仮定すると、.NETアプリケーション設定機能はデフォルトでファイルシステムを使用します (プラグイン可能であるため、レジストリやその他のものを使用できます)。
最も便利な場所に保管できます。
データベース内- データベースがリモートの場合、ローカル ファイル ストアにアクセスする必要はありませんが、接続が存在しない場合、設定にアクセスできないことを意味します。
レジストリでは、ユーザーが実際に書き込みできるように、CURRENT_USER 領域を使用していることを確認する必要があります。Windows 固有。
ファイル内- ローカルに保存するということは、データベースへの接続に依存していないことを意味しますが、ファイルを保存するフォルダーに対する権限をユーザーが持っていることを確認する必要があります。C#/.NET は、ユーザー設定ファイルを読み書きするためのクラスを提供するため、おそらくこれが最良の選択です。
場所固有のデータベースを使用する WinfForms アプリケーションのデータベースに、個々のユーザー設定を保存しました。ユーザーが別のクライアント マシンにログインすると、表示設定も一緒に移動するため、これはうまく機能しました。
これは通常、API を介して Windows によって処理されます。How to: Program Exception Message Boxに関する MSDN の記事では、.NET でそれを行う方法について説明しています。記事によると、その方法で決定を永続的に保存する場合、例外はレジストリに保存されます。
決定をカスタム XML 構成ファイルに保存したり、アプリケーション設定ファイルを使用して保存したり、データベースに保存したりすることもできます。最も単純な実装と最小限の頭痛の種については、あなた次第です。
新しい推奨される方法は、ユーザーのアプリケーション データ ディレクトリに保存することです。Technet のデータと設定の管理を参照してください。
Windows では、「新しい」方法は、構成をユーザーの「App-Data」(CSIDL_APPDATA) フォルダーに保存することです。
私の推奨は、アプリケーションのインストールまたは App_Data に保存されているファイル (INI、設定など) です。レジストリに保存することは間違いなく一般的な方法ですが、関連性がなくなったときにクリーンアップすることはあまり一般的ではないようです. そのため、レジストリを使用する場合は、必要に応じて自分でクリーンアップする努力をしてください (アンインストール、レジストリ エントリ構造の変更など)。