Dịch vụ WCF RIA là gì?


102

Tôi ghét trang web của MSDN cho các dịch vụ WCF RIA. Nó không nói nó là gì, nó chỉ nói nó làm gì. Nó nói những gì nó có thể đạt được nhưng không nói tại sao tôi cần nó.

Ví dụ:

"Một vấn đề thường gặp khi phát triển giải pháp RIA n-tier là phối hợp logic ứng dụng giữa tầng giữa và tầng trình bày".

Chà, nó không có nhiều ý nghĩa đối với tôi.

"Dịch vụ RIA giải quyết vấn đề này bằng cách cung cấp các thành phần khung, công cụ và dịch vụ làm cho logic ứng dụng trên máy chủ khả dụng cho máy khách RIA mà không yêu cầu bạn nhân bản logic lập trình đó theo cách thủ công. Bạn có thể tạo một máy khách RIA biết các quy tắc kinh doanh và biết rằng máy khách được tự động cập nhật với logic bậc giữa mới nhất mỗi khi giải pháp được biên dịch lại. "

Vậy nó có tải xuống các tệp DLL từ máy chủ không? Nó có phải là một siêu dữ liệu mô tả các quy tắc cho dữ liệu không?

Vậy đo la cai gi? Nó chỉ là một tiện ích bổ sung VS 2010 cho RAD? Hay nó là một công nghệ trên cùng của WCF hay bên dưới nó hay cái gì? Nó sống ở đâu? Với dữ liệu, với máy chủ, cái gì?

Tôi đánh giá cao nếu bạn có thể tóm tắt điều này cho tôi xin vui lòng.


3
Đây là một công nghệ hàng đầu của WCF, sử dụng Tạo mã và cả mã phía Máy chủ và phía Máy khách. Nó tập trung chủ yếu vào việc xáo trộn dữ liệu từ máy chủ đến máy khách và quay lại một lần nữa, với xác nhận và những thứ khác.
Rangoric

1
@Rangoric: Bạn có thể đăng nó như một câu trả lời. Câu trả lời ngắn cũng có thể là câu trả lời tốt.
Henk Holterman

7
Ah, lol, tôi đã đọc nhầm nó thành RIAA , và bị tâm thần.
Mateen Ulhaq

Điều cần biết: RIA = Ứng dụng Internet phong phú (ứng dụng mỏng trong đó có Silverlight), được giải thích rõ ở đây . Dịch vụ WCF RIA là dịch vụ RIA qua WCF, liên kết máy khách mỏng với máy chủ. " Dịch vụ WCF RIA truy xuất dữ liệu từ cơ sở dữ liệu Máy chủ ngôn ngữ truy vấn có cấu trúc (SQL) của Microsoft và cung cấp dữ liệu này cho máy khách Silverlight nơi nó được hiển thị để chỉnh sửa và xem "
phút

Câu trả lời:


109

Dịch vụ RIA là công nghệ phía máy chủ tự động tạo các đối tượng phía máy khách (Silverlight) để đảm nhận việc giao tiếp với máy chủ cho bạn và cung cấp xác nhận phía máy khách.

Đối tượng chính bên trong dịch vụ RIA là một DomainService, thường là một đối tượng LinqToEntitiesDomainServiceđược kết nối với mô hình LinqToEntities.

Điều quan trọng cần nhớ trong các dịch vụ RIA là nó chủ yếu là một thủ thuật xây dựng tinh vi. Khi bạn tạo một dịch vụ miền và biên dịch giải pháp của mình, bản trình bày phía máy khách của dịch vụ miền của bạn sẽ được tạo. Biểu diễn phía máy khách này có cùng giao diện. Giả sử bạn tạo một dịch vụ miền phía máy chủ CustomerServicevới một phương thức IQueryable<Customer> GetCustomersByCountry. Khi bạn xây dựng giải pháp của mình, một lớp được tạo bên trong dự án Silverlight của bạn được gọi là CustomerContextcó một phương thức GetCustomersByCountryQuery. Bây giờ bạn có thể sử dụng phương thức này trên máy khách như thể bạn đang gọi nó trên máy chủ.

Cập nhật, chèn và xóa theo một mẫu khác. Khi bạn tạo một dịch vụ miền, bạn có thể cho biết bạn có muốn bật chỉnh sửa hay không. Sau đó, các phương thức tương ứng để cập nhật / chèn / xóa được tạo trong dịch vụ miền phía máy chủ. Tuy nhiên, phần phía máy khách không có các phương thức này. Những gì bạn có trên của bạn CustomerContextlà một phương pháp được gọi là SubmitChanges. Vì vậy, điều này hoạt động như thế nào:

  • Đối với các bản cập nhật, bạn chỉ cần cập nhật thuộc tính của khách hàng hiện tại (mà bạn đã truy xuất qua GetCustomersByCountryQuery).
  • Đối với phụ trang, bạn sử dụng CustomerContext.Customers.Add(new Customer(...) {...}).
  • Để xóa, bạn sử dụng CustomerContext.Customers.Remove(someCustomer).

Chỉnh sửa xong, bạn gọi CustomerContext.SubmitChanges().

Đối với xác thực, bạn có thể trang trí các đối tượng phía máy chủ của mình bằng các thuộc tính xác thực từ System.ComponentModel.DataAnnotationskhông gian tên. Một lần nữa, khi bạn xây dựng dự án của mình, mã xác thực hiện được tự động tạo cho các đối tượng phía máy khách tương ứng.

Tôi hy vọng lời giải thích này sẽ giúp bạn thêm một chút.


Nó chắc chắn. Cảm ơn vì đã chia sẻ nó. Tôi ước bạn có thể cập nhật trang MSDN. Bây giờ, điều gì sẽ xảy ra nếu tôi thêm một thuộc tính vào đối tượng miền của mình? Nó sẽ tự cập nhật?
Aliostad

Tôi đã thêm một số thông tin bổ sung về cập nhật, chèn và xóa.
Ronald Wildenberg

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.