WPF 앱과 비즈니스 앱용 Winform의 장점은 무엇입니까? [닫은]


84

나는 asp.net과 winform 개발을 알고 있습니다. 나는 새로운 기술이라는 이유로 새로운 기술에 뛰어 드는 유형의 개발자가 아닙니다. 생산성 향상과 같은 추가 혜택을 제공해야합니다.

순수 비즈니스 앱에서 Winforms에 비해 WPF의 장점은 무엇입니까? 나는 WPF가 제공하는 추가 눈 사탕, 애니메이션, 그라디언트, 이미지 표시 효과 등에 관심이 없습니다. 비즈니스 앱은 데이터 입력, 데이터보고 및 일부 차트 및 사진의 정적 표시를위한 것입니다.

WPF는 이러한 앱에서 어떻게 도움이됩니까? 더 풍부한 데이터 바인딩? WinForm은 성숙한 검증 된 기술이며 Visual Studio에서 모든 작업을 수행 할 수 있다는 사실과 WPF (VS 및 Blend 제품군) 용 여러 IDE에서 할 수 있다는 사실이 마음에 듭니다. 또한 WPF에는 Winform 대응 요소 (DataGridView..etc)와 같은 풍부한 데이터 바인딩 컨트롤이 없다고 생각합니다. AFAIK, Microsoft는 수년 동안 Winforms를 계속 지원할 것입니다.

나 같은 사람이 전환하도록 설득하십시오.


1
WPF로 전환해야하는 몇 가지 강력한 이유가 있다고 생각합니다. 방금 작성한 블로그 를 반복 하고 싶지 않으므로 여기에 링크를 추가하겠습니다.
Andy Brown

7
이것은 훌륭한 질문입니다. 다시 열어야합니다. 저는 WPF로 전환하는 winform 개발자입니다. 학습 곡선은 엄청납니다. 그러나 WPF는 HTML과 같이 본질적으로 선언적 언어이기 때문에 미래입니다. Winform은 대부분 절차 적이며 알고리즘에 더 적합하지만 UI를 표시하는 데 더 장황합니다. .XPS 인쇄 파일의 압축을 풀면 WPF xaml이 표시됩니다. Winforms에는 너무 많은 제한이 있습니다. 여전히 작동하지만 WPF "눈 사탕"은 사용자 스트레스 수준을 줄이는 데 도움이 될 수 있습니다. listview 또는 datagrid 이외의 더 의미있는 방식으로 여러 레코드 행을 표시 할 수 있습니다.
Jeson Martajaya

답변:


101

나는 asp.net과 winform 개발을 알고 있습니다. 나는 새로운 기술이라는 이유로 새로운 기술에 뛰어 드는 유형의 개발자가 아닙니다. 생산성 향상과 같은 추가 혜택을 제공해야합니다.

우리 팀에게 WPF는 WinForms보다 응용 프로그램을 개발하는 데 훨씬 빠른 것으로 입증되었습니다. 우리는 최근 32 일 만에 중간 크기의 앱을 출시했습니다. 우리는 팀의 숙련 된 WPF 개발자와 기술을 배우고 싶어하는 경험이없는 사람들의 이점을 누 렸습니다. 사기가 컸고 생산성이 인상적이었습니다.

WinForm은 성숙한 검증 된 기술이며 Visual Studio에서 모든 작업을 수행 할 수 있다는 사실과 WPF (VS 및 Blend 제품군) 용 여러 IDE에서 할 수 있다는 사실이 마음에 듭니다.

자신을 핸드 코더 또는 드래그 앤 드롭 코더라고 생각하십니까? 자신을 끌어서 놓기 도구로 생각한다면 현재의 WPF 도구 자르기가 적합하지 않을 수 있습니다. Visual Studio 2010을 기다리시겠습니까? 저는 거의 독점적으로 XAML로 작업합니다. 대부분의 WPF 작성자는 이것이 현재 WPF 응용 프로그램을 만드는 가장 효과적인 방법이라는 데 동의 할 것입니다. 하지만 HTML도 수작업으로 만들어서 자연스럽게 느껴집니다.

순수 비즈니스 앱에서 Winforms에 비해 WPF의 장점은 무엇입니까? 나는 WPF가 제공하는 추가 눈 사탕, 애니메이션, 그라디언트, 이미지 표시 효과 등에 관심이 없습니다.

