.NET學程

T008_Blogger_DotNETPath
T008_Blogger_DotNET學程


=================================================
#IT工具人折價眷官網 http://ithandyguytutorial.obior.cc/
#IT工具人講義部落格 https://ithandyguytutorial.blogspot.com.au
#IT工具人Youtube頻道 https://www.youtube.com/user/lpmplpmp/playlists
#IT工具人課程課後輔導討論版 https://www.facebook.com/groups/934567793358849/
#IT工具人臉書頁 https://www.facebook.com/Ithandyguytutorial-2353578301334227/
------------------------------------
如果喜歡我的課程,以下都是鼓勵我繼續寫課程的動力唷。
1.
請訂閱我的Youtube頻道追蹤我的最新消息。私人影片的部分為付費影片,
如欲購買,請來「IT工具人折價眷官網」購買我的課程唷,讓我可以分潤多一點點。
2.
購買課程並且上完課後,如果覺得不錯,請不吝留下您的好評價。
------------------------------------
Code : 4797f523-fb27-4b89-8e50-25fd905ea31b
=================================================


1. .NET Framework學


1.1. .NET Framework學程 - 建議學習順


1.  TSQL扎實打
2.  C#深入解
3.  LINQ完全攻略:  LINQ to Object、SQL、XML, CSV, HTML
4.  測試第1篇: 快速入門MSTest V.S. NUnit
5.  測試第2篇: 隔離框架NSubstitute V.S Moq
6.  測試第4篇: 斷言神器FluentAssertions Part1
7.  測試第5篇: 斷言神器FluentAssertions Part2
8.  HTML5和CSS3基礎入門 (尚無規劃)
9.  ASP.NET MVC完全精
10.  Entity Framework第1篇: 基礎入門Code First V.S. DB First
11.  Entity Framework第2篇: 扎實打底Fluent API V.S. Data Annotation
12.  Entity Framework第3篇: 熟能生巧Unit of work with Repository
13.  Entity Framework第4篇: 加速開發POCO generator
14.  測試第3篇: 熟能生巧Unit Test V.S. Integration Test
15.  Entity Framework第5篇: 技術整合Part 1, Test Unit of work with Repository Part1
16.  Entity Framework第6篇: 技術整合Part 2, Test Unit of work with Repository Part2
17.  RESTful ASP.NET Web API (規劃中)


1.2. .NET Framework學程 - 課程介


1.2.1. TSQL扎實打

廣告影
課程導
【 技術介紹
TSQL全名是Transact-SQL
TSQL是一個專門為Microsoft SQL Server所設計的SQL語
要製作一個新的Database 或是 Table
或是要針對Table直接做 CRUD (增刪查改)
都是寫一份TSQL
然後Microsoft SQL Server接受到你的指令,也就是TSQL
就會開始去執行你要它做的事
一切和Microsoft SQL Server互動的指令就是TSQL


【 TSQL扎實打底
想朝 .NET Developer 前進,必先學會"資料庫"的大小事。資料庫技術的功夫深淺,也將決定您未來職場上的實力。 
第1魔王: Join,本課程介紹各種 Join,解析 Cross Apply, Outer Apply 等多種用法和比較,帶您寫出更進階的 query。 
第2魔王: Concurrent Transactions,討論了2個Process同時編輯相同資料的情況下
尋找 blocking process 並且解決 Dead Lock。 
第3魔王: 各種資料型別的特殊用法
包括 String Function、DateTime、Math Function,Sequence Object, Guid。 
第4魔王: Dynamic T-SQL雖然可以透過Reuse Cache Plan的方式提高效率
但是,如果不夠熟悉、寫得不夠嚴謹
非常有可能會對入侵者開啟 SQL Injection 的後門。影響你的資料庫的的安全性

1.2.2. C#深入解

廣告影
課程導



【 技術介紹
微軟所開發出的程式語
其實#這個字 是由 4個+ 在上下左右 所組


所以微軟真正的目的是想命名
C++的++


早期我們只有C
後來發展出C++
所以微軟參考 C  ,  C++,  Java ...etc 各種程式語言的觀
通過長期的開發出C#
這是目前每個 .NET Developer 必學的程式語


【 C# 深入解析
深入了解Generic, Reflection和Attribute, Partial Class, Partial Method, 讓您的程式碼更好擴充
攻略各種Collection, 包含Indexer, Dictionary, List, Stack還有Queue
接下來學習更進階的Func, Delegate, Lamda匿名型別和方法
更進一步學習Thread, Async和Await, 同步和非同步處理

1.2.3. LINQ完全攻略:  LINQ to Object、SQL、XML, CSV, HTML

