[MVC]JavascriptExtensionV1.1自動使用最新版的Javascript檔案

  • 8384
  • 0
  • Web
  • 2011-12-26

因為最近jquery頻頻更新,每次使用Nuget更新完後,又要改一些_Layout,忘了改又會照成頁面錯誤,而且我們的專案是使用預編譯,所以_Layout也是在dll中,為了更新View使用的javascript版本,我要改View、編譯、佈署dll與js檔,實在有夠麻煩的,所以就想了一個小方法,只要把js檔放在~/Scripts下,程式執行時,就會搜尋資料夾使用最新版的js檔,減少更新的步驟,也減少出錯的可能。

...繼續閱讀 »

NuGet系列-製作安裝Package時自動設定Config

在NuGet還沒有出來前要在專案中加入組件的相關Config是挺麻煩的,要看著文件或範例來一段一段複制貼上Config,說真的不是很方便,但是NuGet有提供Config轉換,會把需要設定的Config合併到專案的Config中,可以省下不少設定時間,這篇就來跟大家說在建立Package時如何加入Config轉換檔。

...繼續閱讀 »

NuGet系列-安裝特定版本Package

有時可能因為專案是使用較舊版本的Assembly,使用NuGet GUI不能選版本只能下載最新版Package安裝,新版Package中的Assmebly可能與你的專案不相容,使你的專案無法執行,但又不想自己手動去下載Assembly,手動加入參考,那該怎麼辦呢?

雖然NuGet的GUI(寫文時是1.5版)還沒有提供,但是Command-Line指令卻有支援,遇到這種情況先將用Command-Line指令安裝nupkg吧。

...繼續閱讀 »

NuGet系列-建立自己的NuGet Server

說真的,管理自己或公司專案上寫的通用元件或javascript檔案是很麻煩的一件事,元件的安裝也是件麻煩事,而更新又是一個更麻煩的事,前陣子看到黑大的架設私房NuGet Server,感覺就像看到銀子彈一樣,最新就在公司架了起來,將元件都上傳到私人NuGet Server,三件麻煩事都解決了。

...繼續閱讀 »

Common.Logging.Elmah

這是前些日子寫的小元件,用來將Common.Logging與Elmah整合在一起,Common.Logging是記錄Log的介接元件,本身只有很陽春的ConsoleOut與Trace的記錄功能,但它強在可以與.Net中最常見的三套Logging元件整合,整合的元件有log4net、Enterprise Library Logging、 NLog,讓你在寫中間層元件時,如:DAO、Controls等等,只需要對Common.Logging提供的介面操作,等到使用中間層元件的專案在決定用三套的其中一套來記錄Log,增加元件的使用彈性,但很可惜的不支援Elmah,雖然可以讓Common.Logging+Nlog(或其他二套)與Elmah寫在同一個DB中,讓Elmah也可以呈現Common.Logging所寫入的Log,但是專案就會多參考一個dll,感覺很討厭,所以就花了一點時間寫了一個與Elmah介接元作。

...繼續閱讀 »

用Razor語法寫範本-RazorEngine組件介紹

最近剛好有要寫寄Email的程式,在代碼中寫HTML覺得很呆,抽出代碼外寫到txt或html檔當範本,由程式執行時在載入檔案時用Regex換關鍵字又覺得不夠好用,而且因為有時會有要判斷一些條件,就會寫一堆if esle在代碼中看了就討厭,因為寫MVC久了,就很希望範本也可以像MVC中的View,傳Model過去,在View層決定如何呈現,而更希望是使用Razor語法來寫範本,花了時間研究,找到RazorEngine,使用它來載入檔案,由它來編譯與執行並輸入結果。

...繼續閱讀 »

[ASP.NET MVC]Razor Views 預編譯(Pre-Compile)[2]-獨立View並讓新舊View共存

  • 10510
  • 0
  • Web
  • 2012-03-27

本篇是承接上篇[ASP.NET MVC]Razor Views 預編譯(Pre-Compile)[1]-加快第一次執行回應速度,事實上使用預編譯(Pre-Compile)方法後,View就不一定要寫在同一個專案中,而且可以與原本的ViewEngine共存,當找不到dll中的View時,找原本放在資料夾下的View,或者反過來,先找原本放在資料夾下的View,找不到時用dll中的View,增加View的使用彈性,這些都可以做到,畢竟這只是System.Web.Mvc.ViewEngine的應用而以。

...繼續閱讀 »

[ASP.NET MVC]Razor Views 預編譯(Pre-Compile)[1]-加快第一次執行回應速度

  • 19367
  • 0
  • Web
  • 2011-08-07

ASP.NET 2.0之後的版本都有很貼心的功能,網頁部分是第一次執行時編譯,之後的瀏覽使用此編譯,好處是可以隨時編輯網頁,下次重新執行時又會再及時編譯,不需要透過Visual Studio編譯,但是缺點是第一次因為要執行編譯,回應會非常非常的慢,而且當網站一段時間沒有連線IIS會回收資源,所以常常隔天第一個使用系統人都比較幸運,要等ASP.NET及時編譯,當然也有另一個選項是所有的東西都預先編譯好,好處是全部都先編譯好了,執行時就不會在編譯,加快第一次執行的回應速度,壞處是必需使用Visual Studio編譯後才能更版,因為不是ASP.NET預設選項,設定的步驟不少,本編是針對ASP.NET MVC 3 的Razor View做預編譯設定。

...繼續閱讀 »

[ASP.NET MVC]解決Controller相同名稱衝突問題

ASP.ENT MVC 不像他牌MVC那麼囉嗦要設定東設定西,在ASP.NET MVC Controller只要繼承System.Web.Mvc.IController,且名稱後綴是Controller,什麼都不用設定,DefaultControllerFactory就會將MVC Project中所參考的組件(也就是說將Controller寫到別的dll中,也會自動註冊),將符合條件的Controller做自動註冊,當Request進來Route在Map時只比對Controller的Name,如果有寫通用Controller(如LoginController),很有可能有相同名稱,比對出一筆以上的Controller,因為系統不知道要使用那一個而照成衝突,這一點就不如他牌MVC方便,可以設定這個Route是對應到那一個Controller,它只能設定以那些命名空間為優先比對,以此方法解決衝突,雖然自由度沒那麼高,不過應該可以解決大部份問題。

...繼續閱讀 »