🚫 Ad Blocker Detected

Please disable your AD blocker to continue using this site. Ads help us keep the content free! please press keyboard F5 to refresh page after disabled AD blocker

請關閉廣告攔截器以繼續使用本網站。廣告有助於我們保證內容免費。謝謝! 關閉後請按 F5 刷新頁面

0%

Agenda

開賽前言:

三十篇文章架構基本遵循:

  1. **前言:**前情提要,閱讀此文建議使用工具或知識.
  2. 標出大主題(大字體+錨點)之後在細項列出要說明的細節
  3. 小結:每篇都有一個小結快速總結今天重點

為什麼想要選擇此主題

選擇這個主題主要原因是

  1. 沒有人整理一套較完整的Asp.net執行原始碼解析文章(從Http請求IIS Server,進入CLR前置動作),asp.net mvc原始碼解析
  2. 台灣大部分的文章都是分享如何使用,很少文章有介紹如何運作.
  3. 利用微軟開原後站在巨人肩膀上可以看更遠,理解MVC框架如何去設計具有一定的彈性.
  4. 了解核心運作流程,更好改善或擴充現有專案架構(讓系統變得更有條理)

閱讀時建議事項

我在文章中會盡量寫出我看到精華部分,但此系列文可能對於MVC新手不太容易閱讀,因為MVC框架中運用到許多設計模式和OOP觀念(當初我在閱讀上也花了不少功夫)

Read more »

前言:

Asp.net 是一個pipeline的模型

我覺得.Net Web工程師對於這個模型和IHttpHanlder,IHttpModule 要有基本的概念和理解.

理解這些管道除了可以讓我們節省許多不必要的資源浪費也可讓我們程式架構更加有條理.

就像我們在Asp.net MVC如果要寫權限驗證程式碼,雖然可以寫在ControllerAction

但更好做法是我可以寫一個類別繼承AuthorizeAttributeoverride OnAuthorization方法並掛上此標籤.

所以更了解這些原理可以讓我們寫程式事半功倍.

Asp.net Application Event 生命週期

前面我們知道Asp.net是一個請求處理響應的管道而這個管道中微軟有提供許多點可以讓我們進行客製化的擴充程式撰寫

事件可藉由IHttpModule來擴充註冊

Read more »

前言:

Asp.net 是一個pipeline的模型

我覺得.Net Web工程師對於這個模型和IHttpHanlder,IHttpModule 要有基本的概念和理解.

理解這些管道除了可以讓我們節省許多不必要的資源浪費也可讓我們程式架構更加有條理.

就像我們在Asp.net MVC如果要寫權限驗證程式碼,雖然可以寫在ControllerAction

但更好做法是我可以寫一個類別繼承AuthorizeAttributeoverride OnAuthorization方法並掛上此標籤.

所以更了解這些原理可以讓我們寫程式事半功倍.

Asp.net Application Event 生命週期

前面我們知道Asp.net是一個請求處理響應的管道而這個管道中微軟有提供許多點可以讓我們進行客製化的擴充程式撰寫

事件可藉由IHttpModule來擴充註冊

Read more »

前言:

AutoMapper 幫我我們方便管理物件跟物件之間屬性值格式轉換

模型轉換

這裡有兩個類別

UserInfoModel 當作我們從DB撈取出來 模型資料

1
2
3
4
5
6
public class UserInfoModel
{
public int RowId { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}

UserInfoViewModel 是呈現在UI或其他地方的模型  

其中 Detail 欄位由 UserInfoModel  Name Age 屬性組成的

1
2
3
4
public class UserInfoViewModel
{
public string Detail { get; set; }
}

這時我們就會引用 AutoMapper 幫我們統一管理轉換模型上的問題

Read more »

前言:

前陣子在被面試官說:我有電子發票開源專案,是否有上到Nuget上

我回答:沒有.

我就突然想到我也可以把我的專案放到Nuget上讓更多人方便使用

我就查詢資料去了解整個上板流程,並打成文章跟大家分享


下載Nuget Commandline Tool

下載Nuget Commandline Tool

之後你會取得 nuget.exe 這個檔案

Read more »

前言:

SO 發現蠻多人有遇到 Gaps and Islands problem

count of last continuous inserted records based on date 

之前有跟大家分享過 解決連續範圍的思路  [SQL連續範圍] 數字,日期連續範圍

今天針對發問者實際例子來一步步 解決問題…

提問出處:count of last continuous inserted records based on date 


問題說明:

提問者希望可以獲得最近一次連續日期的次數

例如:

Read more »

前言:

狀態者模式

優勢在可將複雜的物件狀態條件,以物件方式來減少條件式的判斷程式

可由物件自身的狀態,決定之後的動作行為.

狀態者模式 說明:

需求簡易流程如下

這是一個簡單的訂單流程圖

我們可看到從建立訂單開始->最後判斷成功或取消訂單 看似簡單但需要寫一定程度的判斷條件式,而且也要做一定程度的逆向流程防呆.

這裡先貼上 未使用狀態者模式的程式碼: PaymentContext.cs

Read more »

前言:

AutoMapper 幫我我們方便管理物件跟物件之間屬性值格式轉換

模型轉換

這裡有兩個類別

UserInfoModel 當作我們從DB撈取出來 模型資料

1
2
3
4
5
6
public class UserInfoModel
{
public int RowId { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}

UserInfoViewModel 是呈現在UI或其他地方的模型  

其中 Detail 欄位由 UserInfoModel  Name Age 屬性組成的

1
2
3
4
public class UserInfoViewModel
{
public string Detail { get; set; }
}

這時我們就會引用 AutoMapper 幫我們統一管理轉換模型上的問題

Read more »

前言:

前陣子在被面試官說:我有電子發票開源專案,是否有上到Nuget上

我回答:沒有.

我就突然想到我也可以把我的專案放到Nuget上讓更多人方便使用

我就查詢資料去了解整個上板流程,並打成文章跟大家分享


下載Nuget Commandline Tool

下載Nuget Commandline Tool

之後你會取得 nuget.exe 這個檔案

Read more »

前言:

大家都知道float和double會有誤差 

但原因是什麼呢? 

今天就跟大家分享Float和Double會誤差的原因

一. 浮點數介紹

一開始先對於float和double做身家調查

浮點類型的範圍

類型 最小值 最大值
float 1.175494351 E – 38 3.402823466 E + 38
double 2.2250738585072014 E – 308 1.7976931348623158 E + 308

浮點類型

類型 有效數字 位元組數
float 6 – 7 4
double 15 – 16 8
Read more »