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

  1. 前言

从事开发也好几年了,并且最近一直在做架构搭建的工作。这些时间,最大的感悟就是:

  • 只有自己理解了的才是自己的。
  • 对架构这块,若欲立之,必先破之。

故此,才准备利用业余时间来倾力打造这套框架。由于时间精力以及能力有限,也许这套框架初期会有很多不合理之处,但是我相信只要有恒心,这套框架迟早会打磨完美。由于本人秉承做一行爱一行的原则,对代码也比较痴迷,故此命名为"Magicodes框架"。

Magicodes ——意为"Magic Codes"。代码就如同魔术,每一个代码爱好者都可能是一位大魔术师。只要你热衷于此,请跟随我们的脚步一起前行吧。

在最近的一段时间里,我们也组成了Magicodes团队,Magicodes团队是一个崇尚开源的团队,我们决定接下来长期维护此框架并且免费开源。

  1. MagicCode框架优势

MagicCode框架是一套插件框架,目前为WebForm版本,在WebForm版本稳定后,我将继续打造Mvc版本。从整套架构体系的设计方面来说,除了后端框架的插件式设计外,前端框架的模块化设计也是本框架的一部分。

好了,废话不说了,下面就简单列下本框架所涉猎到的一些技术或者概念:

后端

插件式架构(MagicCode架构)

插件式架构就在于提供一个开放的体系结构,以方便中间件的选择、组装和集成,应用框架的重用已成为软件开发生产中最有效的重用方式之一。

基于插件的设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布。公开插件接口,让第三方有机会扩展应用程序的功能,有财大家一起发。另外,还可以让开源与闭源共存于一套软件,你的插件是开源还是闭源,完全由你自己决定。

插件框架(MagicCode.Core)

插件框架用于组织和管理系统插件的下载、装载、组合、实例化以及销毁,并提供整套完整的与后台服务通信的操作接口等功能。

插件接口(MagicCode.Web.Interfaces)

系统的所有插件全部通过实现系统框架统一的接口规范,以便有效的组织、管理插件对象。

插件策略属于插件接口的一部分,插件策略用于实现一些比较通用的功能,以便于各个插件调用,目前MagicCode框架提供了以下策略:

  • Cache——缓存策略
  • Email——邮件策略
  • Logger——日志策略
  • ScriptMin——脚本资源压缩策略
  • Sesstion——会话策略
  • SMS——短信策略
  • UserAuthentication——用户验证策略

