Time of Update: 2018-12-07
完全通過組件對象描述的方式來完成所有資料庫操作是不太現實的事情,所以組件提供SQL和預存程序的執行支援.隨著組件版本的不斷完善在1.7後組件在使用SQL和儲存也是一件極其方便的事情.其簡潔的操作方式相信在其他資料訪問組件中難以體驗到.SQL處理組件提供一個SQL對象用於直接處理SQL語句,由於重寫了運算子,所以對象可以直接通過string來進行初始化. SQL sql = "delete from employees where
Time of Update: 2018-12-07
KFilter是一個高效能的關鍵字過濾組件,它提供了靈活的過濾機制能自適應大小寫,半全形,簡繁和分隔字元處理等。在一台I7的電腦上KFilter處理6k個關鍵字單線程每秒可以達到上千萬字檢索的效能。關鍵字識別KFilter的關鍵字處理是非常靈活,它不緊識別關鍵字本身,對該關鍵字的大小寫,半全形,簡繁和分隔字元等都會歸納到識別範圍內。 KFilter在處理數字和英文的時候也做了一些其他方面的工作,主要防止錯殺的情況;如ava,java顯然不是屬於AV這個關鍵字範圍。使用KFilter使用起來非常方
Time of Update: 2018-12-07
在有些場中存在著大量的訊息廣播轉寄,為了瞭解.net socket tcp在這方面的效能表現,所以做了一個比較極端資訊廣播轉寄強度測試.測試情境是以400個串連資訊相互廣播為測試案例就是當其中一個串連發送訊息到服務端就會轉寄到其他串連上,測試情況分別是每個串連每秒廣播2,5和10次,其伺服器每秒的資訊轉寄量分別320000,800000和1600000.測試的硬體分別是一台win2008伺服器,1台WIN2003和兩個vm win2003.測試互動的訊息如下:class Po :
Time of Update: 2018-12-07
程式的整體組織圖是否清晰?是否包含一個良好的架構全域觀?是否明確定義了主要的構造塊(包括每個構造塊的職責範圍及其他構造塊的介面)?是否明確函蓋了“需求”中列出的所有功能(每個功能對應的構造塊不太多也不太少)?是否描述並論證了那些關鍵類?是否描述並論證了資料設計?是否詳細定義了資料庫的組織圖和內容?是否指出了所有關鍵的商務規則,並描述其對系統的影響?是否描述了使用者介面設計的策略?是否將使用者介面模組化,使介面的變更不會影響程式其餘部分?是否描述並論證了處理I/O的策略?是否估算了稀缺資源的使用量
Time of Update: 2018-12-07
.net提供了List對象來提供可擴容資料存放區,但在使用的過程中相信很多人直接通過預設建構函式進行建立。但這樣做會存在一定的風險導致Lis在擴容過程增加CPU的損耗和GC的壓力,對於問題的嚴重性就取決於實際應用的場合,如果在高並發的應用下存在大量這操作那問題就變得嚴重多了。
Time of Update: 2018-12-07
Silverlight帶了Combox控制項,但這個控制項只能選擇不能編輯,雖然它能定義Item外觀,但如果下拉選擇是一個DataGrid控制項似乎就不好定義了.還好Silverlight提供了一個靈活的Popup控制項,通過它能實作類別似於ComboGrid的功能. 先看一下需要的功能效果: 我們需要在選擇項後自動地把選擇的資料填充到相關性的兩個TextBox中.實現這個功能我們選擇了TextBox,Button和一個自訂的Popup
Time of Update: 2018-12-07
組件支援屬性轉換描述,主要用於對象屬性值和資料存放區之前的轉換,如常見的枚舉和數值,枚舉和字元,使用者密碼等資訊轉換儲存。實際上也可以擴充更靈活的轉換如對象關聯欄位轉換,對象序列化轉等等。 在Smark.Data描述一個轉換器是一件很簡單的事情,只需要繼承PropertyCastAttribute對象並重寫兩個方法即可,以下是一個簡單的枚舉和數值的數值轉換 public class EnumToInt : PropertyCastAttribute {
Time of Update: 2018-12-07
之前介紹Beetle的應用都是基於自訂訊息,那給人的感就是這個組件只能做這方面的用途.其實Beetle只是一個基礎的Tcp組件,在它的基礎上可以完成其他協議通訊上的工作.以下是通過Beetle簡單地製作一個httpProxy 伺服器,為了驗證這個Proxy 伺服器的功能編寫這文章也是通過httpProxy 伺服器來提交.以下描述Beetle實現這個功能.
Time of Update: 2018-12-07
Flash是現有網頁中最流行的富用戶端表現軟體,所以組件支援Flash對象協議通訊也是非常有必要的事情.由於組件可以通過擴充協議分析器來相容不同協議處理,所以可以通過使用FluorineFx就可以簡單地實現基於AMF3的協議和Flash進行TCP通訊.如果有瞭解之前的Protobuf的擴充,那擴充AMF3也是很簡單的事情.定義協議格式同樣在互動前要明確一下協議的格式先,只有這樣才可以方便的進行代碼編寫實現.協議比較簡分別訊息總長度和內容,內容即是AMF3協議資料.實現具體的分析器和訊息適配器協議
Time of Update: 2018-12-07
在tcp通訊中為了資料安全在某些情況下對資料進行加密傳輸是很有必要的,可惜的是MS並沒有為Silverlight提供一些標準的加密功能實現.如果你想在Silverlight中使用RSA或DES這些標準的密碼編譯演算法,那真的不好意思MS並沒有提供...不過我們可以使用一些基於Silverlight開源實現的加密庫,以下就是一個開源的RSA加密庫http://scrypt.codeplex.com.
Time of Update: 2018-12-07
其實Flash上做通訊很多情況都選擇AMF,畢竟他是AS內部基於對象進位序列協議,容量小效率高。但有時為了去調用一些已經有的Tcp服務,而這些服務並不是提供AMF支援;這時你就不得不實現一個協議的分析。其實AS提ByteArray提供了很多write和read方法,這樣使我們應用起來非常方便。以下是用AS簡單封裝基於訊息頭描述大小的協議分析器。 為了更好地管理訊息,通過一介面來制寫訊息寫入和讀取規範。package Beetle.AS{import
Time of Update: 2018-12-07
在網路通訊中會經常面對一種情況就是資訊廣播轉寄,比較常見就是QQ群聊天。群裡的人只要發一條資訊就會廣播到群裡的其他人,不過這種轉寄量是非常的少一般情況下直接把通過對應使用者的socket.send方法發送出去即可。但有些情況並不允可你這樣,為什麼呢?因為在某些情境下這些資訊的轉寄量和密集度是非常之高,數量可以達到每少10w,20w,50w,100w或更多,也許你的伺服器效能好每秒10w的IO不算什麼問題,那面對一100W或更多的訊息轉寄呢?有人會可能會問那來這麼多的轉寄量,其實一個同場5
Time of Update: 2018-12-07
Protobuf是google制定的一種對象序列化格式,而在.net下的實現有protobuf-net.而protobuf-net在序列化方面有著出色的效能,效率是.net二進位序列化幾倍,而序列化後所佔的空間也少於.net二進位序列化;除了以上兩個優勢外Protobuf有著一個更大的優勢就是和其他平台互動的相容性,在現有大部分流行的語言平台中基本都有Protobuf的實現.因此採用protobuf進行對象序列化是個不錯的選擇.接下來詳細講解Beetle實現對protobuf-net支援.定
Time of Update: 2018-12-07
Smark.Data.I2MGenerator是Smark.Data組件的實體類產生工具,安裝完成後會自動添加到VS外掛程式裡。通過該外掛程式可以通過編寫一個簡單的接類檔案就能自動產生相對應實體類檔案,從而降低實體類的編寫的複雜性。程式支援winxp,win2003,win7下的VS2008和VS2010(暫時只支援c#)。
Time of Update: 2018-12-07
文章目錄 查詢可填充到自訂對象中預存程序執行
Time of Update: 2018-12-07
最近要針對Flash和Silverlight寫一些Socket通訊的用例,由於這兩者的Socket出於安全性考慮都需要一個Prolicy Server.在網上找了一下發現都只是代碼沒有相關程式直接用,於是就用Beetle實現了Flash和Silverlight的policy Server,使用的時候根據情況配置開啟Flash或Silverlight.如果需要兩者同時可以開啟,以下簡單地介紹實現過程。 首先我們必須知道Flash和Silverlight信任檔案是怎樣的.
Time of Update: 2018-12-07
其實我一直想不明白HTML5封裝個應用程式層辦議作為Socket通過基礎目的是為了什麼,其實直接支援Socket
Time of Update: 2018-12-07
WebSocket是HTML5裡提供的一種便於TCP長串連通訊的協議機制,隨著HTML5的普及這種技術的使用會變得越來越廣泛,由於Beetle可以靈活地擴充不同的協議,那自然而然對WebSocket支援也是一件非常簡單的事情.對於WebSocket的協議分析處理就不詳細描述可以參考下載程式有完整協議包代碼,如果想更詳細瞭解Websocket的協議可以到這裡:http://datatracker.ietf.org/doc/rfc6455/?include_text=1 下面講述如何使用Beetle
Time of Update: 2018-12-07
HTTP代理在互連網中使用的情況比較多,不過一很多都以負載的方式部署,前置HTTPProxy 伺服器背景N台HTTP應用伺服器.主要功能是提供負載,緩衝等功能.以上是簡單的HTTPProxy 伺服器應用情況.而接下來講的是針對使用者的HTTP代理,為什麼需要這種代理呢?很簡單因為使用者有某些情況不能直接存取HTTP
Time of Update: 2018-12-07