예전에는 이런 식으로 생각했지만 최근에는 그라디언트, 기본 애니메이션 및 효과가있는 비즈니스 애플리케이션을 개발했습니다. 이러한 멋진 기능은 사용자 경험을 향상시키기 위해 추가되었습니다. 비즈니스 앱이 왜 Battleship Grey 여야합니까? 왜 사용할 수 없습니까? 물론 비즈니스 앱을 사용할 수있게 만드는 것은 색상, 그라디언트, 애니메이션이 아니지만 이러한 효과를 사용하면 사용자 경험에 도움이 될 수 있으며 이것이 저에게 중요합니다. WinForms의 WPF 앱에서 수행 한 모든 작업을 수행 할 수있었습니다. 훨씬 더 오래 걸렸을 것입니다.

더 풍부한 데이터 바인딩?

데이터 바인딩 지원은 정말 놀랍습니다. 플랫폼에서 가장 사랑받는 기능입니다. 이 멋진 데이터 바인딩 치트 시트를 확인하십시오 .

나 같은 사람이 전환하도록 설득하십시오.

다른 사람이 WPF로 전환하도록 설득하지 않기로 결정했습니다. 내가 "설득"하려고 노력한 개발자 (모든 경험있는 Winforms 개발자)는 일반적으로 플랫폼에 어려움을 겪었습니다. 그들은 기술에 투자하지 않습니다. 그들은 "그것을"얻지 못합니다. 저는 사람들이 기술을 확인하여 개발자로서 적합한 지 확인하도록 권장합니다. 학습 곡선은 엄청납니다. 책으로 배우는 경우 WPF 책에 대한 미니 리뷰를 보려면 이 SO 게시물 을 확인하십시오 . 비디오로 배우는 경우 windowsclient.net WPF 비디오를 확인하십시오 . 예를 들어 배운다면 이것 또는 이것을 확인하십시오게시하다. WinForms에 대해 알고있는 모든 것을 잊어 버리십시오. WPF는 실제로 WinForms보다 ASP에 더 가깝습니다. 몇 가지 샘플 애플리케이션을 만듭니다. 귀하와 귀하의 팀에 적합한 지 확인하십시오.

다중 기술 (asp.net/winform 기술)이므로 Silverlight와 매우 밀접한 관련이 있으므로 WPF 기술 향상의 이점을 확인할 수 있습니다. Silverlight는 리치 클라이언트 애플리케이션과 웹 애플리케이션 사이의 격차를 채워줍니다.

개인적으로 WPF는 .NET 프레임 워크에서 사용할 수있는 최고의 클라이언트 측 기술이며 일반적으로 향후 작업을 위해 WinForms에서 개발하는 것을 피할 것입니다. YMMV

당신의 결정에 행운을 빕니다.


10
대단한 반응 Brad-우리 회사는 지금이 결정에 어려움을 겪고 있습니다. 귀하의 관찰은 잘 고려되었으며 지금까지 본 것과 매우 일치합니다. 우리는 아직 결정을 내리지 않았지만 멋진 UI가 판매에 미치는 영향을 확인했기 때문에 Battleship Gray 단락이 우리에게 강하게 반향을 일으켰습니다. 시간을내어 훌륭한 답변을 작성해 주셔서 감사합니다.
gidmanma 2010 년

3
한 명의 숙련 된 WPF 개발자가 팀에있는 것과 전혀없는 것에는 엄청난 차이가 있습니다. 가파른 학습 곡선과 결합하면 비즈니스를 운영하는 경우 많은 것을 성취하지 못할 것입니다. 현실적으로 WPF는 당신을 안내 할 누군가가 있다면 훌륭하고 당신이가는 동안 배우고 있다면 그다지 많지 않습니다. 그렇다면 주요 리팩토링을 준비하십시오.
Sergey Akopov 2011-06-24

3
+1- "비즈니스 앱이 왜 Battleship Grey 여야합니까?" -완전히 동의합니다!
Samuel Slade 2012

5
-1 WPF로 이동하는 유일한 이유가 그래디언트를 만들고 응용 프로그램 대화 상자를 "전함 회색"에서 변경하는 기능에 기반한 경우 실제로 WinForms 사용 방법을 배워야합니다.
deegee 2013-08-08

