首页 > 代码库 > 1. MagicCode框架之路——起航

1. MagicCode框架之路——起航

前言

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

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

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

在接下来的时间里,我将长期维护此框架并且发帖发表心得。

MagicCode框架

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

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

后端

插件式架构(MagicCode架构)

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

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

插件框架(MagicCode.Core)

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

插件接口(MagicCode.Web.Interfaces)

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

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

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

插件组件(Plus)

插件组件为具体的插件程序,是实现了插件接口的一个独立的程序。

EntityFramework

ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。这里我比较喜欢Code First+迁移。

前端

前端模块化

与后端插件架构类似,编程语言发展到一定阶段,必然要经历拆分模块化的过程,以利于团队协作与维护。而前端开发,在经历过纷乱的阶段,也进入了模块化开发的时期。

requireJS

RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签的脚本加载步骤。可以用它来加速、优化代码,但其主要目的还是为了代码的模块化。它鼓励在使用脚本时以module ID替代URL地址。

用过SeaJs,也使用过requireJs,但是最终还是坚定的选择了requireJs。

Jquery以及Jquery插件

Jquery是一个轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。

Bootstrap等响应式框架

Bootstrap是基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件。

Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。

 

尾声

框架设计其实早在2个星期前就已经开始了,那么今天将是正式宣战。本框架将会长期维护并且更新下去,而且尽量每周分享一篇技术贴或者架构心得贴,以促进大家共同进步,如有不对的地方,请各位大神指正。

另外,MagicCode框架将对会员开源(孩子快出生了,请各位理解,而且600块真的算不了什么,就当做打赏下我这个一线码农吧——购买地址)。现在很多商业框架都不是开源的,不仅框架不开源,而且插件也不开源,虽然提供了很多强大的工具或者设计器能够快速开发,但是却不利于开发人员学习、提升,而且不利于复用插件以及调试跟踪。在我的理念里,唯有开源,才有利于架构的完善,才有助于共同提升,因此才做出开源的打算。

 

最后,分享一首本人刚刚偶有所感而得的诗:

 

夏雪

 

你是一朵特立独行的雪花

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

冰晶的容颜,雪白的罗裙

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

 

我只是这个城市的过客

茫然而不知所终

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

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

而我却是一个过客

 

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

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

只是,

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

 

1. MagicCode框架之路——起航