이 질문은 동료와 점심 시간에 대화 한 결과입니다 ... WPF vs. Winforms과 같은 질문을 읽었으며 개인적으로는 이라는 장기간 WPF가 최선의 방법이라고 생각합니다. 문제/질문은 그동안해야 할 일입니다.WPF를 사용하여 WinForms를 구현합니까?
예, WPF에는 장점이 있습니다. GDI/USER를 기반으로하지 않는 것은 그 중 하나입니다. 그러나이 시점 (2009 년 말, VS2008 또는 심지어 VS2005 사용, 최근 출시 된 Silverlight3 및 아직 광범위하게 채택/배포되지 않음)에서 WPF는 거의 "설계 초과"솔루션 인 것처럼 보입니다. 그것이 시간에 따라 변할 것이라고 확신하지만, 오늘은 더 쉽지 않으며, 즉각적으로 (즉, < 36 개월) 미래도 없습니다.
하자면, WinForms는 이고 실제로는 간단하고 쉽습니다. 특히 MFC를 "행복하게"사용하는 많은 동료들에게 특히 그렇습니다. 그렇습니다. 매끈한 애니메이션, 3D 그래픽, 그라데이션 등을하기가 어려울 수 있습니다. 많은 사람들 (즉, C++/MFC 개발자)이 을 쉽게 이해할 수있는 매우 실용적인 해결책입니다.
그 longish 소개 - 아무도 생각/피곤/등. WPF (즉, WinForms sans GDI/USER)를 사용하여 (대부분의) WinForms을 구현할 생각인가? 나는 Control.Handle
같은 것을 주겠지 만, 100 % 다시 구현할 수는 없습니다. 그러나 많은 WinForms 컨트롤이 WPF "under the hood"를 사용하여 다시 구현 될 수있는 것처럼 보입니다. 아니면 정말로 경계선이 불가능합니까? "다시 구현"나는 내 응용 프로그램을 재 구축 (말) Microsoft.Wpf.WinForms 다음으로 대체 System.Windows.Forms에 어셈블리 참조를 제거하는 구상으로
. 그 후 필자는 비교적 적은 수의 컴파일러 및/또는 런타임 오류 (P/Win32 API 호출)를 고칠 것으로 예상됩니다.
이와 비슷한 것은 WindowsFormsHost과 같은 Microsoft의 다양한 WinForms/WPF interop 전략에 대한 좋은 보완책처럼 보입니다. 예를 들어, 개발자는 훨씬 더 점진적인 방식으로 WPF를 사용/익히기 시작할 수 있습니다.
편집 : 다양한 "왜?" 토론은 흥미 롭습니다. 그들은 기본적인 기술적 인 질문에 대답하지 않습니다 : "그렇습니다.
나는 당신이 이걸 어디로가는 지 알지만, 정말로 그 모든 문제를 일으킬만한 가치가 있니? –
다른 사람 (즉, Microsoft)이 그랬다면 "문제가되지"않을 것입니다. :-) –