2010年4月8日 星期四

偵錯建議 Debugging Suggestion

Dear all G-Factor's lovely engineers,

大家在開發程式時, 請多使用執行模式 + 檢視 Log, 少用模式設中斷點,

執行模式 + 檢視 Log 的優點如下:
  • 啟動快速, 資源用量少, 效能較佳
  • 執行結果接近真實狀況
  • 訊息量大,且細節多
  • 記錄的Log的程式碼, 可以留下, 且不斷被重覆執行使用, 亦具有註解的功能
  • 多數網頁程式可以立即更新, 檢視結果, 不需重新啟動, 程序重來
模式設中斷點的缺點:
  • 啟動緩慢, 資源用量大, 效能較差
  • 模式的容性較高, 但那不是真實環境的狀況
  • 只能看見當下執行點的資訊
  • 每次, 都是一次重新的來過, 完畢, 什麼都沒留下
  • 發現問題所在, 必需中斷除, 修改程式, 重新測試流程
那何時才使用模式+中斷點? 很簡單, 當以執行過程+Log檔看不出Bug原因時, 就在適當處中斷後仔細看. 最後大家會發現, 這種狀況並不常發生, 執行過程+Log檔檢視, 已可以解決多數問題.

然而, 檢視 Log通常需開啟Log檔, 且要隨時更新檔案, 以檢視最新訊息, 似乎很麻煩.
附件中有一個很不的Log檢視工具, 可以看見立即更新的Log內容, 更可以設定特定訊息的顏色, 例如誤設紅色, 不重要的訊息用淡色, 附圖是其執行畫面, 下載後Rename副檔名為exe.

方法很多, 要交插活用, 不是一個Debug Mode+中斷用到底. 執行模式 + 檢視 Log 的優點很多, 最重要的是每次後都會留下一些東西(Logging Code), 日後自己和別人都受惠, 我認為, 優秀工程師和平庸工程師的差別, 通常就在這一點.

以上建議適用Java專案和.Net專案. 尤其是.Net專案, 因為Microsoft把工具做的太好, 造成過度使用, 而忘記(或根本不知)正確的除觀念.

Eric

2010年1月23日 星期六

台灣美人計時


測試Blog的iframe功能, 果然好用~

2010年1月12日 星期二

The type '[class]' exists in both '[dll location]' and '[dll location 2]'

別急, 每當發生了這個問題,
原因幾乎都是同一個---
ASP.Net 專案中, 有二個不同的aspx.cs or aspx.vb 中, 卻有同樣的 class name,

A.aspx.cs:
public partial class A : System.Web.UI.UserControl
{
...
}

B.aspx.cs:
public partial class A : System.Web.UI.UserControl
{
...
}

大家Copy程式碼時, 要多加小心了~

2010年1月2日 星期六

Oxite 使用心得

我想找一個好用好改的ASP.Net CMS,
原來是對Oxite充滿期待的,
後來發現它的成熟度還太低,
功能上也還僅是一個Blog Builder,
離我想要的Web Site Builder還差太遠,
或許它目前會是一個不錯的ASP.Net MVC 實例.

目前將把目標放在DotNetNuke,
以下是學習的進入點:
再和各位分享使用心得.

Oxite 安裝心得

安裝程序原則上就如以下CodePlex官網所示:
http://oxite.codeplex.com/wikipage?title=gettingstarted&referringTitle=Home

但我仍遇到2個例外:
  1. 在編譯過程中, 發生找不到 Micrisift.Security Assembly 的錯誤, 原來是要到:
    http://www.microsoft.com/downloads/details.aspx?FamilyId=051ee83c-5ccf-48ed-8463-02f56a6bfc09&displaylang=en
    下載 Microsoft Anti-Cross Site Scripting Library V3.1 檔名: AntiXSSV31.msi
    並安裝才行.
  2. 執行後又發生了一個找不到 "Page" 之類的錯誤,
    後來發現原來是 DB Connection String 設錯, 不能使用系統預設的連線字串, 必須改為自己系統的的連線字串, 以連到自己的Database, 例如原來的連線字串為:
    Data Source=.\SQLEXPRESS;AttachDBFileName=|DataDirectory|Oxite.Database.mdf;Integrated Security=true;User Instance=true;
    必須改為:
    Data Source=AERO\SQLEXPRESS2008;Initial Catalog=Oxite;Persist Security Info=True;User ID=sa;Password=*****
在解決這2個問題後一就如官網所述可以進入首頁了.