課程時間

🔧【Tools工具安裝】5:07:24

🎬【Preview導讀】6:16:30

🎬【EntityFrameworkEpisode5(第5篇)-Test、UnitOfWorkWithRepositoryPart1】24:05:38

課程章節

請按「Preview」預覽章節。

  關於本課程
Available in days
days after you enroll
  討論DbContext、EfModel
Available in days
days after you enroll
  討論EfModelRepository、EfModelUnitOfWork
Available in days
days after you enroll
  用NUnit寫UnitTest測試EfModelRepository
Available in days
days after you enroll
  用NUnit寫IntegrationTest測試EfModelRepository
Available in days
days after you enroll
  用MSTest寫UnitTest測試EfModelRepository
Available in days
days after you enroll
  用MSTest寫IntegrationTest測試EfModelRepository
Available in days
days after you enroll
  課程評價
Available in days
days after you enroll
請選付款方案

🔴如果您在HiSKIO上購買了課程,則無需在Teachable重新購買相同課程。

請注意,Teachable Pay的發票無法提供給台灣公司報稅,如果需要台灣發票報稅,請去HiSKIO購買。

Teachable可能會產大約5%的「海外交易費」(詳情請諮詢您的發卡機構),為了學生權益,請使用「10%off」折價券

「Bundle」(組合包)更划算!

#「.Net Framework」相關系列「Bundle」(組合包)

  • 🚀「包含5堂課」B-2-TSQL、C#、Linq、MVC、API同步攻略(Click here)
  • 🚀「包含6堂課」B-3-EF(.NetFramework)學程第1-6篇(Click here)
  • 🚀「包含5堂課」B-4-單元整合測試學程第1-5篇(Click here)
  • 🚀「包含16堂課」B-5-扎實打底.NetFramework學程-TSQL、C#、LINQ、MVC、API、EF第1-6篇、測試第1-5篇(Click here)
  • 🚀「IT工具人學院全部課程」B-1-1-All Course Membership全能學生證(Click here)

.Net Framework Serious(學程)

注意: 因為此系列已經沒有新東西可以教了,所以這個學程不會再加入新內容了!

#請來這邊看「.Net Framework Serious(學程)」簡介(Click here)

  • 🚀2-1-TSQL(.NetFramework)扎實打底(Click here)
  • 🚀2-2-C#(.NetFramework)深入解析(Click here)
  • 🚀2-3-Linq(.NetFramework)完全攻略(Click here)
  • 🚀2-4-Asp.NetMVC(.NetFramework)完全精通(Click here)
  • 2-5A-EF(1to3)(.NetFramework)
  • 🚀2-5A-1-EntityFrameworkEpisode1(第1篇)-CodeFirst、DBFirst(Click here)
  • 🚀2-5A-2-EntityFrameworkEpisode2(第2篇)-FluentAPI、DataAnnotation(Click here)
  • 🚀2-5A-3-EntityFrameworkEpisode3(第3篇)-UnitOfWorkWithRepository(Click here)
  • 2-6B-Test(1to5)(.NetFramework)
  • 🚀2-6B-1-TestEpisode1(第1篇)-TestFramework(測試框架)-MSTest、NUnit(Click here)
  • 🚀2-6B-2-TestEpisode2(第2篇)-MockingFramework(隔離框架)-NSubstitute、Moq(Click here)
  • 🚀2-6B-3-TestEpisode3(第3篇)-UnitTest(單元測試)、IntegrationTest(整合測試)(Click here)
  • 🚀2-6B-4-TestEpisode4(第4篇)-FluentAssertionsPart1(Click here)
  • 🚀2-6B-5-TestEpisode5(第5篇)-FluentAssertionsPart2(Click here)
  • 2-7B-EF(4to6)(.NetFramework)PocoGenerator
  • 🚀2-7B-4-EntityFrameworkEpisode4(第4篇)-PocoGenerator(Click here)
  • 🚀2-7B-5-EntityFrameworkEpisode5(第5篇)-Test、UnitOfWorkWithRepositoryPart1(Click here)(👈😁你現在在此!)
  • 🚀2-7B-6-EntityFrameworkEpisode6(第6篇)-Test、UnitOfWorkWithRepositoryPart2(Click here)
  • 🚀2-8-Asp.NetMvcApi(.NetFramework)(VS2017)扎實打底(Click here)

本課簡介

Hi My name is Kevin. 我是一名移民到澳大利亞的軟體工程師,個人專注於各種技術和使用者界面的開發與研究。

