2009-11-18 33 views
27

Tôi đang làm việc trên một ứng dụng mà chúng tôi đã thực hiện WPF thay vì Silverlight vì chúng tôi muốn có một ứng dụng máy tính để bàn toàn diện với cảm giác và lợi thế độc đáo mang lại. Tuy nhiên, với thông báo của Silverlight 4 tôi nghe có một tiếng vang về Silverlight chủ yếu là sự lựa chọn ưa thích cho các ứng dụng máy tính để bàn.Tại sao thay đổi từ WPF sang Silverlight 4?

Vì vậy; tại sao tôi nên xem xét việc chuyển ứng dụng WPF sang Silverlight 4 - vì tôi vẫn muốn một ứng dụng máy tính để bàn?

+3

Lý do chính cho chúng tôi là ... chúng tôi có quyền truy cập vào người dùng MacOS :-) – TimothyP

+0

Không nghi ngờ gì - đó là lý do chính đáng! Trong miền của tôi, đó không phải là thứ chúng tôi cần. – stiank81

Trả lời

10

Hãy nhớ rằng Silverlight 4 hiện đang ở giai đoạn Beta mà không có sẵn thời gian chạy ứng dụng khách của người dùng cuối. Silverlight 4 được chuyển vào tháng 4 năm 2010. Nếu bạn đã phát triển một ứng dụng trong WPF cho máy tính để bàn, thì đó có thể là giải pháp phù hợp. Tuy nhiên, nó sẽ là khôn ngoan để giữ tai của bạn xuống đất và làm theo những gì đang xảy ra trong Silverlight trong trường hợp bạn cuối cùng có thể muốn chuyển ứng dụng của bạn vào không gian web hoặc phát triển một ứng dụng khác trong không gian web.

Silverlight 4 mang Silverlight đến một cấp độ hoàn toàn mới. Hãy xem Tim Heuer's blog post để biết nhiều tính năng mới. Ngoài ra, hãy xem bạn có thể tìm thấy video của ứng dụng facebook từ bài phát biểu khi các tính năng Silverlight 4 được công bố hay không. Ứng dụng đó làm nổi bật một tấn các tính năng mới được tập trung vào máy tính để bàn.

+0

Cảm ơn. Tìm thấy các Gu trong Keynotes bây giờ. Sẽ lắng nghe những gì anh ấy nói sớm.Phát triển phía máy chủ sẽ giống nhau bất kể - và hy vọng nó không quá khó để chuyển khách hàng nếu chúng tôi muốn .. – stiank81

+0

Bài đăng trên blog Tim Heuers là câu trả lời tôi đang tìm kiếm. Cảm ơn. – stiank81

2

Nếu lý do của bạn cho WPF là bạn muốn một ứng dụng máy tính để bàn đầy đủ thổi, sau đó silverlight không phải là một lựa chọn. Thay vào đó, nếu bạn quan tâm đến một ứng dụng dựa trên web có thể rời khỏi trình duyệt thì Silverlight 4 có thể là những gì bạn đang tìm kiếm.

Từ từ ngữ trong câu hỏi của bạn, có vẻ như bạn muốn trải nghiệm toàn màn hình, vì vậy Silverlight không liên quan.

+0

SL 3 cũng có thể làm điều đó, iirc. – Joey

+0

Đúng, nhưng tôi nghĩ rằng họ đã thực hiện một số thay đổi để cho phép thực sự "ra khỏi trình duyệt" gần hơn với mô hình Adobe Air. – chills42

+0

Tôi không cần ứng dụng dựa trên web chút nào - sẽ được sử dụng làm ứng dụng dành cho máy tính để bàn .. Vâng, trải nghiệm Out-of-browser đã được giới thiệu trong SL3, nhưng từ những gì tôi hiểu bạn có thể làm được nhiều hơn trong SL4 liên quan đến điều khiển máy tính để bàn, đó là lý do tại sao nó có liên quan hơn để thay đổi ngay bây giờ. Nhưng những gì các tính năng chính xác là họ đề cập đến? (trả lời trong chủ đề mới ..) – stiank81

10

