【入門編】VB.NETアプリケーションの設定管理:App.configとMy.Settingsを使い分ける実務的アプローチ – Visual Basic (VB / VB.NET)解析バイブル

スポンサーリンク

VB.NETの設定管理:App.configとMy.Settingsの「真実の使い分け」を極める

こんにちは。システム開発の現場で、コードの美しさと堅牢性を追求し続けているエンジニアです。

VB.NETを学び始め、VBAの「マクロの記録」という安全地帯から一歩踏み出した皆さん、おめでとうございます。いよいよ、アプリケーションが「環境」や「ユーザー」を認識し、自律的に振る舞うための核心部分、「設定管理」についてお話しします。

多くの初心者がここで躓くのが、「どこに何を保存すべきか」という迷いです。今日は、`App.config`と`My.Settings`という2つの強力な武器を、現場の視点から完全に使いこなすための知見を授けましょう。

—

1. なぜ「設定」をコードに直接書いてはいけないのか?

まず、大前提を刻んでください。「接続先URLやパスワードをコード内にハードコーディング(直書き)するのは、エンジニアとしての禁じ手」です。

なぜなら、環境が変わるたびにコンパイル(ビルド)が必要になるからです。本番環境で動かすたびにソースコードをいじらなければならない……そんな脆弱な運用は、プロの現場では許されません。

設定を外に出すことで、「コードはそのままで、環境に応じて振る舞いを変える」という、堅牢なシステム設計の第一歩が始まります。

—

2. 【App.config】システム管理者のための「静的設定」

`App.config`は、アプリケーションの「構成情報」を管理するXMLファイルです。主に、実行環境全体で固定的な値(接続文字列、APIのベースURL、タイムアウト時間など)を定義します。

使い方の作法

プロジェクト直下の `App.config` を開いてみてください。以下のように記述します。










VB.NETでの読み込み方

プログラムから呼び出すときは `System.Configuration` 名前空間を利用します。

Imports System.Configuration

Public Sub ReadConfig()
‘ 接続文字列を取得
Dim connString = ConfigurationManager.ConnectionStrings(“MyDatabaseConn”).ConnectionString
‘ 設定値を取得
Dim timeout = ConfigurationManager.AppSettings(“ApiTimeoutSeconds”)

Console.WriteLine(“接続先: ” & connString)
End Sub

ポイント: ここは「読み取り専用」と割り切るのが吉です。実行中にここを書き換えることは推奨されません。

—

3. 【My.Settings】ユーザーのための「動的設定」

一方、`My.Settings`は「ユーザーの利便性」のためにあります。
例えば、「最後に開いた画面のサイズ」「お気に入りのテーマ色」「ログインIDの保持」など、ユーザーが操作するたびに変化する設定です。

なぜこれが便利なのか?

Visual Studioの「プロパティ」→「設定」タブからGUIで設定を追加できるからです。型(Integer, String, Booleanなど)を明示できるため、キャストの失敗が起きにくく、非常に安全です。

実践的なコード

設定値の変更と保存は、極めて直感的です。

Public Sub SaveUserPreference()
‘ ユーザーが設定した値をプロパティに代入
My.Settings.LastWindowWidth = 800
My.Settings.UserName = “Taro_Yamada”

‘ 重要:Saveメソッドを呼ばないと設定は永続化されません
My.Settings.Save()
End Sub

—

4. 現場で役立つ「使い分け」の黄金律

初心者の皆さんが混乱しないよう、現場の判断基準をまとめました。

| 特徴 | App.config | My.Settings |
| :— | :— | :— |
| 主な用途 | システム全体の設定(DB接続など) | ユーザーごとのパーソナライズ |
| 変更権限 | 管理者のみ(手動書き換え) | 実行中のアプリから変更可能 |
| 保存場所 | アプリフォルダの直下 (XML) | ユーザーのプロファイル領域 (AppData) |
| 型安全性 | 文字列として扱う(要変換) | 型定義済み(安全) |

—

5. 最後に:エンジニアとしての心構え

「動いたからOK」ではなく、「なぜその場所に設定を置くべきか」を考えること。それが、マクロの記録から脱却し、真のエンジニアへと進化する鍵です。

  • App.config は「環境(Environment)」を支配する。
  • My.Settings は「体験(User Experience)」を向上させる。

この役割分担を理解すれば、あなたの書くアプリケーションは、保守性が高く、ユーザーにとって使いやすいものに劇的に変わります。

ここをクリアしたあなたは、もう初心者ではありません。次のステップは、これらの設定を外部のデータベースやクラウド上の設定サービスと連携させることです。その旅路も、また別の機会にお話ししましょう。

迷ったときは、いつでもコードの「目的」に立ち返ってください。皆さんの開発ライフを、心から応援しています。

タイトルとURLをコピーしました