Windows Forms
Windows Formsはマイクロソフトの.NET Frameworkに hàm まれるグラフィカルユーザーインターフェイスAPIおよびアプリケーションフレームワークの danh xưng である. Nhật bổn ngữ bản の công thức ドキュメント ( cựuMSDNライブラリ ) では “Windowsフォーム” と biểu ký されている[1].“WinForms” と lược ký されることもある[2].
Khái yếu
[Biên tập]Windows FormsはWindows API(GDI/GDI+) をマネージコードでラップし,WindowsのユーザーインターフェイスYếu tố へのアクセスを đề cung するアプリケーションフレームワークである. 従 lai からVisual C++Dụng に đề cung されていた, phục tạp なネイティブC++ベースのMFCや, cựuVisual Basic( VB6 ) のフォームにとって đại わるものとされる nhất phương で, Windows FormsはMVCモデルを đề cung していない. また,シェルQuan liên など nhất bộ のAPIに quan してはラッパーが tồn tại しないので, それらをWindows Formsで lợi dụng するためにはC++/CLINgôn ngữ でラッパーアセンブリを tác thành するか, あるいはP/Invokeなどの thủ pháp を dụng いる tất yếu がある. そのほか, MFCアプリケーションからWindows Formsコントロールを lợi dụng するなどのシナリオを tưởng định した tương hỗ vận dụng cơ năng も dụng ý されている[3][4].
Windows Formsアプリケーション khai phát にVisual Studioを lợi dụng することで,.NET dĩ tiền のVisual BasicやDelphiのように, GUI ( フォームデザイナー ) で giản 単かつ hiệu suất đích に họa diện tác thành やGUI bộ phẩm の tường tế な thiết định を hành なうことができる (RAD). これは, GUI bộ phẩm の giản 単な phối trí や giản 単な thiết định までしかできないWin32/MFCのリソースエディターやダイアログエディターとは đại きく dị なる. GUIによって tác thành したウィンドウレイアウト tình báo は, リソースファイルに変 hoán されるのではなく, Visual StudioIDEによって trực tiếpC#やVisual Basic.NETなどのソースコードに変 hoán して xuất lực される ( コード ビハインド ). マネージ ngôn ngữ はIDEとの thân hòa tính が cao く, Windows Formsによって sinh sản tính の cao いGUIアプリケーション khai phát hoàn cảnh が đề cung される.
なお, Windows Formsのターゲット hoàn cảnh はデスクトップ アプリケーションであり, ブラウザで động tác するWebアプリケーションを khai phát するにはASP.NETなどを lợi dụng することになる.
コード lệ
[Biên tập]C#によるWindows Formsを sử dụng したHello worldプログラムの lệ である. ここで,System.Windows.Forms
がWindows Formsの danh tiền không gian を biểu す.
usingSystem;
usingSystem.Windows.Forms;
publicclassHelloWorld
{
[STAThread]
publicstaticvoidMain()
{
Formform=newForm();
form.Text="Hello world!";
Application.Run(form);
}
}
ソースコード
[Biên tập]Cơ bổn クラスライブラリをはじめとする.NET FrameworkのソースコードはMicrosoftリファレンスソースライセンス (MS-RSL) に cơ づいて công khai されている[5][6].この trung にWindows Formsも hàm まれている[7].もともと.NET Frameworkはプロプライエタリでソースコードは công khai されていなかったが, 2007 niên に.NET Framework 3.5の phát biểu に hợp わせて công khai された[8]..NET( cựu xưng.NET Core) のソースコードはMITライセンスに cơ づいて công khai されており, Windows Formsも hàm まれている[9].
Windows Formsのソースコードの đại bán はC#を sử って ký thuật されており,P/InvokeやCOMTương hỗ vận dụng を lợi dụng してWindows APIを hô び xuất しているが, nhất bộ の thật trang にVB.NETも sử われている[10].ネイティブ tương hỗ vận dụng のテストコードにはC++も sử われている[11].
Hỗ hoán thật trang
[Biên tập]マイクロソフトによるWindows chuyên dụng の.NET Frameworkベース công thức thật trang のほか,Monoによる hỗ hoán thật trang ( thông xưng WinForms ) が tồn tại する[12].MonoのWinFormsは.NET 1.1/2.0 hỗ hoán の thật trang を đề cung するが, 2017 niên hiện tại の khai phát trạng huống はメンテナンスフェイズとなっている.
Khóa đề と tương lai tính
[Biên tập]Windows Formsは.NET Framework 1.0のリリースとともに đăng tràng したが,.NET 2.0で cơ năng truy gia[13]や sĩ dạng 変 canh がなされた hậu は đại きな変 hóa がない..NET 3.0で đạo nhập され, Windowsのバージョンアップとともに継続 đích に cơ năng truy gia がなされた hậu phát のデスクトップアプリケーションフレームワークであるWPFに bỉ べると,マルチタッチやDPI Aware[14][15]などに tiêu chuẩn で đối ứng していないなど, tối tân の kỹ thuật động hướng は phản ánh されにくい khuynh hướng にある..NET 4.5.1,.NET 4.5.2,.NET 4.6,.NET 4.7ではそれぞれ cao DPI hoàn cảnh hạ でのWindows Formsコントロールのリサイズに quan する cơ năng が từ 々に拡 trương ・ cải thiện されているが, kí định ではなくオプトインである[16][17].
また, Visual C++にはバージョン2010までWindows Formsのアプリケーションプロジェクトテンプレートが tồn tại していたが, バージョン2012 dĩ hàng は tước trừ されている. もともとVisual C++においてマネージコンポーネントであるWindows Formsを tráp うにはC++/CLI ngôn ngữ を sử dụng する tất yếu があったが, C++/CLIはマネージコードとアンマネージコードの tương hỗ vận dụng を hành なうグルー ngôn ngữDụng đồ としてのみ sử dụng することが thôi thưởng されている[18].
しかし, hậu 継となるWPFはMFCやWindows Formsの hoàn toàn なスーパーセットではなく, nhất bộ は đồng đẳng cơ năng が dụng ý されていない. Win32/MFCやWindows Formsで tác thành されたコード tư sản を tái lợi dụng するため, WPFアプリケーションでもWin32/MFCやWindows Formsとの liên huề を hành なうシナリオを tưởng định した tương hỗ vận dụng cơ năng が dụng ý されている[19][20][21][22].
.NET Core3.0では, Windows bản hạn định ではあるがWPFとともにWindows Formsが thật trang された[23]..NET Frameworkのメジャーアップデートは4.8で tối hậu となるが, メンテナンスは継続される.
.NET Frameworkと.NET Core song phương の hậu 継となる.NET 5のWindows Formsでは,Windows Vistaで đạo nhập されたタスクダイアログのラッパークラスや, cường hóa されたWin32リストビュー cơ năng へのアクセスAPIが truy gia されるなど, オープンソース khai phát コミュニティによるプルリクエストを thủ り込んだ tân cơ năng が đạo nhập された[24][25]..NET 6/7/8でも tân cơ năng がいくつか truy gia されており,.NET 9でも tân cơ năng の thật trang が dư định されている[26].
Cước chú
[Biên tập]- ^Windows フォーム | Microsoft Docs
- ^Windowsフォーム khai phát に tối thích なコンポーネントセット - ComponentOne Studio for WinForms | グレープシティ コンポーネント chế phẩm
- ^Using a Windows Form User Control in MFC | Microsoft Docs
- ^MFC での Windows フォーム ユーザー コントロールの sử dụng | Microsoft Docs
- ^Microsoft Reference Source -.NET Framework
- ^End User License Agreement - MICROSOFT REFERENCE SOURCE LICENSE (MS-RSL)
- ^Microsoft Reference Source -.NET Framework (#System.Windows.Forms)
- ^マイクロソフト,.NET Frameworkライブラリのソースコード công khai へ|CodeZine ( コードジン )
- ^winforms/LICENSE.TXT at main · dotnet/winforms · GitHub
- ^winforms/src/Microsoft.VisualBasic.Forms/src/Microsoft/VisualBasic at main · dotnet/winforms · GitHub
- ^winforms/src/System.Windows.Forms/tests/InteropTests/NativeTests at main · dotnet/winforms · GitHub
- ^WinForms | Mono
- ^@IT: Đặc tập.NET Framework 2.0のWindowsフォーム tân cơ năng ( tiền biên )
- ^アプリの cao DPI(High DPI) đối ứng について đệ 2 hồi ~ アプリケーションの cao DPIへの đối ứng レベル ~ – điền trung đạt ngạn のブログ
- ^Windows フォーム アプリの DPI Aware への変 canh ngôn ngữ: XML
- ^アプリの cao DPI(High DPI) đối ứng について đệ 1 hồi ~ cao DPIとは ~ – điền trung đạt ngạn のブログ
- ^What's new in the.NET Framework | Microsoft Docs
- ^Visual Studio 2012, 2013 で Visual C++ の Windows フォーム アプリケーション テンプレートが tước trừ され, tân quy に tác thành できない
- ^WPF and Win32 Interoperation | Microsoft Docs
- ^Walkthrough: Hosting a Windows Forms Control in WPF | Microsoft Docs
- ^WPF と Win32 の tương hỗ vận dụng tính に quan する khái yếu | Microsoft Docs
- ^チュートリアル: Windows Presentation Foundation での Windows フォーム コントロールのホスト | Microsoft Docs
- ^Windows Forms アプリを.NET Core 3.0 に di thực する -.NET Core | Microsoft Docs
- ^Windows Forms 5.0の tân cơ năng - InfoQ
- ^Windows フォーム.NET 5 の tân cơ năng - Windows Forms.NET | Microsoft Learn
- ^Microsoft Build 2024で phát biểu されたWindowsデスクトップ khai phát まわりの tình báo | MESCIUS.devlog - メシウス chu thức hội xã
Quan liên hạng mục
[Biên tập]Ngoại bộ リンク
[Biên tập]- Microsoft Reference Source (#System.Windows.Forms):.NET Framework nội のソースコード. MS-RSL.
- winforms- GitHub:.NET ( đương thời.NET Core 3.0 ) hướng けに di thực されたバージョン. MITライセンス.