2009-08-26 13 views

답변

10
  • 배우십시오.
  • 스타일

(내가 DB 지원과 함께 할 수있어 것을 볼 수 없습니다, 트리거,

  • 바인딩 쉽게 데이터의 혜택을
  • 프로그램의 모양을보다 (즉, 어떤) 제어를하려면 it)

    49

    하나의 분명한 대답은 WPF가 WinForms보다 풍부한 사용자 경험을 제공하여 예를 들어 사용자 인터페이스에서 3D 애니메이션을 허용한다는 것입니다.

    개발 측면에서 볼 때 항상 좋은 점인 비즈니스 로직 (VB.NET 또는 C#)에서 사용자 인터페이스 (XAML의 경우)를 분리하는 데는 많은 시간이 걸립니다.

    "WPF vs WinForms"에 대한 Google 검색은이 문제를 다루는 많은 페이지를 제공합니다. 여기 모든 결과를 반복하지 않지만 this page 몇 가지 흥미로운 점을 제기 : WPF에서

    1. 데이터 바인딩 Windows가 제공하는 양식 무엇 우수합니다.
    2. UI와 C#의 비즈니스 로직은 깔끔하게 WPF에서 분리 할 수 ​​
    3. 스토리 보드
    4. 데이터/컨트롤 템플릿 - 윈도우 양식이 제공 할 수있는 어떤 것보다 훨씬 깨끗한 방법.
    5. 스타일 - 멋지고 간단합니다. 같은 모양과 느낌을 가지고있는 응용 프로그램의 모든 단추 스타일이 매우 쉽습니다.
    6. VS 디자이너가 중단 되더라도 쉽게 XAML을 코딩 할 수 있습니다.
    7. UI 가상화 - 움직이는 시장 에 시선을 돌리고 100K 행 격자가 있습니다. 무료로 제공되는 UI 시각화 의 경우 성능이 좋지 않으면 일 것입니다.
    8. 3D 지원.
    9. 아무것도 과학하지만, UI 개발은 WPF에서 빠른 느낌이 없습니다 - 어쩌면 그것 WPF 응용 프로그램이 의 마지막 반복에서 쿨러, 또는 보인다해서 어쩌면 그 개발은 정말 빨리 때문이다.
    10. 나는 나의 팀에 사용자 경험 엔지니어를 추가 할 수없이 C#을 지식으로 그는 Expression Blend를에 마술을하고 프런트 오피스 거래 응용 프로그램을 비즈니스 사용자를 통해 승리를 보장하는 화장을 줄 수 .
    +0

    당신의 예제 "3D"는 WInforms가 OpenTK/GLControl을 얻음으로써 무효화됩니다. 터무니없이 일방적이고 편향된 목록에서 제거하십시오. – Krythic

    +0

    @Krythic 나는 다른 사람을 그 목록으로 인용하고 있기 때문에 "내"목록이 아니다. 그리고이 답변을 올렸을 때 2009 년 이후로 상황이 바뀌었기 때문에 특정 측면이 바뀔 수도 있습니다. – ChrisF

    14

    WPF는 Windows 데스크톱 응용 프로그램을 개발하기위한 현재 플랫폼입니다. 우려의 분리를 유지하는 응용 프로그램을 개발하기위한 최신의 고급 하드웨어 가속 프레임 워크입니다. 2D 벡터 및 3D 그래픽의 고급 렌더링을 지원하여 풍부하고 대화식이며 양질의 사용자 인터페이스를 구축 할 수있는 막대한 범위의 기능을 제공합니다.

    Winforms는 표준 컨트롤을 사용하여 표준 모양과 느낌으로 "클래식"Windows 응용 프로그램을 개발할 수있는 기본 플랫폼을 제공합니다. WPF가 제공하는 풍부한 하드웨어 가속 벡터 2D 및 3D 기능을 제공하지 않습니다. Winforms 응용 프로그램은 응용 프로그램 동작과 UI (보기) 사이에 훨씬 더 많은 결합을하는 경향이 있으며 응용 프로그램을 개발할 때 유연성이 떨어지는 플랫폼입니다.

    어느 쪽을 선택 하시겠습니까? 전적으로 귀하의 필요에 따라 다릅니다.벡터 그래픽, 3D 렌더링, 리치, 인터랙티브, 애니메이션, 현대 사용자 인터페이스를 만드는 기능이 필요하거나 관심사의 분리를 유지하려는 경우 WPF가 올바른 선택입니다. 아무 것도 필요하지 않고 간단한 문제를 해결하는 간단한 UI를 만들어야하는 경우 winforms는 사용자의 요구를 잘 충족시킵니다.

    1

    previous question에 게시 된 이미지와 같은 풍부한 사용자 인터페이스를 원한다면 WPF를 사용하는 것이 좋습니다. 멋지게 보이는 응용 프로그램을보다 쉽게 ​​만들 수있을뿐만 아니라 Microsoft가 앞으로 추진할 기술이기도합니다. Winforms에 대한 새로운 개발은 거의 없습니다.

    2

    (MVVM 패턴을 기반으로하는 등 올바른 방법으로 작성된 경우) WPF 응용 프로그램의 테스트 기능에 대해 언급 한 사람이 없습니다.

    4

    WPF는 어느 정도 하드웨어 가속을 사용할 수 있지만 시간이 지남에 따라 향상 될 것으로 예상됩니다.

    또한 XAML 덕분에 "수행중인 작업", 선언적 또는 프로그래밍 방식 또는 둘 다를 혼합하여 더 많은 옵션을 사용할 수 있습니다.

    Microsoft는 더 이상 winforms를 적극적으로 개발하지 않으며 WPF를 강력하게 추진하고 있습니다.

    WPF를 사용하면 훨씬 간단하게 "해상도에 구애받지 않는"디자인을 사용할 수 있습니다. 그것을 달성하기 위해 winforms, 그것은 많은 더 많은 작업입니다.

    MVVM 패턴은 주석 중 하나에서 이미 언급되었으므로 코드에서 실제 unittesting 대 GUI 기반 테스트를 수행 할 수 있습니다. 즉, 내 경험에 의하면 big win입니다.

    3

    WinForms와 WPF의 가장 중요한 차이점은 WinForms는 단순히 표준 Windows 컨트롤 (예 : TextBox)의 맨 위에있는 반면 WPF는 처음부터 작성되었으며 표준 Windows 컨트롤에 의존하지 않는다는 사실입니다 거의 모든 상황에서 이것은 미묘한 차이처럼 보일지 모르지만 실제로는 그렇지 않습니다. Win32/WinAPI에 의존하는 프레임 워크로 작업 한 적이 있다면 분명히 알 수 있습니다.

    좋은 예가 이미지와 텍스트가있는 버튼입니다. 이것은 표준 Windows 컨트롤이 아니기 때문에 WinForms는 사용자에게이 가능성을 제공하지 않습니다. 대신 직접 이미지를 그리거나 이미지를 지원하는 버튼을 구현하거나 타사 컨트롤을 사용해야합니다. WPF를 사용하면 기본적으로 내용 및 다양한 상태 (예 : 손길이없고, 맴돌고, 눌렀을 때)가있는 테두리이므로 버튼에 무엇이든 포함 할 수 있습니다. WPF 버튼은 대부분의 다른 WPF 컨트롤과 마찬가지로 "룩 -리스 (look-less)"버튼입니다. 즉, 내부에 다른 컨트롤의 범위를 포함 할 수 있습니다. 이미지와 텍스트가있는 버튼을 원하십니까? 버튼 안에 Image와 TextBlock 컨트롤을 넣으면 끝났습니다! 표준 WinForms 컨트롤에서 이런 종류의 유연성을 얻지 못하기 때문에 이미지가있는 단추와 같은 컨트롤을 구현하는 데는 큰 시장이 있습니다.

    이러한 유연성의 단점은 WinForms에서 필요한 시나리오를 위해 만들어진 것이기 때문에 WinForms에서 매우 쉬운 작업을하기 위해 열심히 노력해야 할 때가 있습니다.최소한 처음에는 WinForms ListViewItem이 한 줄의 코드에서 이미지와 멋지게 정렬 된 텍스트를 사용하여 ListView를 만들기위한 템플릿을 만드는 것이 처음부터 느껴졌습니다.

    이것은 하나의 차이점 이었지만 WPF로 작업 할 때 WPF는 다른 많은 차이점의 근본적인 이유임을 깨닫게됩니다. 보다 나쁜. 더 이상 Windows 방식으로 작업하는 데 제약이 없지만 이런 종류의 유연성을 얻으려면 실제로 Windows 방식으로 작업 할 때 조금 더 많은 작업을해야합니다.

    +5

    에는 적어도 낱말을 위해 훔친 기사 등을 맞댄 연결되는 품위가 있으십시오 ... http://www.wpf-tutorial.com/about-wpf/wpf-vs-winforms/ – obe