廣告影
課程導
【 技術介紹
LINQ即Language Integrated Query(語言集成查詢)
微軟參考SQL和C#和多個程式語言的觀念所開發出
Linq有兩種語
一種是SQL Like Query
另一種是lambda Query


當你把資料從資料庫讀取進你寫的程式的collection
要怎麼從你寫的collection叫出你所需要的資
這時候會需要Linq將 "搜尋條件" 透過 "Where" 語
叫出你所需的資


Linq其實有很多
你可以google搜尋"Linq to Everything"
會找到許多相關語


【 LINQ完全攻略 】 
課程編號: 5ba9a6fe-7475-4b0c-8b99-bbcf7f5e2e1c 
Linq第1關, 語法。Linq Query有2種語法,1種是SQL Like Query,另1種是Lambda Query。 
Linq第2關,Linq Join。包括GroupJoin, InnerJoin, LeftOutterJoin和CrossJoin。 
Linq第3關,Linq Concurrency。討論了3個Change Conflict Exception的處理方式
第1種是Keep Current Values,第2種是Keep Changes,第3種是Overwrite Current Values
針對"效能"還討論了2種方式,第一種是Update Check Property,第2種是Row version。 
Linq第4關,Linq to Everything。Linq to Object/SQL/XML/CSV/HTML。 

1.2.4. 測


1.2.4.1. 測試學程介


TestSeries Preview01 - 關於測
TestSeries Preview02 - 關於單元測試 V.S. 整合測試 V.S. 端對端測
TestSeries Preview03 - 關於測試學
測試大致上可以分成三
Unit Test單元測試 (比例最多)
Integration Test整合測試  (比例中等)
End to End Test 端對端測試  (比例最少)

Unit Test可以讓你的Code更有生產
假設有個Developer突然發現一個Bug
該Bug是在一年前寫的Code
那麼該Developer就必須要去回
當初到底是發生什麼事情?
到底是被鬼遮眼,還是豬油濛了心?
怎麼會寫出有Bug的Code呢?
於是想到原因後,已經花了不少時間
接下來還要花更多時間來修理該bug
這對公司來
Developer的時間就是金
所以我們需要Unit Test來提升我們的生產
最後
所有的Developer都有責任要對自己寫的Code負
因此寫測試給自己的code是很重要的技

"自動化測試" 取代人工測試其實非常重
"自動化測試"大大節省人工測試的時間和人力,速度快,自動測試重複的事情,有品質保障
強力建議,如果時間允許,一定要寫"自動化測試",將來在維護的成本才會大大降低

Unit Test單元測
以最小單位進行測試,因為範圍小,所以快
因為測試範圍小,速度快,所以我們要盡量多寫一點Unit Test
通常Unit Test 測試 的 比例數量 是要最多的

Integration Test 整合測
多個單元互相整合再一起做測試。主要針對不同模組互動下去做測試
舉例來
資料庫連接的部分是一個模
而讀取資料庫的資料進來後,做一些商業邏輯的部分又是另一個模
我想針對這兩個模組的互動去做測試,看看他們互動後會不會產生各種奇琶結果
如果會,就趕快改正我的程式碼
以這個例子來
如果Unit Test有pass, 但是Integration Test 卻是fail
代表有可能是資料庫連結的部分有什麼問
Integration Test是需要準備更完整的模擬環境來完成測試工作

End to End Test 端對端測
以User的角度去做測試,通常需要模擬最完整的環境去做測試
舉例來
我把每個class都寫好了,資料庫連結的部分也寫好了。然後我透過MVC來寫User Interface使用者介面
那麼User開始登入我寫的User Interface使用者介
點選各種我寫的功能,去看看這些功能是不是去做了他們應該要做的事情
再簡化說這個例子好了
一句話,就是針對 User Interface使用者介面 去做測試

保哥有關測試的文章其實講得非常清
如果想更加詳細了解的人 , 可以來這邊閱

1.2.4.2. 測試第1篇: 快速入門MSTest V.S. NUnit
Test episode 1: Basic, MSTest V.S. NUnit

廣告影
課程導
【 測試第1篇: 快速入門MSTest V.S. NUnit 】 
目前幾個比較流行的UnitTest有MSTest, Nunit, MbUnit, xUnit.net
其中MSTest是不需要安裝third-party tools
在我的課程裡面
快速入門2個最流行Unit Test Framework, MSTest 和 NUnit
透過實際測試同一功能,介紹兩者的差異和比較,幫助融會貫通兩項技術
大部分的公司會使用其中一種做為主要測試語法,因此學完後能馬上運用

