0

現在Metroアプリケーションを作成していますが、アプリをWeb SQL DBに接続して、マネージドSQL処理をアプリ内に統合したいと考えています。

.NET 4.5のオプションは何ですか?

また、反対票を投じた場合は、その理由を説明してください。.NET4用のMySQLコネクタがあることは知っていますが、4.5とは明らかに互換性がありません。

4

2 に答える 2

5

次の理由から、クライアント プログラムがインターネット経由でデータベース サーバーに直接接続しないことを強くお勧めします。

  • クライアント ライブラリは、データベースが数ミリ秒以内に離れているという前提に基づいて設計および構築されています。結果として、短い操作にはかなりの時間がかかる場合があります。
  • データベース サーバーをインターネットに公開するだけでなく、アプリケーションに接続の詳細 (パスワードなど) を埋め込むことは、セキュリティ上の責任です。
  • スケーラビリティには向いていません。複数の負荷分散またはフェールオーバー データベース サーバーを導入すると、クライアントを書き直す必要があります。
  • また、接続の問題がないことも前提としています。多くのネットワーク (特にモバイル ネットワーク) は、ポート 80/443 以外のアクティビティを制限して、ネットワークの悪用 (ゾンビ ユーザーによる攻撃の開始など) を防ぎます。

このような場合の理想的な解決策は、データベースの Web サービス フロントエンドを開発することです。アプリケーションは、データベースの代わりに Web サービスとやり取りします。これには他の利点があります。

もちろん、クライアント (特にモバイル クライアント) はデータ キャッシュを使用して、アプリケーションがオフラインでも動作し続けるようにする必要があります。

本題に戻りますが、まだ直接接続を使用したい場合、MySQL クライアント ライブラリが 4.5 で動作しない理由がわかりません。アセンブリのマニフェスト/構成を変更して、.NET CLR の将来のバージョンで実行できるようにすることができます (上記のライブラリが削除されてからの型とメンバーを使用している場合、または変更された動作に依存している場合にのみ、問題が発生します。.NET フレームワークには後方互換性と前方互換性に定評があります)。

于 2012-09-10T03:24:36.953 に答える
0

App Storeを介して配布されるMetroアプリケーションはサンドボックス化されているため、MySQLを使用すると問題が発生します。単純なデータベースが必要な場合は、SQLiteをお勧めします。移植性を保証したい場合は、「混合モード」の実装を避けてください。「純粋な」.NET実装がここにあります:http ://code.google.com/p/csharp-sqlite/

SQLiteデータベースの管理と設計にも使用できるGUIツールはたくさんあります。

于 2012-09-10T03:10:42.837 に答える