Visual StudioでC#+WPFのWindowsアプリケーションを作ろう!!
GUIアプリケーションを作ろう
GUIとは、Graphic User Interfaceの略で、それがアプリケーションプログラムを指す場合は、画面上にボタンやテキストボックスなどのインターフェースを表示させて、ユーザが操作に応じて、何か出力しされたり、何か処理が行われたりするものです。。。うーん、わかりずらい。。。
GUIの種類としては、私の紹介するWindowsのローカルで動くも、Linuxのローカルで動くもの、インターネットブラウザを通して動くもの、スマフォで動くものなど、た~くさんあります。さらに、それを開発する環境や言語もた~~~~くさんあります。
その中で、なぜWindowsのアプリケーションなのか?それは。。。私が知っているから!!(爆)本ページでは時代に逆行します(笑)Windowsのローカルで動くアプリケーションに絞っても、たくさんのプラットフォームがありますが、やはり、WindowsならVisual Studioで開発するのがよいと思います。情報やライブラリも必要十分ですし、なによりVisual StudioでC#が開発しやすと思います!しかーし、ちょっと取っつきにくいところもあるのも事実。
C#だけではGUIは作れないので、.NETというプラットフォームを用いた開発必要です。それにも、Windows FormsとWPFという2種類のものがあります。実は、Windows Formsのほうが、マウスでボタンなどのGUI部品を配置したりできるので、取っつきやすさがあります。しかし、ちゃんと作るなら断然WPFです。Windows Formsで作成したアプリケーションも作ったことはあるのですが、同じWindowsでも海外のPCだと、GUIが崩れたりすることがあってよくトラブりました(汗)。また、GUI部品をカスタマイズしようとすると、ものすごい知識を要求されたりするので、私には不可能でした(汗汗)。そういう意味でも、ちょっと取っつきにくくても、最終的にはWPFを選んだほうがよいと思います。
Visual Studioをインストールしよう
Visual Studioをインストールしてください。Visual Studioは、Community、Professional、Enterpriseという種類があります。PC 250台以上、または年間売上が100万米ドル以上の組織でなければ、5台までは無料でCommunityが使えます。また、アカデミックな研究や、オープンソース付与に使う場合は、無制限で無料でCommunityが使えます。それ以外の方は、ProfessionalかEnterpriseを購入しましょう。Communityは、全機能が使えるので、これが使える条件に当てはまれば、これで十分です。
Visual Studio Communityのリンク→ https://visualstudio.microsoft.com/ja/vs/community/
インストールは、基本、そのままポチポチと、進めていけばいいのですが、インストールの途中で、ワークロードというものがでてきます。これは、Visual Studioを使う上で使用する言語やプラットフォームを選ぶものです。ここでは、私の今後の記事を想定して、「.NETデスクトップ環境」と「C++によるデスクトップ環境」の2つのプラットフォームをインストールしてください。選択し終えたら、☑マークがつくので、「インストール」ボタンを押して、そのまま、じっとインストールが終わるのを待ちましょう。ちなみに、これらのオプションは、後でも変更できるので気軽に選んでもらって大丈夫です。
プロジェクトの作成
まず、Visual Studio 2022を起動します。
インストール後、初めて起動すると、ログインを求められます。わからない場合は、「あとで」を選択して次に進みましょう。次にVisual Studio 2022をスタート画面が出てきますので、「新しいプロジェクトを作成」を選びます。
たくさんのプロジェクトの種類がでてきますが、上のボックスに「WPF アプリ」と記述し、「C#」「Windows」「デスクトップ」を選んでみましょう。すると、以下のような画面になり、「WPF アプリケーション」と「WPF アプリ (.NET Framework)」があるのが、わかります。本記事では、最新のプラットフォームでの記事がメインとなるので、「WPF アプリケーション」を選んでください。
この2つのプロジェクトの種類における、メリットとデメリットをまとめました。
プロジェクトの種類 | アプリケーション開発プラットフォーム | メリット | デメリット |
---|---|---|---|
WPF アプリケーション | .NET (.NET 8.0) | 一般的な.NET SDKプロジェクトで、C#8以降の言語バージョンが使え、便利な最新のAPIが使える。今後、開発環境、記述方法、APIの進化が期待できるプラットフォーム。オープンソース。 | 他のPCで動かそうとすると.NETのランタイムのインストールがだいたい必要。セキュリティアップデートのサポート期間の終了が短く、メンテナンスのたびに.NETのバージョンを検討する必要がある。 |
WPF アプリ (.NET Framework) | .NET Framework | 他のPCで動かそうとした場合でも、ランタイムが入っていることが多い。セキュリティアップデートの終了期限が非常に長い。枯れた技術。 | C#7.3までの言語バージョンしか使えないため、記述方法やAPIに不便を感じる場合がある。機能的なアップデートは今後なし。まだ先の話だが、今後サポートされなくなる方向のプラットフォーム。昔ながらの独自のプロジェクトのマークアップ。 |
ちなみに、A.I.に聞いてみると以下の通りでした。
項目 | .NET Core / .NET (最新) | .NET Framework |
---|---|---|
🖥 対応UI技術 | WPF / Windows Forms(Windows環境限定) ※一部機能に制限あり |
WPF / Windows Forms(機能が豊富で成熟) |
⚙ パフォーマンス | .NET 6以降はパフォーマンス向上著しい | Windows専用最適化されているが古い設計あり |
🔄 モダンアーキテクチャ | マイクロサービス・クラウド・CI/CDに対応しやすい | モノリシック設計が中心 |
🧩 モジュール性 | NuGetベースの軽量構成・必要なライブラリのみ導入 | 多くが一体型・サイズが重くなりがち |
🌐 将来性 | .NET 8以降も積極的に開発・保守される | .NET Framework 4.8が最終版とされている |
🧪 テストとDevOps | xUnit, MSTestなどとの統合容易、GitHub ActionsやAzure DevOpsと好相性 | CI/CD導入には工夫が必要、ツールに制限あり |
⚠ 制限事項 | Windows Formsはまだ制限がある(例えば一部コントロール未対応) | Windows Formsの成熟度高く業務系に最適 |
🏢 企業での利用 | 新規プロジェクトやクラウド連携が強み | 多くの業務アプリが既に導入済み・互換性に優れる |
🚚 移行の容易さ | 一部互換性に注意(App.configや第三者DLLなど) | 既存資産を活用しやすく移行の必要がないケースも多い |
では、プロジェクト名をつけて、次へを押します。ここでは「GUISample」としています。
「.NET 8.0 (長期的なサポート)」を選んで、「作成」を押します。長期的なサポートっていったって、2026/11/10までです。。。トホホ
プロジェクトの作成が完了しました。画面では、よく使うソリューションエクスプローラーを選んだ状態です。
Discussion