源碼地址:Github
前言
盼星星盼月亮,Asp.Net Core終於發布啦!!
Asp.Net發布時我還在上初中,沒有趕上。但是Asp.Net Core我從beta版本便一直關注。最初項目名叫Asp.Net VNext,然后改名叫Asp.Net 5。最煎熬的是RC1發布后,官方繼續發布了改名和RC2延期的通告。這期間我已經做了一些demo項目,但是由於beta到RC2之間涉及到大量API的改動,包括dnx->dotnet cli,包括各種命名空間和工具名稱的改動等等,因此這部分demo都已刪掉。5月份,Github Asp.Net Core更新路線圖,確定RC2於5月中旬發布,同時確定RC2會作為最終發布的版本基礎。那段時間我瘋狂的關注着Github,即使在國外度蜜月,也會在晚上蹭Wifi關注着動態(這里提一下,有空看一下各個項目的issue,可以積累很多知識。同時很多小道消息都可以在members的回復中看出來)。好在接下來沒有再次跳票,開源、跨平台、高性能的Asp.Net Core終於來啦!
小型社區系統
首先看下項目截圖:
項目布局參考了CNodeJS 前端采用了Bootstrap,數據庫訪問用了EntityFramework Core,同時自己用Middleware實現了一個簡單的身份認證功能
目前完成的功能:注冊,登錄,發帖,回帖,收藏,置頂,精華等功能。
項目地址:GitHub
如何運行:
1. 首先安裝基礎環境
2. clone或者下載項目,先設置連接字符串,然后還原數據庫,最后運行即可
詳細流程請點擊上方連接查看項目主頁
開發感受
1. 對於初學者,Asp.Net Core的入門門檻還是挺高的。
沒有了WebForm,無法再拖拖控件就完成一個Hello World Page。
MVC和WebApi合二為一,那么至少對這2種技術應該有些基礎了解。
處理HTTP請求從傳統的Handler、Page變成了Middleware,如果不熟悉nodejs(express)的話又是個新鮮事物。
搭建一個web項目,首先就用到依賴注入容器,又有多少初學者接觸過依賴注入呢?
2. 對於.Net開發者,還有很多東西要學。
新的TagHelper和ViewComponent,看來是要培養起面向組建編程的習慣了。
前端可以方便的集成bower, gulp等,那么NodeJS, npm, bower, gulp等等都是需要學的。
project.json里面的東西涉及到編譯、發布、部署等等一系列配置,再結合dotnet命令,可以很簡單的實現自動化,想起來是不是很激動?
新的EntityFramework Core Migration,直接基於命令生成和更新數據庫,看起來是不是很酷?
整個AspNet Core Framework都開源了,基礎源碼難道不想去看看?
最最最重要的是跨平台!現在我們再也沒法逃避Linux啦,大家趕緊裝虛擬機,從最基本的ls開始linux之旅吧!
3. 對於Asp.Net Core,還有很長的路要走
性能:從官方的性能測試看出,目前Asp.Net Core可以超過NodeJS,但是比JAVA的Netty還是差了太多(這個測試看起來還是RC1的版本)。首先我覺得大家應該培養起異步編程的好習慣,這篇文章講述了異步編程是如何提升並發效率的;其次只能寄希望於微軟繼續提升性能,或者有第三方高性能web框架出現。
框架:Asp.Net Core從出生起就聲明了只是.Net Framework的子集,但是部分基礎框架的缺失還是帶來了很大的不便。最最不方便的就是System.Drawing。
第三方庫:作為一個嬰兒,Asp.Net Core才剛出生,又經歷跳票,因此這方面資源少得可憐。幾大熱門項目:Dapper,AutoMapper,Nlog等倒是很早就開始支持了。
開發人員流失:誰敢說身邊沒有從.Net轉Java,轉Android,轉IOS的??
后記
昨天加班到3點,今天早上繼續上班,頭都是暈的。個人技術不好,見解不夠,以上都是自己的想法,希望大家多多交流,一起為.Net社區出力!!