none
ClickOnceによるアプリケーション配布時のDB接続設定方法 RRS feed

  • 質問



  • 現在、C#,SQL Serverを用いたシステム開発を計画しております。そこで、
    アプリケーションの配布運用に不明点があり、下記について技術的な実現可能性を
    教えてください。

    Q1.作成したアプリケーションをClickOnceで配布した場合、DBへの接続
       設定もアプリケーションと一緒に配布可能でしょうか?
       SQL Clientを別途インストール・設定するなどの必要があるでしょうか?

    Q2.DB接続設定が変更された場合、アプリケーションのアップデートと
       してClickOnceで配布可能でしょうか?

    Q3.配布したアプリケーションをアンインストールした場合、DBへの接続
       設定も同時に削除されるでしょうか?
       個別に削除操作が必要になるでしょうか?

    ■想定している環境
     開発環境:Visual Studio 2013
     開発言語:Visual C#
     DBMS:SQL Server 2008
     DBサーバOS :Windows Server 2012
     クライアントOS:Windows7
    ※すべて英語版

    ■アプリケーションの構成
     クライアント・サーバ方式(2層)
     ClickOnceで配布したアプリケーションから、直接SQL Serverへ接続する。

    以上

    • 編集済み 星 睦美 2014年6月9日 2:12 社名等を削除させていただきました。
    2014年6月9日 1:07

回答

  • >Q1.

    プロジェクトのプロパティにある「アプリケーション」の「設定」に、接続文字列を保持し、配布します。つまり、アプリケーションの一部として配布されます。
    SQL Clientは別途インストールする必要はありません。.NET Frameworkに含まれるADO.NETとして配布されます。具体的には、System.Data.SqlClient名前空間に属するクラスです。

    (追記)
    「.NET Frameworkに含まれるADO.NETとして配布されます。」と書きましたが、アプリケーションが動作するために必要な.NET Frameworkさえあれば良いということです。クライアントに最初から入っていればそのままですが、入っていなければインターネット経由等でダウンロードしてインストールするようにダイアログが出ます。

    >Q2.

    可能です。Q1.と同様に、「アプリケーション」の「設定」にある接続文字列を変更し、ClickOnceで配布します。

    >Q3.

    「アプリケーション」の「設定」にある接続文字列は、ClickOnceで発行すると、以下のフォルダにアプリケーション.exe.configというファイルが作成され、そこに保持されています。

    C:\Users\%UserProfile%\appData\Local\Apps\2.0\英数字のフォルダ

    実際に、ClickOnceのアプリケーションをアンインストールしてみましたが、アプリケーション.exe.configは削除されませんでした。

    (参考)
    ClickOnce とアプリケーション設定
    http://msdn.microsoft.com/ja-jp/library/ms228995.aspx


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2014年6月9日 2:00
    モデレータ
  • 質問についてはtrapemiyaさんが答えられている通りです。

    質問とは無関係な話ですが、この接続方式ですとCALが必要になる場合があります。SQL Server 2008 ライセンス早わかりガイドなどを参照しライセンスについて把握しておくことをお勧めします。
    # ClickOnceを使用するような形態のアプリケーションでCALまで考慮されているかどうか気になりましたので。杞憂であればすみません。

    • 回答としてマーク t_nishi 2014年6月9日 7:55
    2014年6月9日 2:12

すべての返信

  • >Q1.

    プロジェクトのプロパティにある「アプリケーション」の「設定」に、接続文字列を保持し、配布します。つまり、アプリケーションの一部として配布されます。
    SQL Clientは別途インストールする必要はありません。.NET Frameworkに含まれるADO.NETとして配布されます。具体的には、System.Data.SqlClient名前空間に属するクラスです。

    (追記)
    「.NET Frameworkに含まれるADO.NETとして配布されます。」と書きましたが、アプリケーションが動作するために必要な.NET Frameworkさえあれば良いということです。クライアントに最初から入っていればそのままですが、入っていなければインターネット経由等でダウンロードしてインストールするようにダイアログが出ます。

    >Q2.

    可能です。Q1.と同様に、「アプリケーション」の「設定」にある接続文字列を変更し、ClickOnceで配布します。

    >Q3.

    「アプリケーション」の「設定」にある接続文字列は、ClickOnceで発行すると、以下のフォルダにアプリケーション.exe.configというファイルが作成され、そこに保持されています。

    C:\Users\%UserProfile%\appData\Local\Apps\2.0\英数字のフォルダ

    実際に、ClickOnceのアプリケーションをアンインストールしてみましたが、アプリケーション.exe.configは削除されませんでした。

    (参考)
    ClickOnce とアプリケーション設定
    http://msdn.microsoft.com/ja-jp/library/ms228995.aspx


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2014年6月9日 2:00
    モデレータ
  • 質問についてはtrapemiyaさんが答えられている通りです。

    質問とは無関係な話ですが、この接続方式ですとCALが必要になる場合があります。SQL Server 2008 ライセンス早わかりガイドなどを参照しライセンスについて把握しておくことをお勧めします。
    # ClickOnceを使用するような形態のアプリケーションでCALまで考慮されているかどうか気になりましたので。杞憂であればすみません。

    • 回答としてマーク t_nishi 2014年6月9日 7:55
    2014年6月9日 2:12
  • DBへの接続情報をどの様に保持するかで少し変わってしまう部分がありますが、exe.config以外の方法の場合もデータファイルとして発行すればOKです。

    それより、佐祐理さんが指摘されたライセンスの件やWindows Server 2012にSQL Server 2008がインストール出来るかの方が問題な気がします。

    2014年6月11日 1:07
  • 佐祐理さんが指摘されたライセンスの件やWindows Server 2012にSQL Server 2008がインストール出来るかの方が問題な気がします。

    とりあえず動作要件はSP3以降を当てればOKでしたね、参考まで。

    2014年6月12日 2:56