8

Tôi đã thử nghiệm gần đây với Silverlight, RIA Services và Entity Framework bằng .NET 4.0. Tôi đang cố gắng tìm ra nếu ngăn xếp đó có ý nghĩa để sử dụng trong bất kỳ dự án sắp tới của tôi. Nó chắc chắn có vẻ như những công nghệ này có thể rất hiệu quả cho việc phát triển các ứng dụng, nhưng tôi đang cố gắng quyết định cách một ứng dụng trên cùng của ngăn xếp này nên được kiến ​​trúc.Có bao nhiêu logic nghiệp vụ thuộc lớp dịch vụ RIA?

Vấn đề chính mà tôi có là trong hầu hết các bản demo tôi đã thấy hầu hết logic nghiệp vụ kết thúc dưới dạng DataAnnotations và xác thực tùy chỉnh trong lớp dịch vụ miền Dịch vụ RIA. Điều này có vẻ không phù hợp với tôi. Tôi xem dịch vụ tên miền về cơ bản là một dịch vụ web được tôn vinh xảy ra để giúp dễ dàng đẩy thông tin cho khách hàng. Nhưng hầu hết những gì tôi thấy dường như định hướng dịch vụ miền là nguồn chính của logic nghiệp vụ trong ứng dụng.

Vì vậy, câu hỏi của tôi:

  • vị trí tốt nhất cho logic kinh doanh (quy tắc, hợp lệ, hành vi, ủy quyền) trong một ứng dụng sử dụng ngăn xếp này là gì?
  • Có bất kỳ nguyên tắc nào được xuất bản ở cấp kiến ​​trúc để sử dụng ngăn xếp này không?

Các câu hỏi của tôi liên quan đến các ứng dụng lớn, phức tạp và lâu dài. Rõ ràng cho một ứng dụng chỉ có một vài màn hình này là ít quan tâm.

Edit: Một điều tôi có nghĩa là để đề cập đến là rõ ràng là bạn có thể làm cho lớp dịch vụ miền ngu ngốc, nhưng sau đó bạn mất rất nhiều thông tin automagic thực thể (ví dụ kiểm chứng thực) bị đẩy cho khách hàng. Và sau đó nếu bạn bị mất thì có bất kỳ điểm nào trong việc sử dụng các dịch vụ RIA không?

+1

Tôi muốn biết điều tương tự! Thực sự đấu tranh để có được đầu của tôi xung quanh các thực hành tốt nhất cho các dịch vụ RIA. Dường như không có quá nhiều ví dụ ứng dụng kinh doanh chi tiết. – Banford

+1

Tôi vẫn đang tìm ra điều này cho bản thân mình. Một suy nghĩ mặc dù, thậm chí làm cho DomainService càng câm càng tốt, bạn vẫn có thể dễ dàng sử dụng DomainContext để gửi các thay đổi (theo lô) đến máy chủ và thay đổi theo dõi ở phía máy khách. IMO này, vẫn làm cho RIA Services khá có giá trị. – joshuapoehls

+0

Điểm tốt digiduck. Đó chắc chắn là giá trị gì đó. – RationalGeek

Trả lời

1

Nhóm của chúng tôi đang trong quá trình triển khai ứng dụng Silverlight ở đầu ngăn xếp RIA. Chúng tôi đã quyết định xây dựng mô hình miền trên các thực thể RIA. Ngoài ra, chúng tôi đã chọn theo mẫu MVVM để mô hình tương tác giao diện người dùng.

Cho đến nay, tôi đã nhận thấy những lợi ích sau:

  1. lớp miền là một nơi tốt đẹp để đưa logic kinh doanh bao gồm cả kiểm chứng thực phức tạp.
  2. Các lớp miền sử dụng các thực thể RIA và ngữ cảnh làm giao diện cho lưu trữ dữ liệu.
  3. Các lớp miền được lập mô hình sau mối quan tâm của doanh nghiệp và không yêu cầu mối quan hệ một-một với các thực thể RIA.
  4. Xác thực giao diện người dùng đơn giản có thể hiển thị trong Chế độ xem.

Một điều cần lưu ý là chúng tôi đã triển khai bản đồ nhận dạng riêng của chúng tôi để đồng thời và đẩy theo dõi bẩn vào ngữ cảnh RIA.

Trong thực tế, kiến ​​trúc này đòi hỏi một nỗ lực mã hóa nhiều hơn một chút, nhưng trả hết thời gian lớn với khả năng đọc và bảo trì. Ngay cả đối với các ứng dụng CRUD đơn giản, tôi cũng làm theo cách này. Có khả năng xây dựng mô hình miền thể hiện chính xác hơn không gian vấn đề là một lợi thế hấp dẫn.

0

Nói chung, sẽ hiệu quả hơn khi làm việc với công nghệ hơn là chống lại nó.

Khi bạn nói logic nghiệp vụ kết thúc trong DataAnnotations và xác thực tùy chỉnh, đây có thể là vị trí "tốt nhất" đối với năng suất của nhà phát triển, đối với phiên bản đầu tiên của hệ thống.

Tôi có cảm giác rằng công nghệ này có sức mạnh khi nhanh chóng xây dựng các ứng dụng crud, khi bạn có logic nghiệp vụ phức tạp, bạn có thể kết thúc với một lớp kinh doanh bổ sung giữa ứng dụng Silverlight và dịch vụ RIA.

Đã không cố gắng xây dựng bất kỳ điều gì thực sự trong điều này, chúng tôi sẽ chỉ thực sự biết câu trả lời cho điều này sau khi chúng tôi đã sử dụng nó một thời gian.

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