Magicodes.NET框架之路——让Magicodes.NET帮你编写代码
时间总是过得很快,而我几乎没有时间来安安静静的写博客和完善文档。不过总算是框架在一直前进,而我的计划是在今年年底(公历)前,让此框架成熟稳定。
在很长一段时间里,我尝试了很多我之前没有接触的技术或者没用过的技术,比如knockoutJs、OData、T4等等,也许走了很多弯路,也许对框架作用并不大,但是却对我而言却很有价值。只有用过了才知道其可用程度和适用场景,没有使用过就没有发言权。
框架也在不断的重构,我不想照抄别人的路子,我只想做一款有特色的框架,安安静静编码,踏踏实实前进,怎么个特色法呢?如:
- 插件式框架
- 响应式布局以及前后端对移动设备的支持
- 便捷的业务代码生成,比如CRUD生成,并且表单支持根据不同数据类型或特性生成相应的展示组件。
- 从框架到插件包括代码生成模板均走开源路线,便于理解和定制
- 一次开发多次使用:即纳入常用的业务插件、策略与模型(日志异常、支付策略、后台权限管理、CMS、流程引擎、微信平台、文档在线查看器等等)
- 多套前后端主题
- WebAPI & OData 的灵活接口
- 基于CodeFirst模式的数据访问,将数据结构更改纳入每一次代码迁移之中
- 开发人员面板
现在再来说下最近的些许事吧。
开源
代码已经两个月前不声不响的迁移到了GitHub,为什么是不声不响,因为我只想做一个安静的美男子默默地编码。这年头不会用Git的程序员肯定不是好程序员,我差点也落伍了,赶紧跟上。哈哈。 试了试还不错。


新的UI
官网UI已重新设计,并且购买了Ace bootstrap,在这里非常感谢tjcccc对本项目的贡献。
官网飞机票:http://www.magicodes.net/
设计师:tjcccc


后台UI:
贡献者:tjcccc



只是初具轮廓,东西还在不断地改,目前感觉Iframe用着不是很爽,可能整个后台UI会使用新的架构。~~~~
博客
博客设计稿已经出来了,表结构设计也基本完成,不过还没开始绑~~~
界面抢先看:
地址:http://www.magicodes.net/blogs
首席设计师:tjcccc


文档&文档查看器
文档?哎,又来催更啦!
文档已经编写了一部分,并会不断地进行完善。(PS:最悲剧的莫过于,当我写好一部分,发现这部分又被重构了)
之前打算将文档托管到OneDriver的Web Office App的,结果发现被墙了,于是~~
于是框架集成了一个文档查看器,便于在线查看文档。目前只实现了PDF查看器插件。



后面会考虑对接Web Office Web App Server以实现Office的在线打开与编辑。
后面会支持更多的文件类型,有兴趣的朋友帮搞搞吧~~~
数据丢失
这是一个沉重的话题,这年头没钱确实不好干事,虽然之前承诺了不删档测试,但是很不幸,因为回家办满月期间忘记了对香港服务器的续费,超过3天虚拟机被删除了!!!所以很抱歉的通知您,之前注册和登录的数据已经全部丢失。
代码生成
代码生成这块一直是我比较核心关心的问题,如何减少重复逻辑的业务开发,一直是我孜孜不倦的追求。那么Magicodes.NET现在已经可以生成简单的CRUD代码了~~
口号先响起:还在加班写代码?还在不断地重写业务逻辑?还在一个一个的打补丁?太Low了,让Magicodes.NET帮你来编写代码吧。凝聚Magicodes.NET团队的智慧,让Magicodes.NET帮您编写代码。
解决方案核心目录:

具体介绍请参阅:

不过我还没来得及写完,各位客户还是先看代码吧。T4生成这块我走了很多弯路,所以我决定在月底左右开始再次重构。先看看目前的成果:
配置View和控制器生成效果:


相关T4模板位置:

从控制器到UI均是代码生成哈,生成即用~~
刚才是配置生成,我们再看看CRUD生成:


这仅仅是起步尝试,再看一个:

我们再看看T4模板:

