-
Notifications
You must be signed in to change notification settings - Fork 0
MS_WindowsForms
- 戻る(デスクトップ・アプリ、VS系コンテンツ)
- Windows Forms
- WPF
- Windows Form vs WPF
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 の略。
画面をドラッグ&ドロップで組み立て、コード ビハインドにイベント ハンドラを
書いていく開発スタイルを指す。
-
Windows Formsの国際化対応(
MS_WindowsFormsGlobalization.md) -
Windows Forms - Wikipedia
https://ja.wikipedia.org/wiki/Windows_Forms -
dotnet/winforms(OSS 化された Windows Forms 本体)
https://github.com/dotnet/winforms
- Windows フォームのドキュメント | Microsoft Learn
https://learn.microsoft.com/dotnet/desktop/winforms/
Tags: 移行, .NET開発, UIサブシステム, Windows Forms
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。