課程時間

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

🎬【Preview導讀】6:16:30

🎬【EntityFrameworkEpisode6(第6篇)-Test、UnitOfWorkWithRepositoryPart2】25:10:52

課程章節

請按「Preview」預覽章節。

  關於本課程
Available in days
days after you enroll
  討論UiModelRepository、UiModelUnitOfWork
Available in days
days after you enroll
  用NUnit寫UnitTest測試UiModelRepository
Available in days
days after you enroll
  用NUnit寫IntegrationTest測試UiModelRepository
Available in days
days after you enroll
  用MSTest寫UnitTest測試UiModelRepository
Available in days
days after you enroll
  用MSTest寫IntegrationTest測試UiModelRepository
Available in days
days after you enroll
  Ui層的Asp.Net Mvc
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(本課魔王)

😈第一魔王,(T37toT49)討論UiModelRepository、UiModelUnitOfWork

😈第二魔王,(T50toT51)用NUnit寫UnitTest測試UiModelRepository

😈第三魔王,(T52toT55)用NUnit寫IntegrationTest測試UiModelRepository

😈第四魔王,(T56toT57)用MSTest寫UnitTest測試UiModelRepository

😈第五魔王,(T58toT61)用MSTest寫IntegrationTest測試UiModelRepository

😈第六魔王,(T62toT75)Ui層的Asp.Net Mvc

想朝軟體工程師之路前進嗎?受夠了像是文字天書,艱深難懂的工具文件嗎?對自己的底子沒信心嗎?若你想扎實打底,本課程將讓你收穫滿滿!歡迎加入「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)程式碼

討論UiModelRepository、UiModelUnitOfWork

  • (T37)對應EfModelClass到UiModelRepository層的UiModelClass
  • (T37-1)對應資料庫Table到DataAccess層的EfModelClass,再對應到UiModelRepository層的UiModelClass
  • (T37-2)對應資料庫StoredProcedure到DataAccess層的EfModelClass,再對應到UiModelRepository層的UiModelClass
  • (T37-3)對應資料庫View到DataAccess層的EfModelClass,再對應到UiModelRepository層的UiModelClass
  • (T37-4)對應資料庫TableValuedFunction到DataAccess層的EfModelClass,再對應到UiModelRepository層的UiModelClass
  • (T38)使用AutoMapper對應DataAccess層的EfModelClass到UiModelRepository層的UiModelClass
  • (T39)討論UiModelRepository層的GenericRepository
  • (T39-1)討論UiModelRepository層的GenericRepositoryInterface
  • (T39-2)討論UiModelRepository層的GenericRepository
  • (T40)討論UiModelRepository層的TableRepositoryInterface、TableRepository
  • (T40-1)討論UiModelRepository層的TableRepositoryInterface
  • (T40-2)討論UiModelRepository層的TableRepository
  • (T41)討論UiModelRepository層的ViewRepositoryInterface、ViewRepository
  • (T42)討論UiModelRepository層的UnitOfWork的StoredProcedure
  • (T43)討論UiModelRepository層的UnitOfWork的TableValuedFunction
  • (T44)在ConsoleApp使用UiModelRepository層的Table、View、StoredProcedure、TableValuedFunction
  • (T45)使用UiModelRepository層的UnitOfWork的OnePk的Table
  • (T46)使用UiModelRepository層的UnitOfWork的TwoPk的Table
  • (T47)使用UiModelRepository層的UnitOfWork的View
  • (T48)使用UiModelRepository層的UnitOfWork的StoredProcedure
  • (T49)使用UiModelRepository層的UnitOfWork的TableValuedFunction

用NUnit寫UnitTest測試UiModelRepository

  • (T50)用NUnit寫UnitTest測試UiModelRepository層的TableRepository
  • (T50-1)設定NUnit的OneTimeSetUp和OneTimeTearDown。設定AutoMapper
  • (T50-2)用NUnit寫UnitTest測試UiModelRepository層的AreaRepository
  • (T50-3)用NUnit寫UnitTest測試UiModelRepository層的GamerDetailRepository
  • (T50-4)用NUnit寫UnitTest測試UiModelRepository層的GamerRepository
  • (T50-5)用NUnit寫UnitTest測試UiModelRepository層的GamerSkillRepository
  • (T50-6)用NUnit寫UnitTest測試UiModelRepository層的MagicRepository
  • (T50-7)用NUnit寫UnitTest測試UiModelRepository層的SkillRepository
  • (T50-8)用NUnit寫UnitTest測試UiModelRepository層的TeamRepository
  • (T50-9)討論NUnit的OneTimeSetUp和OneTimeTearDown
  • (T51)用NUnit寫UnitTest測試UiModelRepository層的ViewRepository
  • (T51-1)用NUnit寫UnitTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaAndMagicRepository
  • (T51-2)用NUnit寫UnitTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaAndSkillRepository
  • (T51-3)用NUnit寫UnitTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaRepository
  • (T51-4)用NUnit寫UnitTest測試UiModelRepository層的VwGamerSkillCountRepository
  • (T51-5)用NUnit寫UnitTest測試UiModelRepository層的VwTeamAndGamerCountRepository