Tôi nghĩ rằng sự hiểu biết của bạn về WPF và Silverlight là một chút thiếu. Silverlight là một tập hợp các chức năng và tính năng được tìm thấy trong WPF. Silverlight có một vài tính năng được Silverlight cụ thể. Silverlight trên máy tính để bàn chỉ đơn giản là một phản ứng với Adobe AIR của Microsoft. Vì vậy, với điều đó nói, thực hiện ứng dụng của bạn với WPF nếu đó là sự lựa chọn của bạn. Đừng để "buzz" thúc đẩy quyết định của bạn về ứng dụng của bạn, đó là nhu cầu kinh doanh và kỹ năng sẵn có trong tổ chức của bạn.

3

Một vài lý do chính để xem xét SL4 trên WPF

  1. nhỏ hơn kích thước khuôn khổ. Cấp SL4 có lẽ sẽ lớn hơn nhiều so với SL3, nhưng hiện tại khung công tác Silverlight là khoảng 1/10 kích thước của phiên bản .NET 3.5 nhỏ nhất.
  2. Hỗ trợ nền tảng chéo - Silverlight chạy trên Mac và Linux (theo lý thuyết). Điều này có thể không phải là một vấn đề lớn đối với bạn nhưng nó là rất quan trọng trong một số kịch bản.
  3. Tích hợp tốt hơn với HTML. Silverlight có thể sống bên trong một trang web và với phiên bản html 4 có thể sống bên trong Silverlight. Một lần nữa, điều này có thể không áp dụng cho bạn, nhưng nếu bạn cần phải interoperte với các ứng dụng web hiện có, Silverlight chắc chắn là con đường để đi. Nó cũng sẽ làm cho nó dễ dàng hơn nhiều để chuyển sang trang web là bạn cần.
  4. Đó rõ ràng là nơi Microsoft đặt năng lượng của nó. Tôi sẽ không ngạc nhiên nếu WPF là khá nhiều người chết trong nước, giống như Winforms và LINQ to SQL.
+0

Scott Guthrie trong bài phát biểu cho rằng Silverlight 4 không có kích thước lớn hơn nhiều, plug-in vẫn sẽ ở ngay khoảng 5MB trên Windows. –

2

Tôi chỉ có thể thấy một hai lợi thế để chọn Silverlight.

  1. Bạn thực sự cần nền tảng chéo, chọn Silverlight.
  2. Bạn cần phải nhúng một cái gì đó với HTML trong trình duyệt, chọn Silverlight

khác nếu bạn cần một ứng dụng kinh doanh đang làm việc chống lại các dịch vụ web, Tại sao không sử dụng WPF với nhấp chuột một lần hoặc bất kỳ kỹ thuật khác để cập nhật phần mềm?

Việc cài đặt khung không phải là vấn đề lớn khi cài đặt khung của nó một lần, không lớn và đã được tích hợp trong các phiên bản Windows mới hơn.

Bạn đạt được hiệu suất, tái sử dụng các hội đồng clr, và một vấn đề rất lớn đối với tôi là bạn hoàn toàn tin cậy với sự phản chiếu ví dụ, rất hạn chế trong Silverlight cả trong trình duyệt và ngoài trình duyệt.

Và tôi không nghĩ WPF sẽ chết ?? WPF đã có tất cả những thứ mới trong Silverlight 1,2,3 và 4 trong một thời gian dài, và vẫn còn nhiều hơn nữa. Như tôi thấy nó Silverlight là và luôn luôn sẽ là một phiên bản nhẹ hơn của WPF cho các trình duyệt web.

1

Vì Silverlight là một thương hiệu và đang được các nhà tài trợ và nhà tài trợ dự án của Microsoft quảng bá nhiều hơn trong khi WPF mặc dù chúng tôi biết rõ sẽ không được biết đến bên ngoài cộng đồng. Vì vậy, để phát triển dự án trong tương lai, điều này có thể thúc đẩy nhu cầu SL4 trên WPF, đặc biệt nếu có nhận thức rằng phát triển Silverlight rẻ hơn WPF nếu đường cong học tập ít hơn cho công nghệ tập hợp con (mặc dù tôi không đồng ý với tình cảm đó riêng tôi). Tất nhiên như xa như ứng dụng hiện tại của bạn là có liên quan đến chuyển sang SL4 sẽ không có gì hơn là cá cược là người sớm chấp nhận trừ khi có một tính năng cụ thể mà bạn cần có trong SL4 chứ không phải WPF.