【EntityFrameworkEpisode5(第5篇)-Test、UnitOfWorkWithRepositoryPart1】和【EntityFrameworkEpisode6(第6篇)-Test、UnitOfWorkWithRepositoryPart2】是一門銜接一門的「.Net Framework學程」中其中一個課程。

Rpository、UnitOfWork層隔開了DataAccess層和UserInterface(UI)層。這有什麼好處?

💡好處1:

Rpository、UnitOfWork層可以讓DatabaseAdministrator(DBA)和Programmer(PG)同時開工,不浪費時間。

在Database建立前,先建立Rpository、UnitOfWork層。使用AutoMapper來把EfModel對應到MvcModel。使用MSTest、MockUpData(假資料)去測試Rpository、UnitOfWork層。Rpository、UnitOfWork層有點像是一個合約,建立好Rpository、UnitOfWork層之後,DatabaseAdministrator(DBA)就可以理解要放進什麼Data進Rpository、UnitOfWork層,進而去開發Database。同時,Programmer(PG)就可以理解Rpository、UnitOfWork層可以吐出什麼Data,在Database建立好前,Programmer(PG)可以使用MockUpData(假資料)進而去開發UserInterface(UI),UI可以是Asp . Net MVC( . NetFramework)。

💡好處2:

歷年來,每隔幾年,微軟就會推新的連接資料庫的方法,舉例來說,早期,DataAccess層通常為ADO . NET,而UserInterface(UI)層通常為Asp . Net WebForm。但是現在DataAccess層通常為EF,而UserInterface(UI)層通常為Asp . Net MVC。如果早期就有寫Rpository、UnitOfWork層去隔開DataAccess層和UserInterface(UI)層,那麼,DataAccess層從ADO . NET升級為EF就會變得非常容易。而UserInterface(UI)層從Asp . Net WebForm升級為Asp . Net MVC也會非常容易。

