Koala Framework是什么?我为什么要写这个框架?

 

当时的监管组,技术力量累积的很少,还在直连DB,使用着DataTable、DataSet作为数据的承载,监管是公司最近几年主推的项目,所以领导们决定进行重要调整。

初来乍到

由于之前没有任何的技术积累,所以面临的就是重新开始,当时的项目非常赶,所以先尝试着找现成的框架使用,然而像面向功能的组件、框架非常非常多,如:IOC(Autofac、MEF、Spring.Net…),ORM(Entity Framework、NHibernate、Simple Data…),调度(Quartz…)但是面向整个项目开发过程的可用框架几乎没有或者太重了,如:(Orchard,DNN),于是决定参照Orchard、DNN开始自己造轮子,以满足现在简单的需求。

升级?重构?

渐渐的这个简单的框架开始力不从心,虽然支持了Modules式开发,支持了Module拔插但随着底层机制的不稳固渐渐的出现了问题。这时开始决定升级,或者说重构,因为这一次时间较充裕,所以底层机制可以仔细的构建,由于直接简单的框架使用了IOC所有这一次就算重构的面目全非最后只要做简单的适配即可集成现有的模块。

面向Web(像CMS?)

由于监管是B/S项目所以这次的重点是Web,而不去考虑Windows Forms、WPF等框架,这一次同样参考了Orchard,这段时间是最艰难的时候,因为不完全了解Orchard所以在重构的过程中很容易被Orchard带进他们的设计理念与思想中去,解决方案不知重建了多少遍。。。

插件化的开发框架

经历一段时间之后决定抽丝拨茧,先把核心的东西做出来—— 插件机制(插件引擎、插件框架)怎么称呼都好反正就是一套插件机制。

然而这一次不单单是只针对B/S的应用程序,而面向了全.NET平台

NET(Windows Form、WPF、Web Form、MVC等)

Xbox

Windows Phone

Windows Store

Silverlight

Xbox

当初定成一个插件式开发框架,不包含任何业务功能(比如:CMS的文章系统,用户系统,搜索功能…)。

离职是一个新的起点

这个时候因为其他一些原因,我离开了原来的公司,但我带着我的框架梦还继续前进着。

Koala Framework

Koala Framework是一个用于快速构建.NET应用的开发框架,可以适用于任何.NET平台下的应用开发,Koala Framework通过特有的插件机制使其在项目开发过程中可以很好的遵循开闭原则(对扩展开放,对修改封闭),从根本上实现项目的高内聚、低耦合。

Koala Framework提供了哪些功能?

插件管理。支持插件安装加载、调用、安装、卸载及更新。

提供了插件服务器,可以自由上传已开发完成的插件供广大使用Koala Framework构建应用的开发者们使用,并且插件服务器也可独立部署在所在的工作网络。

与现有应用程序集成。可以将现有应用程序以插件形式在Koala Framework中管理,不必担心你已具有的功能需要重新开发。

提供了多种组件,如:Bus、Caching、Dynamic Proxy、IOC、Localization、Logging等。

提供完善的开发时支持,如:插件清单编辑器,插件部署工具等。

Koala Framework是否发布?当前版本?

很抱歉,由于本人目前所在公司所担任职务无法全身心对Koala进行开发,所以Koala的进展比较缓慢,当前正在进行Alpha 2的版本迭代,还没有到可以发布的时候,计划在Beta 1时再做发布

Koala Framework 下一步

会在Beta 1之前完成计划任务与权限的组件开发,连同Beta 1一起发布,Alpha 2之后会相继迭代Alpha 3、Alpha 4,每次迭代周期平均为20天左右。

Alpha 2:插件机制扩展、开发支持工具优化、本地化组件完善。

Alpha 3:权限组件开发、框架优化。

Alpha 4:Fix Bug。

Beta 1:Fix Bug、优化。

====以下不确定(也可能是Fix Bug发布Release 1之后才会做的事情)====

Beta 2:自定义表单。

Beta 3:自定义表单扩展。

Beta 4:自定义表单扩展。

Beta 5:工作流引擎。

……………………………………

我的期望

希望能找到一家能提供给我飞翔的平台公司,能让我为.NET开发出一些国产且优秀的东西,当然这些东西也是这家公司认为所需要的东西,不然谁那么无私哈哈。

博文的下一步

以后主要会围绕Koala Framework陆续写一些相关的文章,比如启动机制、插件内容、插件机制、组件讲解等等。

Koala Framework Demo

JiraTool:http://JiraTool.codeplex.com/(基于Koala Framework Alpha 1写的Jira工具,没有做jira地址配置哦,所以你们是用不上的,嘿嘿,之后有时间会加上这一块的配置,因为赶时间所以代码比较凌乱大家凑合着看)

ERP Demo

今天刚写的,基于Koala Framework Alpha 2(未发布版)

代码结构良好,也比较简单的Demo示例,稍微处理一下对环境的要求之后在补上源码地址。

给点截图吧:

由框架提供的插件服务器(框架同时提供了寄宿于:IIS(Web)、Console、Windows Forms的插件服务器)

