Skip to content

MS_WindowsForms

nishi_74322014 edited this page Aug 12, 2026 · 1 revision

Windows Forms

概要

Windows Forms とは、Windows 3.1 時代の技術の流れを引き継ぐ Windows の画面構築技術である。

  • 実績は多く、Windows のウィンドウシステム (Window System) でできることの
    多くは実現できる。
  • Windows Forms は、WPFと比べると特にコントロール数が増えた場合に
    描画が遅いなどの問題もある。

補足(技術的な位置づけ): 「Windows 3.1 時代の流れ」というのは、
Windows Forms が Win32 のウィンドウ(HWND)を各コントロールが持つ
構造をそのまま .NET でラップしたものだからである。

Windows Forms WPF
コントロールの実体 Win32 の HWND(1 コントロール = 1 ウィンドウ) 独自描画(HWND を持たない)
描画 GDI+ DirectX
弱点 コントロール数が増えると HWND 数が増え、遅くなる 学習コストが高い

「コントロール数が増えると遅い」という指摘は、この HWND の数に起因する。

特徴

VB 6.0からの

  • イベント・ドリブン
  • UIコンポーネントベース

のプログラミング・モデルを継承するUIテクノロジ。

特徴としては、

  • ClickOnceをサポートする。

  • レガシーのリッチクライアント技術であるが、
    業務アプリケーションでの採用実績は未だに多い。
    これには、以下の様な理由が挙げられる。

    • 十分な実績もあり、技術としても枯れている
    • 実績も多数あり、スキルセットを満たす人員が多い
    • サードパーティ製のUIコンポーネントが充実している
    • Visual Studioデザイナと連動したRAD開発が可能

などがあり、

  • 多機能
  • 高い生産性
  • 導入における問題も少ない

UIテクノロジと言える。

補足(最新化:現在も現役である): 本ページは「レガシー」と書いているが、
その後 Windows Forms は .NET のモダン ランタイム側に取り込まれた

時期 出来事
2019-09 .NET Core 3.0 で Windows Forms がサポートされた(Windows 限定)
2018-12 Windows Forms のソースが MIT ライセンスで OSS 化dotnet/winforms
2021-11 .NET 6 以降も継続サポート。デザイナも .NET 対応版が提供
現在 .NET 8 / .NET 9 でも新機能(高 DPI 改善など)が入り続けている

つまり「.NET Framework 専用の古い技術」ではなく、
現行 .NET で選択可能な Windows デスクトップ UI である。
ただし .NET のクロスプラットフォーム対応
対象外(Windows 専用)である点は変わらない。

移行メモ(用語): 「RAD 開発」は Rapid Application Development の略。
画面をドラッグ&ドロップで組み立て、コード ビハインドにイベント ハンドラを
書いていく開発スタイルを指す。

参考

microsoft.com


Tags: 移行, .NET開発, UIサブシステム, Windows Forms

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally