The Will Will Web | .Net

The Will Will Web

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

如何透過 C# 類別庫讀取 Web.config 或 App.config 的參數設定值

我們經常會需要在應用程式中宣告一些參數,好讓我們的程式在不用重新編譯的情況下隨時變更參數設定值,而這樣的機制老早就內建在 .NET 之中。今天我將分享幾個常見的使用案例與範例程式,教大家如何規劃 C# 類別庫 (Class Library) 的設定檔,以及如何從 ASP.NET 應用程式 ( 包含 Web Form 與 MVC )、主控台應用程式 (Console Appliation) 與 Windows Form 應用程式正確設定 app.config 或 web.config 設定檔,以變更類別庫中參數的預設值。

... 繼續閱讀 ...

釐清 CLR、.NET、C#、Visual Studio、ASP.NET 各版本之間的關係

長久以來,我發現有許多 .NET 開發人員其實不是很熟悉自己每天都在面對的 .NET Framework, C#, Visual Studio 與 ASP.NET 版本之間的關係,以至於經常在找資料時下錯關鍵字,不容易命中想找的資料,今日特別撰文說明這幾項技術與工具在各版本之間的關係。

... 繼續閱讀 ...

ASP.NET MVC 4 部署到 Windows Azure 如何轉換時區設定

由於公司慢慢地開始將新的專案都移往 Windows Azure 雲端平台做網站代管,漸漸地也開始遇到一些小問題,這些問題在還沒上雲端之前通常不會發生,像我們這次遇到的問題就跟顯示時間有關。由於 Windows Azure 雲端平台是全球性、跨國家、跨地域的服務平台,因此,無論是 .NET 執行環境的時區,或是 SQL Database 資料庫的時區,預設都是以 UTC 世界標準時間 (Coordinated Universal Time) 為主,也因此在上面執行的網站在顯示時間時,你就會覺得時間好像怪怪的,怎麼都不準。今天我就是要來講怎樣利用 ASP.NET MVC 的 範本檢視 (Templated View) 來有效的解決這個問題。

... 繼續閱讀 ...

ASP.NET 2.0 多國語系網站與 Windows 8 的 IE10 語系設定

前天將我的 Windows 8 安裝了簡體中文的 Language pack (語言套件),設定上去後連到我的部落格網站立刻出現嚴重的例外錯誤,因此注意到從 Windows Vista / .NET 3.0+ 開始針對繁體中文簡體中文的 Language Tag 已經都改用 IETF 的標準表示字串,原本我們常用 zh-CHT 代表繁體中文,爾後都會改用 zh-Hant 來表示,若是簡體中文則是 zh-Hans。然而重點是 ASP.NET 2.0 並不支援讀取繁體中文zh-Hant簡體中文zh-Hans,只要嘗試讀取就會立刻引發例外狀況,這是各位開發人員應該注意的地方。

... 繼續閱讀 ...

NuGet 套件: .NET Framework Extensions Packages (netfx)

以往我們要使用一些現成的工具函式庫時,都會去網路上找一些好用的原始碼回來用,但是當作者改版或修掉一些 Bugs 之後我們並不會主動收到通知,就算是公司內部的函式庫一樣會有版本控管的問題,但是若能透過 NuGet 來幫忙做控管,未來所有專案都能夠享受到自動更新這些工具函式原始碼的服務,而最近就興起一個 netfx 專案整理了許多小片段的原始碼,讓你可以輕易的將這些原始碼透過 NuGet 套件管理員下載到專案中,並可在未來自動更新,方便管理這些下載的原始碼。

... 繼續閱讀 ...

如何讓 App_GlobalResources 裡的全域資源檔變成公開類別

在中大型的專案裡,通常會將一整個 Visual Studio 方案 (Solution) 切分為好幾個專案 (Project),在製作多國語系網站時有時也會想把資源檔移到另一個獨立了專案中,如此一來才能方便在日後更新這些多國語系資源設定,不過在 Visual Studio 裡面的 ASP.NET 專案新增資源檔時,其類別的存取等級預設為 internal class,如果直接拖曳到另一個專案就會導致在原本的專案無法存取到這個資源檔的情況,必須進一步設定才行。

