2010-04-21 2 views
64

저는 약 1 년 동안 C# 콘솔 응용 프로그램을 가지고 놀았으며 GUI 응용 프로그램을 작성하려고합니다. 기본 Java 응용 프로그램 외에 GUI 개발을 해본 적이 없지만 C#을 계속 사용하고자합니다. Windows Forms 학습을 시작하거나 WPF로 바로 넘어 가야합니까? 큰 차이가 있습니까? WPF는 Windows Forms를 기반으로 구축 되었습니까, 아니면 전혀 다릅니다.WPF 또는 Windows Forms

답변

61

방금 ​​시작한 경우 바로 WPF로 건너 뛰십시오.

Windows Forms에서 배울 수있는 나쁜 습관 (WPF 용)을 가르치지 않고 마크 업을 사용하여 풍부한 인터페이스를 만들기 시작할 수 있습니다.

+2

+1 나는 절대적으로 동의를 만드는 데 사용되는 반면

윈폼은 일반적으로 비즈니스 응용 프로그램을 개발하는 데 사용됩니다. WPF는 Windows Forms보다 훨씬 융통성이 있으며 GUI 개발에서 장기간 사용됩니다. 그것은 XML 기반 레이아웃을 사용하는 방법에서 HTML에 매우 가깝습니다.Windows Forms의 가장 좋은 점은 사용 경험이 많은 개발 팀이있는 경우입니다. WPF는 미래이며 Windows Forms보다 앞서 뛰어납니다. –

+2

+1하지만 WPF는 이전 버전의 글꼴 문제로 인해 .NET 4.0 이상에서만 사용할 수 있으므로 응용 프로그램 배포시이를 염두에 두십시오. – Josh

+13

@Fauxide WPF는 .NET 3.5에서 사용할 수 있습니다. 유용한 앱을 많이 만들었습니다 ... 글꼴 문제는 모두를위한 쇼 스토퍼가 아닙니다. –

22

이 두 가지는 완전히 다른 기술입니다. 두 방향 모두에 대해 몇 가지 상호 운용성 계층을 제공하지만 그 외에는 공통점이 없습니다. Windows Forms은 Win32/MFC 위에 가벼운 래퍼 일 뿐이므로 .NET에서의 확장 성은 그다지 좋지 않습니다. WPF는 처음부터 구현 된 새로운 UI 프레임 워크입니다. WPF는 또한 기존 형식을 사용자 지정하는 경우 훨씬 더 유연합니다.

그러나 적어도 제 경험으로 볼 때 Windows Forms는 업계에서 가장 일반적으로 사용되는 데스크톱 UI 프레임 워크 인 것으로 보입니다. WPF가 Silverlight 및 XBAP 응용 프로그램을 제공하는 반면 Windows Forms는 웹 개발에 사용할 수 없습니다.

이전에 UI 개발을 해본 적이 있다면 Windows Forms가 전통적인 프로그래밍 패러다임을 따르기 때문에 배우기가 더 쉽다고 말할 수 있습니다. WPF의 프로그래밍 모델은 이와 매우 다릅니다. WPF는 Windows Forms와 동일한 방식으로 사용할 수 있지만 WPF에서 제공하는 데이터 바인딩 및 캡슐화를 수용 할 때까지는 대부분의 이점을 얻을 수 없습니다.

Windows Forms에 비해 WPF를 선택하는 몇 가지 요점이 있음에도 불구하고 원하는 것은 UI 프레임 워크를 배우는 것뿐입니다. 모든면에서 Windows Forms보다 우수합니다. 나는 단지 소프트웨어 산업이 일반적으로 더 큰 규모로 그것을 적응 시키길 바란다. (비록 우리가 웹을 가지고 있기 때문에 아무도 데스크톱 응용 프로그램을 쓰지 않는다.)

+0

+1 완전히 동의합니다. –

3

WPF는 매우 복잡한 기능을 제공하여 매우 복잡한 사용자 인터페이스를 구축합니다. 인터페이스에서 하드웨어 가속 그래픽의 통합을 단순화합니다. 그러나 Visual Studio WPF 디자이너는 정말 좋지 않습니다 (거의 사용하지 않습니다). 또한 WPF는 훨씬 더 복잡하며 시작하기가 더 어렵다고 생각합니다. 그러나 이것은 물론 주관적입니다.

+0

저는 xaml을 손으로 씁니다 : D 그리고 어쩌면 여백과 물건을 설정하기 위해 디자이너를 사용하십시오. 다른 건 없어. –

4

두 기술 모두 프로와 콘을 가지고 있습니다.

WPF는 크로스 플랫폼 개발과 '멋진'GUI를 만드는 데 더 좋습니다. 그러나 WinForms보다 새로운 .net 프레임 워크가 필요하며 dx9 호환 GPU 이상 (대부분의 사람들이 보유 할 것입니다)이 필요합니다.

그러나 결국 모든 이벤트 등

윈폼은 종종하지만 WPF보다 빠른 속도로 개발 될 수있는 강력한 기술은 여전히를, 인터페이스/와이어를 만드는 데 조금 더 복잡 , 두 기술 모두 동일한 것을 달성하는 데 사용될 수 있습니다. 그러나 WPF는 '새로운'표준입니다. WPF는 종종 더 많은 수의 소프트웨어 최종 사용자 기반 비트 앱 등