用NUnit寫IntegrationTest測試UiModelRepository

  • (T52)用NUnit寫IntegrationTest測試UiModelRepository層的TableRepository
  • (T52-1)設定NUnit的OneTimeSetUp和OneTimeTearDown。設定AutoMapper
  • (T52-2)用NUnit寫IntegrationTest測試UiModelRepository層的AreaRepository
  • (T52-3)用NUnit寫IntegrationTest測試UiModelRepository層的GamerDetailRepository
  • (T52-4)用NUnit寫IntegrationTest測試UiModelRepository層的GamerRepository
  • (T52-5)用NUnit寫IntegrationTest測試UiModelRepository層的GamerSkillRepository
  • (T52-6)用NUnit寫IntegrationTest測試UiModelRepository層的MagicRepository
  • (T52-7)用NUnit寫IntegrationTest測試UiModelRepository層的SkillRepository
  • (T52-8)用NUnit寫IntegrationTest測試UiModelRepository層的TeamRepository
  • (T53)用NUnit寫IntegrationTest測試UiModelRepository層的ViewRepository
  • (T53-1)用NUnit寫IntegrationTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaAndMagicRepository
  • (T53-2)用NUnit寫IntegrationTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaAndSkillRepository
  • (T53-3)用NUnit寫IntegrationTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaRepository
  • (T53-4)用NUnit寫IntegrationTest測試UiModelRepository層的VwGamerSkillCountRepository
  • (T53-5)用NUnit寫IntegrationTest測試UiModelRepository層的VwTeamAndGamerCountRepository
  • (T54)用NUnit寫IntegrationTest測試UiModelRepository層的UnitOfWork的StoredProcedure
  • (T54-1)用NUnit寫IntegrationTest測試UiModelRepository層的UnitOfWork的SpGamerDetail
  • (T54-2)用NUnit寫IntegrationTest測試UiModelRepository層的UnitOfWork的SpGamerMagic
  • (T54-3)用NUnit寫IntegrationTest測試UiModelRepository層的UnitOfWork的SpGamerSkill
  • (T54-4)用NUnit寫IntegrationTest測試UiModelRepository層的UnitOfWork的SpOutputGamerCountByGender
  • (T54-5)用NUnit寫IntegrationTest測試UiModelRepository層的UnitOfWork的SpSelectGamers
  • (T55)用NUnit寫IntegrationTest測試UiModelRepository層的UnitOfWork的TableValuedFunction

用MSTest寫UnitTest測試UiModelRepository

  • (T56)用MSTest寫UnitTest測試UiModelRepository層的TableRepository
  • (T56-1)設定MSTest的AssemblyInitialize和AssemblyCleanup。設定AutoMapper
  • (T56-2)用MSTest寫UnitTest測試UiModelRepository層的AreaRepository
  • (T56-3)用MSTest寫UnitTest測試UiModelRepository層的GamerDetailRepository
  • (T56-4)用MSTest寫UnitTest測試UiModelRepository層的GamerRepository
  • (T56-5)用MSTest寫UnitTest測試UiModelRepository層的GamerSkillRepository
  • (T56-6)用MSTest寫UnitTest測試UiModelRepository層的MagicRepository
  • (T56-7)用MSTest寫UnitTest測試UiModelRepository層的SkillRepository
  • (T56-8)用MSTest寫UnitTest測試UiModelRepository層的TeamRepository
  • (T57)用MSTest寫UnitTest測試UiModelRepository層的ViewRepository
  • (T57-1)用MSTest寫UnitTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaAndMagicRepository
  • (T57-2)用MSTest寫UnitTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaAndSkillRepository
  • (T57-3)用MSTest寫UnitTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaRepository
  • (T57-4)用MSTest寫UnitTest測試UiModelRepository層的VwGamerSkillCountRepository
  • (T57-5)用MSTest寫UnitTest測試UiModelRepository層的VwTeamAndGamerCountRepository

