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

最近寫代碼的時間實在很少,並且今年又打算業餘學習下Unity3D以及NodeJs(用於開發遊戲後臺),所以完善框架的時間更很少了。不過我會一直堅持下去的,同時我也但願有興趣的同窗能夠加入Push你的代碼。css

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

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

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

若是碰到問題,請先閱讀此連接:FAQ程序員

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

點此查看【須要註冊】(若是沒法打開,請複製下面連接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系統來講,意義真的很大。之前我曾想過,可是更多的僅是集成到站內消息,如今我想也許能夠考慮設計一種機制或者框架來處理全部。固然目前只是想一想,我實在沒這個精力。

相關文章
相關標籤/搜索