2013-09-23 6 views
13

WinForms로 만든 작은 프로그램이 있는데 지금은 WPF를 사용하여 다시 만들고 싶습니다.Winform 응용 프로그램을 WPF 응용 프로그램으로 변환

저는 WPF에 익숙하지 않고 XAML로 할 수있는 모든 작업을 코드 없이도 수행 할 수 있다는 것을 알았습니다.

물론 Winforms를 사용할 때 XAML이없는 것은 물론입니다. winforms 응용 프로그램에 사용한 WPF 응용 프로그램에 동일한 코드를 사용하여 동일한 결과를 얻을 수 있습니까? 또는 XAML을 만들고 편집해야합니까? XAML을 사용하거나 사용하지 않는 장점은 무엇입니까?

Winforms를 사용한 과거의 경험을 고려할 때 Winforms에서 작동하는 디자인 및 구현 방법을 어떻게 든 변경해야하지만 WPF에서는 적절하지 않습니까?

+2

왜 WPF에서 다시 만들고 싶습니까? –

+2

@SystemDown WPF를 처음 접한다면 WPF를 사용하여 모든 것을 더 잘 보이게 할 수 있습니다. 아주 작고 전문적인 것이 아닌 경우 Winforms를 사용하여 거의 아무도 만들지 않으며 WPF에 대해 좀 더 공부하고 싶습니다. –

+1

이것은 경험을 배우기 때문에 처음부터 다시 만들 것입니다. 더 많은 것을 배우고 직접 번역 할 수있는 함정을 피하십시오. –

답변

23

아니요 WPF에서 winforms의 코드를 다시 사용할 수 없습니다.

그리고 할 수 있다고해도 그렇게해서는 안됩니다. 당신이 XAML로 할 수있는 어떤

, 당신은 할 수없이

당신은 정말 훨씬 더 전문적인 방법입니다 DataBindingMVVM를 사용해서 UI를 정의하고 XAML을 사용한다

전통적인 절차 적 winforms 접근보다 개발.

XAML을 사용하지 않는 것은 XAML을 사용하는 것보다 훨씬 번거로운 작업입니다. 처음에는 협박하는 것처럼 보일 수도 있지만 함께 작업하는 것은 정말 멋진 일입니다. 당신이 어떤 XAML이없는 물론

윈폼

없음

, 물론하지를 사용. winforms는 아무 것도 지원하지 않는 정말 오래된 기술입니다. 그래서 Visual Studio 디자이너를 만들었습니다. 아무도 유용하지 않은 엄청난 양의 코드가 있기 때문에 아무도 winform을 사용하지 않았을 것입니다.

winforms 응용 프로그램에 사용한 WPF 응용 프로그램과 동일한 코드를 사용하여 동일한 결과를 얻을 수 있습니까?

은 아마, 어떤 클래스의 이름과 이것 저것을 적응하지만, 그때 당신은 정확하게 끔찍한 윈폼과 같은 코드를 제거지고 WPF가 제공하는 주요 이점을 잃게됩니다.

윈폼을 사용하여 과거의 경험을 고려, 어떻게 든 내가 은 윈폼을 위해 일한 설계 및 구현에 대해 생각하고 방법을 변경하지만 WPF에 대한이 적합하지 해야합니까?

예. WPF는 MVVM을 지원하기 때문에 전통적인 winforms 접근 방식과는 전혀 다른 정신력을 필요로합니다.

Rachel's Excellent Post을 winforms에서 WPF로 업그레이드하는 것이 좋습니다.

+1

링크 된 게시물이 내가 작성한 모든 것에 대한 링크가 있다는 것을 알았습니다. 기사에 대한 링크 또는 자신이 권장하지 않는 내용이 있습니까? 나는 튜토리얼을 http://www.wpftutorial.net/에서 읽기 시작했다. 그것이 좋은 출처인지 또한 알고 있는가? –

+0

@YonatanNir 먼저, 나는 (위에 링크 된) Rachel의 자료를 통해가는 것이 좋습니다. –

1

XAML을 사용하지 않고 WPF 컨트롤을 만들려고하면 문제가 발생합니다. 전체 프레임 워크는 MVVM 패턴을 기반으로 작성되므로보기가 절차 적 방식이 아닌 선언적 방식으로 설명되어야합니다. C# 및 XAML에서 동일한 UI 개체를 확실히 만들 수 있지만 C#에서는 UI의 상태가 변경 될 때이를 보완하기 위해 프레임 워크가 작동하는 방식을 알 필요가 있습니다. 플립 측면에서 XAML (WPF에서 지시 한대로)을 수행하면 일반적으로 버그가 수정되지 않고 버그가 수정되지 않습니다. 간단히 "예"에서는 코드에서 할 수 있지만 "아니오"는 코드에서 코드를 수행 할 수 없습니다.

2

Winforms 앱을 WPF로 직접 변환 해 보았습니다. 항상 프레임 워크와 싸우고 있기 때문에 필요한 것보다 더 많은 문제가 발생합니다. MVVM 및 데이터 바인딩을 읽고이를 사용하십시오. WPF가 설계 한 것과 테스트 가능성과 같은 몇 가지 이점이 있습니다. 실제로 간단한 개념 (databinding, viewmodels 등 ...)으로 꽤 먼 길을 갈 수 있고 지식을 확장 할 수 있습니다.하지만 먼저 MVVM과 WPF에서의 데이터 바인딩을 이해할 것을 권합니다.

MVVMLight는 시작하기 좋은 프레임 워크이지만 프레임 워크없이 기본 사항을 작성하는 것이 가치있는 일입니다. http://reedcopsey.com/series/windows-forms-to-mvvm/

+0

http://www.wpftutorial.net/에서 자습서를 읽기 시작했습니다. 그 것이 주제에 관한 좋은 출처인지 알게됩니까? –

1

실제로이 프로젝트가 얼마나 복잡한에 따라 달라집니다

나는 갈대 copsey 게시물이되는 좋은 세트를 기억하는 것 같다. 아주 작은 프로젝트의 경우이 "변환"을 아주 간단하게 만들 수 있습니다. 그러나 WPF 개발은 종종 MVVM/Prism을 기반으로하기 때문에 좋은 사례가 아니며 많은 이점을 제공합니다. 또한 UI의 동작이 다를 수 있습니다 - 프로젝트의 복잡도에 따라 다릅니다.

관련 문제