... 繼續閱讀 ...

介紹好用 Visual Studio 2010 擴充套件:All-In-One Code Framework Sample Browser

Microsoft All-In-One Code Framework 又稱 1code,集結微軟開發平台中各個技術領域的範例程式碼,目前已經累積了超過六百多個含有完整且可執行的專案原始碼在上面,主要的目的就是用來幫助學習微軟技術的開發人員解決各種工作上常見的問題,而這些範例程式碼的產生都源自於 MSDN 論壇上、社交媒體或其他開發社群等提出的種種開發問題,並由微軟員工撰寫範例程式碼提供給所有開發人員下載參考、觀摩之用,這一切不但都是免費的,更重要的是:如果你覺得他們沒有你要的範例程式,你還可以提出需求,請微軟的工程師幫你撰寫範例程式,Oh~ My GOD~~

... 繼續閱讀 ...

TFS 版本控管時會將檔案設為唯讀,需注意 File.Open 的使用

這是上週遇到的問題,我們有個專案參與開發的人比較多,一直以來都用 TFS 進行版本控管與專案管理,一直以來專案在本機開發環境執行的時候都沒遇到過任何問題,但突然有一天所有團隊成員都發生無法讀取特定檔案的問題 ( Access to the path 'C:\Inetpub\wwwroot\App_Data\TEST.txt' is denied ),查到了程式碼發現是在呼叫 File.Open 時發生的錯誤,但檔案權限明明就沒有問題啊!問題要如何解決,請繼續看下去…

... 繼續閱讀 ...

在類別庫裡如何判斷 .NET 程式執行在 Web 環境下

今天發現一段特別的程式碼,我們有個方案(Solution)裡有個共用的類別庫(Class Library)專案,此類別庫專案同時提供給多個 Windows 應用程式、Windows 服務以及 ASP.NET 應用程式來使用,但同事用了有點複雜的程式撰寫方法取得目前的 .NET 程式是否為 ASP.NET 執行環境,因此特別撰寫一篇短文來提醒較為簡單易懂的方式。

... 繼續閱讀 ...

手動升級 ASP.NET 2.0 網站至 ASP.NET 4.0 的標準作業流程

目前公司的專案已經越來越多使用 .NET Framework 4.0 版本,然後舊有的網站有時後要增加一些功能或新增的功能會用到一些 .NET 4.0 編譯好的組件時就非常麻煩,要不就是重新編譯參考的組件到 2.0 版(但不一定會編譯成功),要不就是將舊有的 ASP.NET 網站直接升級到 ASP.NET 4.0,我在 VS2010 上市發表會:Web 開發效率提昇 - ASP.NET 4.0 演講時有分享一些網站升級的注意事項,不過今天我特地將手動升級網站的完整過程記錄下來,讓各位按圖施工、保證成功!^_^

... 繼續閱讀 ...

程式結束狀態: Windows 的 %ERRORLEVEL% 與 Linux 的 $?

不管是在 Linux 下撰寫 Bash 指令檔或是在 Windows 下撰寫批次檔,最近一次程式執行的回傳代碼是非常重要的撰寫技巧這可以協助我們在撰寫自動化指令檔時能夠更有效的處理程式執行失敗的狀況,便可進一步撰寫條件式處理各種執行失敗的狀況,但是在 Windows 與 Linux 各有什麼異同之處呢?讓我們繼續看下去。

... 繼續閱讀 ...

利用 .NET 支援的數值格式來解析各種複雜的數字表示式

前陣子處理了一個特殊的案子,該客戶提供一批與「會計」有關的數據,在客戶手中的資料來源裡,我拿到一個這樣的數值字串:(95,403.8075)e-02,在會計的領域中刮號代表「負數」的意思,但這樣的數字在 .NET 應該怎樣 Parse 比較好呢?其實在 .NET 裡已經內建了許多好物等著你去挖掘了!

... 繼續閱讀 ...