Lợi thế của ứng dụng WPF so với Winform cho ứng dụng doanh nghiệp? [đóng cửa]


84

Tôi biết asp.net và phát triển winform. Tôi không phải là kiểu nhà phát triển nhảy vào một công nghệ mới chỉ vì nó mới. Nó cần mang lại cho tôi những lợi ích bổ sung như năng suất cao hơn.

Ưu điểm của WPF so với Winforms cho các ứng dụng thuần túy dành cho doanh nghiệp là gì? Tôi không quan tâm đến kẹo mắt bổ sung, hoạt ảnh, độ dốc, hiệu ứng hiển thị hình ảnh, v.v. mà WPF cung cấp. Các ứng dụng dành cho doanh nghiệp là để nhập dữ liệu, báo cáo dữ liệu và có thể là một số biểu đồ và hiển thị ảnh tĩnh.

WPF sẽ giúp gì trong các ứng dụng này? Liên kết dữ liệu phong phú hơn tốt hơn? WinForm là một công nghệ đã được chứng minh trưởng thành và tôi thích thực tế là tôi có thể làm mọi thứ trong Visual Studio so với nhiều IDE dành cho WPF (họ VS & Blend). Thêm vào đó, tôi nghĩ WPF không có các điều khiển liên kết dữ liệu phong phú như các đối tác Winform của họ (DataGridView..vv). AFAIK, Microsoft vẫn sẽ hỗ trợ Winforms trong nhiều năm.

Cố gắng thuyết phục một người như tôi chuyển đổi.


1
Tôi nghĩ rằng có một số lý do mạnh mẽ để chuyển sang WPF. Tôi không muốn lặp lại một blog mà tôi vừa viết , vì vậy tôi sẽ đặt một liên kết đến nó ở đây.
Andy Brown,

7
Đây là một câu hỏi tuyệt vời. Nên được mở lại. Tôi là một nhà phát triển winform đang chuyển sang WPF. Đường cong học tập là rất lớn. Nhưng WPF là tương lai, vì bản chất nó là ngôn ngữ khai báo, giống như HTML. Winform chủ yếu là thủ tục, phù hợp hơn với các thuật toán, nhưng chi tiết hơn để hiển thị giao diện người dùng. Hãy thử giải nén một tệp in .XPS, bạn sẽ thấy WPF xaml ở đó. Chỉ có quá nhiều hạn chế với Winforms. Mặc dù nó vẫn hoạt động, nhưng "viên kẹo mắt" WPF có thể giúp giảm mức độ căng thẳng của người dùng. Bạn có thể trình bày nhiều hàng bản ghi theo cách có ý nghĩa hơn ngoài listview hoặc datagrid.
Jeson Martajaya 17/12/12

Câu trả lời:


101

Tôi biết asp.net và phát triển winform. Tôi không phải là kiểu nhà phát triển nhảy vào một công nghệ mới chỉ vì nó mới. Nó cần mang lại cho tôi những lợi ích bổ sung như năng suất cao hơn.

Đối với nhóm của tôi, WPF đã được chứng minh là nhanh hơn nhiều so với WinForms để phát triển các ứng dụng. Gần đây, chúng tôi đã phát hành một ứng dụng cỡ trung trong 32 ngày. Chúng tôi có lợi thế về một nhà phát triển WPF giàu kinh nghiệm trong nhóm và những người thiếu kinh nghiệm luôn mong muốn tìm hiểu công nghệ. Có tinh thần tuyệt vời và năng suất rất ấn tượng.

WinForm là một công nghệ đã được chứng minh trưởng thành và tôi thích thực tế là tôi có thể làm mọi thứ trong Visual Studio so với nhiều IDE dành cho WPF (họ VS & Blend).

Bạn tự cho mình là một hand-coder hay một tay coder kéo và thả? Nếu bạn coi mình là một người kéo và nhỏ, thì công cụ WPF hiện tại có thể không phù hợp với bạn. Có thể đợi Visual Studio 2010? Tôi hầu như chỉ làm việc trong XAML. Hầu hết các WPF'ers có lẽ sẽ đồng ý rằng đây là cách hiệu quả nhất để tạo các ứng dụng WPF tại thời điểm hiện tại. Nhưng sau đó, tôi cũng tạo HTML bằng tay, vì vậy tôi cảm thấy rất tự nhiên ...

Ưu điểm của WPF so với Winforms cho các ứng dụng thuần túy dành cho doanh nghiệp là gì? Tôi không quan tâm đến kẹo mắt bổ sung, hoạt ảnh, độ dốc, hiệu ứng hiển thị hình ảnh, v.v. mà WPF cung cấp.

