我們正在就使用WCF和創建服務和客戶端支持進行一些討論。WCF中不可互操作的服務的優點?
目前我們通過提供silverlight版本的服務庫客戶端來支持silverlight客戶端,這樣我們就可以保持使用接口定義的服務契約的強類型。
這沒問題,但是使用接口定義的服務使得其他客戶端很難使用,因爲WSDL有很多方法返回ArrayOfAnyType,並且一切都只是客戶端的對象(可以將其轉換爲正確的類型,但正如我所說,它的尷尬)。
我們可以重寫我們的服務,使用顯式的DTO進行消息傳輸,並使用類似的客戶端庫來重新創建我們的業務對象,這將使我們的服務更加互操作。
雖然這樣做似乎阻止了我們的一些選擇,例如使用EntityFramework和它提供的自我跟蹤實體,因爲這些需要在客戶端和服務器上共享相同的庫,並且不可互操作(如果我這是錯誤的)
似乎在互操作和開箱即用的更多功能之間存在權衡,允許更快地開發解決方案。
所以我的問題是,我們通過決定不可互操作並只支持.net和silverlight客戶端(如果支持silverlight客戶端可以被認爲是不可互操作的),我們獲得了哪些優勢?有什麼有用的.net功能可以阻止我們決定互操作嗎?
是否存在允許這兩種類型的解決方案共存的標準技術,因此您可以使用可用的全部功能支持.net客戶端,但是仍然支持其他非.NET客戶端?