最近写代码的时间实在不多,而且今年又打算业余学习下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

之所以弃用ACE Admin,是因为ACE Admin前端太重,不利于生成与维护。另外,我想更好的使用ASP.NET MVC。

关于代码生成

你可以在文档的节11看到整个的详细说明,如:

这里,我简略的带过。

自从放弃了ASP.NET Scaffolding Template(ASP.NET基架模板)(具体见博文:Magicodes.NET框架之路——让代码再飞一会(ASP.NET Scaffolding)),我就开始了代码生成的自主探索之旅。

首先介绍下我们的生成理念——基于Model以及辅助特性生成增删改查控制器与视图。

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

1. 添加Model,并且配置好生成特性(可以参考上面的辅助生成特性)

2. 添加“入口”T4模板(暂且允许我这么称呼,它用于引用一些公共T4模板,并且设置生成规则/参数)

3. 设置生成参数

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

5. 查看并确认生成结果(控制器、视图目录以及相关视图文件是否已经成功生成)

下面是部分效果图:

从上图可以看出,简单的CRUD以及配置信息的代码已经生成。但是投入到实际使用还有很多工作量,比如:

  • 根据属性类型自动加载相应控件。(目前只做了部分,比如日历控件,下拉列表等尚未实现)
  • 搜索尚未实现(如上一版一样,集成OData查询即可)
  • 根据辅助生成特性来完善一些逻辑。比如这里明显是存在父子级关系的,那么我希望后面能够增加相应特性来生成更完善的代码。

不过目前这版,生成基础架构后,你可以基于生成的代码改改用了。不过,为了使生成的代码更加灵活,因此我将生成的View模板放在了Magicodes.Admin插件的Magicodes.Templates目录。

做到这一步,打通这条路子,我就耗费了不少时间(包括走了不少弯路)。希望有兴趣的朋友可以将我刚才提及的一些不完善的地方完善完善,我实在是心有余而力不足啊。

关于后台重构

主要体现在以下几点:

  • 增加了Magicodes.Admin插件,用来承载后台业务

  • 使用了新的后台模板,并且提供了个人页面、邮箱、通讯录等模板(如上所示)

  • 重写了整个后台机制,提供了后台插件类型

  • 重写了CRUD生成(见上文)

  • 重写了配置信息生成(见上文)

  • 重写了Admin路由,后台插件请求url默认前缀为Admin

关于MVC插件

由于上文提及了后台插件,那么在这里就提提,具体的请查看文档:

门户插件:

后台插件是本次重构增加的,后面还会对其功能进行扩展:

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

关于文档协议管理器的重构

重构了文档协议管理器,并且支持配置文件配置。具体如文档所示:

关于插件bundles支持

如标题所示,该功能是为了支持Microsoft.AspNet.Web.Optimization,以便将多个资源合并并且能够压缩资源(css和js)。你可以在文档中找到详细说明,如:

关于插件资源请求

有时候,我们并不想把所有的资源都bundle,再说了,bundle只能bundle css和js,图片怎么办,字体文件怎么破?

如下所示,我们会经常使用字体文件:

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

根据这种情况,在新的版本里,CSS中的字体文件亦会指向插件对应的目录:

不过值得注意的是,如果字体文件无法加载,请确定是否已经添加了相应的Mime类型。比如上面的扩展名为“.woff2”的文件。

关于该节的说明你可以在文档插件请求一节中找到,如:

关于插件后台菜单配置

现在,插件配置文件中已经支持配置后台菜单,如下所示:

关于框架文档

目前框架文档已迁移至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系统来说,意义真的很大。以前我曾想过,但是更多的仅是集成到站内消息,现在我想也许可以考虑设计一种机制或者框架来处理所有。当然目前只是想想,我实在没这个精力。

