新思想、新技術、新架構——更好更快的開發現代ASP.NET應用程序

在博客園學習很長時間了,今天終於本身也開通了博客,準備分享一些感悟和經驗。首先感謝博客園園主提供了這麼好的程序員學習交流平臺,也很是感謝張善友dax.netnetfocus司徒正美 等技術大牛的無私分享,從他們身上學到了不少。還有我最近一直關注的田園裏的蟋蟀,分享了不少新的技術和思想方法,在此也深深地感謝!html

我本身一開始工做(2002年)就從事WEB開發(ASP.NET方向),到如今已經13個年頭了,從初級程序員到技術經理、開發部經理、項目總監,再合夥創業,因缺少企業經營經驗,創業不算很成功,因此後來轉入到企業管理培訓和諮詢行業工做了5年,以開闊視野、提高全面能力、積累人脈資源。2014年初進入到一家由上市公司投資的移動互聯網創業團隊,做爲合夥人。最初主要負責產品設計,但不少設計好的功能和想法,開發團隊的技術沒法實現。只好本身研究現代WEB前端技術,作好標準和範例,開發好最難的前端部分,再交給開發團隊實現後端。幾個月後,開發團隊交出來的成果仍是差強人意,公司讓我接管開發部,親自領導開發團隊。因而我招聘了其餘產品經理分擔一部份產品設計工做,個人精力更多放在了重建開發團隊方面。前端

我接手開發部時已經招了一些兩、三年工做經驗的和幾個十年左右工做經驗的JAVA開發人員(由於總部公司有十幾年的JAVA開發基因,在成立咱們這個創業團隊時,從之前的開發團隊派的技術骨幹,因此後端開發也選擇了JAVA技術),我接手後又招了幾個,但不管是開發效率仍是質量方面,都很難達到預期。後來在準備一個新的O2O平臺產品時,我在考慮了Java、PHP、Node.Js、ASP.NET後,最終選擇了ASP.NET做爲新項目的後端開發技術。選擇ASP.NET的緣由能夠另寫一篇文章,但簡單來講,ASP.NET的新版本,開源和跨平臺已不是問題,而且已擁有像Node.Js同樣的全異步機制,C#語法簡潔優秀。html5

在這段時間的招聘面試過程當中發現一個很嚴重的問題,大多數不管是工做二、3年的仍是5到10年的程序人員,基礎知識、經驗能力、對新技術的瞭解和運用,都差得讓我難以理解,幾乎沒有什麼技術特長或深刻專研的領域。固然,由於咱們是創業公司,工資標準受限,很難吸引到優秀人才來應聘,但工做了不少年的程序員,還僅僅只是會簡單三層架構的數據增刪改查,沒什麼技術特長和開發思想,連能準確回答「int類型是多少位,能表達最大範圍是什麼數量級,或者是2的多少次方」這個問題的面試者都幾乎沒有。對「依賴注入」熟悉的面試者幾乎沒有,應聘高級開發和架構師崗位的人能說得清楚緩存機制的也幾乎沒有。其實,這每個知識點,在互聯網上都能找到很詳細的資料。我認爲只要找到方向並努力學習和運用,半年時間已經能夠超過大多數工做二、3年的人,認真努力2年時間能夠超過大多數工做5年8年的人,由於大多數工做多年的程序員多數時間都在作重複的、沒有提高性的工做。這段時間實在招不到滿意的有經驗的,因此讓HR多招一些有強烈上進心的應屆畢業生來培養。git

我雖然入行的時間比較早,但只有前6年是在具體作技術開發,後邊幾年主要是作管理和爲企業提供解決方案,較少具體寫程序。我是從2014年又開始從新學習各種前端、後端技術,因此如今仍是算一個新人,願意向各位有經驗的前輩學習,願意與各位新人共同成長。程序員

互聯網上有不少好的經驗分享,有不少好的開源項目,但相對也比較分散,我先列舉一下這幾個月以來學習並運用於項目的知識點,後面在詳細寫文章介紹我是怎麼學習和應用的。github

 

前端:

思想:響應式佈局、單頁面應用、圖標字體、MVVM、JS模塊化、JS模板引擎面試

技術/框架:HTML五、CSS三、LESS、Jquery、Bootstrap、Framework7數據庫

組件: Webuploader、Ueditor/Umeditor、Highcharts、Jquery.dataTables、Jquery.form、Jquery.validate、Jquery.Jcrop、Jquery.mCustomScrollbar、Spectrum、Toastr、BlockUI、SuperSlide,還有一大堆小的Jquery插件就省略了編程

 

後端:後端

思想: DDD(領域驅動設計)、TDD(測試驅動設計)、DI/AOP(依賴注入/面向切面編程)、模塊化開發、異步編程、分佈式架構、敏捷開發之SCRUM

技術/框架:Asp.net MVC五、C# 5.0、Entity Framework 六、xUnit+NSubstitute+Shouldly、aspnetboilerplate

工具:Git、VS201三、Sql Server、MongoDB、Redis

開源組件:AspNet.Identity、AutoMapper、Castle.Windsor、MiniProfiler

 

2015-3-16 16:00 補充:

原本想單獨寫一系列文章來分享abp框架,但今天有朋友問到,就提早補充分享一下,先發個git上的連接

https://github.com/aspnetboilerplate/aspnetboilerplate

 

順便分享一些其餘我認爲有使用、學習和研究價值的項目:

https://github.com/OrchardCMS/Brochard   Orchard的vNext版

https://github.com/h5bp/html5-boilerplate   html5頁面的樣板

https://github.com/loresoft/EntityFramework.Extended   EntityFramework的功能加強

https://github.com/HangfireIO/Hangfire    很是短小精悍的後臺任務組件

https://github.com/MiniProfiler/dotnet    監測.NET後端和Web前端每個步驟的耗時毫秒數,可查看EF生成的SQL

https://github.com/JeffreySu/WeiXinMPSDK   微信公衆平臺SDK的C#版,包括企業號的SDK

 

2015-3-16 17:40補充

有些朋友在問咱們的招聘事宜,我剛在博客園發佈了3個招聘崗位:

http://job.cnblogs.com/Enterprise/30971/

 

但願看到這篇博客的朋友多看看下面的評論,我在對評論的回覆中寫了不少信息。

感受用互動的方式,表達起來效率會高不少。

 

 

因爲時間關係,今天簡單貼幾張圖,改天從新發布文章詳細介紹開發框架的功能與特性。 

 

項目結構(模塊化開發)


  
 

 

 代碼風格:

Application層的代碼簡單得不須要寫註釋!

權限驗證、數據驗證、異常處理、事務處理、數據轉換等全在基礎架構上完成,模塊開發者不須要寫這些代碼。

Application Service的方法能夠自動生成Web Api的方法,客戶端Ajax直接調用,不須要寫Controller。

Application Service的方法都自動應用了UnitOfWork(工做單元)模式,除了以Get開頭的方法,其餘方法自動開啓數據庫事務。

 

權限驗證、數據驗證、異常處理、事務處理、數據轉換等全在基礎架構上完成,模塊開發者不須要寫這些代碼。

Application Service的方法都自動應用了UnitOfWork(工做單元)模式,除了以Get開頭的方法,其餘方法自動開啓數據庫事務。

 

這段時間一直在優化開發框架、編碼標準和流程,如今已經差很少了,明天開始對這周到崗的新人開始培訓。

若是有正在找工做的朋友,也能夠聯繫我來公司面試。

 

——————————————————————————————————————————————————————————————————————————

 

再貼一些之前項目中的前端界面截圖(如下不是上面那些後端代碼 所對應的前端,不是同一個項目,但都是我親自作的前端)

 

 

 

 

 

 

 

 

 

 

哇噻,時間已經太晚了,快快睡覺!

改天從新發布文章詳細介紹開發框架的功能與特性。

相關文章
相關標籤/搜索