1.Magicodes.NET框架之路——起航
1.Magicodes.NET框架之路——起航
前言
从事开发也好几年了,并且最近一直在做架构搭建的工作。这些时间,最大的感悟就是:
- 只有自己理解了的才是自己的。
- 对架构这块,若欲立之,必先破之。
故此,才准备利用业余时间来倾力打造这套框架。由于时间精力以及能力有限,也许这套框架初期会有很多不合理之处,但是我相信只要有恒心,这套框架迟早会打磨完美。由于本人秉承做一行爱一行的原则,对代码也比较痴迷,故此命名为"Magicodes框架"。
Magicodes ——意为"Magic Codes"。代码就如同魔术,每一个代码爱好者都可能是一位大魔术师。只要你热衷于此,请跟随我们的脚步一起前行吧。
在最近的一段时间里,我们也组成了Magicodes团队,Magicodes团队是一个崇尚开源的团队,我们决定接下来长期维护此框架并且免费开源。
MagicCode框架优势
MagicCode框架是一套插件框架,目前为WebForm版本,在WebForm版本稳定后,我将继续打造Mvc版本。从整套架构体系的设计方面来说,除了后端框架的插件式设计外,前端框架的模块化设计也是本框架的一部分。
好了,废话不说了,下面就简单列下本框架所涉猎到的一些技术或者概念:
后端 |
插件式架构(MagicCode架构) |
插件式架构就在于提供一个开放的体系结构,以方便中间件的选择、组装和集成,应用框架的重用已成为软件开发生产中最有效的重用方式之一。 基于插件的设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布。公开插件接口,让第三方有机会扩展应用程序的功能,有财大家一起发。另外,还可以让开源与闭源共存于一套软件,你的插件是开源还是闭源,完全由你自己决定。 |
插件框架(MagicCode.Core) |
插件框架用于组织和管理系统插件的下载、装载、组合、实例化以及销毁,并提供整套完整的与后台服务通信的操作接口等功能。 |
|
插件接口(MagicCode.Web.Interfaces) |
系统的所有插件全部通过实现系统框架统一的接口规范,以便有效的组织、管理插件对象。 插件策略属于插件接口的一部分,插件策略用于实现一些比较通用的功能,以便于各个插件调用,目前MagicCode框架提供了以下策略:
|
|
插件组件(Plus) |
插件组件为具体的插件程序,是实现了插件接口的一个独立的程序。Magicodes团队会提供一些通用插件以供用户免费使用:权限菜单等通用系统管理插件、默认主题。 |
|
流程引擎 |
我们将打造一个轻量级的流程引擎插件,而且也是开源的。这里就不多介绍了,到时让我们用代码说话! |
|
路由系统 |
动态映射Url,以便使Url更友好或者更易于理解。你的Url你做主。 |
|
WebAPI |
Magicodes除了支持自有的WebAPI之外,还支持微软的WebAPI。并且支持Rest协议和OData。API一次编写,适应所有终端(PC、移动),适用主流格式(JSON、XML、BSON)。一套API,打遍天下无敌手。而且API友好,使用方便,基于Rest协议的WebAPI,让你极其方便的实现你的增删改查。基于OData协议的API,让你查询爽到爆。 |
|
事件管理 |
在插件中,您可以订阅任何全局事件,那么如何处理,是您说了算。框架只是平台,但是亦不限制您的自由发挥。 |
|
性能监控 |
Magicodes除了有完善的日志记录外,还带有性能计数器,代码哪里慢了?看看计数器怎么说吧。 |
|
配置管理 |
业务系统离不开各种配置,从网站设置到邮件配置等等,Magicodes自带一些默认配置,比如系统配置、邮件配置、站点配置等,能够让您直接使用,同时您也可以设置自己的配置,以供插件使用。 |
|
EntityFramework |
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。这里我比较喜欢Code First+迁移。 |
|
前端 |
前端模块化 |
与后端插件架构类似,编程语言发展到一定阶段,必然要经历拆分模块化的过程,以利于团队协作与维护。而前端开发,在经历过纷乱的阶段,也进入了模块化开发的时期。 |
功能齐全的UI |
Magicodes的系列主题将为您提供全面美观的界面,并且有足够多的HTML元素、HTML和CSS组件以及Jquery插件供您选择。让您可以快速构建界面出色、体验优秀的跨屏页面,大幅度提升你的开发效率,让你的网站瞬间变得高大上: 1. 多套主题 2. 前端组件丰富 3. 丰富实用的框架API |
|
一个框架,多种设备 |
你的网站和应用能在Magicodes的帮助下通过一份代码快速、有效适配手机、平板、PC设备。我们的目的在于最大限度的节省大家的开发工作量 |
|
MVVM |
MVVM模式已经成为前端开发的主流,面对日益复杂的前端,模块化只是起点,响应式只是手段,MVVM也只是里程碑。自打一看到MVVM框架,我们就爱上了她,陷入其中不可自拔。也许这就是一见钟情的魅力 |
尾声
Magicodes正式开始宣传了。本框架将会长期维护并且更新下去,而且尽量每周分享一篇技术贴或者架构心得贴,以促进大家共同进步,如有不对的地方,请各位大神指正。
另外,Magicodes团队是一个崇尚开源的团队,再好的框架,再好的代码也得有人欣赏不是?再说了,我们追求的不是盈利,我们是一群疯狂的代码爱好者,我们追求的是架构的不断完善,我们追求的是你用了我们框架然后给赞!开源,是我们的理念。同时,我们也希望大家也能贡献自己的插件源码,让我们一起前行。
预计本周,框架将提供免费下载,请关注我们的官网和我的博客——http://www.magicodes.net。
最后,分享一首本人前段时间偶有所感而得的诗:
夏雪
你是一朵特立独行的雪花
就这么突兀的出现在这个城市的晴空
冰晶的容颜,雪白的罗裙
仿佛整个烈日里都是绽放着的你的美
我只是这个城市的过客
茫然而不知所终
你缓缓飘下,然后又不顾一切地融化在我的手心
你给了我你生命中的所有的绚烂
而我却是一个过客
也许你不该出现在这个烈烈的晴空
也许我不该行走在这个喧嚣的城市
只是,
不知这一刻的邂逅,可是为了那一刻的永恒
1.Magicodes.NET框架之路——起航的更多相关文章
- Magicodes.NET框架之路——V0.0.0.5 Beta版发布
最近写代码的时间实在不多,而且今年又打算业余学习下Unity3D以及NodeJs(用于开发游戏后台),因此完善框架的时间更不多了.不过我会一直坚持下去的,同时我也希望有兴趣的同学可以加入Push你的代 ...
- 3.Magicodes.NET框架之路——预览(一)
3.Magicodes.NET框架之路——预览(一) 前言 一眨眼,已经过去两个多月了 ,哥已经火力全开了(业余时间和精力,甚至为此放弃了各种私活),所以大家不要抱怨慢哈.编程犹如逆水行舟,不进则退. ...
- Magicodes.NET框架之路——让代码再飞一会(ASP.NET Scaffolding)
首先感谢大家对Magicodes.NET框架的支持.就如我上篇所说,框架成熟可能至少还需要一年,毕竟个人力量实在有限.希望有兴趣的小伙伴能够加入我们并且给予贡献.同时有问题的小伙伴请不要在群里询问问题 ...
- 2.Magicodes.NET框架之路——策略管理
闲话策略 策略,有很多解释.但鄙人个人比较看重这点: 策略,是为了实现某个目标或者针对某些问题而制定的应对方案,以最终实现目标.比如为实现生娃而XXOO. 因此在本框架中,策略(Strategy),则 ...
- Magicodes.NET框架之路——产品之路(谈谈产品管理)
虽然Magicodes.NET现在还不属于产品,但是却不妨碍她想成为产品的心. 为什么突然有了此篇,这篇不是空穴来风,而是我思考良久的结果: 为了让大家知道我在干什么,我想干什么,我将要干什么还有我干 ...
- Magicodes.NET框架之路——让Magicodes.NET帮你编写代码
时间总是过得很快,而我几乎没有时间来安安静静的写博客和完善文档.不过总算是框架在一直前进,而我的计划是在今年年底(公历)前,让此框架成熟稳定. 在很长一段时间里,我尝试了很多我之前没有接触的技术或者没 ...
- Magicodes.NET框架之路[转]
插件式框架 响应式布局以及前后端对移动设备的支持 便捷的业务代码生成,比如CRUD生成,并且表单支持根据不同数据类型或特性生成相应的展示组件. 从框架到插件包括代码生成模板均走开源路线,便于理解和定制 ...
- Magicodes.NET框架
Magicodes.NET框架之路——让代码再飞一会(ASP.NET Scaffolding) 首先感谢大家对Magicodes.NET框架的支持.就如我上篇所说,框架成熟可能至少还需要一年,毕竟 ...
- tornado框架之路二
二.路由系统 路由系统其实就是 url 和 类 的对应关系,这里不同于其他框架,其他很多框架均是 url 对应 函数,Tornado中每个url对应的是一个类. #!/usr/bin/env pyth ...
随机推荐
- go基本使用方法
一,变量 var:声明变: var 变量名 数据类型 :同时还需要指定数据的类型 var 变量名 = 值 : 声明变量,根据变量值判断变量类型 := :省略var,直接可以(变量名:= 值), ...
- 贪心-Wooden Sticks
先将火柴按照长度(或重量)优先排序,在不断遍历数组,找出其中重量(长度)递增子序列,并标记 Problem Description There is a pile of n wooden sticks ...
- 第51章:Java操作MongoDB-[Mongo-Java-2.x]
①范例:连接数据库 package cn.mldn.demo; import com.mongodb.DB; import com.mongodb.MongoClient; public class ...
- flag读取控制台参数
package main import ( "fmt" "os") func main() { arg := os.Args if len(arg) < ...
- python3 django1.11 安装xadmin 的方法,亲测可用
首先需要Pip安装如下的包ip install django-crispy-forms pip install django-import-export pip install django-reve ...
- struts2参数传递总结
需求1:登录页面填写表单,提交后进入action,action中能够获取填入的内容.[宏观分类:页面->action] 需求2:登录action从数据库校验完毕后,跳转至主页,主页显示当前登录的 ...
- 学习python一个月盘点
1,看了30多个视频,是一些基本操作的.粗略的了解了语法,函数,循环,正则表达,将视频内容全部敲入文本: 2,看了100页的书,习题不太会,进展很慢.第五章10以后的题都没做: 3,看C++的书,有点 ...
- 2019/3/4 java集合学习(二)
java集合学习(二) 在学完ArrayList 和 LinkedList之后,基本已经掌握了最基本的java常用数据结构,但是为了提高程序的效率,还有很多种特点各异的数据结构等着我们去运用,类如可以 ...
- CentOS---zabbix使用sendEamil发送报警
一.sendEmail简介 sendEmail是一个轻量级,命令行的SMTP邮件客户端.如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php ...
- django查询数据库无法过滤月份的解决
我试过,当settings里的:USE_TZ = False时也可以查询,但是数据库里的时间就会显示错的 解决方法是可以再终端输入 mysql_tzinfo_to_sql /usr/share/zon ...