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系统来讲,意义真的很大。之前我曾想过,可是更多的仅是集成到站内消息,如今我想也许能够考虑设计一种机制或者框架来处理全部。固然目前只是想一想,我实在没这个精力。

相关文章
相关标签/搜索