0

私は、技術者以外のユーザーがカスタム データベース駆動型アプリケーションをインストールするのを支援するために、カスタム "ウィザード" を必要とするプロジェクトに取り組んでいます。主な懸念事項は、適切なデータベース エンジンが既に配置されている場合、カスタム アプリケーション用に新しいデータベースをセットアップしないことです。問題は、既存のデータベース エンジンの種類と場所をプログラムで検出する方法です。

ここでの秘訣は、インストーラーの要件は、技術者ではないユーザーがデータベース エンジンが互換性リストにあるローカル プライベート ネットワーク上に存在するかどうかを判断するのをウィザードが支援することです。その場合は、技術者以外のユーザーが選択したデータベース エンジンへの接続を確立できるようにします。それ以外の場合、ウィザードはデータベースなどをインストールします。

既存のデータベース シーンに関係なく、好みの DBMS をインストールした方がよいでしょうか? プラットフォームは Windows ボックスですが、プラットフォームの独立性がプロジェクトの目標です。

検索用語が間違っているだけなのか、それとも実際の情報がほとんどまたはまったくないのかはわかりませんが、これが可能かどうかを調べるのはイライラします.

ヘルプ、アドバイス、リンク、コード リソースなどは大歓迎です。

編集既存のデータベースの場所とタイプを検出する目的は、現在のバージョンのプライベート ネットワーク上にアプリケーションの追加インスタンスを追加する場合、またはデータベースのアップグレードとして、ユーザーが選択できる単純なリストを提供することです。バージョン (「クリーン」インストールを行うため)。アプリケーションは、データベースと対話する端末として機能するアプリケーションの多くのインスタンス (3 ~ 10) が通常存在するという点で少し分散されており、さまざまな端末でさまざまな用途に合わせてさまざまな方法で情報を操作します。推奨される DBMS は PostgreSQL に落ち着いたと思います。

  • スティーブ
4

2 に答える 2

2

接続しようとしているデータベースの種類がわかっている場合はping、その種類のデータベースの既定のポートに接続して、応答が返されるかどうかを確認できます。または、データベースへの実際の接続を開いて、応答があるかどうかを確認してください。

さらに複雑なことに、ネットワーク上の PC にアクセスできる場合は、データベース タイプのデフォルトのインストール ディレクトリを参照して、何か存在するかどうかを確認します。

これら 2 つは、これまでのところ、デフォルトの場所とポートを使用してデータベースをインストールする必要があります。

さらに複雑になりますが、削除した PC のレジストリに接続できる場合は、おそらくレジストリ ツリーでデータベースを見つけることができます。これは、ユーザーがデータベースをどこにインストールしても修正される予定です。


私の提案は、おそらくこれを完全に回避することです. アプリケーションが技術者以外のエンド ユーザー向けである場合は、利用可能なデータベースがないと仮定して、インストーラーの一部として新しいデータベースをインストールする方がよいでしょう。技術に詳しくないユーザーが混乱するのは、実際には何の意味もないデータベース オプションの全リストを提示した場合だけです。

また、存在するネットワーク共有の数と応答の速さによっては、ローカル ネットワークのクエリに時間がかかる可能性があります。これらすべてがインストーラーの応答性を損なうため、エンド ユーザーはインストーラーが何もしない理由を理解できない可能性があります。

既存のデータベースを選択するオプションを本当に提供したい場合は、それを別のオプション ボタンにして、調査するネットワーク ホストを選択できる別の画面に移動します。この画面に到達するのは、とにかくデータベースがどこにあるかをおそらく知っている、より技術的な人々です。

于 2012-04-23T13:28:30.243 に答える
1

主な懸念事項は、適切なデータベース エンジンが既に配置されている場合、カスタム アプリケーション用に新しいデータベースをセットアップしないことです。

ウィザードが既存のデータベースが適切かどうかを判断する方法がよくわかりません。ネットワーク上に 3 つの Oracle インスタンスと 4 つの MySQL インスタンスが見つかったとします。どのように選択するのでしょうか? さらに、このようなアプローチでは、ユーザーのアプリケーションとネットワーク上の別のマシンとの間に依存関係が作成され、ユーザーはそれを意識することさえありません。明日データベースが利用できなくなったら、ユーザーはどうするでしょうか?

データを複数のユーザーまたは複数のシステムで共有する必要がある場合、DB の選択は、ユーザーによる明示的で意識的な操作でなければならないように思えます。一方、データベースがアプリケーションが何かを格納する単なる場所である場合は、データベースをインストールする必要があります。できればHSQLDBSQLiteのような軽量のものをインストールする必要があります。

于 2012-04-23T13:41:18.990 に答える