2009-03-11 40 views
79

Tôi biết phát triển asp.net và winform. Tôi không phải là người phát triển nhảy vào một công nghệ mới chỉ vì nó mới. Nó cần phải cho tôi thêm lợi ích như năng suất cao hơn.Lợi thế của ứng dụng WPF so với Winform dành cho ứng dụng doanh nghiệp?

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

WPF sẽ trợ giúp như thế nào trong các ứng dụng này? Ràng buộc dữ liệu phong phú 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ế tôi có thể làm mọi thứ trong Visual Studio so với nhiều IDE cho WPF (VS & Blend family). Plus tôi nghĩ rằng WPF không có các điều khiển liên kết dữ liệu phong phú như đối tác Winform của họ (DataGridView..etc). AFAIK, Microsoft sẽ vẫn hỗ trợ Winforms trong nhiều năm.

Cố 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] (http://www.wiseowl.co.uk/blog/s308/wpf-winforms.htm), do đó, sẽ đặt một liên kết đến nó ở đây. –

+6

Đây là một câu hỏi tuyệt vời. Nên mở cửa trở lại. Tôi là một nhà phát triển winform thực hiện chuyển đổi sang WPF. Đường cong học tập rất lớn. Nhưng WPF là tương lai, vì nó là ngôn ngữ khai báo của tự nhiên, giống như HTML. Winform chủ yếu là thủ tục, đó là phù hợp hơn cho 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 tin in .XPS, bạn sẽ thấy WPF xaml ở đó. Chỉ có quá nhiều giới hạn với Winforms. Mặc dù nó vẫn hoạt động, nhưng WPF "eye-candy" 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 khác với listview hoặc datagrid. –

Trả lời

96

Tôi biết asp.net và Winform phát triển. Tôi không phải là người phát triển nhảy vào một công nghệ mới chỉ vì nó mới. Nó cần phải cho tôi thêm lợi ích như năng suất cao hơn.

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

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

Bạn có tự coi mình là người lập mã tay hoặc trình tạo mã kéo và thả không? Nếu bạn tự coi mình là một công cụ kéo và thả, 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 làm việc hầu như chỉ 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 này. Nhưng sau đó, tôi cũng tạo HTML theo cách thủ công, vì vậy tôi cảm thấy tự nhiên đối với tôi ...

Ưu điểm của WPF so với Winforms cho các ứng dụng kinh doanh thuần túy là gì? Tôi không quan tâm đến kẹo bổ sung mắt, hoạt hình, gradient, hiệu ứng hiển thị hình ảnh và như vậy 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 và hiệu ứng cơ bản. 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 là Battleship Grey? Tại sao chúng không thể sử dụng được? Cấp, nó không phải là màu sắc, độ dốc, hình động làm cho một ứng dụng doanh nghiệp có thể sử dụng được, nhưng việc sử dụng những hiệu ứng này có thể giúp người dùng trải nghiệm, và đây là điều quan trọng đối với tôi. Tôi có thể đã làm tất cả mọi thứ tôi đã làm trong các ứng dụng WPF trong WinForms - nó chỉ mất nhiều thời gian hơn.

Ràng buộc dữ liệu phong phú hơn?

Hỗ trợ dữ liệu thực sự là tuyệt vời. Đây là tính năng được yêu thích nhất của tôi trên nền tảng này. Kiểm tra this wonderful Databinding Cheatsheet.

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

Vì bạn có nhiều kỹ năng (kỹ năng asp.net/winform), bạn có thể thấy lợi thế của skilling-up trong WPF vì nó 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 và ứng dụng web phong phú của bạn.

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

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

+10

Phản hồi tuyệt vời Brad - công ty chúng tôi đang đấu tranh với quyết định này ngay bây giờ. Quan sát của bạn cũng được suy nghĩ và rất phù hợp với những gì chúng tôi đã thấy cho đến nay. Chúng tôi chưa đưa ra quyết định nào nhưng đoạn Battleship Gray của bạn vang dội mạnh mẽ 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 tuyệt vời đến doanh số bán hàng. Cảm ơn bạn đã dành thời gian để viết một câu trả lời tuyệt vời. – gidmanma

+0

Đúng là câu trả lời là tuyệt vời. Tôi đã nghĩ đến việc nên bắt đầu học WPF hay Windows Forms và câu trả lời này đã cho tôi rất nhiều khía cạnh để suy nghĩ trước khi quyết định. – Nipuna

+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 duy nhất trong một nhóm và không có ai cả. Cặp đôi có đườ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 hoàn thành được gì nhiều. Thực tế, WPF là tuyệt vời nếu bạn có một ai đó để hướng dẫn bạn và không quá nhiều nếu bạn đang học như bạn đi. Và nếu bạn làm thế, hãy sẵn sàng cho việc tái cấu trúc chính. –

1

Không hoàn toàn trùng lặp nhưng bạn có thể thấy bài đăng này hữu ích về lợi ích của WPF ngoài các bit đồ họa mới.

WPF or WinForms for internal tools?

0

Chỉ cần kiểm tra kết quả tìm kiếm này ngay tại đây trong Stackoverflow để có được nhiều câu trả lời. https://stackoverflow.com/search?q=WPF+Winforms

+3

Tôi hy vọng bạn nghĩ rằng tôi đã thử điều đó rồi! – Abdu

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 bạn. Bạn sẽ chỉ xây dựng nó một lần nhưng dây nó hoặc là .... đó là một trong những ý định của WPF/XAML ... là chúng tôi thực sự có chưa? Chưa được nhưng đế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 thứ có vẻ tốt đẹp về lý thuyết, nhưng trong thực tế, tôi nghĩ sẽ chỉ dẫn đến giao diện người dùng yếu trên cả hai nền tảng. –

+0

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 di động. 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 tôi chưa hoàn toàn ở đó ... nhưng đó là mục đích tối thượng. – Webjedi

9

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

Tại sao?

  • MUCH linh hoạt hơn. Nếu bạn muốn làm bất cứ điều gì không tiêu chuẩn trong winforms, đau và đau khổ xảy ra sau đó, nhưng trong WPF nó đơn giản.

  • databinding Tốt hơn nhiều

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

4

Khi tôi bắt đầu xem WPF, tôi coi nó là "Winforms with Vector Graphics" và chạy thẳng vào bên cạnh vách đá học tập. Cách thích hợp để chuyển đổi từ WinForms sang WPF là lấy một liều anh hùng của bất kỳ chất ma tuý nào bạn có thể đặt tay lên để quên đi mọi thứ bạn biết, sau đó bắt đầu từ đầu.

Nghiêm túc là mặc dù - sẽ sạch hơn và dễ dàng hơn nhiều nếu bạn sử dụng mẫu như Model-View-ViewModel.Đọc thêm tại The Orbifold, điều này Google Groups threadChannel9

Sau đó, tại một thời điểm nào đó bạn sẽ có một biểu cảm và bắt đầu dữ liệu tất cả mọi thứ. Mã phía sau của bạn sẽ không còn nhiều hơn một lời gọi đến InitializeComponent().

4

Cảm ơn bài đăng. Công ty của tôi có rất nhiều thời gian đầu tư vào WinForms. Tôi không thể tưởng tượng được một ứng dụng có kích thước trung bình trong 32 ngày; thời gian chứng nhận của chúng tôi là các 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ù gắn bó với triết lý phát triển Agile như chúng ta có thể), đó là bản chất của các ứng dụng chúng tôi phát triển.

Tôi chỉ chơi với WPF lần đầu tiên và 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 TextBox WPF, sau đó bọc lớp mở rộng của tôi trong một Win Forms UserControl 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 thành với hỗ trợ kiểm tra chính tả.

Tôi rất ấn tượng khi thấy Microsoft nghĩ về đ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; có quá nhiều vốn đầu tư vào WinForms để bắt đầu lại. Với kinh nghiệm gần đây của tôi, 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ĩ rằng WPF sẽ mất một thời gian nhận được sử dụng để và điều đó có vẻ phù hợp với ý kiến ​​khác.

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