2

エンタープライズ Visual FoxPro アプリケーションを .NET 3.5 上の C# 3.0 に移行する大規模なプロジェクトに (うまくいけば) 取りかかる予定です。このアプリケーションには、マルチユーザー/マルチサイト構成からレポート プロパティに至るまで、あらゆるものに影響を与える膨大な数の設定があることを知っています。現在、グローバルにスコープされている設定は少なくとも 150 あります。

現在、設定はアプリケーションのデータベースにビットとして保存されているだけであり、すべてのインスタンスが同じデータベースを共有しているため、ユーザー レベルで設定を変更することはできません。

私の質問は、パフォーマンスを犠牲にすることなく、ユーザーごとに変更できるようにするこれらの設定のストレージを処理する方法を知っていますか? また、アプリケーションの実行中に値を変更できるように保存する必要もあります。どんなアイデアでも大歓迎です。

4

4 に答える 4

4

標準の Settings.Settings ファイルは、アプリケーションまたはユーザー スコープの変数を含むこの機能を提供すると信じています。ただし、アプリケーションを再起動せずに変更が反映されるかどうかは 100% わかりません。

詳細については、こちらを参照してください: MSDN:C# での設定の使用

于 2009-07-28T11:16:43.450 に答える
1

「エンタープライズ」に行きたい場合は、ユーザー設定テーブルとペアになった設定定義テーブルを試すことができます。

設定定義には、ドメイン列 (UI 設定、接続設定、言語設定など) で定義された PK と、設定識別子が含まれます。3 番目の列は、デフォルト/グローバル値を定義します。

ユーザー設定には、設定定義の PK + ユーザー ID に設定された PK と、設定値列、varchar(x) があります。

アプリケーションが言語対応の場合、言語 ID 列を両方のテーブルに追加する必要があります。

ユーザーの変更をユーザー設定テーブルに保存するのは簡単です。グローバル設定が変更されたときに通知を受けることは、もう少し複雑です。

EDIT:心に留めておくべきことの1つは、常にいくつかのデフォルトにフォールバックすることです:グローバル設定/デフォルト言語。

于 2009-07-28T11:29:26.857 に答える
0

データ/アプリケーション固有とユーザー固有の項目については、論理的に処理する必要がある場合があります。VFP (foxpro) では、ユーザーに関係なく、テーブルとそれぞれの主キーは明らかに同じです。デフォルト値などのその他のものは、個々のユーザー、アカウント、アクセス、追加/編集/削除する機能などごとにカスタマイズできます.

HTH

于 2009-07-29T22:04:53.593 に答える
0

設定を格納するアプリケーションのデータベース内のテーブルにユーザー フィールドを追加し、現在のユーザーをパラメーターとしてこのテーブルへのすべての読み取り/書き込み呼び出しに追加します。

于 2009-07-28T11:20:00.837 に答える