關於 Visual Studio 2010 與 .Net 4.0 的新功能展示影片

今天參加 Microsoft MVP 的聚會,在研討 Microsoft Visual Studio 10 開發工具技術應用座談會中我有提到一個在 Channel 9 有個 10-4 的專題系列影片,裡面講解許多關於 .Net Framework 4.0 與 Visual Studio 2010 的新功能預覽,透過影片的帶領可以讓你快速瞭解 Visual Studio 2010 的新功能與特色,也看的到新版 Visual Studio 採用 WPF 技術所開發出來的全新 UI ( 使用者介面 ),我相信對各位來說絕對會是個全新體驗。

image

以下列出一些在 Channel 9 上面與 Visual Studio 2010 與 .NET Framework 4.0 的相關的影片連結:

※ 若想學習如何批次下載高解析度的影片,可以參考我的這篇文章

  

此文章由 will 發表於 2009/4/30 上午 12:05:26

永久連結 | 評論 (1) | 此文章的RSSRSS comment feed |

分類: .Net | Visual Studio

標籤: , ,

收藏:

如何調整 IIS7 的HTTP內容壓縮格式(為了讓 IE6 能正常運作)

談到 IE6 就有吐不完的怨氣,最近在幫客戶設定 IIS7 的過程中,為了要讓將輸出的內容全部壓縮,所以設定了 IIS7 內建的內容壓縮功能,包括「動態內容壓縮」與「靜態內容壓縮」,但是啟動完後的幾天卻有使用者反應使用 IE6 瀏覽網站時瀏覽器會掛掉(Crash),研究了一些時間才發現原來是 IIS7 預設的 gzip 壓縮格式搞的鬼。

IIS7 內容壓縮,包括「動態內容壓縮」與「靜態內容壓縮」

在 IIS6 的年代,預設 HTTP 壓縮的格式同時支援 gzipdeflate 壓縮格式,這兩種格式也是大多瀏覽器都同時支援的壓縮/解壓縮的格式。不過到了 IIS7 時,在預設只會支援 gzip 壓縮格式。

雖然 gzip 壓縮格式也很常見,且大多數瀏覽器都支援,但是偏偏在微軟自家的 IE6 的期中一個特定版本(版本編號不太確定)對於 gzip 解壓縮的程式出現一個嚴重的錯誤,這會導致瀏覽器直接關閉(Crash)或死當(Hang)。

而我解決這個問題的方法是將 IIS7 預設的壓縮格式多新增一個 deflate 壓縮格式的設定,設定的方式可以透過 IIS 內建的 appcmd 指令進行調整,或手動修改 applicationHost.config 設定檔。

1. 透過 appcmd 指令進行調整

首先,沒用過 appcmd 的人可能會找不到 appcmd 的程式位置,在預設 IIS7 安裝下,此工具程式會放在 C:\Windows\System32\inetsrv 目錄下,你必須先開啟命令提示字元進入該目錄再執行以下指令:

appcmd set config /section:httpCompression /+[name='deflate',dll='%Windir%\system32\inetsrv\gzip.dll']

2. 手動修改 applicationHost.config 設定檔

IIS7 的所有設定基本上都放在 C:\Windows\System32\inetsrv\config\applicationHost.config 這個檔案裡,所以只要是 Server-Level 的設定都可以在這裡找到。

先以 “<httpCompression” 進行搜尋,找到之後在這行下方有另一行內容如下:

<scheme name="gzip" doStaticCompression="true" doDynamicCompression="true" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="10" dynamicCompressionLevel="3" />

你在這行下方手動再加上以下這行宣告:

<scheme name="deflate" dll="C:\Windows\system32\inetsrv\gzip.dll" />

---

其實 IIS7 預設還是有支援 deflate 壓縮格式的,這部分的程式也包裝在 C:\Windows\system32\inetsrv\gzip.dll 這支 DLL 裡,只是預設沒啟用而已。但明知 IE6 對 gzip 支援有問題,在 IIS7 的設定中還預設不啟用,我在想這期中應該是有鼓勵大家趕快升級到最新版 IE 的意味存在。

※ 若要在 IIS6 下啟動內容壓縮可以參考我之前寫的【調整 IIS 將輸出的內容全部壓縮】文章。

相關連結

  

此文章由 will 發表於 2009/4/29 下午 04:53:14

永久連結 | 評論 (1) | 此文章的RSSRSS comment feed |

分類: IIS | 系統管理

標籤: , , ,

收藏:

下載 ASP.NET MVC Training Kit

微軟上個月推出了 ASP.NET MVC Training Kit 可讓初學者學習 ASP.NET MVC 相關知識,裡面包括有簡報(Presentations)、實驗(Labs)、範例(Demo)、常見問題解答(FAQ)、參考連結(Links)與關鍵訊息(Key Messages),對於習慣自修的人來說也是個不錯的學習管道,至少比直接看 Sample Code 且看不懂來的好。

雖然 ASP.NET MVC Training Kit 內容不多,但精簡扼要,而且我一直覺得 ASP.NET MVC 真的「沒什麼」,而「有什麼」的是 MVC 核心概念、設計樣式、物件導向技術、相關開發技巧、敏捷開發流程、…,這些東西才是最核心可創造效益的部分。

相關連結

  

此文章由 will 發表於 2009/4/28 上午 11:07:17

永久連結 | 評論 (1) | 此文章的RSSRSS comment feed |

分類: ASP.NET MVC

標籤:

收藏:

如何正確安裝政府簽發的憑證到正式主機

