使用 Windows API Code Pack 取得影片長度

11/29/2010
注意:此方法僅適用於 Windows Vista、Windows 7、Windows Server 2008。

先下載 Windows API Code Pack,將套件解壓縮至某個資料夾,例如:D:\Lib\WindowsApiCodePack。

在程式中重新設定 SQL Server 資料表的流水號欄位

11/25/2010
在程式中呼叫 DBCC CHECKIDENT 命令來重設 SQL Server 資料表的流水號欄位。
範例:
string cnstr = "server=.;Database=MyDB;uid=sa;pwd=";
using (SqlConnection cn = new SqlConnection(cnstr))
{
    cn.Open();
    SqlCommand cmd = new SqlCommand("DBCC CHECKIDENT('MY_TABLE', RESEED, 0)", cn);
    cmd.ExecuteNonQuery();
}

Visual Studio 2010 剪貼文字時,中文出現亂碼的解法

11/24/2010
經常需要在 Visual Studio 2010 複製程式碼,再貼到 Word 文件,但經過複製剪貼文字,中文的部分都會夾雜亂碼。每次都要手動修正,還挺麻煩的。這個小 bug,目前至少有兩個現成的工具可以解決。

如何將 ASP.NET 應用程式專案轉換成無專案式網站?

11/17/2010
昨天有位朋友問到,原本的 ASP.NET 應用程式專案,要怎麼轉成網站?

這有點小麻煩。MSDN 上面有一份文件教你如何把 ASP.NET 網站轉換成應用程式專案,可是如果要反過來,把應用程式專案轉成網站,卻沒看到類似的說明文件。

以 KDiff3 取代 TortoiseSVN 內建的差異比對、合併工具

11/17/2010
之前使用 TortoiseSVN 內建的 TortoiseMerge 來做版本差異比對時,有時竟會出現比對錯誤的情形,例如:顯示有差異的地方,卻根本沒有差異。

後來,就把 TortoiseMerge 換掉,改用 WinMerge(在 TortoiseSVN 的 Settings > External Programs 選項底下可以自行設定 Diff Viewer 和 Merge Tool)。

剛剛發現另一個開放源碼的差異比對、合併工具:KDiff3。看起來,它又比 WinMerge 更強一些。

App Pool vs. App Domain

11/14/2010
整理兩個容易混淆的概念:Application Pool 和 Application Domain。

ASP.NET 4.0 的 ViewStateMode 屬性

11/08/2010
ASP.NET 網頁的 view state 機制雖然很方便我們保存網頁的狀態,但有些情況並不需要 view state,若能針對特定控制項關閉 view state,將有助於減少網路傳輸的資料量,並提升網頁的回應速度。

EnableViewState

在 ASP.NET 4.0 之前,網頁和控制項雖然有 EnableViewState 屬性可以控制要不要啟用 view state,但是卻不夠彈性,因為一旦將頁面(或父層控制項)的 EnableViewState 設為 False,那麼無論其子控制項是否啟用 view state 都沒有用,一律為關閉。因此,以往如果要針對特定幾個控制項啟用 view state,就只能讓整個頁面的 EnableViewState 維持預設的啟用狀態,然後再去個別設定控制項的 EnableViewState 為 False。

First We Read, The We Write

11/04/2010
First We Read, Then We Write: Emerson on the Creative Process
by Robert D. Richardson, University of Iowa Press, 2009, 112 pages.

I've just read the first three chapters, and I found it really insightful. For example, why are we reading? In the first chapter (Reading), Richardson says "Emerson did not read in order to pick up the common coin of his culture or class, ....Emerson read for personal gain, for person use." He also says that "Emerson himself read almost entirely in order to feed his writing." Indeed, we should read actively, with some useful objectives, not for showing off, not for chitchatting. It's a plain and simple idea, but I just didn't think of it. Now I  get it, "read was just the means, the end -- the purpose -- was writing."

ASP.NET 4.0 使用 SQL Server 儲存 session 資料的改進

11/04/2010
ASP.NET 4.0 和 ASP.NET 2.0 在使用 SQL Server 來儲存 session 狀態資料時,使用的 table schema 是一樣的,主要的差別在於這個 SQL Server 預儲程序:DeleteExpiredSessions。此預儲程序的用途是刪除過期的 sessions,它會由 SQL Server Agent 定期執行,預設的執行頻率為一分鐘一次。

使用 SmtpClient 發送大量郵件時出現 net_io_connectionclosed 錯誤

11/03/2010
之前曾寫過一篇〈寄送郵件的封包被防火牆檔掉〉的文章,把當時的問題狀況和解決過程記錄下來。事隔一年多,應用程式的郵件發送 log 又出現頻繁的網路 IO 中斷的狀況。上次的情形是只有特定內容的信件才會被防火牆誤判而擋掉,這次則是沒有特定規則,也就是說,同一封郵件,有些人有收到,有些人則因為網路 IO 中斷而沒收到。

Collective Code Ownership

11/01/2010
程式碼共有(collective code ownership)這個概念指的是每個人都有責任修正瑕疵,而且團隊中的任何人也都可以修改應用程式的任何部分。這種做法不僅有助於提升軟體品質,也能鼓勵團隊成員主動發現問題、解決問題(而不是主管有交代才做)。

技術提供:Blogger.