1.2.5. 測試第2篇: 隔離框架NSubstitute V.S Moq
Test episode 2: Mocking Framework, NSubstitute V.S Moq

廣告影
課程導
【 技術介紹
假設你想要test ClassA
但是ClassA裡面有使用ClassB
以這個例子來說
Integration Test整合測試,就是 當我測試ClassA的時候,它也會一起測試一點點的ClassB
Unit Test單元測試,就是 我想要"只"測試ClassA,所以我必須要將 ClassB替換掉
我必須要寫一個 Test Double (模擬物件) 來 替換掉 ClassB (Production Object)
這樣就不會測試到ClassB,這樣我就能 "只"測試ClassA
那這邊我們就是要介紹多種Test Double (模擬物件)的觀念和寫

【 測試第2篇: 隔離框架NSubstitute V.S. Moq 】 


介紹 Test Double(模擬物件)觀念
解釋 Dummy、Stub、Spy、Mock 和 Fake 的異同
學會使用 Mocking Framework(隔離框架)來動態生成 Test Double
並介紹 Moq 和 Nsubstitute 隔離框架語法的差異和比較


目前幾個比較流行的Mocking Framework (隔離框架)
Moq, NSubstitute, Rhino Mocks, FakeItEasy, and NMock3
在我的課程裡面,我會討論兩個最流行的Mocking Framework (隔離框架), Moq 和 NSubstitute
大部分的公司會使用這兩種其中一個為主要使用的Mocking Framework (隔離框架)



1.2.6. & 1.2.7. 測試第4~5篇: 斷言神器FluentAssertions
測試第4篇: 斷言神器FluentAssertions Part1
Test episode 4: Open Source Libraries.  FluentAssertions Part1
測試第5篇: 斷言神器FluentAssertions Part2
Test episode 5: Open Source Libraries.  FluentAssertions Part2


廣告影
課程導
導讀 : 測試第4篇: 斷言神器FluentAssertions Part1
導讀 : 測試第5篇: 斷言神器FluentAssertions Part2
每個公司所用的 Unit Test Framework (單元測試框架)都不一樣
而每個 Unit Test Framework 所用的 Assertion 語法也不盡相同
難道我們每個都要學嗎?當然不必
Fluent Assertions 適用於大部分的 Unit Test Framework環境
包括 MSTest、xUnit、NUnit、Gallio、MBUnit、MSpec和NSpec
也適用於 .NET Core 、 .NET standard 和 .NET Framework 的環境
並且讓 failure message (失敗訊息) 和 Test Source code (測試原始碼) 更有可讀性
因此只要學習一次,就能一勞永逸,學後馬上對接工作
--------------------------
Example:
int sampleValue = 1;
int expectValue = 2;
Assert.AreEqual(expectValue, sampleValue); //MSTest&NUnit
//Message: Expected: 2
//But was: 1
---------------
Assert.That(sampleValue, Is.EqualTo(expectValue)); //NUnit
//Message: Expected: 2
//But was: 1
---------------
sampleValue.Should().Be(expectValue); //FluentAssertions
//Message: Expected sampleValue to be 2, but found 1.
--------------------------
【 測試第4篇: 斷言神器FluentAssertions Part1 】 
測試第4篇,專注於使用 Fluent Assertions 測試 Simple Type 和單一一個 Object
廣告影
課程導
--------------------------
【 測試第5篇: 斷言神器FluentAssertions Part2 】 
測試第5篇,專注於使用 Fluent Assertions 測試 Collection 和 Dictionary
廣告影
課程導

1.2.8. HTML5和CSS3基礎入門 (尚無規劃)



1.2.9. ASP.NET MVC完全精
ASP.NET MVC
廣告影
課程導
【 技術介紹
MVC就是Model  View  Controller
ASP.NET的功用就相當於PHP的功
就是寫畫面和資料庫互動的程式
你從資料庫讀且資料進來
要怎麼呈現在畫面
這種技術通常用來開發使用者介面User Interface


ASP.NET目前有兩種比較流行的框
一個是Web Form
另一個是MVC
早期,我們只有Web Form
後來有一群武林高手為了讓程式碼更簡
開發出了MVC
其實,Web Form是一個很好入門的咚
而MVC則是非常難入
MVC在我的學習順序裡面被排得非常後
我都會建
一定要先學好Linq才能來學MVC
並且HTML  CSS的功力一定要好,不然光是寫MVC的View就GG

【 ASP.NET MVC完全精通 】 
課程內容將從最基礎的 Model、 View、Controller 基本觀念開始
學習如何「完全手寫」Entity Framework、 ADO.NET,了解 連接資料庫
自動生成程式碼、Action Filter、Cache、SSL、HTTPS、Certicate...等各種實際工作上會用到的技術
並帶您透過 MVC 從零開始實現一套帶有正常功能的「搜尋引擎