Tôi đã từng nghĩ theo cách này, nhưng gần đây tôi đã phát triển một ứng dụng kinh doanh có độ dốc, hoạt ảnh cơ bản và hiệu ứng. Những tính năng ưa thích này đã được thêm vào để nâng cao trải nghiệm người dùng. Tại sao các ứng dụng kinh doanh nên có màu Xám Battleship? Tại sao chúng không thể sử dụng được? Đúng vậy, không phải màu sắc, độ dốc, hoạt ảnh làm cho ứng dụng kinh doanh có thể sử dụng được, nhưng việc sử dụng những hiệu ứng này có thể giúp trải nghiệm người dùng và đây là điều quan trọng đối với tôi. Tôi có thể đã làm mọi thứ tôi đã làm trong ứng dụng WPF trong WinForms - nó sẽ mất nhiều thời gian hơn.

Liên kết dữ liệu phong phú hơn tốt hơn?

Việc hỗ trợ databinding thực sự là tuyệt vời. Đó là tính năng yêu thích nhất của tôi trong nền tảng. Kiểm tra Databinding Cheatsheet tuyệt vời này .

Cố gắng thuyết phục một người như tôi chuyển đổi.

Tôi đã quyết định rằng tôi sẽ không cố gắng thuyết phục bất kỳ ai khác chuyển sang WPF. Các nhà phát triển mà tôi đã cố gắng "thuyết phục" (tất cả các nhà phát triển Winforms có kinh nghiệm) thường gặp khó khăn với nền tảng này. Họ không được đầu tư vào công nghệ. Họ không "hiểu được". Tôi khuyến khích mọi người kiểm tra công nghệ để xem nó có phù hợp với họ với tư cách là nhà phát triển hay không. Đường cong học tập là rất lớn. Nếu bạn học theo sách, hãy xem bài đăng SO này để biết một số đánh giá nhỏ về sách WPF. Nếu bạn học bằng video, hãy xem các video WPF của windowsclient.net . Nếu bạn học theo ví dụ, hãy xem cái này hoặc cái nàybài đăng. Quên mọi thứ bạn biết về WinForms. WPF thực sự có vẻ gần gũi với ASP hơn WinForms. Tạo một số ứng dụng mẫu. Xem nó có phù hợp với bạn và nhóm của bạn không.

Vì bạn là người đa kỹ năng (kỹ năng asp.net/winform), bạn có thể thấy lợi thế của việc nâng cao kỹ năng trong WPF vì nó có liên quan rất chặt chẽ với Silverlight. Silverlight lấp đầy khoảng cách giữa các ứng dụng khách phong phú và ứng dụng web của bạn.

Cá nhân tôi cảm thấy WPF là công nghệ phía máy khách tốt nhất hiện có cho .NET framework và nói chung sẽ tránh phát triển trong WinForms cho công việc sau này. YMMV

chúc may mắn với quyết định của bạn.


10
Câu trả lời tuyệt vời Brad - công ty của chúng tôi đang đấu tranh với quyết định này ngay bây giờ. Các quan sát của bạn được suy nghĩ kỹ lưỡng và rất phù hợp với những gì chúng tôi đã thấy cho đến nay. Chúng tôi vẫn chưa đi đến quyết định nhưng đoạn Battleship Grey của bạn gây được tiếng vang lớn đối với chúng tôi vì chúng tôi đã thấy tác động của giao diện người dùng đẹp mắt đối với doanh số bán hàng. Cảm ơn vì đã dành thời gian để viết một câu trả lời xuất sắc.
gidmanma

3
Có một sự khác biệt rất lớn giữa việc có một nhà phát triển WPF có kinh nghiệm trong một nhóm và không có một nhà phát triển nào. Kết hợp điều đó với đường cong học tập dốc và nếu bạn đang điều hành doanh nghiệp, bạn sẽ không đạt được nhiều thành tựu. Thực tế, WPF sẽ rất tuyệt nếu bạn có người hướng dẫn và không quá nhiều nếu bạn đang học. Và nếu bạn làm vậy, hãy sẵn sàng cho việc tái cấu trúc lớn.
Sergey Akopov

3
+1 - "Tại sao các ứng dụng kinh doanh nên có màu Xám Chiến hạm?" - Hoàn toàn đồng ý!
Samuel Slade

5
-1 Nếu lý do duy nhất để chuyển sang WPF là dựa trên khả năng tạo độ dốc và thay đổi hộp thoại ứng dụng của bạn từ "màu xám chiến hạm" thì bạn cần thực sự học cách sử dụng WinForms.
deegee