用MSTest寫IntegrationTest測試UiModelRepository

  • (T58)用MSTest寫IntegrationTest測試UiModelRepository層的TableRepository
  • (T58-1)設定MSTest的AssemblyInitialize和AssemblyCleanup。設定AutoMapper
  • (T58-2)用MSTest寫IntegrationTest測試UiModelRepository層的AreaRepository
  • (T58-3)用MSTest寫IntegrationTest測試UiModelRepository層的GamerDetailRepository
  • (T58-4)用MSTest寫IntegrationTest測試UiModelRepository層的GamerRepository
  • (T58-5)用MSTest寫IntegrationTest測試UiModelRepository層的GamerSkillRepository
  • (T58-6)用MSTest寫IntegrationTest測試UiModelRepository層的MagicRepository
  • (T58-7)用MSTest寫IntegrationTest測試UiModelRepository層的SkillRepository
  • (T58-8)用MSTest寫IntegrationTest測試UiModelRepository層的TeamRepository
  • (T59)用MSTest寫IntegrationTest測試UiModelRepository層的ViewRepository
  • (T59-1)用MSTest寫IntegrationTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaAndMagicRepository
  • (T59-2)用MSTest寫IntegrationTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaAndSkillRepository
  • (T59-3)用MSTest寫IntegrationTest測試UiModelRepository層的VwGamerAndDetailAndTeamAndAreaRepository
  • (T59-4)用MSTest寫IntegrationTest測試UiModelRepository層的VwGamerSkillCountRepository
  • (T59-5)用MSTest寫IntegrationTest測試UiModelRepository層的VwTeamAndGamerCountRepository
  • (T60)用MSTest寫IntegrationTest測試UiModelRepository層的UnitOfWork的StoredProcedure
  • (T60-1)用MSTest寫IntegrationTest測試UiModelRepository層的UnitOfWork的SpGamerDetail
  • (T60-2)用MSTest寫IntegrationTest測試UiModelRepository層的UnitOfWork的SpGamerMagic
  • (T60-3)用MSTest寫IntegrationTest測試UiModelRepository層的UnitOfWork的SpGamerSkill
  • (T60-4)用MSTest寫IntegrationTest測試UiModelRepository層的UnitOfWork的SpOutputGamerCountByGender
  • (T60-5)用MSTest寫IntegrationTest測試UiModelRepository層的UnitOfWork的SpSelectGamers
  • (T61)用MSTest寫IntegrationTest測試UiModelRepository層的UnitOfWork的TableValuedFunction

Ui層的Asp.Net Mvc

  • (T62)建立Asp. Net MVC專案
  • (T62-1)建立Asp. Net MVC專案,設定AutoMapper
  • (T62-2)在Web.config設定CustomError。在WebShareConst.cs設定日期格式。在Global.asax.cs設定AutoMapper
  • (T62-3)自訂ErrorHandling。在ErrorResource.resx設定錯誤訊息。建立CustomError的Controller和View
  • (T62-4)自訂Attribute,包括Cache、DateRange、BetweenMinimumDateAndToday、BeforeToday、RemoteClientServer
  • (T62-5)討論DateFormatValidation(驗證日期格式ddmmyyy)。討論JqueryUi的datepicker
  • (T62-6)討論StringFormatValidation(字串格式驗證)。用RegularExpression驗證FirstName、LastName格式
  • (T63)建立Asp. Net MVC的Area的Model、View、Controller
  • (T64)建立Asp. Net MVC的Team的Model、View、Controller
  • (T65)建立Asp. Net MVC的Magic的Model、View、Controller
  • (T66)建立Asp. Net MVC的Skill的Model、View、Controller
  • (T67)建立Asp. Net MVC的Gamer的Model、View、Controller
  • (T67-1)建立Asp. Net MVC的_Layout.cshtml
  • (T67-2)討論StringFormatValidation(字串格式驗證)。用RegularExpression驗證Email格式
  • (T67-3)針對Gamer,使用AutoMapper對應DataAccess層的EfModelClass到UiModelRepository層的UiModelClass
  • (T67-4)建立Asp. Net MVC的Gamer的Model、View、Controller。建立IndexView
  • (T67-5)建立Asp. Net MVC的Gamer的Model、View、Controller。建立DetailView
  • (T67-6)建立Asp. Net MVC的Gamer的Model、View、Controller。建立CreateView
  • (T67-7)建立Asp. Net MVC的Gamer的Model、View、Controller。建立UpdateView
  • (T67-8)建立Asp. Net MVC的Gamer的Model、View、Controller。建立DeleteView
  • (T68)討論GamerSkill。建立Asp. Net MVC的GamerController的AssignSkillToGamerIndex.cshtml
  • (T69)討論GamerMagic。建立Asp. Net MVC的GamerController的AssignMagicToGamerIndex.cshtml
  • (T70)討論PagedList.Mvc。建立Asp. Net MVC的Gamer的GamerController的IndexView的Paging(分頁)
  • (T71)建立Asp. Net MVC的Gamer的GamerController的IndexView的Sorting(排序)
  • (T72)建立Asp. Net MVC的Gamer的GamerController的DeleteMultiple(一次刪除多筆資料)
  • (T73)建立Asp. Net MVC的Gamer的GamerController的CustomizeCacheAttribute(自訂快取屬性)
  • (T74)資料庫Weapon資料表建立前,在UiModelRepository層的WeaponRepository使用MockUpData(假資料)建立Ui層Model、View、Controller
  • (T75)討論DeleteOutPutCache。修復Asp. Net MVC的Gamer的GamerController的CustomizeCacheAttribute(自訂快取屬性)的Bug