這篇文章我會先講一下微軟的ILDASM工具,下次再講ILSpy這個開源工具。 IL DASM 我們撰寫的.NET相關程式經編譯器編譯成中繼語言後會包裝成.e...
前言 IOC依賴反轉是oop重要程式設計思想。 Ioc—Inversion of Control 控制反轉 控制反轉是一個設計思想 ,把對於某個物件的控制權...
假如遇到必要拼接SQL字串需求的情況下,舉例 : 有時候值使用字串拼接會比不使用參數化效率好,特別是該欄位值只會有幾種固定值。 這時候Dapper可以使用Li...
先前我們提到我們撰寫的.NET相關程式都是透過通用執行環境(CLR)來幫我們執行,以C#為例C#編譯器會把我們撰寫的C#程式碼編譯成中繼語言(IL),而CL...
前言 上篇得知MVC預設透過DefaultControllerFactory反射方式動態建立Controller物件 本篇會分享我們常用到Controller基...
了解實作邏輯後,接著延伸一個Dapper使用的重要觀念,SQL字串為緩存重要Key值之一,假如不同的SQL字串,Dapper會為此建立新的動態方法、緩存,所以...
任何基於.NET相關技術之程式都需仰賴CLR來運行,CLR是一個類似虛擬機的環境,讓程式在受控的環境下執行,CLR的出現簡化了、抽象化了我們撰寫之程式與電腦...
前言 前篇介紹MVC使用HttpHandler是MvcHandler透過並MvcRouteHandler物件來返回. 我有做一個可以針對於Asp.net MV...
為何Dapper可以這麼快? 前面介紹到動態使用 Emit IL 建立 ADO.NET Mapping 方法,但單就這功能無法讓 Dapper 被稱為輕量OR...
前言 前一篇介紹路由封裝了Http請求路徑資訊可以讓我們找到相對應的Action和Controller並呼叫執行外,也可透過MapPageRoute來將請求教給...
以下代碼是Emit版本,我把C#對應IL部分都寫在註解。 public static class DemoExtension { public static...
前言 現在開始進入Asp.net MVC原始碼世界,我們從路由開始切入一步一步進入MVC核心. 我有做一個可以針對於Asp.net MVC Debugger的專...
有了前面Expression版本概念後,接著可以進到Dapper底層最核心的技術 : Emit。 首先要有個概念,MSIL(CIL)目的是給JIT編譯器看的,...
上一篇在字串處理的部分有提到正規表達式,還記得當時google後看到一堆範例,第一瞬間覺得...WT..F?XD 那些規則跟長相看起來不是很親民XDD 不過仔細...
.NET Framework是微軟提供的可以在Windows上運行、建置的軟體開發框架。 .NET Framework的組成 .NET Framework主要由...
第一天我們提到昇陽認為J++違反了Java的跨平台的初衷,開始對微軟提出了訴訟,而後微軟放棄J++的開發,轉而開發出C#與.NET Framework。 C#推...
以下是一段完整的處理分頁和排序的Action。 public IActionResult GetValues(PageSortDTO pageSortDTO)...
前言: 前面幾篇文章已經詳細分享解說Asp.net如何透過HttpApplication找到IHttpHandler並執行呼叫介面方法. 今天要跟大家分享上圖...
有了前面的邏輯,就著使用Expression實作動態建立方法。 為何先使用 Expression 實作而不是 Emit ? 除了有能力動態建立方法,相比Emi...
在物件導向程式觀念尚未成熟前,軟體開發是以程序導向為概念。程序導向是把大問題分割成小問題,若小問題還是複雜,就再繼續拆分直到電腦可以處理以及能夠撰寫為程序或是函...
前言 前面和大家分享StepManager是如何建立管道和依序呼叫IHttpModule註冊事件 查看原始碼好站 Reference Source 此文的...
接著使用Expression來解決Reflection版本問題,主要是利用Expression特性 : 「可以在Runtime時期動態建立方法」來解決問題。...
本篇擷取重點: 多載 (Overload) 是什麼 一、多載 (Overload) 多載(Overloading)在寫作程式時,是一個非常實用的觀念。當我...
好,首先,其實沒有一百種不要擔心XDDD浮誇一下浮誇一下XDDD 說到陣列,我們最常使用的陣列非字串莫屬了!!字串就是字元的陣列~ 之後開始接觸ASP.NET網...
前言 前面有提到InitInternal方法,是如何載入註冊HttpModule並呼叫Init方法,經典模式和管道模式比較. 查看原始碼好站 Referenc...
程式語言的發展已年過半百 程式作為完成特定工作的一串電腦指令組合,人類與電腦互相溝通的語言我們都稱之為程式語言,在溝通的過程中,人們以自己易於理解的程式語言來撰...
在前面ADO.NET Mapping例子可以發現嚴重問題「沒辦法多類別共用方法,每新增一個類別就需要重寫代碼」。要解決這個問題,可以寫一個共用方法在Runti...
本篇擷取重點: 繼承 繼承的目的及手段 繼承的類別階層 其他和繼承相關的問題 一、繼承(Inheritance) 繼承是一種類別間的階層式分類關係,...
前言: 附上Asp.net執行請求流程圖. 上一篇文章分享HttpApplicationFactory.GetApplicationInstance方法返回一...
接下來是Dapper關鍵功能 Strongly Typed Mapping,因為難度高,這邊會切分成多篇來解說。 第一篇先以ADO.NET DataReade...