1
+1, câu trả lời đầy đủ. Link windowsclient.net WPF videos bị lỗi, có ai biết tìm ở đâu không?
Damien

11

Tôi có khá nhiều kinh nghiệm về winforms và mới chỉ chơi với WPF một chút, nhưng tôi đã bị bán.

Tại sao?

  • Linh hoạt hơn NHIỀU. Nếu bạn muốn làm bất cứ điều gì không chuẩn trong winforms, đau đớn và khổ sở sẽ xảy ra, nhưng trong WPF thì đơn giản.

  • Databinding tốt hơn nhiều

  • Dễ dàng phát triển hơn (một khi bạn hiểu các khái niệm cốt lõi, tiếc là sẽ mất một lúc)


4

Khi tôi bắt đầu xem xét WPF, tôi coi nó là "Winforms with Vector Graphics" và chạy thẳng vào phía bên của vách đá học tập. Cách thích hợp để chuyển đổi từ WinForms sang WPF là sử dụng một liều lượng lớn bất kỳ chất gây nghiện nào bạn có thể đặt vào để quên mọi thứ bạn biết, sau đó bắt đầu lại từ đầu.

Nghiêm túc mà nói - sẽ gọn gàng và dễ dàng hơn rất nhiều nếu bạn sử dụng một mẫu như Model-View-ViewModel. Đọc thêm tại The Orbifold , chuỗi Google Groups nàyKênh9

Sau đó, đến một lúc nào đó, bạn sẽ có một sự hiển linh và bắt đầu ghi lại mọi thứ. Mã phía sau của bạn sẽ không nhiều hơn một lệnh gọi tới InitializeComponent ().


4

Cảm ơn vì bài đăng. Công ty của tôi đã đầu tư rất nhiều thời gian vào WinForms. Tôi không thể tưởng tượng sẽ có được một ứng dụng cỡ trung bình trong 32 ngày; thời gian chứng nhận của chúng tôi là tháng kết thúc và chu kỳ phát hành đôi khi hàng năm hoặc lâu hơn (mặc dù bám sát triết lý phát triển Agile nhất có thể), đó là bản chất của các ứng dụng chúng tôi phát triển.

Tôi mới chơi với WPF lần đầu tiên và nhận thấy rằng tôi có thể nhận được một số lợi ích của WPF trong WinForms bằng cách sử dụng ElementHost. Tôi đã mở rộng một WPF TextBox, sau đó bọc lớp mở rộng của mình trong một UserControl của Win Forms và bây giờ có một ứng dụng WinForms bằng cách sử dụng hộp văn bản WPF đó, hoàn chỉnh với hỗ trợ kiểm tra chính tả.

Tôi rất ấn tượng khi thấy Microsoft nghĩ đến điều này (lưu trữ WPF trong WinForms và ngược lại), vì tôi thực sự không thể thấy công ty của mình chuyển sang WPF trừ khi chúng tôi có thể chuyển đổi trong một thời gian dài; chỉ có quá nhiều đầu tư vào WinForms để bắt đầu lại. Với kinh nghiệm gần đây của mình, tôi có thể bắt đầu nói chuyện với một số nhà phát triển khác về trải nghiệm gần đây của tôi và xem suy nghĩ của họ là gì. Tôi nghĩ WPF sẽ mất một thời gian để làm quen và điều đó có vẻ phù hợp với các nhận xét khác.




0

Hãy tưởng tượng nếu bạn có thể sử dụng cùng một giao diện người dùng (XAML) từ trang ASP.NET/(Silverlight) với ứng dụng dành cho máy tính để bàn của mình. Bạn chỉ muốn xây dựng nó một lần nhưng kết nối nó với một trong hai .... đó là một trong những ý định của WPF / XAML ... chúng ta đã thực sự ở đó chưa? Chưa nhưng đang tiến gần hơn.


4
Cố gắng sử dụng cùng một giao diện người dùng trong Silverlight và ứng dụng dành cho máy tính để bàn là một trong những điều nghe có vẻ tốt về lý thuyết, nhưng trên thực tế, tôi nghĩ sẽ chỉ dẫn đến một giao diện người dùng tồi tệ trên cả hai nền tảng.
Orion Edwards

Vâng, sự chồng chéo giữa WPF và Silverlight2 là lớn, nhưng không đủ để làm cho mã của bạn có thể di động được. Sự khác biệt về khả năng ràng buộc sẽ hạn chế sự phát triển WPF của bạn quá mức.
geofftnz

1
Tôi đã nói rằng chúng ta vẫn chưa đến đó ... nhưng đó là mục đích cuối cùng.
Webjedi

geofftnz: ý bạn là hạn chế phát triển Silverlight ?
Abdu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.