我們其實可以透過許多工具取得 .NET 應用程式執行時在記憶體中的資料,例如:WinDbg 或 Debug Diagnostic Tool。而當你在 .NET 程式中需要將一些較機密的資料暫存在變數(物件)時,若單純的使用 System.String 類別建立執行個體(Instance)儲存資料,就很容易被一些除錯工具或傾印(dump)工具取得原始資料,原因是 System.String 類別是不變的(immutable),且當不再需要它時也無法透過程式排程進行記憶體回收。所以當你使用 System.String 類別儲存文字內容在記憶體中,就很難保證在物件不用了之後能夠即時在記憶體中刪除,這樣的程式就有被資訊揭露(Information Disclosure)的安全風險。
... 繼續閱讀 ...
我們通常在寫 LINQ to SQL 專案時,都會利用 Visual Studio 2008 內建的 LINQ to SQL DBML Designer 讓我們透過視覺化的介面將資料庫表格、檢視表或預儲程序從 Server Explorer 拖曳到設計視窗中,不過缺點就是當資料庫結構(DB Schema)改變了之後就需要跟著修正,我通常有以下選擇:
... 繼續閱讀 ...
我們之前有位新手工程師(現在已經不新了)曾經在 ASP.NET 中使用 Environment.CurrentDirectory ( 取得目前之工作目錄的完整路徑 ) 來存取網站內的檔案,一般來說很少有人會用 Environment.CurrentDirectory 來存取網站上的檔案路徑,我自己猜測應該是一般的 C# 書籍都是用 Console Program 來撰寫範例,所以可能是新手上路搞不清楚狀況才這樣寫,而且在 Visual Studio 的開發環境中這樣使用還真的不會出錯呢!所以才導致新人一直使用錯誤的方法開發,直到程式被部署到測試主機後才發現程式無法執行。
... 繼續閱讀 ...
等候已久的 Microsoft SQL Server 2008 Express 版終於發行了,如果你已經安裝了 Visual Studio 2008 Service Pack 1 ( 包括 .NET Framework 3.5 SP1 ) 的話,還必須先安裝 Windows Installer 4.5 才能夠順利的安裝 Microsoft SQL Server 2008 Express 版。
... 繼續閱讀 ...
本次推出的 Microsoft Visual Studio 2008 Service Pack 1 (SP1) 除了更新 Visual Studio 2008 之外,同時也包括了 .NET Framework 3.5 Service Pack 1 的更新,除了修正許多重大問題外,在執行效能、穩定度都有顯著的提升,建議 Visual Studio 2008 的使用者進行全面更新。
... 繼續閱讀 ...
大家都知道 Fiddler 可以用來做 HTTP 追蹤/除錯,尤其是對 JavaScript/AJAX/XHR 使用頻繁的今天更是必備的工具之一,除了可以抓取所有 HTTP 的封包外,Fiddler 還可以用來修改透過 HTTP 傳回來的網頁內容(HTML)、JavaScript 檔(*.js)、CSS 檔(*.css) 或任何圖檔,都可以透過自訂的 Fiddler Script 或 Extension Plugins 進行修正後再傳回到瀏覽器中,這對於已經上線的網站來說,十分的適合用來測試 HTML/CSS/JS 修改過後的顯示結果。
... 繼續閱讀 ...
我之前就講過 Regular Expression 是學一次用一輩子且是程式設計師一定要學的技能之一,不過由於 Regular Expression 的語法太過特殊且功能強大,讓許多人在初學的時候就很害怕,甚至乾脆不學,有需要的時候就到網路上到處找,雖然也能解決問題,不過複製一個看不懂的東西內心總是不太紮實的,所以我建議無論如何任何一位程式設計師都一定要花時間學會看懂所有 Regular Expression 語法,並進而自行撰寫所需的 Regular Expression 表示式。
... 繼續閱讀 ...
因為常常需要跟國外 Blogger 交流,甚至回報某些國外 .Net 產品的 Bug 給他們,所以常常都要自行翻譯「例外訊息」( Exception Message ),不過有時後真的會翻錯。再者,若在開發 .Net 時遇到一些很少見的問題,用中文搜尋不到時,可能會想將訊息翻成英文後再搜尋一次,不過也有可能因為翻譯錯誤導致搜尋結果不夠精準。所以若能夠在除錯的時候輸出英文版的例外訊息,那該有多好阿!
... 繼續閱讀 ...