1.2.10. Entity Framework第1篇: 基礎入門Code First V.S. DB First


1.2.10.1. Entity Framework介


EF學程簡介Preview01
EF學程簡介Preview02-01 : 介紹TSQL還有相關安裝工
EF學程簡介Preview02-02 : EF DB First開發模
EF學程簡介Preview02-03 : EF Code First 開發模式 底下的 Mapping 模式 並且搭配EF Poco Generator
EF學程簡介Preview02-04 : EF Code First 開發模式 底下的 Mapping 和Migration模
EF學程簡介Preview02-05 : EF Code First 開發模式 底下 保持EF Model Class和Database Table Relationship 的一致
07B_EF第5和6篇_Poco範例成品介
微軟針對連接資料庫有好幾項技
ADO.NET, Typed Dataset, Linq to SQL, Dapper, Entity Framework...etc
其中這幾年比較流行的Entity Framework 算是澳洲大部分公司的首
Entity Framework真的真的很難
因為她有很多種開發方
有EF Model First (可以不學 因為很不流行)
有EF DBFirst (我發現很多台灣公司用這個)
有EF Code First (澳洲很多公司用這個)
其中EF Code First又有兩個子模
一個是Mapping
一個是Migration
甚至還有混在一起用
如果你想知道EF的各種開發模
請參考以下幾個Video
EF學程簡介Preview02-01 : 介紹TSQL還有相關安裝工
EF學程簡介Preview02-02 : EF DB First開發模
EF學程簡介Preview02-03 : EF Code First 開發模式 底下的 Mapping 模式 並且搭配EF Poco Generator
EF學程簡介Preview02-04 : EF Code First 開發模式 底下的 Mapping 和Migration模
EF學程簡介Preview02-05 : EF Code First 開發模式 底下 保持EF Model Class和Database Table Relationship 的一致

1.2.10.2. Entity Framework第1篇: 基礎入門Code First V.S. DB First
Entity Framework episode 1 - Code First V.S. DB First

廣告影
課程導
【 Entity Framework第1篇: 基礎入門Code First V.S. DB First 】 
主要講解 EF DB First 和 EF Code First 模式下的 Mapping 開發模式
並帶您在 DB First 和 Code First 不同的視角下重構同一功能。 


1.2.11. Entity Framework第2篇: 扎實打底Fluent API V.S. Data Annotation
Entity Framework episode 2 - Fluent API V.S. Data Annotation

廣告影
課程導
【 Entity Framework第2篇: 扎實打底Fluent API V.S. Data Annotation 】 
了解 Code First 模式下 Migration 開發模式
熟悉 Code First 底下的 Data Annotations V.S. Fluent API 的差異和比較
並初步了解 AutoMapper,為下一階段做準備

1.2.12. Entity Framework第3篇: 熟能生巧Unit of work with Repository
Entity Framework episode 3: Unit of work with Repository

廣告影
課程導
【 Entity Framework第3篇: 熟能生巧Unit of work with Repository
Entity Framework episode 3: Unit of work with Repository
初步了解 Code First 和 DB First開發模式下的Unit Of Work搭配Repository和AutoMapper

1.2.13. Entity Framework第4篇: 加速開發POCO generator
Entity Framework episode 4: POCO generator 
廣告影
課程導
【 Entity Framework第4篇: 加速開發POCO generator 】 
Entity Framework episode 4: POCO generator 
熟悉 EF Poco Generator 這項工具來加速開發工作

1.2.14. 測試第3篇: 熟能生巧Unit Test V.S. Integration Test
Test episode 3: Unit Test V.S. Integration Test

廣告影
課程導
【 測試第3篇: 熟能生巧Unit Test V.S. Integration Test 】 
我們將討論 Unit Test (單元測試)和 Integration Test (整合測試)的差異和比較
並透過合理的 Code Coverage 觀念來解釋測試程式碼的完成度
高的 Code Coverage (代碼覆蓋率)不等於 High quality test suite (高品質的自動化測試)
但是太低的 Code Coverage (代碼覆蓋率) 肯定代表你寫的自動化測試的品質不夠
本篇要用最直白實用的範例
透過合理的 Code Coverage 觀念來抓住寫測試的感覺
讓您有效率的測試自己所撰寫的程式碼

1.2.15. & 2.16.  Entity Framework第5~6篇: 技術整合 Test Unit of work with Repository


