Visual Studio C#でデスクトップアプリを作るときに選択するプロジェクトテンプレートのメモ
身の回りでいろいろあって開発関連作業を全然していなかったけどまた始めようかと。
今まで進めていたのとは別のツールが欲しくてVisual Studioをインストール。
サクッとアプリ作ろうと思ったらプロジェクトテンプレートがいっぱいだったのでどんなテンプレートなのかをメモしておく。
選択基準も書こうと思ったけどメリデメをちゃんと整理するのが面倒になったのでやめた。
選択基準はこの辺とか参考になると思う
アプリ プラットフォームの選択 | Microsoft Docs
それぞれの特徴
言語にC#、プラットフォームにWindows、プロジェクトの種類でデスクトップを選択した際に私の環境で表示されたもの。
インストールしているコンポーネントによって内容に差があると思います。
NUnit テストプロジェクト(.Net Core)
他に作成したプロジェクトをテストする用のプロジェクトを作る。
ちなみに、NUnitはJUnitを.Net coreでも使えるようにしたものとのこと。
Windows フォーム アプリケーション(.Net Framework)
Windows Forms インターフェースを含むアプリケーション。
Windows Forms インターフェースはWindows API(GDI/GDI+)をマネージドコードでラップしたものとのこと。
WPFアプリ(.Net Framework)
Windows Presentation Foundation (WPF) は、デスクトップ クライアント アプリケーションを作成する UI フレームワークとのこと。
グラフィック関連はDirect3Dを使用していて、環境に応じてGPUを使用するらしい。
WPF App(.Net Core)
WPFアプリ(.Net Framework)と同じだけど.Net Coreの範囲ってことだと思われます。
(Windows以外でも動くけど当然Windows専用の機能は使用できない。)
空白のアプリ(ユニバーサル Windows)
ユニバーサル Windows プラットフォーム(UWP)を使用した空ウィンドウアプリ。
UWPはWindows 10で導入された各デバイスで共通のプラットフォームでWindows 10上であればデバイスを問わず(Hololensとかで)動く模様。
Windows フォーム アプリケーション(.Net Core)
Windows フォーム アプリケーション(.Net Framework)と同様。
Windows サービス(.Net Framework)
Windowsで動くサービスを作る。
WPF ブラウザーアプリ(.Net Framework)
WPFの機能を使用したWebアプリを作る。
実質的にWPFアプリと同様でWebを介して配信するってだけっぽい。
セキュリティ回りが厳しい組織内でのWPFアプリ配信方法くらいの認識でいいかも。
WPF カスタム コントロール ライブラリ(.Net Framework)
WPF ユーザー コントロール ライブラリ(.Net Framework)
それぞれCoreと同様。カタカナだったり英語だったり翻訳のばらつきが気になります……。
Windows フォーム コントロール ライブラリ(.Net Framework)
Windows Formsアプリで新しいコントロールを作るやつ。
WPF Custom Control LibraryのWinForms版と解釈した。
共有プロジェクト
複数のプロジェクトで共有するプロジェクト。
マルチOS対応したアプリのコア部分とかに使うっぽい。
DLLとかにはせず参照しているプロジェクト側で自プロジェクトにあるかのようにコンパイルする。
空のプロジェクト(.Net Framework)
ローカルアプリケーション用の空プロジェクト。
ピュアな(WPFでもWinFormsでもUWPでもない)デスクトップアプリ。