iT邦幫忙

c#相關文章
共有 1507 則文章
鐵人賽 Software Development DAY 8

技術 使用ILDASM看C#編譯出的中繼語言(IL)

這篇文章我會先講一下微軟的ILDASM工具,下次再講ILSpy這個開源工具。 IL DASM   我們撰寫的.NET相關程式經編譯器編譯成中繼語言後會包裝成.e...

鐵人賽 Software Development DAY 13

技術 [Day13] Asp.net MVC如何實現IOC解析器

前言 IOC依賴反轉是oop重要程式設計思想。 Ioc—Inversion of Control 控制反轉 控制反轉是一個設計思想 ,把對於某個物件的控制權...

鐵人賽 Software Development DAY 12

技術 【深入Dapper.NET源碼】Dapper SQL正確字串拼接方式 : Literal Replacement

假如遇到必要拼接SQL字串需求的情況下,舉例 : 有時候值使用字串拼接會比不使用參數化效率好,特別是該欄位值只會有幾種固定值。 這時候Dapper可以使用Li...

鐵人賽 Software Development DAY 7

技術 簡介C#編譯成IL,再由JIT編譯成機器碼的過程

  先前我們提到我們撰寫的.NET相關程式都是透過通用執行環境(CLR)來幫我們執行,以C#為例C#編譯器會把我們撰寫的C#程式碼編譯成中繼語言(IL),而CL...

鐵人賽 Software Development DAY 12

技術 [Day12] 談談Controller幾個重要成員

前言 上篇得知MVC預設透過DefaultControllerFactory反射方式動態建立Controller物件 本篇會分享我們常用到Controller基...

鐵人賽 Software Development DAY 11

技術 【深入Dapper.NET源碼】錯誤SQL字串拼接方式,會導致效率慢、內存洩漏

了解實作邏輯後,接著延伸一個Dapper使用的重要觀念,SQL字串為緩存重要Key值之一,假如不同的SQL字串,Dapper會為此建立新的動態方法、緩存,所以...

鐵人賽 Software Development DAY 6

技術 通用語言執行環境(CLR)

  任何基於.NET相關技術之程式都需仰賴CLR來運行,CLR是一個類似虛擬機的環境,讓程式在受控的環境下執行,CLR的出現簡化了、抽象化了我們撰寫之程式與電腦...

鐵人賽 Software Development DAY 11

技術 [Day11] Asp.net MVC Controller是怎麼被建立

前言 前篇介紹MVC使用HttpHandler是MvcHandler透過並MvcRouteHandler物件來返回. 我有做一個可以針對於Asp.net MV...

鐵人賽 Software Development DAY 10

技術 【深入Dapper.NET源碼】Dapper 效率快關鍵之一 : Cache 緩存原理

為何Dapper可以這麼快? 前面介紹到動態使用 Emit IL 建立 ADO.NET Mapping 方法,但單就這功能無法讓 Dapper 被稱為輕量OR...

鐵人賽 Software Development DAY 10

技術 [Day10] 透過MvcRouteHandler取得呼叫IHttphandler

前言 前一篇介紹路由封裝了Http請求路徑資訊可以讓我們找到相對應的Action和Controller並呼叫執行外,也可透過MapPageRoute來將請求教給...

鐵人賽 Software Development DAY 9

技術 【深入Dapper.NET源碼】Strongly Typed Mapping 原理 Part6 : Emit版本

以下代碼是Emit版本,我把C#對應IL部分都寫在註解。 public static class DemoExtension { public static...

鐵人賽 Software Development DAY 9

技術 [Day09] 進入MVC原始碼世界 Route & RouteTable 原始碼解析

前言 現在開始進入Asp.net MVC原始碼世界,我們從路由開始切入一步一步進入MVC核心. 我有做一個可以針對於Asp.net MVC Debugger的專...

鐵人賽 Software Development DAY 8

技術 【深入Dapper.NET源碼】Strongly Typed Mapping 原理 Part5 : Emit IL反建立C#代碼

有了前面Expression版本概念後,接著可以進到Dapper底層最核心的技術 : Emit。 首先要有個概念,MSIL(CIL)目的是給JIT編譯器看的,...

鐵人賽 Modern Web DAY 19

達標好文 技術 Day19-C#-正規表達式Regular Expression-你知道身分證字號的秘密嗎?

上一篇在字串處理的部分有提到正規表達式,還記得當時google後看到一堆範例,第一瞬間覺得...WT..F?XD 那些規則跟長相看起來不是很親民XDD 不過仔細...

鐵人賽 Software Development DAY 5

技術 關於 .NET Framework

.NET Framework是微軟提供的可以在Windows上運行、建置的軟體開發框架。 .NET Framework的組成 .NET Framework主要由...

鐵人賽 Software Development DAY 4

