ASP.NET2.0でWebアプリを作成する場合、システムの構成をUI層とビジネスロジック層の2階層にする際の注意事項。
WebサイトプロジェクトのApp_Dataにデータセットを配置していたのですが、ビジネスロジック層を追加して、そっちにデータセットとTableAdapterのパーシャルクラスを配置した方が、今後使いまわす際には便利だなぁとデータセットを移動。。。
見事にデータセットが壊れましたorz
ネームスペースなどは名前を手動で置換したのですが、DB接続文字列の設定をWeb.configからApp.Config(Settings)に置きかえれずに結局データセットの作り直しorz
SQLがすべて残っていたのがせめてもの救い。
気を取り直して開発環境で動作確認をして別の環境へWebサイトの発行。データベースとして開発環境ではSQL Server2005のデータファイルを利用し、別環境はSQL Server2005 Expressのデータベース。当然接続文字列の変更をするのですが、データセットの接続文字列はApp.Config(Settings)にある。
.NET Framework1.1のときはWeb.configに設定情報を追加してやるとそれを見てくれたのですが、それが通用しない・・・はて?dll作成時にはConfigできね~しどうしたものか?と悩んでみました。
わかんなかったのでgoogleさんで仲間探し。
Visual Studio User Group > フォーラム > DB接続情報の保持・取得
ASP.NETで使用するロジックをまとめたクラスライブラリを製作しています。
そのクラスライブラリの中でデータベースへ接続して情報を取得するロジックが含まれていますが、
その際のデータベースの接続情報の保持・取得方法について悩んでいます。
ASP.NETのApp_Code内に格納するクラスであれば、ConfigurationManagerが使用できるのですが・・・
接続文字列をそのままハードコーディングするしか思い当たりません。
何か良い方法はありますでしょうか?
お仲間発見。先人のお知恵を拝借。最後にしっかりと質問された方が解決方法を提示してくれているので助かります。ありがたやありがたや。詳しくはそちら参照。頭にクラスライブラリの名前とかをつけないと駄目になったんですね。なるほどなるほど。・・・素直にApp.configからWeb.configにキー定義をコピペすればよかったのねorz
検索キーワードは最終的に「app.config クラスライブラリ DB」で探していた情報が集まりましたが結構皆さん引っかかるところみたいです。
そんなわけでご注意を。
投稿日時 : 2007年2月12日 2:55