Magicodes.NET框架之路——V0.0.0.5 Beta版发布的更多相关文章

  1. 3.Magicodes.NET框架之路——预览(一)

    3.Magicodes.NET框架之路——预览(一) 前言 一眨眼,已经过去两个多月了 ,哥已经火力全开了(业余时间和精力,甚至为此放弃了各种私活),所以大家不要抱怨慢哈.编程犹如逆水行舟,不进则退. ...

  2. 1.Magicodes.NET框架之路——起航

    1.Magicodes.NET框架之路--起航 前言 从事开发也好几年了,并且最近一直在做架构搭建的工作.这些时间,最大的感悟就是: 只有自己理解了的才是自己的. 对架构这块,若欲立之,必先破之. 故 ...

  3. Java 开源博客——B3log Solo 0.6.1 正式版发布了!

    Java 开源博客 —— B3LOG Solo 0.6.1 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,并加入了一款 Metro 风格的皮肤. 特性 基于标签的文章分类 Ping Goog ...

  4. Java 开源博客——B3log Solo 0.6.7 正式版发布了!

    Java 开源博客 -- B3log Solo 0.6.7 正式版发布了!欢迎大家下载. 另外,欢迎观摩 B3log 团队的新项目:Wide,也非常欢迎大家参与进来 :-) 特性 基于标签的文章分类 ...

  5. Java 开源博客——B3log Solo 0.6.6 正式版发布了!

    Java 开源博客 -- B3log Solo 0.6.6 正式版发布了!欢迎大家下载. 该版本引入了数据库连接池:Druid. 另外,欢迎观摩 B3log 团队的新项目:Noty,也非常欢迎大家参与 ...

  6. Java 开源博客——B3log Solo 0.6.5 正式版发布了!

    Java 开源博客 -- B3log Solo 0.6.5 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,也是 B3log Solo 的最后一个大版本. 这个版本发布后,B3log Solo ...

  7. Java 开源博客 —— Solo 0.6.8 正式版发布了!

    Java 开源博客 -- Solo 0.6.8 正式版发布了,欢迎大家下载.另外,欢迎观摩我们的另一个产品,在线 Golang IDE--Wide! 特性 基于标签的文章分类 博客/标签 Atom/R ...

  8. [敏杰开发]知识路书——图形化文献管理大师 Beta版发布喽!!!

    [敏杰开发]知识路书--图形化文献管理大师 Beta版发布喽!!! 一.总览 项目名称:知识路书 发布形式:网页应用 发布地址:http://roadmap.imcoming.top 二.运行环境与使 ...

  9. Magicodes.NET框架之路——产品之路(谈谈产品管理)

    虽然Magicodes.NET现在还不属于产品,但是却不妨碍她想成为产品的心. 为什么突然有了此篇,这篇不是空穴来风,而是我思考良久的结果: 为了让大家知道我在干什么,我想干什么,我将要干什么还有我干 ...

随机推荐

  1. 检查对象是否为NULL或者为Empty

    不管是在Winform开发,还是在asp.net 开发中当从一个数据源中获取数据时你总是不知道这个数据的状态,这个时候总要对她进行一次判断,不过每次进行一次判断总是要写怎么一堆代码,时间长了,总感觉不 ...

  2. mysql练习

    1.表关系 创建如下表格,并创建相关约束 ##(1)创建一个数据库 create database db2 default charset utf8; ##切换到db2数据库中 use db2 ##创 ...

  3. [LeetCode] Find And Replace in String 在字符串中查找和替换

    To some string S, we will perform some replacement operations that replace groups of letters with ne ...

  4. linux mysql 安装

    操作系统 Centos 7.2以上版本 操作系统 centos 7.2以上版本 mysql 版本 mysql-5.7.23-el7-x86_64.tar.gz 1.1 安装准备 1.  创建安装文件存 ...

  5. 设置mysql InnoDB存储引擎下取消自动提交事务

    mysql 存储引擎中最长用的有两种,MyISAM 存储引擎和InnoDB存储引擎. 1.MyISAM 存储引擎 不支持事务,不支持外键,优势是访问速度快: 2.InnoDB存储引擎 支持事务,一般项 ...

  6. js面向对象和php面向对象的区别

    ---恢复内容开始--- js的面向对象 1.类 具体相同的特征的一些对象的集合. 2.对象 具体到某一个失误了都可以叫做对象. 3.类  通过function 定义类  所以在js里类的本质是函数, ...

  7. linux 使用sh@d0ws0cks client

    Linux Centos7下安装使用Shadowsocks客户端,实现*** 准备 SS: 搭建一个可以连接外网的服务器 教程可见 自己动手搭梯子 服务器:本人用的腾讯云服务器,系统为Centos7 ...

  8. js-day01-js语言基础

    JavaScript简介:JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本 ...

  9. Python必学Django框架,入门到精通学习视频教程全都在这可以领

    “人生苦短,我用python”,学python的小伙伴应该都了解这句话的含义.但是,学python,你真正了了解强大的Django框架吗!? 据说Django还是由吉普赛的一个吉他手的名字命名的呢,有 ...

  10. [Swift]LeetCode127. 单词接龙 | Word Ladder

    Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest t ...