Tôi thích sức mạnh của WPF nhưng đến SL5 Tôi nghĩ rằng tất cả chúng ta sẽ được vào bandwagon những gì vào năm 2012?

+0

Bạn thực hiện một số điểm tốt, và nó có vẻ như sẽ có một sự tăng trưởng trong việc sử dụng SL - với nhiều di chuyển từ Wpf. Nhưng toàn bộ bản chất của SL thực sự là các ứng dụng web sẽ phải chịu một số hạn chế nên cung cấp chỗ cho Wpf. Ít nhất là lâu hơn nữa. Nhưng chắc chắn sẽ rất thú vị khi theo dõi tiến trình của Silverlight. Và chúng tôi sẽ tiếp tục mở kiến ​​trúc để chúng tôi có thể chuyển sang Silverlight trong tương lai nếu muốn - không có quá nhiều vấn đề ..! Phần cuối sẽ chỉ giống nhau. – stiank81

15

Chọn WPF hoặc Silverlight hoặc bất kỳ thứ gì khác cho vấn đề đó trên cơ sở hợp thời trang dường như tôi chỉ đơn giản là ngớ ngẩn, trừ khi bạn đang cố gây ấn tượng với một cô gái hoặc một ông chủ tóc nhọn.

Mục đích của phần mềm viết là kiếm tiền. Đó là lý do tại sao Microsoft làm điều đó, đó là lý do tại sao tôi làm điều đó và có lẽ đó là lý do tại sao bạn làm điều đó. Trong khi chắc chắn có những người xung quanh làm điều đó bởi vì họ thích làm việc đó hoặc theo đuổi những lý tưởng cao cả, những người đó không phải là lực lượng thị trường hiệu quả và không có tiếng nói thực sự.

Hầu hết số tiền nằm trong các ứng dụng doanh nghiệp (LOB) và tất cả các công cụ được xây dựng với mục đích rõ ràng là bán chúng cho những người đang cố gắng xây dựng ứng dụng LOB, vì nó đại diện cho phần lớn ngân sách công cụ dành cho nhà phát triển của thế giới.

Silverlight tối đa phiên bản ba về cơ bản cạnh tranh với Flash, có nghĩa là nó vô ích đối với mọi thứ nhưng lấp lánh trên trang web: chứng kiến ​​tất cả các trang mẫu được liên kết với trang Silverlight của Microsoft.

Sự thúc đẩy lớn của Microsoft trong SL4 là hỗ trợ cho phát triển LOB; các công cụ RIA. Nhưng tại sao? Bởi vì trong khi bạn có thể phát triển LOB với HTML, CSS, AJAX, Flash và dịch vụ web, điều đó giống như nói rằng bạn có thể chế tạo một chiếc xe đẹp từ bộ Meccano, miễn là bạn đã sẵn sàng sử dụng nhiều bog. Silverlight làm những điều tương tự, nhưng hiệu quả và mạch lạc, với một môi trường phát triển thống nhất. nó sáng bóng.

Đây là một cải tiến to lớn đối với bộ công cụ bị hỏng để làm việc với HTML, CSS, AJAX, Flash và dịch vụ web, và nếu bạn đang bán mà studio phát triển tích hợp, nó thật tuyệt vời.

Silverlight có nghĩa là phát hành dễ dàng. Nếu họ không có Silverlight thì sao? Họ sẽ, ngay cả khi Microsoft phải tàng hình nó bên trong gói dịch vụ tiếp theo. Dễ dàng triển khai là tuyệt vời nếu bạn là phòng CNTT, và tuyệt vời nếu bạn đang bán dịch vụ văn phòng. Nó cũng tuyệt vời nếu bạn đang phát triển bởi vì bạn không phải muck về phát triển hoặc thử nghiệm bộ dụng cụ thiết lập.

