The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何在 ASP.NET 取得正在執行的 IIS 版本資訊

由於每個 IIS 版本之間多少都會有功能上的增進與架構上的差異,像我們在寫 ASP.NET MVC 的時候有時後就需要依據 IIS 的版本來做出一些特別的判斷,所以必須透過程式來取得正在執行的 IIS 版本資訊,在 ASP.NET 裡取得正在執行的 IIS 版本資訊原本是一件容易的事,不過當遇到了跟我們一樣的特殊情況就沒那麼簡單了,有興趣的就繼續看下去。

... 繼續閱讀 ...

如何利用批次檔(Batch)讀取指令執行的結果或文字檔案內容

最近從 Visual Studio 2010 的 建置部署套件 功能自動產生的網站安裝批次檔中學到一個批次檔的使用技巧,他可以透過批次檔直接讀取機碼(Registry)的資訊並擷取出執行檔所在路徑,這樣一來就不用將執行檔所在的路徑寫死在批次檔裡,是非常彈性的一種方法,藉此也剛好把批次檔的 FOR 語法的使用方式給釐清一番,這樣一來以後要透過批次檔讀取或解析文字檔就更方便了。

... 繼續閱讀 ...

ASP.NET MVC 單元測試系列 (6):測試 Routing 路由規則

有了前 5 篇的觀念支持,我們要開始對 ASP.NET MVC 專案的各個部分進行單元測試了,接下來的文章就會是一篇一篇的單元測試開發技巧,如果各位還有觀念上不清楚的地方,我會再用其他文章來解釋模稜兩可的觀念,尤其是介於「單元測試」與「整合測試」之間的灰色地帶或 TDD (測試導向開發) 等觀念,我想總要先讓各位先打從心裡願意開始撰寫單元測試比較重要吧!今天的文章會講解 ASP.NET MVC 的 Routing 路由規則如何進行單元測試。

... 繼續閱讀 ...

ASP.NET 發現重大資安弱點影響範圍涵蓋 ASP.NET 1.0 ~ 4.0

幾天前有兩位資安研究員 (Thai Duong and Juliano Rizzo) 發現了一個 ASP.NET 的資安弱點,主要的點出在 .NET 實做 AES 加解密演算法的問題,駭客透過這個弱點即可在短時間內猜出你網站的加密金鑰進而入侵你的網站系統,在 ASP.NET 裡使用到加解密的地方非常多,像是 Forms Authentication 與 ViewState 都是非常常見的功能,加密金鑰 (MachineKey) 被猜到之後就可以讓駭客用任意身份使用你的網站或任意竄改 ViewState 中的狀態資訊,嚴重性非同小可,各位一定要即時因應。

... 繼續閱讀 ...

ASP.NET MVC 單元測試系列 (5):瞭解 Stub 假物件

前天的文章我介紹了 Mock 假物件 (Fake Object),今天要講另一種假物件稱為 Stub 假物件,這種假物件目的與用途都跟 Mock 非常相近,總之就是為了讓單元測試程式可以順利執行而生的一種開發方式,這兩種假物件類型在單元測試的領域都非常重要,而且各有各的存在必要性,在日後單元測試的日子裡都會經常用到這兩個東西。

... 繼續閱讀 ...

ASP.NET MVC 單元測試系列 (4):單元測試的目的與價值

透過前三篇的系列文章,不知道初學者能不能上手開發單元測試,畢竟這對許多人來說是個新玩意,不只是單元測試是新的,可能許多人連 ASP.NET MVC 都沒玩過,那就更難跟上了,不過只要有心,人人都可以當大師 (靈感來自於周星馳經典台詞之食神)。若你開發的是 ASP.NET MVC Web 應用程式,到底單元測試要測試些什麼?可以測試些什麼?測試的範圍又是多少呢?

... 繼續閱讀 ...

ASP.NET MVC 單元測試系列 (3):瞭解 Mock 假物件 ( moq )

