2009-04-21 21 views
6

Tôi ba tuần để thiết kế một ứng dụng Silverlight 3 LOB và tôi đã quyết định đi với Entity Framework, RIA Services và mẫu MVVM.Có giá trị nào khi sử dụng khung công tác Silverlight không?

Bây giờ tôi đang xem xét tất cả các loại keo. Tôi đang kiểm tra hành vi, ICommand, thuộc tính phụ thuộc, IoC, v.v.

Có một số khung công tác cho Silverlight như của bài viết này.

Silverlight.FX
Silverstone
CSLA for Silverlight
Prism
Caliburn

Là những cần thiết?
Bạn có kinh nghiệm với bất kỳ khung công tác nào trong số này không?
Các khung công tác này vẫn có thể áp dụng cho Silverlight 3?
Ưu và nhược điểm của công việc với bất kỳ khung công tác nào trong số này.

Hoàn toàn trung thực, tôi không phải tất cả những ai quan tâm đến CSLA vì chúng tôi không sử dụng nó ngay hôm nay nhưng tôi đã bao gồm nó để hoàn thành.

Trả lời

4

Một trong những điều còn thiếu (điều quan trọng đối với MVVM) là chỉ huy. Vì vậy, bạn sẽ được lăn ít nhất là một phần của những gì khuôn khổ cung cấp cho mình.

Cá nhân tôi không sử dụng bất kỳ khung bên thứ ba nào, nhưng sử dụng khung công ty nội bộ cung cấp cho tôi lệnh và có các lớp cơ sở cho phần ViewModel của MVVM.

+0

Chỉ huy là điều tôi biết tôi chắc chắn cần. –

+1

Thành thật mà nói tôi cần làm là xem xét các khung công tác mã nguồn mở và thực hiện các lệnh cần thiết và sau đó thêm vào các bit khác khi bạn thấy bạn cần chúng. –

+0

Thats thực sự những gì tôi đã suy nghĩ, trừ khi ai đó ở đây nói với tôi rằng khuôn khổ X là rất cần thiết. –

1

Tôi không có bất kỳ trải nghiệm nào với các khung đó, nhưng chỉ dựa trên YAGNI và tính mới của Silverlight 3 và RIA Services, tôi sẽ chỉ liên kết với Silverlight 3 và RIA Services cho đến khi bạn có thể chứng minh rằng bạn cần một khung công tác bổ sung.

Tôi đoán (thuần túy đầu cơ) rằng các tính năng mới của Silverlight 3, cùng với Dịch vụ .NET RIA, giải quyết nhiều thiếu sót của Silverlight mà các khung công tác đó giải quyết.

+0

Một phần của tôi đồng ý và phần còn lại muốn thứ gì đó đơn giản hơn một chút. Bây giờ tôi đang nhận được đầu của tôi xung quanh MVVM, RIA Services, và Silverlight 3 tôi không thể không cảm thấy một cái gì đó là mất tích nhưng tôi không có một sự hiểu biết đầy đủ đủ để biết đó là gì. Câu hỏi này là nhiều hơn cho tôi để tìm ra "cái gì đó" đó là gì. –

1

Tôi đã chắc chắn có một sự thiên vị cá nhân, dựa trên những gì tôi làm trong công việc nhưng tính năng mà tôi tìm thấy siêu hữu ích trong bất kỳ dự án Silverlight ...

  1. liệu
  2. Xác thực/Security
  3. Triggers/Hành động (để giữ hầu hết các tuyên bố lượt xem của bạn)
  4. Hành vi (để đóng gói chức năng xem thành các thành phần có thể sử dụng lại mà bạn có thể đính kèm vào điều khiển)
  5. Xem mẫu/MVVM (để xem riêng từ mã)
  6. Simple IoC - để có được phụ thuộc tiêm vào các mô hình điểm của bạn
  7. Effects, và chuyển tiếp

Nếu ứng dụng của bạn là phức tạp/có nhiều màn hình ... 8. Di chuyển và có thể một số MVC

1 và 2 - Chúng tôi hy vọng sẽ giải quyết với Dịch vụ .NET RIA.

Những người khác, tôi đang cố gắng cung cấp triển khai thông qua Silverlight.FX ... ban đầu như một người triển khai có thể sử dụng như là hoặc là điểm xuất phát và theo thời gian đưa họ vào nền tảng/SDK.

Theo như chỉ huy, nó chắc chắn hữu ích, nhưng không cần thiết theo ý kiến ​​của tôi, nếu bạn có chức năng cơ bản ràng buộc và khả năng kết hợp các sự kiện với phương pháp vani thông qua hành động.

2

Tôi thích Silverlight.FX của Nikhil vì nó bao gồm lệnh, mvvm và một số mục "vui nhộn" như hành vi di chuyển con lăn chuột. Prism là khá tốt quá và tôi nghĩ rằng sự kiện của nó xuất bản/đăng ký hệ thống là mạnh hơn so với chỉ huy của Silverlight.FX. Nói chung tôi tìm thấy Prism một chút cồng kềnh (và không hoàn toàn có liên quan nếu bạn có kế hoạch xây dựng một ứng dụng điều hướng SL3). Ninject là yêu thích hiện tại của tôi cho DI.

+0

Bạn thực sự nghĩ rằng Prism là cồng kềnh hơn? Ninject rất phổ biến nhưng sự thống nhất trông nhỏ và đơn giản. Làm thế nào lớn là kết quả SilverLight.fx kết quả? và hội Ninject? –

+0

Lăng kính chỉ cảm thấy nặng nề hơn với tôi bởi vì nó không dễ dàng để mua vào một phần của hệ thống. Tôi có một dự án bây giờ mà thực sự có thể sử dụng hệ thống eventing, nhưng để sử dụng, bạn phải sử dụng framework DI của họ (để có eventAggregator). Giải pháp của Nikhil rất tuyệt vì bạn có thể sử dụng các lệnh với rất ít chi phí. Thành thật mà nói đó thực sự là một tiếng gõ nhẹ vào Prism; đó là một khung công tác mạnh mẽ nếu bạn có một ứng dụng lớn mà bạn đang làm việc. Ứng dụng của tôi nhỏ hơn nên tôi thích khung công tác nhẹ, dễ tiêu hóa hơn. Không chắc chắn về kích thước dll - tải về 'em! –

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