技術 C#編譯到執行與Java的相似之處

第一天我們提到昇陽認為J++違反了Java的跨平台的初衷,開始對微軟提出了訴訟,而後微軟放棄J++的開發,轉而開發出C#與.NET Framework。 C#推...

技術 如何在OrderBy中,使用動態欄位。

以下是一段完整的處理分頁和排序的Action。 public IActionResult GetValues(PageSortDTO pageSortDTO)...

鐵人賽 Software Development DAY 8

技術 [Day08] 揭密Mvc使用IHttpHandler by UrlRoutingModule-4.0

前言: 前面幾篇文章已經詳細分享解說Asp.net如何透過HttpApplication找到IHttpHandler並執行呼叫介面方法. 今天要跟大家分享上圖...

鐵人賽 Software Development DAY 7

技術 【深入Dapper.NET源碼】Strongly Typed Mapping 原理 Part4 : Expression版本

有了前面的邏輯,就著使用Expression實作動態建立方法。 為何先使用 Expression 實作而不是 Emit ? 除了有能力動態建立方法,相比Emi...

鐵人賽 Modern Web DAY 21

技術 Day21-C#物件與類別

在物件導向程式觀念尚未成熟前,軟體開發是以程序導向為概念。程序導向是把大問題分割成小問題,若小問題還是複雜,就再繼續拆分直到電腦可以處理以及能夠撰寫為程序或是函...

鐵人賽 Software Development DAY 7

技術 [Day07] Asp.Net重要物件HttpApplication(三) 取得執行的IHttpHandler

前言 前面和大家分享StepManager是如何建立管道和依序呼叫IHttpModule註冊事件 查看原始碼好站 Reference Source 此文的...

鐵人賽 Software Development DAY 6

技術 【深入Dapper.NET源碼】Strongly Typed Mapping 原理 Part3 : 動態建立方法重要概念「結果反推程式碼」優化效率

接著使用Expression來解決Reflection版本問題,主要是利用Expression特性 : 「可以在Runtime時期動態建立方法」來解決問題。...

鐵人賽 Modern Web DAY 16
ASP.NET Web Form 入門30天 系列 第 16

技術 [ASP.NET] [C#] 多載 (Overload)

本篇擷取重點: 多載 (Overload) 是什麼 一、多載 (Overload) 多載(Overloading)在寫作程式時,是一個非常實用的觀念。當我...

鐵人賽 Modern Web DAY 18

達標好文 技術 Day18-C#-最常用的陣列!處理字串的一百種方法~(組合、切割、取代、擷取、尋找、修改)

好,首先,其實沒有一百種不要擔心XDDD浮誇一下浮誇一下XDDD 說到陣列,我們最常使用的陣列非字串莫屬了!!字串就是字元的陣列~ 之後開始接觸ASP.NET網...

鐵人賽 Software Development DAY 6

技術 [Day06] Asp.Net重要物件HttpApplication(二) 建置執行管道

前言 前面有提到InitInternal方法,是如何載入註冊HttpModule並呼叫Init方法,經典模式和管道模式比較. 查看原始碼好站 Referenc...

鐵人賽 Software Development DAY 1

技術 程式語言的發展已經年過半百

程式語言的發展已年過半百 程式作為完成特定工作的一串電腦指令組合,人類與電腦互相溝通的語言我們都稱之為程式語言,在溝通的過程中,人們以自己易於理解的程式語言來撰...

鐵人賽 Software Development DAY 5

技術 【深入Dapper.NET源碼】 Strongly Typed Mapping 原理 Part2 : Reflection版本

在前面ADO.NET Mapping例子可以發現嚴重問題「沒辦法多類別共用方法,每新增一個類別就需要重寫代碼」。要解決這個問題,可以寫一個共用方法在Runti...

鐵人賽 Modern Web DAY 15
ASP.NET Web Form 入門30天 系列 第 15

技術 [ASP.NET] [C#] 物件導向 - 繼承者們,線上看 XDD

本篇擷取重點: 繼承 繼承的目的及手段 繼承的類別階層 其他和繼承相關的問題 一、繼承(Inheritance) 繼承是一種類別間的階層式分類關係,...

鐵人賽 Software Development DAY 5

技術 [Day05] Asp.Net重要物件HttpApplication(一) 初始化建立IHttpMoudule

前言: 附上Asp.net執行請求流程圖. 上一篇文章分享HttpApplicationFactory.GetApplicationInstance方法返回一...

鐵人賽 Software Development DAY 4

技術 【深入Dapper.NET源碼】 Strongly Typed Mapping 原理 Part1 : ADO.NET對比Dapper

接下來是Dapper關鍵功能 Strongly Typed Mapping,因為難度高,這邊會切分成多篇來解說。 第一篇先以ADO.NET DataReade...