2010-08-19 36 views

回答

0

需要考慮的事情是WCF數據服務,您可以通過網絡訪問您的實體。我不確定這是否符合您的要求或願望,但這是可能的。如果您使用Entity Framework 4(.NET 4),那麼通過WCF Data Services公開實體模型的一部分非常容易。

一些好處

  • 你的CRUD功能;
  • 通過XML或JSON向客戶端公開的數據;
  • 您可以將CRUD操作鎖定到實體級別(例如,將訂單展示爲完整的CRUD操作,但僅允許讀取和更新產品);
  • 利用REST(例如HTTP動詞GET,PUT,POST,DELETE);
  • 一致的OData數據格式(AtomPub);
  • 使用querystring很容易查詢你的數據(不知道如果有人認爲這是一個專業或con!);
  • 可能多了一些,我差點忘

一些負面

  • 您不必訪問完整的WS- *功能,因爲這是WCF休息;
  • 在這一點上,安全性有點像你自己的 - 你可以在現有網站的安全模型(比如表單驗證)上捎帶,也可以從請求頭手動插入和讀取令牌。 (還有其他關於保護WCF數據服務的博客,所以我可能在這裏錯過了一些項目);
  • 如果您不使用EF4,那麼公開您的實體以進行插入/更新/刪除工作會更多,因爲您必須實現IUpdateable接口。您還必須通過公開IQueryable方法來公開您的實體以供閱讀。

所以我不知道這是你在找什麼,但也許這是要考慮的事情。 MSDN上的文檔非常好,並且每個月似乎都會變得更好(4-5個月前它相當稀少!)。另外,也可以在線查看OData規格。

MSDN爲WCF數據服務 - http://msdn.microsoft.com/library/cc668792.aspx 的OData規範 - http://www.odata.org/ 博客由Pablo CibaroPablo Castrodata services team(他們對認證/授權系列)。

我希望這有助於!

0

你不需要。您只需要使用服務已知的可序列化類型,但它不必是專門用於通信的DTO。 DTO的使用只是應用程序架構的問題。當應用程序的複雜性和暴露的邏輯上升時,您會發現DTO是有用的設計功能,但對於簡單的應用程序而言,它只是開銷。