[C#.NET][Entity Framework] 實作 DAL 共用方法的交易

上個月,同事問我 DAL 裡的 CUD 方法若需要共用,交易要怎麼寫?

首先,要思考處理資料庫的 Data Access Layer 裡的 CUD方法,該不該共用?

  •  以使用者案例的角度切入看 DAL,它不應該有機會共用,因為每一個作業流程的資料異動方式不會一樣。
  •  設計 DAL 方法時,不應該用 Table 的 CRUD 作為 DAO 的 Method,相信我,那只會讓事情變得更複雜而已。
  •  共用 DAL 方法,就得把檢查機制放在 DAL 方法。
...繼續閱讀 »

[C#.NET][Unit Test] 採用 LocalDB 進行集成測試

集成測試主要是測試個元件之間的互動是否如預期,在這個階段的測試,我會把程式進入點 UI Layer 換成單元測試專案,由測試專案取代之,為什麼不是直接從UI測,原因很簡單,因為 UI 的變化太快了,一方面為了減少因 UI 改變而衍生出額外的工作,另一方面則為了提高測試程式碼的重用性,所以我會從 BLL 測試

三層式架構,物件彼此之間的關係,如下圖:

...繼續閱讀 »

[C#.NET] 動態產生 AS400 對應的 POCO/DTO

手動建立 OR-M 的 POCO 可是一件苦差事,針對 EF 不支援的資料庫,透過這個小技巧,可以大大提升程式設計師的生產力、降低錯誤發生,團隊使用 EF開發資料庫,但 AS400 並沒有支援 EF的 Provider,怎麼辦,我再也不會回頭使用弱型別的 DataTable 了,這時候 Dapper 就派上用場,請參考:https://www.dotblogs.com.tw/yc421206/2015/04/20/as400_connect_provider

...繼續閱讀 »

[ASP.NET] 多國語系 - 本地資源和全域資源

ASP.NET 支援兩種類型的資源檔,本地資源和全域資源,利用資源檔建立多語系的應用程式

資源檔格式

Xml 格式,以Key/Value方式存放資料

本地資源檔

  • 用於特定頁面
  • 放在 App_LocalResources
  • 資源檔格式:
    以login.aspx為例,預設本地端資源檔規則為 web stite name.resx,其他國家語言則是 web stite name.culture.resx,範例如下:
    預設語系:login.aspx.resx
    英文美國:login.aspx.en-US.resx
    英文英國:login.aspx.en-GB.resx
...繼續閱讀 »