2010-04-21 37 views
64

Tôi đã chơi thử với các ứng dụng giao diện điều khiển C# trong khoảng một năm và tôi muốn chuyển sang tạo các ứng dụng GUI. Tôi chưa bao giờ thực hiện bất kỳ phát triển GUI nào ngoài các ứng dụng Java cơ bản, nhưng tôi muốn tiếp tục sử dụng C#. Tôi có nên bắt đầu học Windows Forms hay chuyển thẳng sang WPF không? Có sự khác biệt lớn nào không? WPF có xây dựng trên Windows Forms hoặc chúng hoàn toàn khác nhau không?WPF hoặc Windows Forms

Trả lời

61

Nếu bạn mới bắt đầu, hãy nhảy thẳng vào WPF.

Nó sẽ cho phép bạn bắt đầu tạo giao diện phong phú bằng cách đánh dấu để xác định giao diện của bạn mà không dạy cho bạn những thói quen xấu có thể xảy ra (đối với WPF) mà bạn học được từ Windows Forms.

+2

+1 Tôi hoàn toàn đồng ý. WPF là linh hoạt hơn nhiều so với Windows Forms và nó là dài hạn trong phát triển GUI. Nó rất gần với HTML trong cách bạn sử dụng một bố cục dựa trên XML.Lập luận tốt nhất cho Windows Forms ngay bây giờ là nếu bạn có một đội ngũ dev với kinh nghiệm chính sử dụng nó. WPF là tương lai, và nó đã nhảy vọt trước Windows Forms. –

+2

+1 nhưng, WPF chỉ có thể sử dụng được từ .NET 4.0+ vì các vấn đề về phông chữ trong các phiên bản trước, vì vậy hãy lưu ý rằng để triển khai ứng dụng. – Josh

+13

@Fauxide WPF có thể sử dụng được trong .NET 3.5. Đã có rất nhiều ứng dụng hữu ích được xây dựng ... các vấn đề phông chữ không phải là nút hiển thị cho tất cả mọi người. –

22

Hai công cụ này hoàn toàn khác nhau. Họ cung cấp một số lớp khả năng tương tác cho cả hai hướng, nhưng khác hơn là không có gì chung. Windows Forms là nhiều hơn hoặc ít hơn một wrapper nhẹ trên đầu trang của Win32/MFC, có nghĩa là khả năng mở rộng của nó trong. NET không phải là tốt trong mọi trường hợp. WPF là một khung giao diện người dùng mới được triển khai từ đầu. WPF cũng linh hoạt hơn nhiều khi nói đến việc tùy chỉnh các kiểu hiện có.

Tuy nhiên, ít nhất là từ kinh nghiệm của tôi, Windows Forms có vẻ là khung giao diện người dùng trên máy tính để bàn thường được sử dụng nhiều hơn trong ngành. Windows Forms không thể được sử dụng với phát triển web mặc dù trong khi WPF cung cấp các ứng dụng Silverlight và XBAP.

Nếu bạn đã thực hiện bất kỳ phát triển giao diện người dùng nào trước đây, tôi dám nói rằng Windows Forms dễ học hơn vì nó tuân theo các mô hình lập trình truyền thống hơn. Mô hình lập trình của WPF hoàn toàn khác với điều này. Trong khi WPF có thể được sử dụng trong cùng một cách như Windows Forms, hầu hết các lợi ích của nó không đạt được cho đến khi bạn nắm lấy các ràng buộc dữ liệu và đóng gói WPF cung cấp.

Mặc dù nêu rõ một số điểm ủng hộ Windows Forms chọn WPF trên Windows Forms sẽ là không có trí tuệ đối với tôi nếu tất cả những gì bạn muốn làm là tìm hiểu một khung giao diện người dùng. Nó vượt trội so với Windows Forms ở mọi khía cạnh. Tôi chỉ muốn ngành công nghiệp phần mềm nói chung sẽ thích ứng với nó trên quy mô lớn hơn! (Mặc dù không phải ai cũng viết các ứng dụng máy tính để bàn nữa kể từ khi chúng tôi có web.)

+0

+1 Hoàn toàn đồng ý. –

3

WPF cung cấp các cơ sở rất phong phú để xây dựng giao diện người dùng cực kỳ phức tạp. Nó đơn giản hóa việc tích hợp đồ họa tăng tốc phần cứng trong giao diện của bạn. Tuy nhiên, Visual Studio WPF thiết kế thực sự là xấu (tôi gần như không bao giờ sử dụng nó). Tôi cũng nghĩ rằng WPF phức tạp hơn nhiều và khó bắt đầu hơn. Nhưng điều này là chủ quan của khóa học.

+0

Tôi viết xaml bằng tay: D và sử dụng nhà thiết kế để đặt lề và công cụ. Không có gì khác. –

4

Cả hai công nghệ đều có chuyên môn và con của họ.

WPF tốt hơn cho phát triển nền tảng chéo và tạo giao diện 'hào nhoáng'. Tuy nhiên nó đòi hỏi một khung .net mới hơn WinForms và yêu cầu một GPU tương thích dx9 hoặc cao hơn (mà hầu hết mọi người sẽ có).

Nhưng đó là tham gia nhiều hơn một chút để tạo ra các giao diện/dây lên tất cả các sự kiện vv

WinForms vẫn là một công nghệ mạnh mẽ mà thường có thể được phát triển với một tốc độ nhanh hơn so với WPF Tuy nhiên, cuối cùng , cả hai công nghệ đều có thể được sử dụng để đạt được điều tương tự. Tuy nhiên WPF là tiêu chuẩn 'mới hơn'.

WinForms thường được sử dụng để phát triển các ứng dụng kinh doanh trong khi WPF thường được sử dụng để tạo nhiều bit dựa trên phần mềm, ứng dụng, v.v.

Các vấn đề liên quan