我之前為了要讓我的 ASP.NET 可以寄出 S/MIME 簽章過的郵件費了好大一番功夫,在開發環境與測試環境解決了【ASP.NET 使用 X509Certificate2 類別匯入憑證檔時發生錯誤】與【CryptographicException: 控制碼無效(The handle is invalid)】問題,但是正式部署到正式機時竟然又出現另一個錯誤:A certificate chain could not be built to a trusted root authority.

由於本次安裝的憑證是由政府憑證管理中心所簽發的,會出現【A certificate chain could not be built to a trusted root authority.】的錯誤就是因為本機電腦不信任這張憑證的「根憑證」所致。

如下圖所示,你先開啟「本機電腦」的「個人/憑證」區,並點選開啟你先前匯入的憑證,再切換到「憑證路徑」頁籤,這時你可以看到這張憑證其實有兩個「根憑證」,你必須將這兩張憑證都匯入到「信任的根憑證授權」的憑證儲存區才行!

先開啟「本機電腦」的「個人/憑證」區,並點選開啟你先前匯入的憑證,再切換到「憑證路徑」頁籤,這時你可以看到這張憑證其實有兩個「根憑證」,你必須將這兩張憑證都匯入到「信任的根憑證授權」的憑證儲存區才行!

照理說 "TW Government Root Certification Authority" 這張憑證是不需要額外安裝到「信任的根憑證授權」的憑證儲存區中的,因為若你有正常定期執行 Windows Update 的話,這張憑證就會自動被安裝到信任的根憑證中!而這次我們安裝的主機看似已經很久沒有執行 Windows Update 了,所以才會遇到這個問題。

若要手動將這兩張憑證匯入到「信任的根憑證授權」的憑證儲存區必須依照以下步驟進行:

1. 先點選最上層的根憑證,並點選「檢視憑證」按鈕

先點選最上層的根憑證,並點選「檢視憑證」按鈕

2. 接著點選「詳細資料」頁籤,再點選「複製到檔案」進行憑證匯出

接著點選「詳細資料」頁籤,再點選「複製到檔案」進行憑證匯出

3. 憑證有許多種格式,你隨便選一種即可。假設我們選取 DER 編碼二位元 X.509 (.CER) 格式,然後設定匯出的檔名,你可以匯出到任何目錄下,假設我們將憑證匯出到 C:\TWGovRoot.cer

憑證有許多種格式,你隨便選一種即可,假設我們選取 DER 編碼二位元 X.509 (.CER) 格式

設定匯出的檔名,你可以匯出到任何地方,假設我們將憑證匯出到 C:\TWGovRoot.cer

4. 然後再匯出「政府憑證管理中心」的憑證,照著步驟 1 ~ 3 再做一遍

5. 最後我們就要將剛剛匯出的兩張憑證一個個匯入到「信任的根憑證授權」的憑證儲存區中

將剛剛匯出的兩張憑證一個個匯入到「信任的根憑證授權」的憑證儲存區中

將剛剛匯出的兩張憑證一個個匯入到「信任的根憑證授權」的憑證儲存區中

匯入完成之後程式終於可以正常運作了!

  

此文章由 will 發表於 2009/4/27 上午 09:21:55

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: 系統管理

標籤: ,

收藏:

介紹好用工具:MSBuild Shell Extension

我有時只想單純建置(Build)一個 .NET 專案時,一想到要開啟又肥又重的 Visual Studio 就覺得有點懶懶的,正所謂:「懶惰,是程式開發人員的美德!」。如果你跟我一樣懶,可以考慮安裝 MSBuild Shell Extension 工具。

MSBuild Shell Extension 是一套 Windows Explorer 的 Shell Extension,也就是這個功能會與你的「檔案總管」緊密結合在一起,執行時就只要在方案檔或專案檔的檔案上按右鍵就會出現 Build / Clean / Rebuild 的項目,如下圖示:

MSBuild Shell Extension :: 只要在方案檔或專案檔的檔案上按右鍵就會出現 Build / Clean / Rebuild 的項目

但由於 MSBuild Shell Extension 是在 Visual Studio 2005 時期出的工具,若要利用 MSBuild Shell Extension 建置 Visual Studio 2008 的方案檔或 .NET Framework 3.5 專案的話,就必須要利用內建的 Configurator 進行調整。

MSBuildShellExtension -> Configurator

開啟 Configurator 之後,點選 Extensions 頁籤,並且對每一個 Extensions 各自修改 .NET version 到 v3.5,最後再按下 Save 按鈕即可將設定值儲存到機碼中。

MSBuildShellExtension Configurator

不過,我個人在設定好之後,透過檔案總管執行時會出現以下錯誤:

'"C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"' 不是內部或外部命令、可執行的程式或批次檔。

跟作者溝通了一段時間後,才發現原來是因為我當初的 Visual Studio 2008 是從 Visual Studio 2005 升級上來,機碼中的 VisualStudio Launcher 設定值還是指定到 Visual Studio 2005 的路徑,且我的 Visual Studio 2005 已經移除了,才會導致這個錯誤,以下是修正的方法:

  1. 先開啟 regedit 並進入 HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln 機碼,如下圖是需要修改的機碼:
    開啟 regedit 並進入 HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln 機碼

  2. 然後將這幾個機碼的預設值中錯誤的路徑修正,原本的路徑可能是 C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat 是錯的,你要修改成 D:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat 才對!

設定完之後就可以正常運作了。

 相關連結

  

此文章由 will 發表於 2009/4/24 下午 01:38:54

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: 介紹好用工具 | Visual Studio

標籤: , ,

收藏: