標籤:
時間總是過得很快,而我幾乎沒有時間來安安靜靜的寫部落格和完善文檔。不過總算是架構在一直前進,而我的計劃是在今年年底(西曆)前,讓此架構成熟穩定。
在很長一段時間裡,我嘗試了很多我之前沒有接觸的技術或者沒用過的技術,比如knockoutJs、OData、T4等等,也許走了很多彎路,也許對架構作用並不大,但是卻對我而言卻很有價值。只有用過了才知道其可用程度和適用情境,沒有使用過就沒有發言權。
架構也在不斷的重構,我不想照抄別人的路子,我只想做一款有特色的架構,安安靜靜編碼,踏踏實實前進,怎麼個特色法呢?如:
- 外掛程式式架構
- 響應式布局以及前後端對行動裝置的支援
- 便捷的業務代碼產生,比如CRUD產生,並且表單支援根據不同資料類型或特性產生相應的展示組件。
- 從架構到外掛程式包括代碼產生模板均走開源路線,便於理解和定製
- 一次開發多次使用:即納入常用的業務外掛程式、策略與模型(日誌異常、支付策略、後台許可權管理、CMS、流程引擎、平台、文檔線上查看器等等)
- 多套前後端主題
- WebAPI & OData 的靈活介面
- 基於CodeFirst模式的資料訪問,將資料結構更改納入每一次代碼遷移之中
- 開發人員面板
在此之前,非常感謝tjcccc和木宛城主對本項目的支援。
現在再來說下最近的些許事吧。
開源
代碼已經兩個月前不聲不響的遷移到了GitHub,為什麼是不聲不響,因為我只想做一個安靜的美男子默默地編碼。這年頭不會用Git的程式員肯定不是好程式員,我差點也落伍了,趕緊跟上。哈哈。 試了試還不錯。
新的UI
官網UI已重新設計,並且購買了Ace bootstrap,在這裡非常感謝tjcccc對本項目的貢獻。
官網飛機票:http://www.magicodes.net/
設計師:tjcccc
後台UI:
貢獻者:tjcccc
只是初具輪廓,東西還在不斷地改,目前感覺Iframe用著不是很爽,可能整個後台UI會使用新的架構。~~~~
部落格
部落格設計稿已經出來了,表結構設計也基本完成,不過還沒開始綁~~~
介面搶先看:
地址:http://www.magicodes.net/blogs
首席設計師:tjcccc
文檔&文檔查看器
文檔?哎,又來催更啦!
文檔已經編寫了一部分,並會不斷地進行完善。(PS:最悲劇的莫過於,當我寫好一部分,發現這部分又被重構了)
之前打算將文檔託管到OneDriver的Web Office App的,結果發現被牆了,於是~~
於是框架組成了一個文檔查看器,便於線上查看文檔。目前只實現了PDF查看器外掛程式。
船票:http://www.magicodes.net/DocumentViewer?contentType=application/pdf&filePath=upload/Magicodes.NET%E6%A1%86%E6%9E%B6%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.pdf
後面會考慮對接Web Office Web App Server以實現Office的線上開啟與編輯。
後面會支援更多的檔案類型,有興趣的朋友幫搞搞吧~~~
資料丟失
這是一個沉重的話題,這年頭沒錢確實不好乾事,雖然之前承諾了不刪檔測試,但是很不幸,因為回家辦滿月期間忘記了對香港伺服器的續約,超過3天虛擬機器被刪除了!!!所以很抱歉的通知您,之前註冊和登入的資料已經全部丟失。
代碼產生
代碼產生這塊一直是我比較核心關心的問題,如何減少重複邏輯的業務開發,一直是我孜孜不倦的追求。那麼Magicodes.NET現在已經可以產生簡單的CRUD代碼了~~
口號先響起:還在加班寫代碼?還在不斷地重寫商務邏輯?還在一個一個的打補丁?太Low了,讓Magicodes.NET幫你來編寫代碼吧。凝聚Magicodes.NET團隊的智慧,讓Magicodes.NET幫您編寫代碼。
解決方案核心目錄:
具體介紹請參閱:
不過我還沒來得及寫完,各位客戶還是先看代碼吧。T4產生這塊我走了很多彎路,所以我決定在月底左右開始再次重構。先看看目前的成果:
配置View和控制器產生效果:
相關T4模板位置:
從控制器到UI均是代碼產生哈,產生即用~~
剛才是配置產生,我們再看看CRUD產生:
這僅僅是起步嘗試,再看一個:
我們再看看T4模板:
我們看看Users.tt的具體內容:
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ output extension=".cshtml" encoding="utf-8" #>
<#@ assembly name="$(TargetPath)" #>
<#@ import namespace="Magicodes.Mvc.Default.Areas.Admin.Models" #>
<#@ include file="$(SolutionDir)\T4\Magicodes.T4\ODataGrid\Header.tt" #>
<#
ODataGridHelper oDataGridHelper=new ODataGridHelper(typeof(UserViewModel));
oDataGridHelper.Params["_param_title"]="使用者管理";
oDataGridHelper.Params["_param_url"]="/odata/Users";
oDataGridHelper.Params["_param_addModel"]=JsonConvert.SerializeObject(new UserViewModel(){Id=Guid.NewGuid().ToString()});
#>
<#@ include file="$(SolutionDir)\T4\Magicodes.T4\ODataGrid\Footer.tt" #>
可以看出,這裡僅僅是傳參而已~~
代碼產生先告一段落吧,這裡我進行了很多嘗試,花費了很多精力,但是也體會到了很多。目前打算再擠擠時間重構下,下次見面時,T4代碼產生將會更加驚豔。同時我也希望有興趣的朋友Join with me!!
其他
其他細節修改與最佳化~~懶得一一想了。
客官可是看完了?如果可以的話,就打賞下吧。我們的伺服器來自您的支援。
Magicodes.NET架構之路——讓Magicodes.NET幫你編寫代碼