10

Tôi hiện đang trong quá trình tạo ứng dụng dữ liệu Silverlight 3. Để truy cập cơ sở dữ liệu, 2 phương pháp phổ biến được sử dụng: Dịch vụ RIA và Dịch vụ dữ liệu ADO.NET. Có ai có bất kỳ hướng dẫn nào về thời điểm/tại sao nên chọn từng cách tiếp cận? Đây là những gì tôi đã thu thập từ nghiên cứu/kinh nghiệm của tôi. Có suy nghĩ gì không?Dịch vụ RIA và ADO.NET Dịch vụ dữ liệu

ADO.NET dường như chỉ hữu ích cho các cuộc gọi cơ sở dữ liệu nghiêm ngặt. Nếu bạn cần để lộ các dịch vụ dữ liệu cho các ứng dụng khác (bỏ qua giới hạn miền của Silverlight 3), đây là một cách tiếp cận tốt. Ngoài ra, nếu cú ​​pháp URL/Truy vấn có thể hữu ích trong ứng dụng của bạn, đây là một lợi thế khác

Dịch vụ RIA có vẻ là một khuôn khổ được chấp nhận linh hoạt hơn. Nó dường như cung cấp cho bạn nhiều hơn truy cập cơ sở dữ liệu nghiêm ngặt. Nó có một giới hạn chỉ được sử dụng cho ứng dụng Silverlight/Web vì nó không được tiếp xúc thông qua một dịch vụ.

Suy nghĩ? Ý tưởng? Bình luận?

Trả lời

10

Trên dây, dịch vụ dữ liệu ADO.NET và dịch vụ RIA rất giống nhau (cả hai đều dựa trên REST).

Tuy nhiên, với dịch vụ dữ liệu ADO.NET và tất cả các dịch vụ REST khác, bạn sẽ không dễ dàng thấy API trong Visual Studio. Ví dụ: bạn không biết những gì các cuộc gọi đến cơ sở dữ liệu có sẵn và dữ liệu trả về không được gõ mạnh. Nó làm cho một hệ thống dữ liệu rất tương thích nhưng nó có thể là một nỗi đau để làm việc với.

Với các dịch vụ RIA, bạn sẽ tận dụng tối đa cả hai thế giới vì dự án RIA của bạn được tham chiếu trực tiếp cho các dự án Silverlight để Visual Studio có thể biết phương pháp nào có sẵn và mọi thứ được đánh máy mạnh. Tất cả các ứng dụng khác có thể sử dụng dịch vụ này (dataservice.axd) nhưng chúng không có sự sang trọng của một API.

EDIT: Correction: ADO.NET Data Services hiện đang tạo ra siêu dữ liệu (Xin lỗi vì thông tin xấu) http://msdn.microsoft.com/en-us/library/cc716656.aspx

+0

Thông tin tốt. Tôi sẽ phải cung cấp cho bạn một phiếu bầu "ảo" vì tôi quá mới với Stack Overflow (danh tiếng chỉ 11) để bỏ phiếu cho câu trả lời của bạn. –

+2

Tôi tin rằng bạn sai về: "không dễ xem API trong Visual Studio" về Dịch vụ dữ liệu. Dịch vụ dữ liệu ADO.NET có thể được nhập vào Visual Studio giống như bất kỳ giải pháp WCF/RIA nào cho phép bạn xem mã API thông qua các phương thức/lớp được tạo mạnh mẽ. –

+0

Tổng thể tốt thread, nhưng tôi đồng ý với Robert - ADO.NET Dịch vụ dữ liệu là rất dễ dàng để xem xét dưới mui xe của. –

0

Tôi đã làm một nguyên mẫu của một hệ thống với Silverlight 2 và các dịch vụ dữ liệu ADO.NET và Tôi hiện đang đi về phía trước với việc triển khai MVVM bằng cách sử dụng các dịch vụ Silverlight 3 và RIA cho một ứng dụng LOB.

RIA có một mô hình bảo mật giúp bạn không thể tự tạo bằng WCF để sử dụng Silverlight. Nó dựa trên mô hình nhà cung cấp bảo mật ASP.NET. Nó có một mô hình xác nhận thú vị và mạnh mẽ cho phép bạn dễ dàng chèn trình xác nhận khách hàng của riêng bạn.

Các vấn đề chính với RIA Services là chúng rất mới, không ở dạng cuối cùng và có rất ít tài liệu với nhiều trường hợp đơn giản hơn. Beta được kỳ vọng tại PDC vào tháng 11 và RTM với EF 4.0, C# 4.0 và VS2010.

Khi làm việc với điều này sớm, bạn có thể mong đợi tái cấu trúc đáng kể với các thay đổi khi bản phát hành được thực hiện và một số thất vọng với những thay đổi nhỏ không dễ dàng phát hiện.

Chúng tôi hiện đang xử lý các lỗi trong EF và RIA và chúng tôi có thể cần sử dụng dịch vụ Dữ liệu để thực hiện một số việc cho đến khi RIA ổn định hơn.

Có cách nhập mạnh mẽ với cả Dịch vụ dữ liệu và RIA. Intellisense làm việc với cả hai. Resharper chưa hỗ trợ RIA, mặc dù nó được mong đợi trong bản phát hành 5.0 của họ.

3

Đây là câu hỏi rất cũ nhưng muốn thêm câu trả lời cho người đọc.

Dịch vụ của Ria là lớp trên cùng của các dịch vụ dữ liệu ADO.net. Các dịch vụ của Ria sử dụng ADO.Net làm khung cơ sở và thêm lớp để sử dụng dễ dàng cho thư viện giao diện người dùng.

Vì vậy, câu hỏi có thể là khi sử dụng Dịch vụ RIA và khi sử dụng dịch vụ dữ liệu ADO.Net

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