设为首页 收藏本站
查看: 987|回复: 0

[经验分享] Magicodes.NET框架之路——V0.0.0.5 Beta版发布

[复制链接]

尚未签到

发表于 2017-2-24 07:23:46 | 显示全部楼层 |阅读模式
  最近写代码的时间实在不多,而且今年又打算业余学习下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
DSC0000.png

DSC0001.png

DSC0002.png

DSC0003.png

DSC0004.png

DSC0005.png

  之所以弃用ACE Admin,是因为ACE Admin前端太重,不利于生成与维护。另外,我想更好的使用ASP.NET MVC。
关于代码生成
  你可以在文档的节11看到整个的详细说明,如:
DSC0006.png

  这里,我简略的带过。
  自从放弃了ASP.NET Scaffolding Template(ASP.NET基架模板)(具体见博文:Magicodes.NET框架之路——让代码再飞一会(ASP.NET Scaffolding)),我就开始了代码生成的自主探索之旅。
  首先介绍下我们的生成理念——基于Model以及辅助特性生成增删改查控制器与视图。
  按照新的生成方式,我们的操作顺序如下:
  1. 添加Model,并且配置好生成特性(可以参考上面的辅助生成特性)
  2. 添加“入口”T4模板(暂且允许我这么称呼,它用于引用一些公共T4模板,并且设置生成规则/参数)
  3. 设置生成参数
  4. 保存生成或者运行生成
  5. 查看并确认生成结果(控制器、视图目录以及相关视图文件是否已经成功生成)
  下面是部分效果图:
DSC0007.png

DSC0008.png

DSC0009.png

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

  • 根据属性类型自动加载相应控件。(目前只做了部分,比如日历控件,下拉列表等尚未实现)
  • 搜索尚未实现(如上一版一样,集成OData查询即可)
  • 根据辅助生成特性来完善一些逻辑。比如这里明显是存在父子级关系的,那么我希望后面能够增加相应特性来生成更完善的代码。
  不过目前这版,生成基础架构后,你可以基于生成的代码改改用了。不过,为了使生成的代码更加灵活,因此我将生成的View模板放在了Magicodes.Admin插件的Magicodes.Templates目录。
  做到这一步,打通这条路子,我就耗费了不少时间(包括走了不少弯路)。希望有兴趣的朋友可以将我刚才提及的一些不完善的地方完善完善,我实在是心有余而力不足啊。
关于后台重构
  主要体现在以下几点:

  •   增加了Magicodes.Admin插件,用来承载后台业务
  •   使用了新的后台模板,并且提供了个人页面、邮箱、通讯录等模板(如上所示)
  •   重写了整个后台机制,提供了后台插件类型
  •   重写了CRUD生成(见上文)
  •   重写了配置信息生成(见上文)
  •   重写了Admin路由,后台插件请求url默认前缀为Admin
关于MVC插件
  由于上文提及了后台插件,那么在这里就提提,具体的请查看文档:
DSC00010.png

  门户插件:
DSC00011.png

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

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

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

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

关于插件资源请求
  有时候,我们并不想把所有的资源都bundle,再说了,bundle只能bundle css和js,图片怎么办,字体文件怎么破?
  如下所示,我们会经常使用字体文件:
  @Styles.Render("~/fonts/font-awesome/css/font-awesome.min.css")
  根据这种情况,在新的版本里,CSS中的字体文件亦会指向插件对应的目录:
DSC00016.png

  不过值得注意的是,如果字体文件无法加载,请确定是否已经添加了相应的Mime类型。比如上面的扩展名为“.woff2”的文件。
  关于该节的说明你可以在文档插件请求一节中找到,如:
DSC00017.png

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

关于框架文档
  目前框架文档已迁移至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,请在添加的时候选择相应类型:

  • 建议以及反馈请使用【Feedback(反馈与建议)】
  • Bug请使用【Bug】
  • 需要帮助请使用【help wanted(需要帮助)】
  • 疑问请使用【question(疑问)】
关于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系统来说,意义真的很大。以前我曾想过,但是更多的仅是集成到站内消息,现在我想也许可以考虑设计一种机制或者框架来处理所有。当然目前只是想想,我实在没这个精力。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346321-1-1.html 上篇帖子: 当今最流行的Node.js应用开发框架简介 下篇帖子: 为什么要进行前后台分离
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表