Category: kb

前些時候,為了解決MatserPage下元件的ClientID會被加註Prefix的問題,我寫了一段彈性化找尋ClientID的Javascript Function取代document.getElementById(),並且為了確保WebControl在產生HTML的同時就可以插入Javascri...

為了測試使用System.Data.OracleClient、ODP.NET(Oracle.DataAccess.Client)與TransactionScope三者的效能差距,我設計了以下的實驗,分別用三種方式(因ODP.NET 9207還不支援TransactionScope,所以Transac...

上回我提了一個解決套用MasterPage時ClientID會突變的方法,其中提到: 我不喜歡document.getElementById('<% =TextBox1.ClientID%>').value這種ASP時代義大利麵式的寫法。 網友eric問: 為什麼不愛? 義大利麵先生,你...

[Abstract] When using ASP.NET masterpage, the ClientID of webcontrol inside ContentPlaceHolder will get container's ClientID as prefix, like 'ctl00_...

大部分的.NET開發者都知道,要做大量的字串相加,StringBuilder比string相加快上N倍。這個效能差異源於String物件的特性,每次"動態相加"時必須捨棄原字串佔用的記憶體空間,重新配置記憶體儲存相加後的新字串內容。只是背後的原理實在曲折,於是我們腦海只會留下"串接字串千萬要用Str...

上了一課! 我寫了一段Code,利用catch SqlException偵測Deadlock, 前兩次延遲一小段時間再試,第三次則直接丟出Exception。在少數特殊情境下,程式要先切換成特定使用者身份,待處理完成後再切回系統身份。程式示意如下: 1: try 2: { 3: ...

前幾天幫同事看一個WinForm問題,明明有Primary Key限制的DataTable,卻冒出數筆PK相同的資料,Grid還會發狂似地不斷捲動。 由於資料的更新動作來自非UI Thread,我們首先懷疑的就是Threading Issue,不過該問題只出現在尖峰時刻資料量爆多的情境下,在測試台中...

最近有個需求,要在Windows Form中做出如下的軟體授權同意畫面,使用者必須閱讀完授權書晝面,按下"接受"才可以繼續使用。(會仔細讀軟體授權書的人請舉手! 那個戴眼鏡的胖子,你確定你有? 要誠實哦... 很好,跟我想的一樣,Nobody!) 以下是我這次想出來的寫法,有幾項特色,介紹給還不...

  已經上線運作的網站系統,使用者又提出會動搖國本的核心功能修改需求,此時你會? 1) 警告使用者修改後可能導致家破人亡,然後立即裝忙忘記使用者曾說過什麼?2) 硬著頭皮改完,苦著一張臉花十八小時把所有相關功能重新測過一次3) 修改程式後即刻上線,將使用者編制為”虛擬測試團隊”,等著蒐集”...

一個小測驗,請用大腦編譯並執行以下的程式,試著回答Q1-Q7的結果為何? 這個測驗可以檢定你是否對.NET的Value Type與Reference Type已有正確認識。 struct MyStruc { public string Name; public string Data...

公司的Sharepoint Portal(現在應該叫MOSS,但我老覺得會跟摩斯漢堡搞混)上線後,效能一直不太理想。 在Portal中,我們有另外開發了一些Web Application程式,有ASP也有ASPX,掛在SPS的網站下建成Virtual Directory。結果一到尖峰時間,偶爾會發生...

過去在ASP時代,若想將資料保存在Server端,我們可以用Session或Application(雖然在談Scalability時,會建議避用這類Stateful的設計,不過那又是另一個一千零一夜的故事了,這裡先不提)。在ASP.NET中,有另一個好用的選擇: Cache 比較起來,Cache比較...

最近在處理表單引擎的Deadlock問題,由於引擎核心以物件導向方式開發,很難為了資料庫的更新問題去挪動物件的呼叫順序。但還是努力做了調整,每天Deadlock的發生次數終於壓到個位數,但要100%避免看來是不可能的(至少以我的能力來說是如此)。既然逃不掉,就乖乖面對吧! 一般處理Deadlock...

如果大家跟我一樣,常整合外部程式搞一些有的沒的,那一定可以用到這個函數。 它最常見的情境是整合一些好用的命令列工具(通常是用來查詢資訊),把它辛苦執行的結果佔為已有。例如: netstat -oa可以列出機器的網路連線狀況。如果我們希望要在.NET程式中提供這類資訊,要怎麼寫? 我們當然可以設法想...