Magicodes.NET框架之路——讓Magicodes.NET幫你編寫代碼


時間總是過得很快,而我幾乎沒有時間來安安靜靜的寫博客和完善文檔。不過總算是框架在一直前進,而我的計划是在今年年底(公歷)前,讓此框架成熟穩定。

在很長一段時間里,我嘗試了很多我之前沒有接觸的技術或者沒用過的技術,比如knockoutJs、OData、T4等等,也許走了很多彎路,也許對框架作用並不大,但是卻對我而言卻很有價值。只有用過了才知道其可用程度和適用場景,沒有使用過就沒有發言權。

框架也在不斷的重構,我不想照抄別人的路子,我只想做一款有特色的框架,安安靜靜編碼,踏踏實實前進,怎么個特色法呢?如:

  1. 插件式框架
  2. 響應式布局以及前后端對移動設備的支持
  3. 便捷的業務代碼生成,比如CRUD生成,並且表單支持根據不同數據類型或特性生成相應的展示組件。
  4. 從框架到插件包括代碼生成模板均走開源路線,便於理解和定制
  5. 一次開發多次使用:即納入常用的業務插件、策略與模型(日志異常、支付策略、后台權限管理、CMS、流程引擎、微信平台、文檔在線查看器等等)
  6. 多套前后端主題
  7. WebAPI & OData 的靈活接口
  8. 基於CodeFirst模式的數據訪問,將數據結構更改納入每一次代碼遷移之中
  9. 開發人員面板

在此之前,非常感謝tjcccc木宛城主對本項目的支持。

現在再來說下最近的些許事吧。

開源

代碼已經兩個月前不聲不響的遷移到了GitHub,為什么是不聲不響,因為我只想做一個安靜的美男子默默地編碼。這年頭不會用Git的程序員肯定不是好程序員,我差點也落伍了,趕緊跟上。哈哈。 試了試還不錯。

image

image

新的UI

官網UI已重新設計,並且購買了Ace bootstrap,在這里非常感謝tjcccc對本項目的貢獻。

官網飛機票:http://www.magicodes.net/

設計師:tjcccc

image

image

后台UI:

貢獻者:tjcccc

image

image

image

只是初具輪廓,東西還在不斷地改,目前感覺Iframe用着不是很爽,可能整個后台UI會使用新的架構。~~~~

博客

博客設計稿已經出來了,表結構設計也基本完成,不過還沒開始綁~~~

界面搶先看:

地址:http://www.magicodes.net/blogs

首席設計師:tjcccc

image

image

文檔&文檔查看器

文檔?哎,又來催更啦!

文檔已經編寫了一部分,並會不斷地進行完善。(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

image

image

image

后面會考慮對接Web Office Web App Server以實現Office的在線打開與編輯。

后面會支持更多的文件類型,有興趣的朋友幫搞搞吧~~~

 

數據丟失

這是一個沉重的話題,這年頭沒錢確實不好干事,雖然之前承諾了不刪檔測試,但是很不幸,因為回家辦滿月期間忘記了對香港服務器的續費,超過3天虛擬機被刪除了!!!所以很抱歉的通知您,之前注冊和登錄的數據已經全部丟失。

代碼生成

代碼生成這塊一直是我比較核心關心的問題,如何減少重復邏輯的業務開發,一直是我孜孜不倦的追求。那么Magicodes.NET現在已經可以生成簡單的CRUD代碼了~~

口號先響起:還在加班寫代碼?還在不斷地重寫業務邏輯?還在一個一個的打補丁?太Low了,讓Magicodes.NET幫你來編寫代碼吧。凝聚Magicodes.NET團隊的智慧,讓Magicodes.NET幫您編寫代碼。

解決方案核心目錄:

image

具體介紹請參閱:

image

不過我還沒來得及寫完,各位客戶還是先看代碼吧。T4生成這塊我走了很多彎路,所以我決定在月底左右開始再次重構。先看看目前的成果:

配置View和控制器生成效果:

image

image

相關T4模板位置:

image

從控制器到UI均是代碼生成哈,生成即用~~

剛才是配置生成,我們再看看CRUD生成:

image

image

這僅僅是起步嘗試,再看一個:

image

我們再看看T4模板:

image

我們看看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!!

其他

其他細節修改與優化~~懶得一一想了。

客官可是看完了?如果可以的話,就打賞下吧。我們的服務器來自您的支持。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM