2010-09-10 39 views
95

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 những gì nó làm. 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ó.Dịch vụ WCF RIA là gì?

Ví dụ:

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

Vâng, điều đó không có ý nghĩa gì đối với tôi.

"RIA Services giải quyết vấn đề này bằng cách cung cấp linh kiện khuôn khổ, công cụ, và dịch vụ mà làm cho logic ứng dụng trên máy chủ có sẵn cho RIA client mà không đòi hỏi bạn bằng tay lặp lại rằng lập trình logic. Bạn có thể tạo một khách hàng RIA nhận thức được các quy tắc kinh doanh và biết rằng khách hàng được tự động cập nhật với logic cấp trung gian mới nhất mỗi khi giải pháp được biên dịch lại. "

Vì vậy, nó tải xuống DLL từ máy chủ? Có phải siêu dữ liệu mô tả các quy tắc cho dữ liệu không?

Vậy đó là gì? Nó chỉ là một phần bổ sung VS 2010 cho RAD? Hay nó là một công nghệ trên 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.

+3

Nó là một công nghệ trên đầu WCF, sử dụng Code Generation và cả hai phía Server và phía Client. 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à ngược lại, với xác thực và những thứ khác. – Rangoric

+1

@Rangoric: Bạn có thể đăng bài đó dưới dạng Trả lời. Câu trả lời ngắn cũng có thể là câu trả lời hay. –

+7

Ah, lol, tôi đã đọc nhầm nó như *** RIAA ***, và đi về tâm lý. –

Trả lời

96

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

Đối tượng chính bên trong dịch vụ RIA là DomainService, thường là 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 mẹo 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 bạn, một đại diện phía máy khách của dịch vụ miền của bạn được tạo ra. Biểu diễn phía máy khách này có cùng giao diện. Giả sử bạn tạo dịch vụ miền phía máy chủ CustomerService với 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ó tên là CustomerContext có 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ủ.

Nội dung 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. Các phương thức tương ứng để cập nhật/chèn/xóa sau đó được tạo ra 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 số CustomerContext là phương thức được gọi là SubmitChanges. Vì vậy, cách thức hoạt động:

  • Để 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).
  • Để chèn, bạn sử dụng CustomerContext.Customers.Add(new Customer(...) {...}).
  • Để xóa, bạn sử dụng CustomerContext.Customers.Remove(someCustomer).

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

Để xác thực, bạn có thể trang trí các đối tượng phía máy chủ của mình với thuộc tính xác thực từ không gian tên System.ComponentModel.DataAnnotations. Một lần nữa, khi bạn xây dựng dự án của bạn, mã xác nhận bây giờ được tạo tự động 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.

+0

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

+0

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

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