2009-06-12 43 views
14

Tôi chỉ giới thiệu bản thân mình với những khác biệt cơ bản giữa Silverlight 3 và người tiền nhiệm của nó. Nhìn vào Domain Service Class trong các dịch vụ RIA, việc thực hiện có vẻ hơi đơn giản. Ai đó có thể giải thích sự khác biệt cơ bản giữa điều này và Windows Communication Foundation?Sự khác biệt giữa WCF và Lớp Dịch vụ Miền Dịch vụ RIA là gì?

Lớp dịch vụ miền có sử dụng WCF hoặc một số khung dịch vụ khác trong nền hay mới này từ đầu không?

Trả lời

17

tôi khuyên bạn nên đọc this blog article mà nói rằng:

suy nghĩ của chúng tôi về RIA Services làm việc thực sự phát triển ra khỏi dự án LINQ một vài năm trước đây. LINQ tích hợp ngữ nghĩa truy vấn vào các ngôn ngữ (C#, VB, v.v.) cung cấp một trừu tượng chung để làm việc với dữ liệu; liệu dữ liệu đó có trong các đối tượng CLR bộ nhớ, XML, dữ liệu quan hệ hay bất kỳ thứ gì khác. Với RIA Services, chúng tôi đang mở rộng mô hình này bằng cách cung cấp một mô hình quy tắc để hiển thị logic miền của bạn qua LINQ. Chúng tôi nghĩ về logic miền là một phần trong ứng dụng của bạn rất cụ thể đối với miền của bạn - đó là vấn đề kinh doanh cụ thể mà bạn đang giải quyết.

Vì vậy, nó là 'logic miền' LINQ là gì đối với dữ liệu, trong khi WCF về cơ bản chỉ là nhà cung cấp dịch vụ.

Trong phát triển N-Tier truyền thống này có nghĩa là:

... bạn nên nghĩ đến dịch vụ RIA như là một lớp sâu sắc hơn trên đầu trang của ADO.NET Data Services và WCF ... Chúng tôi cũng mong đợi cuối cùng cung cấp quyền truy cập đầy đủ vào tất cả sức mạnh và tính linh hoạt từ các dịch vụ WCF cơ bản như tuần tự hóa tối ưu hóa cao.

Hoặc bạn cũng có tùy chọn để sử dụng "Dịch vụ RIA mẫu" mới:

... xây dựng các ứng dụng ASP.NET dễ dàng trong khi tận dụng tất cả được xây dựng trong các tính năng của RIA Services chẳng hạn như xác thực dữ liệu, ủy quyền, vv Trong bản xem trước tháng 3, chúng tôi cung cấp một điều khiển asp: DomainDataSource cho phép truy cập ASP.NET WebForms rất dễ dàng vào logic miền của bạn. Xây dựng trên đó là một phiên bản tương lai của ASP.NET Dynamic Data giúp bạn dễ dàng tạo ra giao diện người dùng chuẩn, thông thường dựa trên logic miền của bạn.

thiết yếu này có nghĩa là RIA Services có thể một trong hai:

  • Sit trên WCF (thực chất là gói các dịch vụ WCF cho Client App để tiêu thụ).
  • Thay thế lớp WCF RIA Services với sử dụng nguồn dữ liệu alternatice (ADO.NET Entity Data Model/ví dụ. Entity Framework theo Building A Data-Driven Expense App with Silverlight 3)

Đây cũng là giá trị kiểm tra ra Mix09: Building Amazing Business Applications with Silverlight 3 ví dụ khác.

Như tôi đang viết này tôi vừa phát hiện ra Microsoft's .NET RIA Services Overview mà hình như nó giải thích rất nhiều các hợp lý đằng sau RIA Services (và có lẽ một chút rõ ràng hơn so với một số những điều trên :)

+0

Câu trả lời hay! Tại thời điểm này tôi khá chắc chắn Dịch vụ RIA luôn luôn ngồi trên đầu trang của WCF (Xây dựng một dữ liệu-Driven Chi phí App w SL3 bài viết không nhà nước khác). Bạn có thể cập nhật bài đăng của mình bằng một ví dụ cụ thể cho thấy các dịch vụ RIA không sử dụng WCF không? –

+0

Tôi không đọc chi tiết bài viết theo hướng dữ liệu nhưng không thấy bất kỳ việc sử dụng WCF nào trong đó (chỉ cần đề cập đến?). Ngoài ra, nếu bạn xem trang 114 của Tổng quan về Microsoft, ví dụ "Sử dụng ASP.NET DomainDataSource" về cơ bản chỉ sử dụng RIA + LINQ 2 Sql – mundeep

+0

LINQ 2 Sql là một công nghệ phía máy chủ - tôi nghĩ rằng một phần của bài viết là thảo luận về ASP.NET, chứ không phải Silverlight. –

2

Chúng tôi sử dụng một sự kết hợp của cả hai.WCF cho dữ liệu cồng kềnh hoạt động tốt hơn với việc tuần tự hóa nhị phân và RIA cho các thực thể CRUD vì mã này nhanh hơn rất nhiều để viết và duy trì. Nếu RIA hỗ trợ nhị phân, chúng tôi sẽ sử dụng nó thay vì WCF, nhưng tôi khá chắc chắn nó không có trong phiên bản phát hành hiện tại.

1

WCF có nhiều tùy chọn hơn để gỡ lỗi như trong RIA. Nguồn dữ liệu miền dễ thiết lập hơn nhưng khó tìm ra lỗi hơn. Trong nhiều trường hợp WCF sẽ sử dụng để tạo ra một hệ thống liên lạc khả năng tương tác, xóa bỏ WSDL cũ hơn với bảo mật tiêu đề WSSE.

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