WinForms를 WPF로 변환 : 고려해야합니까?
WinForms는 일반적으로 Windows 기반 장치용 양식 및 GUI 기반 응용 프로그램을 개발하는 데 오랫동안 널리 사용되는 방법이었습니다. .NET 프레임워크의 일부이며 원래 MFC(Microsoft Foundation Class Library)를 대체하는 것으로 여겨졌던 WinForms 애플리케이션은 '이벤트 기반'입니다. 즉, 그들은 행동에 나서고 이 입력에 반응하기 전에 앉아서 사용자가 그들과 상호 작용할 때까지 기다립니다.
WinForms는 일반적으로 Windows 기반 장치용 양식 및 GUI 기반 응용 프로그램을 개발하는 데 오랫동안 널리 사용되는 방법이었습니다. .NET 프레임워크의 일부이며 원래 MFC(Microsoft Foundation Class Library)를 대체하는 것으로 여겨졌던 WinForms 애플리케이션은 '이벤트 기반'입니다. 즉, 그들은 행동에 나서고 이 입력에 반응하기 전에 앉아서 사용자가 그들과 상호 작용할 때까지 기다립니다.
여전히 많은 사람들에게 유용한 기술이지만(우리는 유용하고 인기 있는 다양한 컨트롤을 제공합니다) WinForms는 공식적으로 '유지 관리 모드'의 기술입니다. Microsoft에 따르면 이 제품은 더 이상 활발한 개발의 대상이 아니며 앞으로 새로운 기능을 볼 수 없지만 버그 수정의 이점을 얻을 수 있습니다.
이를 염두에두고 WinForms 앱을 WPF (Windows Presentation Foundation)와 같은보다 현대적인 기술로 변환하기위한 주장은 무엇입니까? 이 게시물에서는 이 주제를 살펴보고 다양한 옵션과 장단점을 비교합니다.

Windows Presentation Foundation
Windows Presentation Foundation은 GUI 구축을 위한 다른 API입니다. WinForms와 별개이지만 .NET Framework에도 포함된 이 언어는 DirectX를 기반으로 하며 XAML이라는 언어를 사용하여 구성 요소와 요소를 설명합니다. 많은 개발자들이 종종 "내 WinForms 앱을 쉽게 변환할 수 있습니까?" 몇 가지 유용한 답변과 포인터를 살펴 보겠습니다.
1. 코드를 개선할 수 있는 기회
WinForms 앱을 WPF로 '변환'하기로 결정한 후 한 걸음 물러서서 코드를 처음부터 다시 작성하는 것이 가장 좋은 방법이 아닌지 결정하십시오. 의심할 여지 없이 이 과정에서 많은 것을 배우게 될 것이며 최종 결과는 훨씬 더 나은 코드가 될 것입니다. WinForms에서 WPF로 전환하려면 사고 방식의 변화가 필요하므로이 기사에서는 접근 방식이 어떻게 달라야하는지 살펴 봅니다. WPF는 WinForms와 매우 다르며 코드 마이그레이션을 시작하기 전에 WPF의 기본 사항을 이해하는 것이 중요한 단계입니다.
2. Converting C#.NET WinForms designer code
보다 '자동화된' 접근 방식을 찾고 있다면 C# .NET 디자이너 코드를 XAML로 변환하는 유틸리티가 있습니다. 이것은 좋은 예이지만 코드를 수동으로 잘 확인하는 것이 좋습니다. 이 CodePlex 프로젝트는 기본 변환을 처리하고, 기본 WinForms Form Controls를 사용하고, 이벤트 처리 코드를 전달할 수도 있습니다. 이 프로젝트는 몇 년 동안 업데이트되지 않았습니다. 최신 옵션은 여기에서 찾을 수 있으며 이 도구는 다양한 컨트롤을 지원합니다.
3. Hosting WinForms inside a WPF application
전체 응용 프로그램을 변환하는 대신 WPF 응용 프로그램 내에서 컨트롤을 호스팅하여 WinForms 코드를 다시 사용할 수 있습니다. Microsoft는 WPF 응용 프로그램 내에서 WinForms 복합 컨트롤을 호스팅하는 방법에 대한 매우 자세한 연습을 제공합니다.
4. 결과 검증
WPF를 처음 사용하거나 WinForms에서 코드를 변환/이식하는 경우 최종 결과를 다시 확인하는 것이 좋습니다. 이를 수행하는 데 유용한 몇 가지 도구는 다음과 같습니다.
- 그러나 몇 년 전에 마지막으로 업데이트 된 Snoop은 여전히 WPF 응용 프로그램을 시각적으로 디버깅하는 유용한 방법입니다.
- Shazzam은 WPF 픽셀 셰이더를 테스트하는 데 도움이 됩니다.
- 훌륭한 .NET 개발자라면 Reflector에 대해 알고 있을 것입니다.
- Microsoft Blend는 독립 실행형 사용자 인터페이스 도구로 시작했지만 이제는 Visual Studio의 일부가 되었습니다. 어느 쪽이든 WPF 응용 프로그램을 설계하는 흥미로운 방법이며 WinForms에서 이동하는 사람들에게 유용한 도움이 될 수 있습니다.
- WPF Performance Suite는 WPF 앱의 동작을 분석하는 데 도움이 되며 개선 사항을 구현할 수 있는 수단을 제공합니다. WPF로 시작하거나 WinForms 앱에서 코드를 리팩토링하는 데 유용합니다.
Multiple options
숙련된 개발자라면 알고 있듯이 .NET 프레임워크는 주어진 문제를 해결하기 위한 여러 가지 방법과 솔루션을 제공합니다. GUI 응용 프로그램과 관련하여 WinForms와 WPF는 모두 여전히 매우 유효한 선택이며 이 게시물에서 보았듯이 두 접근 방식 간에 변환할 수 있는 수단이 있습니다. 어떤 경로를 선택하든 Infragistics는 최종 결과를 더욱 인상적으로 만드는 데 도움이 되는 사전 구축된 다양한 UI 구성 요소를 제공합니다.
