自作のWindows デスクトップアプリケーションを配布しています。
Microsoft SQL Server Expressを利用しています。
問題は、Microsoft SQL Server 2017 をダウンロードしてインストールすることが、対象とするユーザー(アプリをスタンドアローンで利用する)にとって難しいということです。SQL Server 2014なら、なおさら難しいです。
- 運用開始後の、データベースのバックアップの為の設定も一筋縄ではいきません。
- SQL Serverをインストールする前に、すでにSQL Serverがインストールされているか確認しインストールするかしないかをユーザーに理解してもらうのもなかなか簡単ではありません。(アプリ側で、レジストリを読みこんでSQL Serverのインストール状況を調べられますが、それは別にして)
解決方法として、自作アプリケーションをインストールする際に、データベースも同時にインストールすると良いと考えました。**どの選択肢が良いか、アイディア・メリット・デメリットを教えて頂けると助かります。**他に、選択肢があれば、それも良いです。
- スタンドアローンで利用するユーザーにとってできるだけ簡単にインストールできて設定できる方法を考えます。
- Windows 7以降・.Net 4.7以降・Entity Framework のコードファーストで作成しています。(SQL Server Management Studioで、データベースの構造を規定し、それをVisual Studioで、データベースからコードファーストで作成)
- PC1台のスタンドアローンでの利用がメインですが、サーバーをたててネットワーク上で複数台で共有しての利用も行える必要があります。
- データ量は、1テーブル20万レコードまでを想定しています。
#####配布実例
データベース込みで配布しているソフトを探したところ、次の実例がありました。
- アプリインストール時に、Firebirdも同時にサイレントインストール。
- スタンドアローンでは、mdbファイルを利用。共有する時は、SQL Serverを利用。
##選択肢
###■1 SQLite と、SQL Server
- SQLite 1台のみで利用する場合は、SQLite を使う。アプリ同梱で利用するには、SQLite が良いという話のため。
- SQL Server は、複数台で利用する場合に使う。
デメリット
2種類のデータベースに対応しなければいけない。けれども、コードファーストで2種類のデータベースにそれほど時間をかけないで対応できるのなら、これでも良い気がします。
###■2 MySQL
サイレントインストールなど、アプリケーションと同時に簡単にインストールできるのか?
###■3 PostgreSQL
サイレントインストールなど、アプリケーションと同時に簡単にインストールできるのか?
###■4 Firebird
アプリケーションと一緒にサイレントインストールするソフトがあるので、おそらく簡単にインストール可能。ただし、上3つに比べ、情報が少ないのがネック。
##■1~4までの共通の懸念
それぞれのDatabaseは、Entity Framework のコードファーストでうまく機能するだろうかという点がよくわかりません。
Entity Framework 用のproviderは次の通りです。
Entity Frameworkの対応状況や情報は、ダウンロード数が多いものがより良く対応しているだろうと思いますから、対応状況は、SQLiteが良いのではないかと考えています。この点も情報が有る方、教えて頂けると助かります。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。