ASP.NET狀態管理的總結
由于HTTP協議的無狀態特性,導致在ASP.NET編程中,每個請求都會在服務端從頭到執行一次管線過程,對于ASP.NET頁面來說,Page對象都會重新創建,所有控件以及內容都會重新生成,因此,如果希望上一次的頁面狀態能夠在后續頁面中保留,則必需引入狀態管理功能。ASP.NET為了實現狀態管理功能,提... ...
jQuery最核心的基礎設施之一——數據緩存模塊進化史
數據緩存系統最早應該是jQuery1.2引入的,那時它的事件系統完成照搬DE大神的addEvent.js,而addEvent在實現有個缺憾,它把事件的回調都放到EventTarget之上,這會引發循環引用,如果EventTarget是window對象,又會引發全局污染。有了數據緩存系統,除了規避這兩... ...
HBase: 看上去很美
hadoop已經得到大規模應用,hbase貌似也有不少大公司在用,如facebook、taobao等。從hbase的設計看,hbase系統堪稱“完美”:LSM、HFile、WAL、zookeeper、Replication等,hbase的性能測試也不差。可惜從實測的結果看,0.94版本的hbase還... ...
XML-RPC 實現C++和C#交互
我們通常會面對這樣的問題:整合不同平臺或不同類庫,這些類庫可能來自不同的語言,甚至不同的操作系統。 如何解決這類棘手的問題呢?一.方案介紹 解決不同語言交互的方法有不少,對我了解的windows系統和.NET平臺,有以下幾種做法:P/Invoke: 調用native cpp的方法,處在同一個內存區間... ...
在 Asp.NET MVC 中使用 SignalR 實現推送功能
Signal 是微軟支持的一個運行在 Dot NET 平臺上的 html websocket 框架。它出現的主要目的是實現服務器主動推送(Push)消息到客戶端頁面,這樣客戶端就不必重新發送請求或使用輪詢技術來獲取消息。
可訪問其官方網站:https://github.com/SignalR/... ...
面試體驗:Facebook 篇
Google、Microsoft 和 Yahoo 都是去年的事情了,接下來說說今年的吧。其實我在豌豆莢非常爽,跟身邊的設計師和工程師合作都很愉快,所以唯一能夠誘惑我去面試的就只有 Facebook 了。最初接受 Facebook 面試邀請的原因并不是追求它的 offer,而是我就想了解一下 Face... ...
如何查找.NET程序內存不斷上漲的原因(CLRProfiler)
前段時間公司新寫的自動升級服務端(Remoting)出現了內存不斷飆升的情況,從最初的七八十兆一晚上竟然飆到了1G多,直接導致客戶端連接服務端失敗,這不科學,后來優化了各種可能造成占用內存的方法(數據庫連接,I/O操作,引用類型釋放),但效果不佳,這下可難為我們了,不知道問題的所在也就不知道該如何去... ...
SQL注入攻防入門詳解
SQL注入是一個歷史悠久卻依然存在的安全問題,很多程序員不知道要如何防止入侵者對數據庫的破壞,我這邊整理了比較詳細的SQL注入攻擊及預防SQL注入的詳細知識,并且包含兩個SQL注入示例,歡迎大家一起學習:入侵者是如何破壞數據庫和我們該如何防止SQL注入 ...
我的技術歷程(上)
招聘后端(Java、Php)前端、數據庫等各類人才(開發經理、架構師、開發、DBA)小的時候有寫日記的習慣,不是自己要寫而是為了完成任務,后來發現寫日記確實也是可以培養語言表達能力的。上了高中之后除了作業就很少寫東西了,趁著這幾天休息想寫一下我使用電腦、學習技術的歷程。一來當作分享,看看大家是否能有... ...
需求與設計過程(1)-用例
1.前言 看過太多的稱得上“三無”的軟件,就是無需求、無設計、無注釋。嚴格的說來,他們的需求和設計其實還是有的,只是沒有用文檔記錄下來而已,但是注釋確實真的沒有。這些軟件從大到小都有,但是他們都有一個共同的特點,就是“難維護”。前幾天和同事聊天,聽說一個XAML的實現要重寫了,用本地協議代替,然后再... ...
解決ASP.NET中的各種亂碼問題
經常發現有人被亂碼困擾著,而我感覺比較幸運,很少為此煩惱過。在這篇博客中,我將把我想到的一些與亂碼有關的經驗總結出來,供大家參考。頁面顯示亂碼問題在一個網站中,有些頁面會正常顯示,然而,有些頁面會顯示成亂碼。如果發生這種情況,可以檢查一下web.config和文件編碼。如果web.config是這樣... ...
消息耦合還是接口耦合
經過上面的比較, 我們可以得出一些結論: 消息方式的強項是耦合性和擴展性,以及監控的方便性,個人感覺比較適合于Server端的規模應用。 接口方式的強項是性能高效以及開發的方便性, 比較適用于同一進程內客戶端的小規模應用。 但是大部分時候, 對于架構師或是公司領導,他們會更關注可耦合性和可... ...
有關T-SQL的10個好習慣
1.在生產環境中不要出現Select * 這一點我想大家已經是比較熟知了,這樣的錯誤相信會犯的人不會太多。但我這里還是要說一下。 不使用Select *的原因主要不是坊間所流傳的將*解析成具體的列需要產生消耗,這點消耗在我看來完全可以忽略不計。更主要的原因來自以下兩點: 擴展方面的問題 造成額外的書... ...
Wireshark基本介紹和學習TCP三次握手
之前寫過一篇博客:用 Fiddler來調試HTTP,HTTPS。 這篇文章介紹另一個好用的抓包工具wireshark,用來獲取網絡數據封包,包括http,TCP,UDP,等網絡協議包。記得大學的時候就學習過TCP的三次握手協議,那時候只是知道,雖然在書上看過很多TCP和UDP的資料,但是從來沒有真正... ...
throw和throw ex的區別
之前,在使用異常捕獲語句try...catch...throw語句時,一直沒太留意幾種用法的區別,前幾天調試程序時無意中了解到幾種使用方法是有區別的,網上一查,還真是,主要是區別在堆棧信息的起始點不同。總結如下:我們都知道,C#中使用throw和throw ex拋出異常,但二者是有區別的。在C#中推... ...
圖解Browser端訪問OAuth2 API的安全性問題與解決方案
OAuth2是基于HTTP的認證API,一般與OAuth2搭配的API也是基于HTTP的REST風格API(比如新浪微博和github),很多人一定想過是否可以直接從瀏覽器端調用REST API。 我最近做了一些這方面的研究,因為OAuth2中有secret key的存在,所以純粹的客戶端是不行的,... ...
老調重彈:年齡大了,碼農何去何從
說明這篇文章是說我的經歷和選擇,沒有任何對從事軟件開發的人員的不敬,更加不是要打擊新入門的開發人員熱情。你有你理解的方式和自由,要在回復那里指責為那是沒有必要的,你有時間還是去多看看書,多寫寫代碼好了。剛在隔壁看見了一個22歲年輕人遙相呼應的文章,在這里羅嗦一下。年輕就是資本,有沖勁,這是最大的優勢... ...
深入淺出SQL Server中的死鎖
簡介 死鎖的本質是一種僵持狀態,是多個主體對于資源的爭用而導致的。理解死鎖首先需要對死鎖所涉及的相關觀念有一個理解。 一些基礎知識 要理解SQL Server中的死鎖,更好的方式是通過類比從更大的面理解死鎖。比如說一個經典的例子就是汽車(主體)對于道路(資源)的征用,如圖1所示。 圖1.對于死鎖的直... ...



