Upload
study4tw
View
254
Download
4
Embed Size (px)
DESCRIPTION
如何攻破大型副本 大型專案的開發與團隊合作經驗 聊天室 - Sky
Citation preview
如何攻破大型副本大型專案的開發與團隊合作經驗 ( 聊天室 )Jed & Sky
Jed
Jed( 阿公 )
集英信誠 ALM Team 成員
• Visual Studio ALM• ASP.NET MVC
Sky Chang
Sky Chang
Microsoft Azure 微軟最有價值專家
天空的垃圾場blog.sanc.idv.tw
• ASP.NET MVC• Visual Studio ALM• Microsoft Azure
Agenda 架構篇
Orachard & Identity
程式篇 Model & Code First Generic Repository & Unit of Work & 擴展方法 N-Layer & AutoMapper Web API & AngularJS & AngularJS UI Bootstrap
Agenda 合作篇
版本控制 & CI & 測試 & 佈署 NuGet & 私服 & MyGet 多人開發 & IOC x DI x 洋蔥
Orachard & Identity
OrchardOrchard 是一個 Open Source 的 CMS ,它能夠讓使用者在 ASP.NET 平台上快速建立網站,並提供了擴充框架讓我們能透過 Module 或 Themes去增加它額外的功能內容,它能透過模組化的方式,重複使用,進而將開發的成本最小化。
為什麼要用 Orchard?
之所以會使用 Orchard 是因為想要直接使用他既有的身份認證,及他裡面的各種機制 ( 如:多語系、排程、… ) ,來節省我們在開發上的時間。
Model & Code First
Entity Framework 現實的 ORM DB First
產生 edmx 檔案來 map DB Table 更新時需要重新產生 edmx 刪除 Table 欄位需要手動刪除
Model First 幾乎沒人使用
Code First 請和 DBA 打好關係 如有使用 SSDT 容易造成衝突 現有 DB 的情況下還是可以用工具產生
Code Code 和 DB Shema 只需要撰寫一次
Code FirstDemo
Generic Repository & Unit of Work & 擴展方法
Repository Patten
真實的 Repository Patten 數量非常非常的多 都是重複的 Code
救星 Generic Repository!! 利用泛型 收納到只剩下一支
真實的世界
通常不會只針對一個 Table CRUD 會產生多個 Repository 泛型 Repository 一樣會需要建立多個 每個 Reposotory 內的 Context 各自獨
立
救星 Unit Of Work!! 集結所有 Repository 統一透過 Unit Of
Work
UNIT OF WORK
CustomerRepositoryInstance
OrderRepositoryInstance
ProductRepositoryInstance
Entity Framework & SP & View執行 SP ( Code First )
執行 SP 查詢
DALDemo
AutoMapper
AutoMapper
• 自動 Mapper 兩個物件
• 利用 AutoMapper再隔離一層
架構Business Web API
AutoMapper
Repository
(Unit Of Work)
Json
Entity
ViewModelEntity
DB
SQL 、 SP、 View
BLLDemo
Web API & AngularJS & AngularJS UI Bootstrap
Web API
前端的框架AngularJS Controller
Kendo UI
ViewModelJSON
DS
HTMLBind
UI
Demo
版本控制 & 建置 & 測試 & 佈署
版控我想大家應該都有用過但你如何確保簽入的程式是能運作的 ?
版控我想大家應該都有用過但你如何確保簽入的程式是能運作的 ?
透過自動化建置與測試失敗就不讓其他人繼續簽入直到最後簽入的人簽入可以通過建置與測試的版本
佈署悲劇多
通通自動化讓悲劇不再重現
NuGet & 私服 & MyGet
私服架設Demo
MyGet
https://www.myget.org/
多人開發 & IOC x DI x 洋蔥
洋蔥架構 應用程式係圍繞著一個獨立的物件模型
來建構。 內層定義介面,外層實作介面。 耦合的方向是朝向中央。 應用程式的所有核心程式碼可以在與基
礎建設分離的情況下正常運行。 ( By 蔡煥麟老師翻譯 )
核心 : IOC & DI
洋蔥架構
ProviderDemo
Q&A
Blog.sanc.idv.tw
Study4.TW