以下为ERP Demo的窗体

登录界面:

主窗体:

安装仓库插件之后

安装欢迎插件1.0.0.0并点击之后

更新欢迎插件至1.0.0.1并点击之后

卸载欢迎插件1.0.0.1之后

项目的截图

结语

做框架不容易,如果这个框架让你不屑也请请和谐讨论哈。

 
 

Koala Framework的更多相关文章

  1. Koala Framework是什么?我为什么要写这个框架?

    当时的监管组,技术力量累积的很少,还在直连DB,使用着DataTable.DataSet作为数据的承载,监管是公司最近几年主推的项目,所以领导们决定进行重要调整. 初来乍到 由于之前没有任何的技术积累 ...

  2. .NET 平台下的插件化开发内核(Rabbit Kernel)

    每个程序猿都有一个框架梦,曾经在2013年8月15日写过一篇"Koala Framework是什么?我为什么要写这个框架?"的文章,在开放框架路上迈出了第一步,之后作者如愿找到了一 ...

  3. 公司ERP系统重构那些事

    记一次会议,我提出插件化的想法,有支持也有反对,其中"系统架构师"表示插件化后的项目没什么意义,今天来讨论项目是否需要插件化的一些观点. 项目背景 公司内部"ERP&qu ...

  4. NET 平台下的插件化开发内核

    .NET 平台下的插件化开发内核(Rabbit Kernel)   每个程序猿都有一个框架梦,曾经在2013年8月15日写过一篇“Koala Framework是什么?我为什么要写这个框架?”的文章, ...

  5. windows类书的学习心得

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  6. Koala – 开源的前端预处理器语言图形编译工具

    koala 是一个前端预处理器语言图形编译工具,支持 Less.Sass.Compass.CoffeeScript,帮助 Web 开发者更高效地使用它们进行开发.跨平台运行,完美兼容 Windows. ...

  7. Less/Sass编译工具,koala使用指南

    如果你正在使用sass.less或coffee,而没有注意到koala, 那说明你可能已经好久没有更新你的知识库了.koala这个由国人编写的,用于编译sass.less.coffee利器,在最近的短 ...

  8. 怎么使用Less/Sass编译工具koala

    怎么使用Less/Sass编译工具koala 如何使用Less/Sass编译工具koala 一.SASS调试插件的方法 如需调试功能,请在编译输出的时候输出debug信息,那样解析的css文件中就会包 ...

  9. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

随机推荐

  1. 百度地图API 添加自定义标注 多点标注

    原文:百度地图API 添加自定义标注 多点标注 分四个文件 location.php map.css 图片 数据库 数据库配置自己改下 -------------------------------- ...

  2. 【百度地图API】如何自定义地图图层?实例:制作麻点图(自定义图层+热区)

    原文:[百度地图API]如何自定义地图图层?实例:制作麻点图(自定义图层+热区) 摘要:自定义地图图层的用途十分广泛.常见的应用,比如制作魔兽地图和清华校园地图(使用切图工具即可轻松实现).今天我们来 ...

  3. Webbrowser代理支持

    原文:Webbrowser代理支持 1 通过设置注册表,再用InternetSetOption发送INTERNET_OPTION_SETTINGS_CHANGED与INTERNET_OPTION_RE ...

  4. JAVA Static方法与单例模式的理解

    近期用sonar測评代码质量的时候,发现一个问题,project中一些util类,曾经写的static方法都提示最好用单例的方式进行改正. 为此,我细致想了想,发现还是非常有道理的.这里谈谈我个人对s ...

  5. addEventListener

    addEventListener addEventListener-开始 前面零散地写了些关于 addEventListener 的内容,觉得比较散,有些地方可能也说得不够清楚明白,所以决定以连载的形 ...

  6. VC++.Net CAD编程架构

    1.每个对应的菜单项的图形抽象的, 图形抽象基类, 取决于改变来自子(如矩形.椭圆形) 2.在Doc对象管理列表管理,图形对象,当图形需要重绘或序列存储,通过遍历该列表的对象可以是 3. 每个类的职责 ...

  7. Sql Server 存储过程中查询数据无法使用 Union(All)

    原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正 ...

  8. Java 设计模式 -- 示例指南

    设计模式在软件开发者中非常受欢迎的.每个设计模式都是对常见软件问题的通用的描述解决方案. 我们使用设计模式的好处有: 1.设计模式已经对于一个重复出现的问题进行了定义并且提供了工业标准的解决方案,因为 ...

  9. 二叉树(8)----第一个二叉树K层节点和二进制部分K叶节点层,递归和非递归

    1.二进制定义 typedef struct BTreeNodeElement_t_ { void *data; } BTreeNodeElement_t; typedef struct BTreeN ...

  10. .NET 开源了,Visual Studio 开始支持 Android 和 iOS 程序编写并自带 Android 模拟器

    .NET 开源了,Visual Studio 开始支持 Android 和 iOS 程序编写并自带 Android 模拟器 北京时间今天凌晨的 Connect(); 大会上,多少程序员的假想成为现实. ...