Entity Framework第5篇: 技術整合Part 1, Test Unit of work with Repository Part1 
Entity Framework episode 5: Test Unit of work with Repository Part1
Entity Framework第6篇: 技術整合Part 2, Test Unit of work with Repository Part2 
Entity Framework episode 6: Test Unit of work with Repository Part2


廣告影
EF第5篇課程導
EF第6篇課程導
【 Entity Framework第5篇: 技術整合Part 1, Test Unit of work with Repository Part1 】 
Entity Framework episode 5: Test Unit of work with Repository Part1 
整合我們目前所學技術包括 TSQL、C#、Linq,Unit Test、HTML CSS、MVC、EF
手寫出一個完整的範例。 


【 Entity Framework第6篇: 技術整合Part 2, Test Unit of work with Repository Part2
 Entity Framework episode 6: Test Unit of work with Repository Part2 
繼續在同一個範例把 Unit Of Work 和 Repository 搭配 AutoMapper 連接到 MVC
並建立 Search bar 搭配 AutoComplete,Sorting,分頁,Caching
還有delete multiple等各種 MVC 精華重點。 

1.2.17. ASP.NET Web API 學


1.2.17.0. ASP.NET Web API


這是一個非常重要的技
因為有了API,所以前端和後端可以分開並且獨自發展
也因此,這幾年,前端技術像是雨後春筍,不斷冒出新咚咚出來

早期,後端與前端幾乎是密不可分
所以,早期我們只有Javascript和Jquery
後來,API這個技術成熟後,API就像是一把聖劍,一劍批
把前端和後端終於可以獨自分開來,然後各自發展

API就像是一個橋梁或是合約
API向後端索取資料
API向前端吐出資料
只要雙方都符合合約內
就可以合作順

API就像是一個合
前端透過一個特定的URL和一個特定的HTTP VerbAPI
API收到這個URL就會去判斷到底要呼叫後端的哪個method
API收到這個HTTP Verb後會去分析到底是Get還是Post或是Put或是Delte
Get就類似於讀取資
Post就類似於新增資
Put就類似於修改資
Delete就類似刪除資
當API收到特定的URL和一個特定的HTTP Verb
這邊的API就像是"餐廳櫃台"
API就會跟 "後端" 講說
"你看,我們客人點了這些餐點"
這邊的後端就類似於"廚師"
後端就說 "沒問題,馬上生出來給你"
後端就去櫃子上面找食材 
這邊的櫃子就相當於"資料庫"

廚師(後端Back-End)就把從櫃子(資料庫DataBase)上面拿出來的食材(資料Data)
炒一炒,加油加蒜頭加辣 (加入特定的商業邏輯計算)
然後廚師(後端Back-End)就把煮好的餐點(已經加工過後的Data)丟給櫃檯(API)
櫃檯(API)就把餐點丟給客人(前端Front End)
於是客人(前端Front End)收到煮好的餐點(已經加工過後的Data)
然後去處理自己要處理的事

舉個例
E.g. 1.
Resource: /Gamers
HTTP verb: GET
Gets a list of gamers

E.g. 2.
Resource: /Gamer/1
HTTP verb: GET
Gets the gamer with Id = 1

E.g. 3.
Resource: /Gamers
HTTP verb: POST
Create a new gamer to the list of gamers

E.g. 4.
Resource: /Gamer/1
HTTP verb: PUT
Update the gamer with Id = 1

E.g. 5.
Resource: /Gamer/1
HTTP verb: DELETE
Delete the gamer with Id = 1

5. Tools


5.0. Tools 工具下載與安


【 Tools工具下載與安裝
我了解初學者在設定環境的時候,總是不知道從何開始
所以,我特別錄製了一系列的"工具下載與安裝"
如果你對SQL Server, Visual Studio ....etc這些安裝有疑慮
可以來參考我錄製的教
此講義目錄Table of Content:    
此YouTube PlayList: 
--------------------
T000_000_工具下載與安裝說

5.1. Tools 工具下載與安

【 Open Broadcaster Software(OBS) Live Streaming
OBS (Open Broadcaster Software) is free and open source software 
for video recording and live streaming.
Stream to Twitch, YouTube and many other providers ...
Open Broadcaster Software(OBS) 是一個free and open軟體
專門用來做Video Recording和Live Streaming的軟體
它可以直撥到YouTube, Facebook等等多個provider
本課程將會帶您從Zero到Hero學會OBS的多種應用技巧
此講義目錄Table of Content:  
此YouTube PlayList:  
-----------------------
廣告影
課程導


留言

這個網誌中的熱門文章

T000_011_Install Visual Studio 2019 Offline

T020_CreateLargeData_SubQuery_Join_Performance

IT工具人學院