我们看看Users.tt的具体内容:
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ output extension=".cshtml" encoding="utf-8" #>
<#@ assembly name="$(TargetPath)" #>
<#@ import namespace="Magicodes.Mvc.Default.Areas.Admin.Models" #>
<#@ include file="$(SolutionDir)\T4\Magicodes.T4\ODataGrid\Header.tt" #>
<#
ODataGridHelper oDataGridHelper=new ODataGridHelper(typeof(UserViewModel));
oDataGridHelper.Params["_param_title"]="用户管理";
oDataGridHelper.Params["_param_url"]="/odata/Users";
oDataGridHelper.Params["_param_addModel"]=JsonConvert.SerializeObject(new UserViewModel(){Id=Guid.NewGuid().ToString()});
#>
<#@ include file="$(SolutionDir)\T4\Magicodes.T4\ODataGrid\Footer.tt" #>
可以看出,这里仅仅是传参而已~~
代码生成先告一段落吧,这里我进行了很多尝试,花费了很多精力,但是也体会到了很多。目前打算再挤挤时间重构下,下次见面时,T4代码生成将会更加惊艳。同时我也希望有兴趣的朋友Join with me!!
其他
其他细节修改与优化~~懒得一一想了。
客官可是看完了?如果可以的话,就打赏下吧。我们的服务器来自您的支持。
Magicodes.NET框架之路——让Magicodes.NET帮你编写代码的更多相关文章
- Magicodes.NET框架之路——V0.0.0.5 Beta版发布
最近写代码的时间实在不多,而且今年又打算业余学习下Unity3D以及NodeJs(用于开发游戏后台),因此完善框架的时间更不多了.不过我会一直坚持下去的,同时我也希望有兴趣的同学可以加入Push你的代 ...
- 3.Magicodes.NET框架之路——预览(一)
3.Magicodes.NET框架之路——预览(一) 前言 一眨眼,已经过去两个多月了 ,哥已经火力全开了(业余时间和精力,甚至为此放弃了各种私活),所以大家不要抱怨慢哈.编程犹如逆水行舟,不进则退. ...
- 1.Magicodes.NET框架之路——起航
1.Magicodes.NET框架之路--起航 前言 从事开发也好几年了,并且最近一直在做架构搭建的工作.这些时间,最大的感悟就是: 只有自己理解了的才是自己的. 对架构这块,若欲立之,必先破之. 故 ...
- Magicodes.NET框架之路[转]
插件式框架 响应式布局以及前后端对移动设备的支持 便捷的业务代码生成,比如CRUD生成,并且表单支持根据不同数据类型或特性生成相应的展示组件. 从框架到插件包括代码生成模板均走开源路线,便于理解和定制 ...
- Magicodes.NET框架之路——让代码再飞一会(ASP.NET Scaffolding)
首先感谢大家对Magicodes.NET框架的支持.就如我上篇所说,框架成熟可能至少还需要一年,毕竟个人力量实在有限.希望有兴趣的小伙伴能够加入我们并且给予贡献.同时有问题的小伙伴请不要在群里询问问题 ...
- Magicodes.NET框架之路——产品之路(谈谈产品管理)
虽然Magicodes.NET现在还不属于产品,但是却不妨碍她想成为产品的心. 为什么突然有了此篇,这篇不是空穴来风,而是我思考良久的结果: 为了让大家知道我在干什么,我想干什么,我将要干什么还有我干 ...
- 2.Magicodes.NET框架之路——策略管理
闲话策略 策略,有很多解释.但鄙人个人比较看重这点: 策略,是为了实现某个目标或者针对某些问题而制定的应对方案,以最终实现目标.比如为实现生娃而XXOO. 因此在本框架中,策略(Strategy),则 ...
- Magicodes.NET框架
Magicodes.NET框架之路——让代码再飞一会(ASP.NET Scaffolding) 首先感谢大家对Magicodes.NET框架的支持.就如我上篇所说,框架成熟可能至少还需要一年,毕竟 ...
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码 看看新闻网>看引擎>开源产品 0人收藏此文章, 发表于8小时前(2013-09-06 00:39) ...
随机推荐
- 2019.03.09 codeforces620E. New Year Tree(线段树+状态压缩)
传送门 题意:给一棵带颜色的树,可以给子树染色或者问子树里有几种不同的颜色,颜色值不超过606060. 思路:颜色值很小,因此状压一个区间里的颜色用线段树取并集即可. 代码: #include< ...
- 学习笔记day1-计算机介绍
1.1 “计算机”基本介绍 一.为什么需要计算机 对于现在的我们来说,每天要处理的信息量是巨大的,所以如果还是人工的来对这些数据进行处理,那么效率是很低的.此时计算机的出现就可以帮助我么来提高处理数据 ...
- 【转】mysqldump与innobackupex知多少
作者:罗小波 [目录] 1. 先看mysqldump 1.1 mysqldump备份过程解读 1.2 mysqldump备份过程中的关键步骤 1.2.1 FLUSH TABLES和FLUSH TABL ...
- Linux下好用的屏幕录像软件kazam及截图软件shutter
都是apt直接安装即可使用. 其中kazam默认保存的文件格式是avi,非常大,通常录制几十秒就已经好几个G,导致录制过程太占用资源,会出现卡顿的现象. 在“首选项”中可以选择输出格式为mp4,文件就 ...
- mysql无密码登陆
mysql登陆不上或者密码忘记可以尝试一下无密码登陆 以下一波神操作!! 首先关闭数据库服务(数据库在Centos7版本以上或者Redhat版本上被改名为mariadb) systemctl stop ...
- Android从入门到进阶——布局
一.组件 1.UI组件 (Android.view.View的子类或者间接子类) 2.容器组件(Android.view.ViewGroup子类或者间接子类) 二.UI组件:TextView,Spin ...
- opencv2.4.13+python2.7学习笔记--OpenCV中的图像处理--图像轮廓特征和几何矩
阅读对象:对概率论中的期望有一点了解. 1.图像几何矩 1.1简述 图像的几何矩包括空间矩.中心矩和中心归一化矩.几何矩具有平移.旋转和尺度不变性,一般是用来做大粒度的区分,用来过滤显然不相关的图像. ...
- 【Golang】如何统一处理HTTP请求中的异常捕获
最近写GOLANG项目,不使用框架,路由选择httprouter 现在想实现一个需求:在不修改httprouter源码的前提下,对所有注册的路由handle进行异常捕获. 大家都知道golang使用p ...
- 07arguments对象.html
07arguments对象.html <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- python猜数字游戏console版本
加入python学习小组后的第一次作业,python GUI写猜数字游戏.由于加班比较多,第一步先实现console版本,下一步再实现GUI版本. 虽然猜数字游戏是个小游戏,但是涉及到的基础知识点还是 ...