今日目標
了解NHibernate的Collection的Cascade
設定Collection的Cascade
跟著Wade學習ASP.NET MVC + NHibernate - Day 5 - 完成Entity Collection的Mapping
今日目標
了解NHibernate的Collection 關連種類
了解NHibernate的Collection Mapping種類
強大的Lazy-Load
完成Entity的Collection Mapping
Collection And Lazy-Load Test
跟著Wade學習ASP.NET MVC + NHibernate - Day 4 - 完成Entity屬性的Mapping
今日目標
了解NHibernate的Mapping有幾種設定方式。
完成Entity與Entity的屬性的Mapping
跟著Wade學習ASP.NET MVC + NHibernate - Day 3 - 了解Nhibernate繼承的三種策略
今日目標
-了解Nhibernate繼承的三種策略
-完成Mapping檔的建立
跟著Wade學習ASP.NET MVC + NHibernate - Day 2 - 了解NHibernate
本日目標
-了解ORM
-了解NHibernate的特色
-完成Entity的建立
跟著Wade學習ASP.NET MVC + NHibernate - Day 1 - kickoff
今日目標
-分層次架構
-完成專案的建立
NuGet列系-添加Visual Studio對NuGet的nuspec檔案編輯IntelliSense
- 6191
- 0
- Visual Studio
雖然有NuGet package explorer可以編輯nuspec,但是只是要變更一點改內容,用NuGet package explorer太廢事了,而且nuspec檔案是XML的格式,可以直接在Visual Studio編輯,只要提供XSD(XML Schema Definition)檔,Visual Studio就可以依照Schema的內容提供IntelliSense。
[MVC]JavascriptExtensionV1.1自動使用最新版的Javascript檔案
因為最近jquery頻頻更新,每次使用Nuget更新完後,又要改一些_Layout,忘了改又會照成頁面錯誤,而且我們的專案是使用預編譯,所以_Layout也是在dll中,為了更新View使用的javascript版本,我要改View、編譯、佈署dll與js檔,實在有夠麻煩的,所以就想了一個小方法,只要把js檔放在~/Scripts下,程式執行時,就會搜尋資料夾使用最新版的js檔,減少更新的步驟,也減少出錯的可能。
NuGet系列-程式碼範本支援
- 7659
- 0
- Visual Studio
有時安裝組件的時候,必需增加一些程式才能正常的執行,NuGet有提供如同Item Template使用ProjectProperties的功能,撰寫組件所需的程式碼,在安裝Package時將其中的變數,轉換成專案的設定值。
NuGet系列-製作安裝Package時自動設定Config
- 8516
- 0
- Visual Studio
- 2011-12-27
在NuGet還沒有出來前要在專案中加入組件的相關Config是挺麻煩的,要看著文件或範例來一段一段複制貼上Config,說真的不是很方便,但是NuGet有提供Config轉換,會把需要設定的Config合併到專案的Config中,可以省下不少設定時間,這篇就來跟大家說在建立Package時如何加入Config轉換檔。
NuGet系列-安裝特定版本Package
- 22336
- 0
- Visual Studio
- 2011-12-27
有時可能因為專案是使用較舊版本的Assembly,使用NuGet GUI不能選版本只能下載最新版Package安裝,新版Package中的Assmebly可能與你的專案不相容,使你的專案無法執行,但又不想自己手動去下載Assembly,手動加入參考,那該怎麼辦呢?
雖然NuGet的GUI(寫文時是1.5版)還沒有提供,但是Command-Line指令卻有支援,遇到這種情況先將用Command-Line指令安裝nupkg吧。
NuGet系列-編譯後自動發佈
- 16278
- 0
- Visual Studio
- 2011-12-27
目前建立nupkg檔的方式有二種,使用NuGet命令列工具或NuGet Package Explorer GUI工具,個人是覺得先用NuGet Package Explorer建立NuSpec,之後在用NuGet命令列與MSBuild編譯後自動上傳,會比較方便。
NuGet系列-使用NuGet Package Explorer建立nupkg檔
- 20732
- 0
- Visual Studio
- 2011-10-06
目前建立nupkg檔的方式有二種,使用NuGet命令列工具或NuGet Package Explorer GUI工具,個人是覺得先用NuGet Package Explorer建立NuSpec,之後在用NuGet命令列與MSBuild編譯後自動上傳,會比較方便。
NuGet系列-建立自己的NuGet Server
- 15045
- 0
- Visual Studio
- 2011-12-27
說真的,管理自己或公司專案上寫的通用元件或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共存
本篇是承接上篇[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]-加快第一次執行回應速度
ASP.NET 2.0之後的版本都有很貼心的功能,網頁部分是第一次執行時編譯,之後的瀏覽使用此編譯,好處是可以隨時編輯網頁,下次重新執行時又會再及時編譯,不需要透過Visual Studio編譯,但是缺點是第一次因為要執行編譯,回應會非常非常的慢,而且當網站一段時間沒有連線IIS會回收資源,所以常常隔天第一個使用系統人都比較幸運,要等ASP.NET及時編譯,當然也有另一個選項是所有的東西都預先編譯好,好處是全部都先編譯好了,執行時就不會在編譯,加快第一次執行的回應速度,壞處是必需使用Visual Studio編譯後才能更版,因為不是ASP.NET預設選項,設定的步驟不少,本編是針對ASP.NET MVC 3 的Razor View做預編譯設定。
[C#]列舉切割器(IEnumerable Split)
有時會有將大量的資料做分割作業,如資料庫查尋出幾萬多筆,要以1000筆為一單位作業,相同的東西寫多了就想要簡化流程,所以就有了這個Extension。
[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,它只能設定以那些命名空間為優先比對,以此方法解決衝突,雖然自由度沒那麼高,不過應該可以解決大部份問題。