參考微軟官網的範例文件(https://goo.gl/EjPHko),

【EntityFrameworkEpisode5(第5篇)-Test、UnitOfWorkWithRepositoryPart1】和【EntityFrameworkEpisode6(第6篇)-Test、UnitOfWorkWithRepositoryPart2】的差別?

【EntityFrameworkEpisode5(第5篇)-Test、UnitOfWorkWithRepositoryPart1】重點在於把Database的Table、View、StoredProcedure、TableValuedFunction連到EntityFramework,再連到EfModelRepository層的EfModelRepository、EfModelUnitOfWork。

【EntityFrameworkEpisode6(第6篇)-Test、UnitOfWorkWithRepositoryPart2】重點在於使用AutoMapper把EfModelRepository層的EfModelRepository、EfModelUnitOfWork連到UiModelRepository層的UiModelRepository、UiModelUnitOfWork,再連到Ui層的Asp. Net MVC的Model、View、Controller。尤其是,(T74)資料庫Weapon資料表建立前,在UiModelRepository層的WeaponRepository使用MockUpData(假資料)建立Ui層Model、View、Controller。

Course Highlight(本課魔王)

😈第一魔王,(T7toT11)討論DbContext、EfModel

😈第二魔王,(T12toT21)討論EfModelRepository、EfModelUnitOfWork

😈第三魔王,(T22toT25)用NUnit寫UnitTest測試EfModelRepository

😈第四魔王,(T26toT29)用NUnit寫IntegrationTest測試EfModelRepository

😈第五魔王,(T30toT32)用MSTest寫UnitTest測試EfModelRepository

😈第六魔王,(T33toT36)用MSTest寫IntegrationTest測試EfModelRepository

想朝軟體工程師之路前進嗎?受夠了像是文字天書,艱深難懂的工具文件嗎?對自己的底子沒信心嗎?若你想扎實打底,本課程將讓你收穫滿滿!歡迎加入「IT工具人學院,帶你學到會」,一起練功吧!!顆顆。

工具安裝

🔧Microsoft SQL Server

🔧Visual Studio

🔧NUnit Test Adapter

課前技能

✍HTML 5 CSS3

✍Javascript

✍TSQL

✍C#

✍Linq

✍Asp . Net MVC (. Net Framework)

✍MSTest or NUnit

單元簡介

導讀

  • (P1)導讀EF(1to6)(.NetFramework)
  • (P2)開發EF
  • (P3)EF(5to6)(.NetFramework)程式碼

討論DbContext、EfModel

  • (T7)討論UnitOfWork、Repository觀念
  • (T7-1)複習和安裝EfPocoGenerator
  • (T7-2)討論ConnectionString、UnitOfWork、Repository觀念
  • (T7-3)討論Database關係圖表
  • (T7-4)建立Database,建立Table,Insert Data
  • (T7-5)在Database建立View
  • (T7-6)在Database建立StoredProcedure
  • (T7-7)在Database建立TableValuedFunction
  • (T7-8)在Database,InsertData
  • (T7-9)在TestDatabase(測試用資料庫),InsertTestData(測試用資料)
  • (T7-10)圖解要怎麼實作UnitOfWork、Repository的觀念
  • (T8)用PoCoGenerator來加速開發EF
  • (T8-1)在假Solution-OnlineGameTwo使用PocoGenerator自動生成EF程式碼
  • (T8-2)在真Solution-OnlineGame建立DataInterface、DataRepository專案
  • (T8-3)在真Solution-OnlineGame建立UiDataInterface、UiDataRepository專案
  • (T9)PoCoGenerator加速開發EF的Table和View
  • (T9-1)在DataDomainEntity專案,建立EfModelClass
  • (T9-2)在DataDomainEntity專案,建立EfModelClass的TableConfiguration檔案
  • (T9-3)MigrationInit(初始化),用Migration建立資料庫的Table
  • (T9-4)在DataDomainEntity專案,建立ViewClass、ViewConfiguration檔案
  • (T9-5)用Migration建立資料庫的View
  • (T9-6)在UiConsoleApp建立StaticMethod去用Ef存取資料庫
  • (T9-7)在UiConsoleApp呼叫StaticMethod去用Ef存取資料庫
  • (T9-8)結論。EF不能用Migration建立資料庫的View。但是可以先建立資料庫的View後,再用EF程式碼連接此View
  • (T10)討論EfPocoGenerator所產生的EfModel對應到在StoredProcedure的DynamicTSQL
  • (T10-1)討論資料庫中在StoredProcedure的DynamicTSQL
  • (T10-2)討論EfPocoGenerator連接到論資料庫中在StoredProcedure的DynamicTSQL
  • (T10-3)討論EfPocoGenerator所產生的EfModel對應到在StoredProcedure的DynamicTSQL
  • (T10-4)討論EfPocoGenerator所產生的DbContextInterface
  • (T10-5)討論EfPocoGenerator所產生的DbContext
  • (T10-6)Part1,在UiConsoleApp使用EfPocoGenerator所產生的EF程式碼去連接在StoredProcedure的DynamicTSQL
  • (T10-7)Part2,在UiConsoleApp使用EfPocoGenerator所產生的EF程式碼去連接在StoredProcedure的DynamicTSQL
  • (T10-8)製作StoredProcedure的MigrationClass
  • (T10-9)討論ConnectionString
  • (T11)EfPocoGenerator所產生的EF程式碼去連接資料庫中的TableValuedFunction
  • (T11-1)EfPocoGenerator所產生的EF程式碼去連接資料庫中的TableValuedFunction
  • (T11-2)在UiConsoleApp使用EfPocoGenerator所產生的EF程式碼去連接資料庫中的TableValuedFunction
  • (T11-3)製作TableValuedFunction的MigrationClass
  • (T11-4)結論,EfPocoGenerator所產生的EF程式碼去連接資料庫中的TableValuedFunction

討論EfModelRepository、EfModelUnitOfWork

  • (T12)討論EfModelRepository層的Validator(防呆驗證)
  • (T13)討論EfModelRepository層的GenericRepository
  • (T13-1)討論EfModelRepository層的GenericRepositoryInterface
  • (T13-2)討論EfModelRepository層的GenericRepository
  • (T14)討論EfModelRepository層的GamerRepository、GamerValidator
  • (T14-1)討論EfModelRepository層的GamerRepository、GamerValidator
  • (T14-2)在ConsoleApp使用EfModelRepository層的GamerRepository、GamerValidator
  • (T15)討論EfModelRepository層的RepositoryInterface、UnitOfWorkInterface
  • (T16)討論EfModelRepository層的TableRepository、ViewRepository、StoredProcedureRepository、UnitOfWork
  • (T16-1)討論EfModelRepository層的TableRepository
  • (T16-2)討論EfModelRepository層的ViewRepository
  • (T16-3)討論EfModelRepository層的StoredProcedureRepository、UnitOfWork
  • (T17)討論EfModelRepository層的OnePkRepository
  • (T18)討論EfModelRepository層的TwoPkRepository
  • (T19)討論EfModelRepository層的ViewRepository
  • (T20)討論EfModelRepository層的StoredProcedureRepository、UnitOfWork的StoredProcedure
  • (T21)討論EfModelRepository層的TableValuedFunction、UnitOfWork

用NUnit寫UnitTest測試EfModelRepository

  • (T22)討論測試用的FakeDbContext
  • (T23)用NUnit寫UnitTest測試EfModelRepository層的Validator(防呆驗證)
  • (T24)用NUnit寫UnitTest測試EfModelRepository層的TableRepository
  • (T24-1)用NUnit寫UnitTest測試EfModelRepository層的AreaRepository
  • (T24-2)用NUnit寫UnitTest測試EfModelRepository層的GamerDetailRepository
  • (T24-3)用NUnit寫UnitTest測試EfModelRepository層的GamerRepository
  • (T24-4)用NUnit寫UnitTest測試EfModelRepository層的GamerSkillRepository
  • (T24-5)用NUnit寫UnitTest測試EfModelRepository層的MagicRepository
  • (T24-6)用NUnit寫UnitTest測試EfModelRepository層的SkillRepository
  • (T24-7)用NUnit寫UnitTest測試EfModelRepository層的TeamRepository
  • (T25)用NUnit寫UnitTest測試EfModelRepository層的ViewRepository

用NUnit寫IntegrationTest測試EfModelRepository

  • (T26)用NUnit寫IntegrationTest測試EfModelRepository層的TableRepository
  • (T26-1)用NUnit寫IntegrationTest測試EfModelRepository層的AreaRepository
  • (T26-2)用NUnit寫IntegrationTest測試EfModelRepository層的GamerDetailRepository
  • (T26-3)用NUnit寫IntegrationTest測試EfModelRepository層的GamerRepository
  • (T26-4)用NUnit寫IntegrationTest測試EfModelRepository層的GamerSkillRepository
  • (T26-5)用NUnit寫IntegrationTest測試EfModelRepository層的MagicRepository
  • (T26-6)用NUnit寫IntegrationTest測試EfModelRepository層的SkillRepository
  • (T26-7)用NUnit寫IntegrationTest測試EfModelRepository層的TeamRepository
  • (T27)用NUnit寫IntegrationTest測試EfModelRepository層的ViewRepository
  • (T28)用NUnit寫IntegrationTest測試EfModelRepository層的TableValuedFunction
  • (T29)用NUnit寫IntegrationTest測試EfModelRepository層的StoredProcedure

用MSTest寫UnitTest測試EfModelRepository

  • (T30)用MSTest寫UnitTest測試EfModelRepository層的Validator(防呆驗證)
  • (T31)用MSTest寫UnitTest測試EfModelRepository層的TableRepository
  • (T31-1)用MSTest寫UnitTest測試EfModelRepository層的AreaRepository
  • (T31-2)用MSTest寫UnitTest測試EfModelRepository層的GamerDetailRepository
  • (T31-3)用MSTest寫UnitTest測試EfModelRepository層的GamerRepository
  • (T31-4)用MSTest寫UnitTest測試EfModelRepository層的GamerSkillRepository
  • (T31-5)用MSTest寫UnitTest測試EfModelRepository層的MagicRepository
  • (T31-6)用MSTest寫UnitTest測試EfModelRepository層的SkillRepository
  • (T31-7)用MSTest寫UnitTest測試EfModelRepository層的TeamRepository
  • (T32)用MSTest寫UnitTest測試EfModelRepository層的ViewRepository

用MSTest寫IntegrationTest測試EfModelRepository

  • (T33)用MSTest寫IntegrationTest測試EfModelRepository層的TableRepository
  • (T33-1)用MSTest寫IntegrationTest測試EfModelRepository層的AreaRepository
  • (T33-2)用MSTest寫IntegrationTest測試EfModelRepository層的GamerDetailRepository
  • (T33-3)用MSTest寫IntegrationTest測試EfModelRepository層的GamerRepository
  • (T33-4)用MSTest寫IntegrationTest測試EfModelRepository層的GamerSkillRepository
  • (T33-5)用MSTest寫IntegrationTest測試EfModelRepository層的MagicRepository
  • (T33-6)用MSTest寫IntegrationTest測試EfModelRepository層的SkillRepository
  • (T33-7)用MSTest寫IntegrationTest測試EfModelRepository層的TeamRepository
  • (T34)用MSTest寫IntegrationTest測試EfModelRepository層的ViewRepository
  • (T35)用MSTest寫IntegrationTest測試EfModelRepository層的TableValuedFunction
  • (T36)用MSTest寫IntegrationTest測試EfModelRepository層的StoredProcedure