2011年7月14日 星期四
如何得知一個 Console Application 被終止
著實嚇了一跳! 畢竟很常開 Console Application 類型的專案是沒錯啦,不過通常只用來寫些 sample code。
不太會在正式的應用上再寫成 Console Application 了,這種問題感覺就是"那A加你甘丹",還真是連想都沒想過。
因為在放暑假的關係 XD,既然有空檔,那就來研究看看好了,要解決這個問題,初步的構想是從 AppDomain 著手。
2010年10月12日 星期二
利用 Regex.Replace 的 MatchEvaluator 委派進行樣板字串置換
我們在程式寫作的時候的時候,偶爾會遇到需要處理樣板的情況,例如:
Hi! XXX您好,您X月的贍養管理費未繳,請盡速繳納...
2010年10月10日 星期日
使用 NPOI 在匯出的 Excel 檔中逐列內嵌圖片
在分享的案例中,我將使用 ASP.NET MVC / C# 利用 Google 搜尋圖片的功能,將關鍵字搜尋到的圖片,導出至 Excel 工作表中的每一列,見圖如下:
匯出的 Excel 內容為搜尋到的每張圖片,不過我沒將圖片完整輸出,而是產生縮圖後才輸出。
懶人的 VBA 程式寫作法
由於某個衝動的承諾,最近再次接觸到 VBA (Visual Basic for Application) 程式碼,對 Excel 工作表進行客製化。雖然需求挺簡單的,程式碼也不多,可是寫 VBA 這件事對我來說,並不是像寫 C#/.NET 一樣容易遇上,再加上 VBA 中很重要的 Office Object Model 還挺複雜的,小弟實在沒辦法塞太多 Office Object Model 的東東在腦子裡,這時候要靠文件嗎?可能一個小小的需求就會查到我天昏地暗,寫不下去…
所以在這邊分享一個小方法,能讓你快速的使用 VBA 完成你的工作,懂得一些 VB 的邏輯與控制結構語法即可,關於 Office Object Model 就借助工具幫忙。
2010年10月1日 星期五
離開 LINQ 的 Expression Tree (一)
Expression tree 自此之後開始快速欺凌擴展 .NET 程式設計師的視野,應用之廣泛像是 ASP.NET MVC 2 中開始提供在強型別 View 中應用 lambda 運算式 (lambda 也是一種 expression tree) 來作為舊語法無法支援 IntelliSense、編譯時期檢查和 refactoring support 的取代品(強烈建議使用),可參考 ScottGu’s Blog - ASP.NET MVC 2: Strongly Typed Html Helpers 這篇文章,相信有經驗的你很快的可以分辨出孰優孰劣。
我自己則是應用 expression tree 在推論引擎的實作上,先提一下推論引擎。前一段時間為了實作規則庫推論引擎(專家系統的一種分支),花了一段時間研究,這種系統的特性是:一個規則庫(Rule Base 或 Knowledge Base)、工作記憶體(Working Memory)與推論引擎(Inference Engine),架構大致如下:
2010年9月15日 星期三
Javascript 的 prototype 特性與使用方法
// 以 function 為建構子
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
//然後活化類別
var p = new Person("Dino", "Wang");
如你所見這樣的類別並不具有"成員函式",所以當你需要成員函式時你可能會手動繫結上去
// 附加一個匿名函式到 p 實體
p.fullName = function () {
return this.firstName + " " + this.lastName;
}
這樣的問題是,每一個被活化的類別都需要進行一次上述動作(以下稱為成員繫結),如果你這類別會產生多個物件,就會造成匿名函式重複產生的問題(浪費記憶體)
設定 ASP.NET MVC 2 編譯時期檢查 View 的設定 MvcBuildViews 導致編譯失敗
... true ...
隨後編譯即出現:
無法載入型別 'System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider' 錯誤,
結果追蹤到這篇,才發現是因為專案使用 Entity Framework 的關係,在 web.config 中增加
...
即可順利編譯囉。