插件组件(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框架,我们就爱上了她,陷入其中不可自拔。也许这就是一见钟情的魅力

  1. 尾声

Magicodes正式开始宣传了。本框架将会长期维护并且更新下去,而且尽量每周分享一篇技术贴或者架构心得贴,以促进大家共同进步,如有不对的地方,请各位大神指正。

 

另外,Magicodes团队是一个崇尚开源的团队,再好的框架,再好的代码也得有人欣赏不是?再说了,我们追求的不是盈利,我们是一群疯狂的代码爱好者,我们追求的是架构的不断完善,我们追求的是你用了我们框架然后给赞!开源,是我们的理念。同时,我们也希望大家也能贡献自己的插件源码,让我们一起前行。

 

预计本周,框架将提供免费下载,请关注我们的官网和我的博客——http://www.magicodes.net。

 

最后,分享一首本人前段时间偶有所感而得的诗:

 

夏雪

 

你是一朵特立独行的雪花

就这么突兀的出现在这个城市的晴空

冰晶的容颜,雪白的罗裙

仿佛整个烈日里都是绽放着的你的美

 

我只是这个城市的过客

茫然而不知所终

你缓缓飘下,然后又不顾一切地融化在我的手心

你给了我你生命中的所有的绚烂

而我却是一个过客

 

也许你不该出现在这个烈烈的晴空

也许我不该行走在这个喧嚣的城市

只是,

不知这一刻的邂逅,可是为了那一刻的永恒


 

1.Magicodes.NET框架之路——起航的更多相关文章

  1. Magicodes.NET框架之路——V0.0.0.5 Beta版发布

    最近写代码的时间实在不多,而且今年又打算业余学习下Unity3D以及NodeJs(用于开发游戏后台),因此完善框架的时间更不多了.不过我会一直坚持下去的,同时我也希望有兴趣的同学可以加入Push你的代 ...

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

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

  3. Magicodes.NET框架之路——让代码再飞一会(ASP.NET Scaffolding)

    首先感谢大家对Magicodes.NET框架的支持.就如我上篇所说,框架成熟可能至少还需要一年,毕竟个人力量实在有限.希望有兴趣的小伙伴能够加入我们并且给予贡献.同时有问题的小伙伴请不要在群里询问问题 ...

  4. 2.Magicodes.NET框架之路——策略管理

    闲话策略 策略,有很多解释.但鄙人个人比较看重这点: 策略,是为了实现某个目标或者针对某些问题而制定的应对方案,以最终实现目标.比如为实现生娃而XXOO. 因此在本框架中,策略(Strategy),则 ...

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

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

  6. Magicodes.NET框架之路——让Magicodes.NET帮你编写代码

    时间总是过得很快,而我几乎没有时间来安安静静的写博客和完善文档.不过总算是框架在一直前进,而我的计划是在今年年底(公历)前,让此框架成熟稳定. 在很长一段时间里,我尝试了很多我之前没有接触的技术或者没 ...

  7. Magicodes.NET框架之路[转]

    插件式框架 响应式布局以及前后端对移动设备的支持 便捷的业务代码生成,比如CRUD生成,并且表单支持根据不同数据类型或特性生成相应的展示组件. 从框架到插件包括代码生成模板均走开源路线,便于理解和定制 ...

  8. Magicodes.NET框架

    Magicodes.NET框架之路——让代码再飞一会(ASP.NET Scaffolding)   首先感谢大家对Magicodes.NET框架的支持.就如我上篇所说,框架成熟可能至少还需要一年,毕竟 ...

  9. tornado框架之路二

    二.路由系统 路由系统其实就是 url 和 类 的对应关系,这里不同于其他框架,其他很多框架均是 url 对应 函数,Tornado中每个url对应的是一个类. #!/usr/bin/env pyth ...

随机推荐

  1. Verilog有符号数处理

    内容主要摘自以下两个链接:  https://www.cnblogs.com/LJWJL/p/3481995.html  https://www.cnblogs.com/LJWJL/p/3481807 ...

  2. python项目1:自动解压并删除压缩包

    目的:实现压缩包的自动解压及删除. 思路:获取压缩包 > 解压 > 删除压缩包 代码实现:此处代码实现前提为.py文件和压缩包在同一文件夹 # 导入需要的包 import os impor ...

  3. Ado.Net 注意事项

    Ado.Net同一个connection创建sqlCommand时,如果command要执行多个sql及其 params,这是如果某2个params中存在重名的话会报错, 例如sql1和params1 ...

  4. 从git远程仓库Checkout项目到本地

    一.登录coding  并且项目已创建好  已经是项目的组员 二.打开idea 1.弹出如下页面  复制远程项目上的SSH(URL)到下框URL 并且Test测试 成功就Clone即可 2.Clone ...

  5. Debian 9.x "stretch" 安装 vnStat 统计服务器流量

    vnStat 是一款开源的 Linux 下统计网卡流量的软件,可以很方便地查看当前.当天.当月的流量统计报告,下面我们介绍下在 Debian 9.x 下安装 vnstat 的简单方法 首先,使用 ip ...

  6. MVC项目加入WebApi

    一.NuGet搜索安装Microsoft.AspNet.WebApi,注意引用的版本依赖,因为是在完整的MVC项目上新增,在本地编译调试并没有报错,发布到IIS后却显示应用程序出错. 二.NuGet搜 ...

  7. day17_雷神_数据库 小全

    # 数据库 1.mysql 介绍 一 数据库管理软件的由来 程序的所有组件不可能只在一个机子上,性能问题和单点故障, 程序分散了,还需要解决数据共享问题, 基于网络访问这台共享的机器,用socket. ...

  8. The test form is only available for requests from the local machine

    使用浏览器测试Web服务时出现提示“The test form is only available for requests from the local machine.”的解决办法 在Web服务项 ...

  9. Django 信号、中间件、i18n 专题

    信号 Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者. 1. Django内置信号 Model signals pr ...

  10. 面试官问我,Redis分布式锁如何续期?懵了。

    前言 上一篇[面试官问我,使用Dubbo有没有遇到一些坑?我笑了.]之后,又有一位粉丝和我说在面试过程中被虐了.鉴于这位粉丝是之前肥朝的粉丝,而且周一又要开启新一轮的面试,为了回馈他长期以来的支持,所 ...