Magicodes.NET框架之路——V0.0.0.5 Beta版發布


最近寫代碼的時間實在不多,而且今年又打算業余學習下Unity3D以及NodeJs(用於開發游戲后台),因此完善框架的時間更不多了。不過我會一直堅持下去的,同時我也希望有興趣的同學可以加入Push你的代碼。

獲取地址:https://github.com/magicodes/Magicodes.NET/releases/tag/V1.0.0.5Beta

文檔地址:https://worktile.com/project/4a961c1c28cf4b07bdb4a07f661c7fcf/folder/b99d13f90d55401faba366a961e6d103

最新代碼地址:https://github.com/magicodes/Magicodes.NET

如果碰到問題,請先閱讀此鏈接:FAQ

這次更新主要內容如下所示,具體功能點你可以在Worktile上查看:

點此查看【需要注冊】(如果無法打開,請復制下面鏈接https://worktile.com/project/4a961c1c28cf4b07bdb4a07f661c7fcf/task)

下面我開始大致的介紹介紹。

 

關於新的后台UI

image

image

image

image

image

image

之所以棄用ACE Admin,是因為ACE Admin前端太重,不利於生成與維護。另外,我想更好的使用ASP.NET MVC。

關於代碼生成

你可以在文檔的節11看到整個的詳細說明,如:

image

這里,我簡略的帶過。

自從放棄了ASP.NET Scaffolding Template(ASP.NET基架模板)(具體見博文:Magicodes.NET框架之路——讓代碼再飛一會(ASP.NET Scaffolding)),我就開始了代碼生成的自主探索之旅。

首先介紹下我們的生成理念——基於Model以及輔助特性生成增刪改查控制器與視圖。

按照新的生成方式,我們的操作順序如下:

1. 添加Model,並且配置好生成特性(可以參考上面的輔助生成特性)

2. 添加“入口”T4模板(暫且允許我這么稱呼,它用於引用一些公共T4模板,並且設置生成規則/參數)

3. 設置生成參數

4. 保存生成或者運行生成

5. 查看並確認生成結果(控制器、視圖目錄以及相關視圖文件是否已經成功生成)

下面是部分效果圖:

image

image

image

從上圖可以看出,簡單的CRUD以及配置信息的代碼已經生成。但是投入到實際使用還有很多工作量,比如:

  • 根據屬性類型自動加載相應控件。(目前只做了部分,比如日歷控件,下拉列表等尚未實現)
  • 搜索尚未實現(如上一版一樣,集成OData查詢即可)
  • 根據輔助生成特性來完善一些邏輯。比如這里明顯是存在父子級關系的,那么我希望后面能夠增加相應特性來生成更完善的代碼。

不過目前這版,生成基礎架構后,你可以基於生成的代碼改改用了。不過,為了使生成的代碼更加靈活,因此我將生成的View模板放在了Magicodes.Admin插件的Magicodes.Templates目錄。

做到這一步,打通這條路子,我就耗費了不少時間(包括走了不少彎路)。希望有興趣的朋友可以將我剛才提及的一些不完善的地方完善完善,我實在是心有余而力不足啊。

關於后台重構

主要體現在以下幾點:

  • 增加了Magicodes.Admin插件,用來承載后台業務

  • 使用了新的后台模板,並且提供了個人頁面、郵箱、通訊錄等模板(如上所示)

  • 重寫了整個后台機制,提供了后台插件類型

  • 重寫了CRUD生成(見上文)

  • 重寫了配置信息生成(見上文)

  • 重寫了Admin路由,后台插件請求url默認前綴為Admin

關於MVC插件

由於上文提及了后台插件,那么在這里就提提,具體的請查看文檔:

image

門戶插件:

image

后台插件是本次重構增加的,后面還會對其功能進行擴展:

image

MVC插件是之前就存在的,如下所示:

image

關於文檔協議管理器的重構

重構了文檔協議管理器,並且支持配置文件配置。具體如文檔所示:

image

關於插件bundles支持

如標題所示,該功能是為了支持Microsoft.AspNet.Web.Optimization,以便將多個資源合並並且能夠壓縮資源(css和js)。你可以在文檔中找到詳細說明,如:

image

關於插件資源請求

有時候,我們並不想把所有的資源都bundle,再說了,bundle只能bundle css和js,圖片怎么辦,字體文件怎么破?

如下所示,我們會經常使用字體文件:

@Styles.Render("~/fonts/font-awesome/css/font-awesome.min.css")

根據這種情況,在新的版本里,CSS中的字體文件亦會指向插件對應的目錄:

image

不過值得注意的是,如果字體文件無法加載,請確定是否已經添加了相應的Mime類型。比如上面的擴展名為“.woff2”的文件。

關於該節的說明你可以在文檔插件請求一節中找到,如:

image

關於插件后台菜單配置

現在,插件配置文件中已經支持配置后台菜單,如下所示:

image

關於框架文檔

目前框架文檔已遷移至Worktile,因為其已經集成了Web Office App,查看Word會比較方便。鏈接如下:https://worktile.com/project/4a961c1c28cf4b07bdb4a07f661c7fcf/folder/b99d13f90d55401faba366a961e6d103

上面很多截圖就是使用Web打開截取的。

關於反饋

由於個人工作時間超級忙,因此QQ群溝通我是拒絕的。你可以在GitHub上添加Issues,如果我看到,我想我會第一時間答復的。

https://github.com/magicodes/Magicodes.NET/issues?q=is%3Aissue

目前有幾種類型的Label,請在添加的時候選擇相應類型:

 

關於V0.0.0.6Beta版?!

下一版該做什么?說實話需要做的還很多,很多功能由於改來改去,體驗並不是很好,比如CRUD生成的界面。不過總得需要人慢慢來迭代的,而我希望有朋友能夠Pull requests來fix這些問題。而我更多的是注重於框架本身。

對於V0.0.0.6Beta版,如果你有好的建議,您可以在GitHub上添加相應的Issues,如果建議不錯,我會采納的。當然不一定會安排在V0.0.0.6Beta版本。

另外,最近有一個想法,想提供一種基於.NET開發的WebSocket的服務端框架,無論是用於開發網頁還是用於搭建游戲服務(不要說SignalR)。為什么有這個想法:可以這么說,Ajax所帶來的用戶體驗挽救了當時正飽受詬病,正在風雨飄搖中的Javascript。因此,技術在不斷地進步亦在不斷地帶來新的更好的用戶體驗。在這個用戶都知道緩存(被程序員哥哥說的耳朵都起繭了,能不知道么),都知道F5的時代,突然有些網站你發現他是即時的,你不需要F5了,你發現你是震撼的!!!現在就有這種例子,比如Worktile,其后台是使用NodeJs開發的,無論是其消息機制還是多人協作下(比如添加列表與任務),它都是即時的,也就是意味着你不需要去刷新。也許少按幾個F5改變不了什么,但是對一些協作辦公之類的Web系統來說,意義真的很大。以前我曾想過,但是更多的僅是集成到站內消息,現在我想也許可以考慮設計一種機制或者框架來處理所有。當然目前只是想想,我實在沒這個精力。


免責聲明!

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



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