本文的基礎是搞了一次內部的技術分享,在此也分享一下本次的PPT的一些內容。先列一下大概內容吧。
- EF—Code First
- API(WCF、WebAPI)
- Xaml
- MVVM
- AOP
- Xamarin.Forms
- ABP(ASP.NET Boilerplate)
- Tools
EF—Code First
關於 EF 園子里有好多具體的講解,所以我就簡單放幾行代碼
API
現在都喜歡全平台開發,那用 API 來獲取數據就可以復用這個部分,而且也很方便。
首先了解一下怎么設計 Restful 規范的 API。REST API Design - Resource Modeling
-
WCF
最初我打算寫 API 時還不知道 WebAPI ,所以就用 WCF 寫了,其實也不錯,雖然配置文件參數太多,要想好好配置一下還是有點費事的
-
WebAPI
其實這里我跳過了普通的 WebAPI , 使用的是微軟的開源項目 OData,其實就是在 WebAPI 上封裝了一些東西,很好用,我的理解是符合了規范,多了幾個 $ 的擴展,在就是把用 Model 某一個字段來過濾數據而不用單獨去寫 WebAPI 了(正確解釋和詳情請見 OData 官網)。
相關鏈接
XAML
Path
靈活運用 Path ,比如畫個非常簡單的圖形,我一般用來畫 Button 上的圖標,不會畫沒關系,Metro Studio 里有 3000+ ,實在不行可以找美工要啊,之前還從群里的小伙伴那里得到個中國地圖,當然只是畫到省份,在具體就沒有了,不過完全夠用了。
Blend
不要覺得這個是專門給美工用的工具,事實上會用的非常少,還是自己來吧,比寫代碼快很多的。
MVVM
這個大概講了一下基本概念,網上很多,我就不粘了,總之 MVVM 還是很有用的,就算你不寫桌面程序,AngularJS 也是需要用的。框架太多了,就簡單說幾個記得住的吧。
- Prism:微軟提供,傳說太大太重了,反正我也沒好好用過,不好說。
- MvvmLight:開源免費,很輕恨靈活所以用的人也很多。
- Caliburn.Micro:開源免費,有很多比較易用的封裝,我用的是這個,Xamarin.Forms 也用的這個。
- Catel:開源免費,也很出名,但是完全沒看過,略。
- MvvmCross:開源免費,這個比較厲害的是很早就支持跨平台了,接觸這個也是做 Xamarin 的時候,其他的我也不是很了解,但是在 Xamarin 里有很多的 Plugin 可用,資源很豐富。但是最近發現Sample里的例子都要在 Android 里再寫一遍頁面,很奇怪。
- FreshMvvm:開源免費,Xamarin.Forms專用,但是 ViewModel 總是要傳一個 Model,所以不是很喜歡
AOP
按照 DDD(Domain-Driven Design) 的思想,很多基礎的東西都是可以用 AOP 來實現的,日志,權限,認證,等等吧,ASP.NET 中已經有了一些,但其實還是有很多可以用的地方。
相關鏈接
Xamarin.Forms
通過一套代碼就可以跑3個移動平台,並且現在還免費了,Xamarin 配套的東西很多,什么雲測試啊,性能監控啊,很很多成熟的作品了,已經過了一步一坑的時代了,完全可以用了。
相關鏈接
ABP
基於 DDD 思想的 ASP.NET 開源框架,已經支持 ASP.NET Core ,集成了很多強大且有用的開源項目,AutoMapper,OData...,具體的可以看官網,總之很強大,官網還支持輸入項目名稱就可以生成項目代碼,你可以下載下來慢慢學,還有完善的文檔,園子里也有很多大神組織學習。我也是從他們那知道這個的,官方文檔下邊連接了他們翻譯的中文文檔。 當然學習這個的前提還是挺高的,EF Code First,WebAPI,OData,AngularJS,Typescript(AngularJS 2 用 TS)...,還有最重要的 DDD 的思想總得懂吧,如果你還擔心 ASP.NET Core 的性能問題,那請看 這個測試。
相關鏈接
Tools
最后是一些工具和資源的連接
- Snoop 查看 WPF 的 Xaml 結構的工具
- Metro Studio 可以獲取 Path 的資源軟件
- Xaml Styler 美化 Xaml 的插件
- Gorilla Player 可以實時預覽 Xamarin.Forms 的插件
- SnippetEditor 可以編輯代碼快捷輸入的工具
- MahApps 一個開源的 WPF 控件集
- UWP 例子
- Code Pen 可以在線運行 JS 的編輯器
- AngularJS
- Material Design for Angular 2
- Material Design Lite
- Material Design for Bootstrap
- TypeScript
- Bootstrap
其實這里主要是講了一下我知道的一些技術的簡單介紹,沒有深入講解,希望對你們有用。