1
+1, 완전한 답변. windowsclient.net WPF 비디오 링크가 다운되었습니다. 누구든지 어디서 찾을 수 있는지 알고 있습니까?
Damien

11

나는 꽤 많은 winforms 경험을 가지고 있고 WPF로 조금만 놀았지만 나는 팔렸다.

왜?

  • 훨씬 더 많은 유연성. winforms에서 비표준을 수행하려면 고통과 고통이 뒤 따르지만 WPF에서는 간단합니다.

  • 훨씬 더 나은 데이터 바인딩

  • 개발하기 더 쉬움 (핵심 개념을 이해하면 안타깝게도 시간이 오래 걸립니다)


4

WPF를보기 시작했을 때 저는 "벡터 그래픽을 사용하는 Winforms"로 취급하고 곧바로 학습 절벽의 측면으로 뛰어 들었습니다. WinForms에서 WPF로 전환하는 적절한 방법은 알고있는 모든 것을 잊기 위해 손에 얹을 수있는 모든 마약을 영웅적으로 복용 한 다음 처음부터 시작하는 것입니다.

진지하게-Model-View-ViewModel과 같은 패턴을 사용하면 훨씬 깨끗하고 쉽습니다. The Orbifold ,이 Google 그룹스 스레드Channel9 에서 자세히 알아보기

그런 다음 어느 시점에서 깨달음을 얻고 모든 것을 데이터 바인딩하기 시작합니다. 코드 숨김은 InitializeComponent ()에 대한 호출에 지나지 않습니다.


4

게시물 주셔서 감사합니다. 우리 회사는 WinForms에 많은 시간을 투자했습니다. 나는 32 일 만에 중간 크기의 애플리케이션을 출시하는 것을 상상할 수 없다. 우리의 인증 기간은 수개월이며 릴리스주기는 때때로 매년 또는 그 이상입니다 (가능한 한 애자일 개발 철학에 가깝게 고수하더라도). 이것이 우리가 개발하는 애플리케이션의 특성입니다.

방금 WPF를 처음 사용했으며 ElementHost를 사용하여 WinForms에서 WPF의 이점을 얻을 수 있음을 알았습니다. WPF TextBox를 확장 한 다음 확장 된 클래스를 Win Forms UserControl에 래핑하고 이제 해당 WPF 텍스트 상자를 사용하는 WinForms 앱이 있으며 맞춤법 검사 지원이 완료됩니다.

Microsoft가 이것을 생각하는 것을보고 감명을 받았습니다 (WinForms에서 WPF를 호스팅하고 그 반대의 경우도 마찬가지 임). 오랜 기간에 걸쳐 전환 할 수 없으면 회사가 WPF로 전환되는 것을 볼 수 없기 때문입니다. 다시 시작하기에는 WinForms에 너무 많은 투자가 있습니다. 최근 경험을 바탕으로 다른 개발자들과 최근 경험에 대해 이야기하고 그들의 생각이 무엇인지 알 수 있습니다. 나는 WPF가 익숙해지는 데 시간이 걸릴 것이라고 생각하며 다른 의견과 일치하는 것 같습니다.




0

데스크톱 앱과 함께 ASP.NET/(Silverlight) 페이지에서 동일한 UI (XAML)를 사용할 수 있다고 상상해보십시오. 한 번만 빌드했지만 둘 중 하나에 연결합니다 .... WPF / XAML의 의도 중 하나입니다 ... 정말 거기에 있습니까? 아직은 아니지만 가까워지고 있습니다.


4
Silverlight와 데스크톱 앱에서 동일한 UI를 사용하려고하는 것은 이론적으로는 좋게 들리지만 실제로는 두 플랫폼 모두에서 엉뚱한 UI로 이어질 것이라고 생각합니다.
Orion Edwards

예, WPF와 Silverlight2의 겹치는 부분은 크지 만 코드를 이식 할 수있을만큼 충분하지 않습니다. 바인딩 기능의 차이로 인해 WPF 개발이 지나치게 제한됩니다.
geofftnz

1
글쎄, 우리가 아직 거기에 있지 않다고 말했지만 ... 그것이 궁극적 인 의도입니다.
Webjedi

geofftnz : Silverlight 개발 제한을 의미 했 습니까?
Abdu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.