我在開啟新的網路應用程式專案的時候,常常需要做一些前置的動作,比如像是從Nuget安裝某些套件,然後把一些常用的方法從另外一個專案複製過來,常常需要一段時間來做這些瑣事,這些時間大約會用掉我兩到三天的時間,當我的年紀越來越大的時候,我發現我的時間越來越不夠用了,我沒有辦法再接受這樣的時間浪費,因此我在這一年中利用業餘的時間進行了一些整合,逐漸的完善所心中那個加快我工作的樣板。
最近(2019年開始)的.NET 生態圈逐漸從 .Net Framework 轉向 .Net Core ,我發現我這一年中做的事情有點落伍了,但因為不是所有的開發者都往 .Net Core 靠攏,我預計先做.Net Framework 為主體的樣板,後面再做 .Net Core 的樣板。
這個樣板將會是全新的,因為之前我所整合的樣版有許多GPL授權的程式碼,而我這個專案樣板希望能協助未來的每個好朋友,又希望可以得到各位好朋友的回饋,因此我選擇了 MPL 2.0 授權條款,並且重新編寫程式碼,但是其中許多觀念都是來自於這些GPL開放原始碼的專案,我特別的感謝。
你可以直接下載這個專案,用在任何地方,但這種方式最大的缺點就是專案名稱的改變,將會變得很困難。 如果你想快速的改變專案名稱,我建議使用下一個方式
當你下載這個專案後,在專案選單中選擇匯出範本,接著按照上面所需要內容填寫,你將會得到一個專案範本,這時候你就可以在建立專案的時候使用這個範本,在此同時,你可以自由的輸入專案名稱。 詳細的專案範本產生方式,可以參考微軟的說明。
在這個專案完成部分目標之前,我還不會將他做成專案範本。 如果未來有做成專案範本,我在下面放上連結。
我已經在我整合的專案中採用以下內容,但是我在這裡將會重新寫過相關的程式碼,因此我預計完成的目標將會如下
-
特性
- 依賴注入
- 快取機制切換
- 記憶體快取機制
- Redis 快取機制
- 多語言
- 非物理刪除
- 異常紀錄
- 稽核
- 多資料庫
-
後端
- SinglR
- HangFire
- EntityFramework
- Swagger
-
前端
- Vue.Js
- Axios
-
模式
- 工作單元模式
- 倉儲模式
- 單例模式
想要使用這個專案,你必須懂得一些開發的技術與技巧,以下是我認為可能或者必須了解的知識範圍,如果你對於某些知識還不是那麼清楚,可以先理解這些內容,再回頭來使用這個專案。
- 開發理論類
- OOP
- SOLID
- DI/IOC
- 軟體工程類
- TDD(Test-Driven Development)
- DDD(Domain-Driven Design)
- Repository Pattern
- UnitOfWork
- Factory Method Pattern
- Strategy Pattern
- Singleton Pattern
- 後端開發框架類
- ASP.NET MVC
- WebAPI2
- Identity
- Oauth
- EntityFrameork Code First
- SignalR
- Owin
- 前端開發框架類
- Jquery
- Vue.js
- Element-UI
- Axios
- JavaScript ES6
- 套件應用
- AutoFac
- AutoMapper
- Dapper
- Elmah
- Swagger
- HangFire
- Nlog
- NUnit
- Redis
- EPPlus
- C# 語言特性
- LINQ
- Reflection
- Asynchronous
- Regular Expression