윈도 폼스
Windows Forms![]() | |
기타 이름 | 윈폼스 |
---|---|
원본 작성자 | .NET: 마이크로소프트, 모노: 시미안/노벨 |
개발자 | .NET 파운데이션 |
초기 릴리즈 | 2002년 2월 13일; | 전(
안정적 해제 | v5.0.0-rtm.20520.1 / 2020년 10월 20일; |
리포지토리 | |
기록 위치 | C# |
운영 체제 | 마이크로소프트 윈도 |
플랫폼 | .NET Framework, .NET 코어 |
유형 | 소프트웨어 프레임워크 |
면허증 | MIT 라이선스 |
웹사이트 | docs |
Windows Forms(WinForms)는 마이크로소프트의 일부로 포함된 무료 오픈 소스 그래픽(GUI) 클래스 라이브러리다.NET, .NET Framework 또는 Mono Framework,[1] 데스크탑, 노트북 및 태블릿 PC용 클라이언트 응용프로그램을 작성할 수 있는 플랫폼을 제공한다.[2]이전보다 더 복잡하고 복잡한 C++ 기반의 마이크로소프트 파운데이션 클래스 라이브러리를 대체하는 것으로 여겨지지만, 비교 가능한[3] 패러다임을 제공하지 않고, 다계층 솔루션에서 사용자 인터페이스 계층을 위한 플랫폼 역할만 한다.[4]
마이크로소프트는 2018년 12월 4일 마이크로소프트 커넥트 행사에서 GitHub에 대한 오픈소스 프로젝트로 윈도 폼스를 출시했다고 발표했다.그것은 MIT 라이선스에 따라 출시된다.이번 릴리즈를 통해 Windows Forms는 을 대상으로 하는 프로젝트에 사용할 수 있게 되었다.NET Core 프레임워크.그러나 이 프레임워크는 여전히 윈도 플랫폼에서만 사용할 수 있으며, 모노의 불완전한 윈도 폼 구현은 유일한 크로스 플랫폼 구현으로 남아 있다.[5][6]
건축
Windows Forms 애플리케이션은 마이크로소프트 의 지원을 받는 이벤트 기반 애플리케이션이다.NET Framework.일괄 프로그램과 달리, 텍스트 상자에 입력하거나 단추를 클릭하는 등 사용자가 무언가를 할 때까지 기다리는 데 대부분의 시간을 보낸다.신청 코드는 에 기재할 수 있다.C# 또는 Visual Basic과 같은 NET 프로그래밍 언어.
Windows Forms는 기존의 Windows API를 관리 코드로 감싸 기본 Windows 사용자 인터페이스 공통 컨트롤에 대한 액세스를 제공한다.[7]Windows Forms의 도움을 받아 .NET Framework는 Visual Basic 또는 MFC보다 Win32 API 위에 보다 포괄적인 추상화를 제공한다.[8]
Windows Forms는 클라이언트 응용 프로그램 개발 시 Microsoft Foundation Class(MFC) 라이브러리와 유사하다.윈도 애플리케이션 개발을 위한 C++ 클래스 세트로 구성된 래퍼를 제공한다.그러나 MFC와 같은 기본 응용 프로그램 프레임워크는 제공하지 않는다.Windows Forms 응용 프로그램의 모든 제어는 클래스의 구체적인 예다.
특징들
Windows Forms 클래스 라이브러리의 모든 시각적 요소는 제어 클래스에서 파생된다.이것은 클릭과 드래그/드롭과 같은 일반적인 이벤트뿐만 아니라 위치, 크기, 색상, 글꼴, 텍스트와 같은 사용자 인터페이스 요소의 최소 기능을 제공한다.제어 클래스는 또한 제어장치가 부모 아래에서 위치를 재정렬할 수 있도록 도킹 지원을 가지고 있다.제어 클래스의 Microsoft Active Accessibility 지원 기능은 또한 손상된 사용자가 Windows Forms를 더 잘 사용할 수 있도록 돕는다.[9]
버튼, 텍스트 상자, 확인란 및 목록 보기와 같은 기본 Windows 제어장치에 대한 액세스를 제공하는 것 외에도 Windows Forms는 ActiveX 호스팅, 레이아웃 배열, 검증 및 리치 데이터 바인딩에 대한 자체 제어장치를 추가했다.이러한 조정기는 GDI+[9]를 사용하여 렌더링된다.
역사와 미래
Windows Forms는 동등한 Java API인 AWT(Astract Window Toolkit)와 마찬가지로 그래픽 사용자 인터페이스 구성요소를 에 제공할 수 있는 빠르고 쉬운 방법이었다.NET Framework.Windows Forms는 기존 Windows API를 기반으로 구축되었으며 일부 제어장치는 기본 Windows 구성 요소만 감싸고 있다.[10]일부 방법에서는 Win32 콜백에 직접 액세스할 수 있지만 비 Windows 플랫폼에서는 사용할 수 없다.[10]
.NET Framework 2.0에서 Windows Forms는 웹 기반 구축을 위한 ClickOnce뿐만 아니라 더욱 풍부한 레이아웃 제어, Office 2003 스타일 툴스트립 제어, 멀티스레딩 구성요소, 풍부한 디자인 타임 및 데이터 바인딩 지원을 확보했다.[11][12]
의 발표와 함께.NET 3.0, 마이크로소프트는 XAML이라는 GUI 선언 언어와 함께 DirectX 기반의 WPF(Windows Presentation Foundation) 렌더링을 위한 두 번째 병렬 API를 출시했다.[13][14]
빌드 2014 컨퍼런스에서 열린 질의응답 세션에서 마이크로소프트는 윈도우 폼이 새로운 기능이 추가되지 않고 유지 보수 모드에 있지만 버그는 여전히 고정될 것이라고 설명했다.[15]가장 최근에는 의 업데이트에 다양한 Windows Forms 컨트롤에 대한 향상된 고DPI 지원이 도입되었다.NET Framework 버전 4.5.[16]
XAML 이전 버전과 Windows Forms 호환
향후 개발을 위해 마이크로소프트는 WPF, UWP 등의 프레임워크를 활용한 XAML 기반 GUI 엔트리로 윈도 폼스를 계승했다.그러나 페이지/창문의 루트 XAML 요소를 "캔바스" UI-Control로 교체하여 Windows Forms와 유사한 방식으로 GUI 구성요소를 드래그 앤 드롭 방식으로 XAML에 여전히 제공한다.이러한 변경을 할 때 사용자는 Visual Studio GUI를 사용하여 구성요소를 직접 드래그 앤 드롭하여 Windows Forms와 유사한 방식으로 창을 만들 수 있다.
XAML은 캔버스 제어를 통해 드래그 앤 드롭 배치 역호환성을 제공하는 반면, XAML 컨트롤은 Windows Forms Controls와 유사할 뿐이며 일대일 역호환성은 아니다.비슷한 기능을 수행하고 외관도 비슷하지만 API 간 재매핑이 필요할 정도로 특성과 방법이 다르다.
대체 구현
모노(Mono)는 사마린(이전에는 시미안, 그 후 Novell)이 에크마 표준을 준수하는 것을 만들기 위해 주도한 프로젝트다.NET Framework 호환 툴 세트.
2011년, 모노의 시스템 지원.창문들의 양식.NET 2.0은 완료로 발표되었다;[17] 시스템.창문들Forms 2.0은 기본적으로 Mac OS X에서 작동하지만, System에서 작동한다.[18]창문들모노에서는 양식이 활발하게 개발되지 않았다.[19]와의 완벽한 호환성.넷은 마이크로소프트의 시스템 때문에 가능하지 않았다.Windows Forms는 주로 Windows API를 둘러싼 포장지로, 일부 방법에서는 Windows 이외의 플랫폼에서는 사용할 수 없는 Win32 콜백에 직접 액세스할 수 있다.[10]더 중요한 문제는 버전 5.2 이후 [20]Mono가 업그레이드되어 기본값은 64비트 플랫폼을 가정하는 것이다.그러나 시스템.창문들Mono on Macintosh OS X 플랫폼은 32비트 서브시스템인 Carbon을 사용하여 구축되었다.[21]이 날짜[when?] 현재 64비트 버전의 시스템.창문들Mac OS X에서 사용할 수 있는 양식은 사용할 수 없는 상태로 남아 있으며 .32비트 플랫폼용으로 구축된 NET 애플리케이션 실행을 기대할 수 있다.
참고 항목
- 마이크로소프트 비주얼 스튜디오
- 클릭원스
- AWT(Astract Window Toolkit), Java 프로그래밍 언어에 대한 동등한 GUI 애플리케이션 프로그래밍 인터페이스(API)
- 볼랜드의 VCL(Visual Component Library)
- 비주얼 테스트, 테스트 자동화
참조
- ^ Sells, Chris (September 6, 2003). Windows Forms Programming in C# (1st ed.). Addison-Wesley Professional. p. xxxviiii.
- ^ "Design and Implementation Guidelines for Web Clients by Microsoft Pattern and Practices". Microsoft. November 2003.
- ^ Sells, Chris; Weinhardt, Michael (May 16, 2006). "Appendix B". Moving from MFC, Windows Forms 2.0 Programming (2nd ed.). Addison-Wesley Professional.
- ^ "Introduction to Windows Forms" (Visual Studio 2003 documentation). Microsoft 2003.
- ^ Martin, Jeff (4 December 2018). "Microsoft Open Sources WPF, WinForms, and WinUI". InfoQ. Retrieved 2018-12-06.
- ^ Hanselman, Scott (4 December 2018). "Announcing WPF, WinForms, and WinUI are going Open Source". Retrieved 2018-12-06.
- ^ De Smet, Bart (January 4, 2011). "Chapter 5". C# 4.0 Unleashed. Sams Publishing.
- ^ Griffiths, Ian; Adams, Matthew (March 2003). NET Windows Forms in a Nutshell. O'Reilly Media. p. 4.
- ^ a b Griffiths, Ian; Adams, Matthew (March 2003). NET Windows Forms in a Nutshell. O'Reilly Media. pp. 27–53.
- ^ a b c "FAQ: Winforms". mono-project.com.
It is very unlikely that the implementation will ever implement everything needed for full compatibility with Windows.Forms. The reason is that Windows.Forms is not a complete toolkit, and to work around this problem some of the underlying Win32 foundation is exposed to the programmer in the form of exposing the Windows message handler
- ^ Sells, Chris; Weinhardt, Michael (May 16, 2006). "Appendix A. What s New in Windows Forms 2.0". Windows Forms 2.0 Programming (2nd ed.). Addison-Wesley Professional.
- ^ Noyes, Brian (January 12, 2006). "Preface". Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET (1st ed.). Addison-Wesley Professional.
- ^ Hall, Gary (December 27, 2010). "DirectX, not GDI+". Pro WPF and Silverlight MVVM: Effective Application Development with Model (2010 ed.). Apress. p. 2.
- ^ Smith, Josh (2007-09-05). "WPF vs. Windows Forms". Josh Smith on WPF. Retrieved 2011-08-25.
WPF is not intended to replace Windows Forms. [...] Windows Forms is still alive and well, and will continue to be enhanced and supported by Microsoft for years to come. WPF is simply another tool for Windows desktop application developers to use, when appropriate.
- ^ "A WPF Q&A". infoq.com. 2014-04-03. Retrieved 2014-04-21.
Windows Forms is continuing to be supported, but in maintenance mode. They will fix bugs as they are discovered, but new functionality is off the table
- ^ Allen, Jonathan (2014-05-06). "High DPI Improvements for Windows Forms in .NET 4.5.2". InfoQ. Retrieved 2015-02-10.
- ^ "WinForms". mono-project.com. Retrieved 2011-07-30.
Support for Windows Forms 2.0 is complete. At this point, we are largely just fixing bugs and polishing our code.
- ^ "WinForms". mono-project.com. Retrieved 2011-07-30.
Does Winforms run on OSX? Yes, as of Mono 1.9, Winforms has a native OSX driver that it uses by default
- ^ de Icaza, Miguel (2011-03-07). "GDC 2011". Retrieved 2011-07-30.
For tools that are mostly OpenGL/DirectX based, use Windows.Forms, keeping in mind that some bug fixing or work around on their part might be needed as our Windows.Forms is not actively developed.
- ^ "Introduction to Mono on macOS". mono-project.com. Retrieved 2019-11-12.
- ^ Martin, Jess. "Windows.Forms Comes to 64-bit Mac OS X". Retrieved 2019-11-12.
외부 링크
![]() | 위키북스는 의 주제에 관한 책을 가지고 있다.NET 개발 재단 |