Đối với các loại dịch vụ văn phòng, không có lựa chọn hợp lý nào khác. Đối với các ứng dụng LOB thông thường, không có lý do gì để không sử dụng nó và việc triển khai dễ dàng hơn và thuận tiện hơn nhiều. nếu bạn cần phải làm điều gì đó bên ngoài những giới hạn đó, thì Silverlight không thích hợp.

Có thể cần lưu ý rằng ứng dụng của tôi thực hiện một số thứ (công cụ TCP trực tiếp) không được Silverlight hỗ trợ và điều này hoàn toàn không có vấn đề gì; máy chủ thực hiện chúng thay mặt cho khách hàng và điều này độc đáo né tránh tất cả các mối nguy hiểm môi trường xung quanh việc triển khai trong tự nhiên vì chúng ta có thể kiểm soát môi trường máy chủ.

Tôi nghĩ rằng hỗ trợ đa nền tảng là một furfy, bởi vì Silverlight trên nền tảng không phải Windows chạy xa phía sau và các máy trạm thương mại không phải Windows cũng rất ít. Các doanh nghiệp không sử dụng Linux trên máy trạm. Macintosh không phải là một nền tảng, nó là một tôn giáo: không có điểm thậm chí nói chuyện với họ.

Tất cả những gì đã nói, trước VS2010 không có nhà thiết kế Silverlight. XAML vô tận mã hóa bằng tay là số đau khổ khổng lồ trong bum. SL4/RIA trong VS2010 thật tuyệt vời nhưng Joe Public chưa có nó và không thể sử dụng nó để tung ra nếu anh ta làm, bởi vì không có giấy phép hoạt động hoặc thời gian chạy của người dùng cuối.

Điều này khiến WPF là lựa chọn thực tế duy nhất. Tuy nhiên [trống cuộn] một phiên bản beta cuối cùng với một giấy phép đi-sống và một thời gian chạy sẽ có sẵn Real Soon Now, có thể là cuối tháng Hai. Kudos cho ScottGu và nhóm.

+0

Weeell .. Sẽ không chọn nó * bởi vì * nó là "hợp thời trang", nhưng nếu có một tiếng vang và Microsoft đang tập trung vào SL WPF có thể bị tụt hậu. Trong trường hợp đó là "hợp thời trang" thực sự tạo ra sự khác biệt. Cảm ơn cho một số điểm tốt anyway. – stiank81

+0

Tôi thành thật sẽ không xem xét mã XAML bằng tay như một "nỗi đau khổng lồ", ít nhất, nếu bạn đến từ một nền HTML. Ban đầu tôi nghĩ mình sẽ ghét nó, nhưng sau đó tôi nhận ra nó nhanh như thế nào. – rossisdead

+0

Nhập các thẻ không phải là vấn đề. Các điều kiện tiên quyết trước tiên kiến ​​thức về ngữ nghĩa và tương tác của đám thuộc tính trình bày một rào cản to lớn cho người mới đến. Sau đó, có kinh doanh đưa các lớp vào phạm vi. Hỗ trợ IDE cho điều này có nghĩa là mặc dù điều đó xảy ra là tôi biết cách đưa bối cảnh dữ liệu miền vào phạm vi, nhưng vẫn còn nhanh hơn và đáng tin cậy hơn để thả bảng trên bề mặt thiết kế và xóa lưới kết quả. Tôi vẫn trực tiếp chỉnh sửa XAML. –

0

Tôi muốn thêm ý kiến ​​về sự khác biệt về hiệu suất.

Theo kinh nghiệm của tôi, công cụ đồ họa của SL nhanh hơn nhiều. Tôi đã không thể tạo ra một điều khiển tương tự như trục mới của Silverlight, nơi hàng ngàn yếu tố di chuyển trơn tru trong WPF, mặc dù với SL tôi nhận được hiệu suất giống như tôi thấy với trục chính nó.

Ngoài ra, phát lại video WPF dường như đang gặp khó khăn với chỉ ba hoặc bốn video trên máy của tôi, trong khi với Silverlight tôi có thể phát gần 50 đồng thời.

Điều đó thật thú vị vì có thể giả định WPF sẽ nhanh hơn.

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