2010-07-13 5 views
6

là gì là tốt nhất, hiệu quả và cách nhanh nhất để phơi bày một hiện (class) thư viện (mà chủ yếu là xác định các hoạt động CRUD) như một dịch vụ (Dịch vụ WCF hoặc WCF Data Service), vì vậy nó có thể được sử dụng với Silverlight hoặc Ajax. Có các công cụ (trình tạo mã, công cụ RAD) có thể hỗ trợ điều này không? Cảm ơn trước sự giúp đỡ và gợi ý của bạn.Phơi bày một thư viện .NET lớp (trong đó chủ yếu là xác định các hoạt động CRUD) như một dịch vụ

Trả lời

2

Cách tiếp cận tốt nhất là sử dụng WCF để tự tạo trình bao bọc.

Bạn nên làm điều này, thay vì sử dụng một số tự động chỉ cần tiếp xúc với thư viện trực tiếp vì:

  • an ninh, bạn có muốn bất cứ ai để gọi bất cứ điều gì trên thư viện bất cứ lúc nào?
  • Hầu hết các thư viện cho rằng chúng được gọi trực tiếp thay vì qua dịch vụ (xem fallacies of enterprise development).
  • WCF theo mặc định là không trạng thái: bạn cần phải tìm cách quản lý bất kỳ trạng thái nào mà thư viện giả định (bạn sẽ không còn có một ứng dụng khách).
  • Tôi có đề cập đến bảo mật không?
1

Nếu lớp học của bạn chỉ là một bộ sưu tập dữ liệu câm, chỉ cần ném một DataContract lên đó. (Đừng quên không gian tên, nếu không bạn sẽ tự đá sau đó.) Sau đó bạn có thể phơi bày nó bằng cách sử dụng một dự án web.

Nếu bạn có logic thực tế trong lớp học của mình thì bạn gặp sự cố. Không có cách nào tốt để chia sẻ logic nghiệp vụ với các ứng dụng Silverlight. Họ thử với Dịch vụ RIA, nhưng nó không làm cho lớp.

1

Bạn nên có một cái nhìn tại WCF Data Services, đặc biệt là trong .NET 4. Trong khi bạn sẽ phải tạo lớp bối cảnh dữ liệu hoặc các lớp học để lộ các đơn vị của bạn cùng với lộ IQueryable và thực hiện IUpdatable, sau đó bạn có thể tận dụng khung công tác hỗ trợ mà WCF Data Services cung cấp cùng với một giao thức chuẩn hóa (OData) cho các tải trọng dữ liệu của bạn.

Trong .NET 4 và Visual Studio 2010, WCF dữ liệu dịch vụ đang trở nên chấp nhận hơn, và đang được đẩy bởi Microsoft như một phương tiện truy cập dữ liệu tốt cho các ứng dụng Silverlight.

Tôi nghĩ rằng ít nhất đáng để khám phá. Có rất nhiều thông tin về nó trên MSDN, mặc dù tôi không nghĩ rằng nó được tổ chức rất tốt ở những nơi. Dưới đây là một link đến phần trong MSDN về việc cuộn Dịch vụ Dữ liệu WCF của riêng bạn bằng cách sử dụng trình cung cấp phản chiếu được tích hợp sẵn. (Ví dụ này chỉ hiển thị truy xuất dữ liệu vì nó đơn giản hơn nhiều so với cập nhật/chèn/xóa dữ liệu, nhưng có một liên kết trong bài viết về cách triển khai IUpdatable.)

Bắt một IQueryable được hiển thị thông qua WCF Data Services sẽ khá nhanh. IUpdatable sẽ mất nhiều thời gian hơn một chút (vì bạn cần triển khai Insert/Update/Delete cho từng thực thể). Nhưng một khi bạn làm cho nó hoạt động (không mất quá nhiều thời gian), bạn có thể tinh chỉnh các thiết lập bảo mật, thêm các phương thức dịch vụ tùy chỉnh và thêm các chức năng và/hoặc các thực thể bổ sung một cách dễ dàng. Đó là một khuôn khổ tốt đẹp cho những gì bạn mô tả.

Tôi hy vọng điều này sẽ hữu ích.