iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 23
2

Dapper系列到這邊,重要底層原理差不多都講完了,這系列總共花了筆者連續25天的時間,除了想幫助讀者外,最大的收穫就是我自己在這期間更了解Dapper底層原理,並且學習Dapper精心的細節、框架處理。

另外想提Dapper作者之一Marc Gravell,真的非常熱心,在寫文章的期間有幾個概念疑問,發issue詢問,他都會熱心、詳細的回覆。並且也發現他對代碼的品質要求之高,舉例 : 在S.O發問,遇到他在底下留言 : 「他對目前Dapper IL的架構其實是不滿意的,甚至覺得粗糙,想搭配protobuf-net技術打掉重寫」 (謎之聲 : 真令人敬佩 )

連結 : c# - How to remove the last few segments of Emit IL at runtime - Stack Overflow
https://ithelp.ithome.com.tw/upload/images/20190925/201059884hfaioQATW.png

最後筆者想說 :
寫這篇的初衷,是希望本系列可以幫助到讀者

  1. 了解底層邏輯,知其所以然,避免寫出吃掉效能的怪獸,更進一步完整的利用Dapper優點開發專案
  2. 可以輕鬆面對Dapper的面試,比起一般使用Dapper工程師回答出更深層的概念
  3. 從最簡單Reflection到常用Expression到最細節Emit從頭建立Mapping方法,帶讀者漸進式了解Dapper底層強型別Mapping邏輯
  4. 了解動態建立方法的重要概念「結果反推程式碼」
  5. 有基本IL能力,可以利用IL反推C#代碼方式看懂其他專案的底層Emit邏輯
  6. 了解Dapper因為緩存的算法邏輯,所以不能使用錯誤字串拼接SQL

感謝大家閱讀到最後,假如喜歡本系列,歡迎留言、交流 :)


上一篇
【深入Dapper.NET源碼】ExecuteScalar應用
下一篇
【深入Dapper.NET源碼】目錄、整合版
系列文
🌊 進階學習 ADO.NET、Dapper、Entity Framework 30

尚未有邦友留言

立即登入留言