我們在上一篇已經得知「可測試性」的思考方向,在本篇文章我們將利用 Mocking 技術強化之前修改過的測試程式,讓我們的單元測試程式可以完全脫離「外部資源」的魔掌 (在此範例是指資料庫連線),我們將使用 moq 工具函式庫協助我們的測試程式更容易、更快速的撰寫,至於 moq 的安裝可參考 moq 官網或 ASP.NET MVC 2 開發實戰 一書【12-3-7 利用Mock假物件完成單元測試】章節的說明 ( P.398 )。

... 繼續閱讀 ...

ASP.NET MVC 單元測試系列 (2):可測試性 (Testability)

為什麼人家說 ASP.NET MVC 的可測試性很高?這是真的嗎?為什麼實際在寫 ASP.NET MVC 單元測試的時候卻綁手綁腳的,很多時候連怎麼開始寫測試程式都摸不著頭緒。由於 Web 環境下能開發的功能很多,程式碼的多樣性也很大,有時後複雜度也很高,寫出能動的程式已經不容易了,所以以往總是用隨心所欲的方式開發,不過現在不能這樣寫了,為了讓開發過程中都能不斷的撰寫單元測試,有時後你必須妥協,寫程式的時候要時時刻刻想到你寫的這行程式碼需要被測試,所以你要套用一些 設計樣式 (Design Pattern) 來撰寫程式,好讓你未來撰寫測試的日子更加好過。

... 繼續閱讀 ...

ASP.NET MVC 單元測試系列 (1):新手上路 / 開始撰寫!

因為軟體測試越來越重要,而單元測試正是跨出軟體測試重要的第一步,不過軟體測試的學習之路卻異常艱辛,最主要的難處在於沒有人可以討論,不知道什麼是對?什麼是錯?判斷的依據在哪?哪個決定好?哪個決定壞?什麼才是最恰當的?千千萬萬個疑問不知道從何下手?所以我預計寫一系列與 ASP.NET MVC 單元測試的文章,一方面透過寫作的過程幫助自己釐清各種測試的觀念,另一方面也可以跟四面八方開發人員互動,期望能獲得最正確的觀念。

... 繼續閱讀 ...

Windows Vista / Windows 7 無法登入 NAS 或 Samba 的解法

公司裡有台老舊的 NAS 主機,由於作業系統是用 Linux-based 而且用的是很舊版的 Samba 版本,所以只要是 Windows Vita 或 Windows 7 作業系統的機器在不修設定的情況下都無法連接上那台 NAS,你可以看到第一層的分享清單,不過點進去就會一直叫你輸入帳號密碼,而且永遠都不會成功,如果該 NAS 有加入 AD 的話,還會害你的帳號被 AD 鎖定 (因為密碼驗證錯誤太多次),遇到這種狀況就必須修改電腦設定才能正常存取。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (20):與原始碼共舞 ( .NET 4.0 )

由於我們有個專案已經升級至 .NET 4.0,而我希望在開發時期要將 ASP.NET MVC 2.0 RTM 原始碼連同原專案一起開發,其實在不更動 System.Web.Mvc 專案的目標 Framework 為 3.5 的情況下是可以正常運作的,不過若像我們遇到一些比較特殊的情況可能會希望連 System.Web.Mvc 專案的目標 Framework 一併升級到 .NET 4.0,雖然升級後可以正常編譯,但是卻會在執行時期發生錯誤,以至於根本無法進行除錯,這時就必須動點小手腳才能讓 ASP.NET MVC 網站成功執行。

... 繼續閱讀 ...

讓 iPad 使用 Wi-Fi 穩定上網的終極攻略

前陣子公司接了個 iPad 的開發案,這是一個為 Johnnie WalkerJohnnie Walker 調和工藝巡禮時刻 活動所設計的案子,其應用會在 2010年台北國際烈酒展 與各大百貨公司或大型購物賣場使用,但開發的過程卻非常不順利,原本以為是我的程式沒寫好,但後來證實 iPad 的 Wi-Fi 連線能力的確有些問題,經過無數測試與驗證之下,我終於找出一個對 iPad 來說最穩定的設定值,也在上線的前一天克服了所有連線問題,真的是有驚無險,這次的經驗實屬難得,因此留下文章記錄造福未來與現在的 iPad 迷。

... 繼續閱讀 ...