介紹
ESFramework是一套可高度復用的、靈活的、單純而又強大的.NET通信框架,全部採用C#編寫。採用ESFramework框架,開發人員將不再需要了解Socket、不用再關心底層與通信相關的一切瑣碎的事情,而可以在一個更高的層次上更快地開發高效穩定的網路通信套用。例如,即時通訊系統(IM),大型多人線上遊戲(MMORPG)、線上網頁遊戲(WebGame)、檔案傳送系統(FTS)、數據採集系統(DGS)、分散式OA系統、遠程教育系統等等,凡是需要分散式通信的系統都可以使用ESFramework框架。
優點
高性能
ESFramework底層使用IOCP模型,使得數據收發與處理達到最高性能。當前主流配置的伺服器(如至強4核雙CPU、4-8G記憶體)可輕鬆處理10000個同時線上連線,每秒處理50000個以上的請求。當然,最終能達到的並發,更取決於具體套用的業務邏輯,如果業務邏輯複雜、處理單個請求都對CPU和記憶體的消耗都比較高,那么就會導致並發數下降,這時也許就要最佳化我們的業務邏輯代碼了、或者使用更多的伺服器來分擔負載(比如遷移到ESPlatform)。
可靠、穩定
ESFramework核心(ESFramework.dll)已經相當成熟穩定,其所有已經發現的bug都已被解決,而且自從2009年以來,沒有新的核心的bug被發現。另外,ESFramework只會在需要時才使用必要的資源(如CPU、記憶體),並且會及時釋放持有的資源,不會有記憶體泄露等情況發生。如果您的業務邏輯代碼沒有bug,那么基於ESFramework的服務端正常運行一年,都不用重啟一次。
功能強大豐富
現有的大多數通信框架僅僅解決了通信層的問題,而且幾乎都是部分地解決。而ESFramework不僅僅完整地解決了通信層的需求,並且也解決了絕大多數通信系統中都關注的套用層的重要問題,這使得基於ESFramework開發分散式通信系統更迅速、更高效。
在通信層:ESFramework 支持TCP/UDP(支持可靠的UDP通信)、文本協定/二進制協定、服務端/客戶端以及它們組合的任意方式,並提供多種通信引擎供服務端開發人員和客戶端(包括Windows桌面客戶端和Silverlight,以後還會提供flash、iphone、android客戶端引擎)開發人員使用。
在套用層:ESFramework 內置了線上用戶管理、訊息攔截、訊息同步調用、客戶端登錄驗證、心跳檢測、訊息優先權、斷線自動重連、線上狀態改變自動通知(好友與組友)、重登入模式選擇、完整的異常日誌、檔案傳送(支持斷點續傳)、組廣播、帶ACK機制的信息傳送、高效的二進制序列化器、等等功能。
可靠的P2P
ESFramework提供了基於TCP和UDP的P2P通信,而且ESFramework在原始UDP基礎上做了增強,以保證基於UDP的通信也像TCP一樣可靠。在客戶端之間需要高頻通信的分散式系統中(如IM系統等),可靠的P2P通信將為您節省巨大的頻寬和伺服器成本。
高伸縮性的群集平台
ESPlatform平台支持基於ESFramework的應用程式的Cluster(群集),其內置了3種最常用的負載均衡策略。在不需要修改代碼的情況下,僅僅通過配置就可以將一個基於ESFramework的應用程式平滑遷入到ESPlatform平台中,以實現多台套用伺服器的Cluster,從而應對日益增長的巨大並發。使用ESPlatform群集,我們可以非常方便地在運行時動態添加/移除套用伺服器(AS)、廣播伺服器(BS)、轉發伺服器(TS)等實例節點。
可擴展性強
ESFramework規定了訊息處理的骨架流程,並在骨架中提供了足夠多的擴展點,使您可以輕鬆地掛接您自己開發的組件(比如加密/解密組件、或訊息監控組件等)。另外,ESFramework在設計和實現時採用了接口分離原則,使得大多數內置組件都可以被自定義的組件所替代。
適用範圍廣
ESFramework 可以用於任何需要分散式通信的軟體系統中,而且其群集功能還可以支持那些同時線上用戶數巨大的系統。比如,即時通訊系統(IM),大型多人線上遊戲(MMORPG)、線上網頁遊戲(WebGame)、檔案傳送系統(FTS)、數據採集系統(DGS)、分散式OA系統等等。
ESFramework/ESPlatform是基於.NET 2.0 構建的,所以,無論您使用的是VS2010、VS2008,還是VS2005都可以使用ESFramework。而ESFramework的SL客戶端引擎基於Silverlight 3.0構建,使用SL3或更高版本SL的您都可以使用ESFramework進行Silverlight套用開發。另外,ESFramework無需任何修改就可以直接在64位系統上運行 。
文檔齊全、接口清晰規範
ESFramework提供的所有接口和API都具有良好的編碼風格,與.NET Framework完全一致。ESFramework提供了MSDN風格的幫助文檔、Demo源碼、快速上手等系列文章供您研究和學習使用ESFramework進行開發。
使用簡單、上手容易
ESFramework 雖然功能強大豐富,但是使用非常簡單,因為其採用了優秀的架構設計和實現,將複雜性都禁止在了框架的內部,暴露給使用者的都是簡單易用、清晰明確的API。而且,ESFramework還提供了Rapid引擎給使用者進行快速開發,從未接觸過ESFramework的人,也可以在1-2個小時之內便上手使用Rapid引擎開發分散式通信系統。