2013年4月13日 星期六

改變 jQuery Validation Plugin 預設訊息的語言 (localization)

在點部落看到一篇有關於 ASP.NET MVC 的文章是說明怎麼讓 DataType.EmailAddress 的錯誤訊息顯示中文,作者將自己的發現與嘗試給寫出來並且讓大家分享,我十分認同這樣的作法,因為我自己也是這麼做的,各位看到的這個部落格裡的文章幾乎都是這樣的方式產生的,既然是研究與嘗試,那麼就一定會有一些錯誤或是可以再加強改善的地方,所以我也常常收到很多朋友給予我的任何回應,而藉由這樣的回應讓我得以了解我還有哪些的不足以及需要改進的地方。

再回到剛剛我所提到的那篇文章,我看到那篇文章的內容後,其實原先的作法也是可以,但是那樣的修改是種硬修改的方式,這樣的修改除非之後不會有任何因為更新版本或是其他原因而去影響,我盡量不會去對原本的第三方 JS 原始碼去做任何的變動,而我也知道 jQuery Validation Plugin 這樣的前端套件為了擴充性以及應用在多國語言環境上,所以是有提供各種語言的 Message 擴充文檔,讓有需要的人可以取用適合自己語系環境的文檔並應用在系統當中,其實這樣的作法在很多的前端套件中都有,有需要的話可以到這些前端套件的官方網站或是存放的 GitHub 網站裡去找找,而 jQuery Validation Plugin 有提供正體中文版的 Message 文檔,這些語言文檔也通常都是各國熱心網友所提供的,我以前也曾經提供正體中文的文檔給某個前端套件過。

又離題了,再回到剛剛我所提到的那篇文章,我看了那篇文章的作法後,我就回應了 jQuery Validation Plugin 的正體中文 Messages_zh_TW.js 給作者,而該文作者之後也做了一些修改,我這邊也分享一下我所做的應用方式,然後下一篇文章再介紹可以進階應用的方式給大家。

 


2013年4月10日 星期三

AutoMapper 的設定 (Configuration)

上一篇「使用 AutoMapper 處理類別之間的對映轉換」像各位說明在系統中可以使用 AutoMapper 來處理類別之間的轉換,例如:Entity Model to DTO, DTO to Entity Model, Entity Model to ViewModel, ViewModel to Entity Model … etc.

應該有人會覺得每次要使用 AutoMapper 處理類別轉換的時候總是要先建立類別轉換的設定,然後再執行轉換,如果同樣的類別轉換設定會在不同地方出現時,豈不是每次都要重複建立嗎?比如說以下的這個設定:

image

這一篇就跟大家說明如何處理 AutoMapper 的設定。

 


2013年4月5日 星期五

使用 AutoMapper 處理類別之間的對映轉換

以往使用傳統 ADO.NET 方式對資料庫存取資料時都會碰上資料對映的處理,這是指已經在系統中使用物件導向開發的情況(而沒有使用物件導向的程式中大多是不會遇到這個問題),當從資料庫取得資料後為了要對映到我們所定義的類別,如果沒有使用輔助方法的話,很多人都是乖乖地在程式中去將一筆筆的資料做迴圈處理,然後再一個欄位對映到類別指定的屬性,因為這樣一筆一筆地對映實在太花時間了,所以就有很多輔助方法的產生,有些人會自己寫,而我則是使用 Enterprise Library Data Access Application Block 裡的 RowMapper 方法,在我之前的文章也曾經介紹過,如下:

「簡述 Oracle + Enterprise Library 5.0 Data Access Application Block 的操作」
「Entity Framework 與 Stored Procedure - 回傳多種資料集」

而 Microsoft MVP - 91 也曾經發表了他所設計的 RowMapper 模組「[.NET]RowMapper模組」「[.NET]透過 T4 產生對應 DB table 的 entity」,都是用在資料與類別對映的處理上。

而到了完全以物件導向開發的時候,尤其是已經在專案中使用 ORM Solution,如:ADO.NET Entity Framework or nHibernate 等,大多都是資料庫的 Table 對映到專案的類別,這一段的對映處理不必由我們動手做,在大部分的專案開發上都是一個類別用到底,但有些專案開發時會因為需求而產生了 一些類別,這些類別的屬性可能來自不同的原生類別,而在 ASP.NET MVC 裡最常碰到的就是 ViewModel 類別,而處理這些類別的對映,又遇到上面我所描述過的狀況,如果沒有使用輔助方法的話,又需要一筆一筆資料去做對映,但只少比一般 ADO.NET 的對映處理已經是方便許多,而 AutoMapper 就是可以幫我們簡化這種類別之間的對映轉換處理,讓程式在處理時可以更加簡易也可以更加優雅些,也可以省下更多的開發時間;接著就來讓我簡單介紹怎麼使用 AutoMapper。

 


2013年4月4日 星期四

Sublime Text 2 - Find Function Definition 移到方法定義

會寫這篇的起因是這樣的,

image

Eclipse 並不是我的開發工具,所以我不清楚,不過對比到我主要的開發工具「Visual Studio」上面的功能,例如在 C# 程式中,在程式中對使用的方法或是變數按下 F12 或 Shift + F12 就可以移到定義或是找出哪些程式有使用變數或方法,VS2010 只能對 C# 或是其他 Server 端語言才能使用這樣的功能(或是安裝第三方工具後也會有這樣ˇ功能),而到了 VS2012 除了 Server 端語言有這樣的功能外,也開始支援在 Javascript 程式裡有這樣尋找定義的功能,在 Sublime Text 2 也是有類似的 Package「Find Function Definition」。

 


2013年4月2日 星期二

Telerik OpenAccess ORM 與 Stored Procedure - 回傳多種資料集

前幾篇文章都圍繞著 Entity Framework 與 Stored Procedure 打轉,而上一篇則是討論到回傳多資料結果時在 Entity Framework 的處理方式,最後我還是回歸到使用 ADO.NET 的方式來處理,雖然最後是有提到有一篇國外文章有說明可以去修改 EDMX 檔案內容讓 Entity Framework 可以直接處理 SP 所回傳的多資料結果,但去修改 EDMX 內容實在有太大的風險,而且算是一種非正式的處理方式,所以我選擇不採用。

而在網路上找尋相關解決方案的時候,我看到了 Telerik OpenAccess ORM 可以處理這種 SP 回傳多資料結果的方法,再加上 Telerik OpenAccess ORM 是免費的,而且設定與使用方式跟 Entity Framework 大致相同,在使用過 Telerik OpenAccess ORM 來解決這個處理後覺得有些案子是可以考慮使用它。

這一篇就從一開始在專案中加入使用 Telerik OpenAccess ORM,然後加入 Model 與 Stored Procedure,最後再使用 Telerik OpenAccess ORM 所提供方法來完成這個回傳多資料結果的處理。

 


提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。