1,兩者的區別。
wcf可以不依賴於iis。
wcf可以配置成basichttpbinding來相容(或者說變身成)ws。
wcf可以基於tcp或者messegequeue來傳輸資料。
wcf的可配置性比ws強,比如安全性。
wcf可以是有狀態的,並支援事務。
wcf 支援多種通訊協議 http/https 、tcp/udp、msmq、命名管道、對等網、
訊息可達性、事務流等。
wcf 可以與asp.net 整合、共享乙個上下文(httpcontext)。
wcf 支援多種訊息傳輸格式 :text,binary,mtom,json 等。
wcf 安全性要強:支援對稱安全、非對稱安全、訊息安全、傳輸安全、
ssl 流安全、windows 流安全等。
wcf 支援多種會話模式:單向、雙向、請求/響應。
wcf 支援rest 。
wcf 支援多種格式化方式。datacontractserializer、xmlserializer、
datacontractjsonserializer 等。
wcf 支援 was hosting、windows 服務 hosting、self-hosting、iis hosting 等。
wcf 支援多種併發模式:單例、單調、會話
2,這裡要講的是通過純執行時**實現方法的呼叫。主要用到的技術是反射。
一,web services
private object agent;
private type agenttype;
private const string code_namespace = "demo";
////// 建構函式
//////public webserviceagent(string url)
catch (exception ex)
}
實現思路:利用wsdl生成xml文件,利用反射生成客戶端** agent = activator.createinstance(agenttype);
二,wcf,引用wcf服務,網上能夠找到詳細的例子,但都集中於兩種方式,1,新增服務引用,這樣每次服務變更,需要更新一下引用。2,通過channelfactory快速繫結乙個終結點,但也需要客戶端**(契約)。wcf乙個好處是它是基於契約的,意思是我不管裡面如何實現,客戶端只關心契約的結果。在構建複雜應用場景中,如何讓我們**高內聚,低耦合,有同學說了可以面向介面程式設計呀,誠然,wcf實現了,這是終極解決方案麼?當然不是,假如介面變動了麼?相信這是所有程式設計師的噩夢。.net用反射機制來解決此類問題,所有操作動態生成,這樣,我們不用在關心服務端的變更會影響到客戶端。只需閱讀介面文件,這樣我們關心的問題轉移到配置檔案。這種方式會犧牲一些效能(反射),這裡我們需要在效能和便於維護之前平衡了。
public webserviceagent(string url,string aa)
throw new exception(sb.tostring());
}
//生成**例項
原理同web services。
3,通過**呼叫方法,這裡主要介紹wcf,因為沒有親自編碼,後面不對webservices在做介紹。
public object invoke(string methodname, params object args)
catch (exception e)
}
這裡我預設返回是乙個集合,因為客戶端不清楚返回集合的結構,而我們又不想編寫多餘的客戶端指令碼,這裡通過datacontractjsonserializer實現到json的轉換。這個前提是服務端實體類通過[datacontract]標記為可被序列化。
//////呼叫指定方法
////////////public object invoke(methodinfo method, params object args)
catch (exception e)
}
4,關於wcf傳遞引數問題,由於沒有客戶端**是動態建立的,我們用 object args存放引數。
服務端**:
[operationcontract]
logincheckresult checklogin(string username, string authorizationcode);
客戶端呼叫:
object args = new object[2];
// args[0] = rtbsend.text;
args[0] = "superadmin";
args[1] = "aaa";
var receive = service.invoke(methodname, args).tostring() ;
這裡service是上面我們動態生成的**,methodname是我們動態解析出來的方法名--checklogin
近年來rest風格服務非常流行,這種鬆散的介面是前端界的一股清流,所到之處,無不誇讚,傳統的web services和wcf備受歧視,輕量級和安全將是未來主導面向服務程式設計的兩大特性
使用xml來傳遞訊息會給您的應用程式帶來許多好處 通過它您可以利用大量的api 跨平台支援 以及用來描述和操縱xml 例如xquery,xslt,xpath和xml schema 的通用工具。你不想關心的許多細節問題也可以由xml來處理 比如行結束 字元編碼 結構化資料和分界 這使您只需將精力集中於...
標準化是制約技術發展的乙個重要因素,也是人們在經歷了大量的異構 不相容問題後的深切體會。目前,eai 是企業進行資訊化改造的主要方法。web services 技術建立在標準性與開放性基礎之上。傳統的安全認證 訪問控制體系結構框架的不一致性使得整個安全認證 訪問控制體系的標準化難以得到控制。服務是封...
概括的說remoting與web services的區別是 1 既支援tcp通道又支援http通道,傳輸速度快 2 即可傳輸xml的soap包又可傳輸二進位製流,效率高 3 remoteing主要用於c s結構專案 4 不一定要依賴iis伺服器 其實現的原理並沒有本質的區別,在應用開發層面上有以下區...