Koala Framework
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的更多相关文章
- Koala Framework是什么?我为什么要写这个框架?
当时的监管组,技术力量累积的很少,还在直连DB,使用着DataTable.DataSet作为数据的承载,监管是公司最近几年主推的项目,所以领导们决定进行重要调整. 初来乍到 由于之前没有任何的技术积累 ...
- .NET 平台下的插件化开发内核(Rabbit Kernel)
每个程序猿都有一个框架梦,曾经在2013年8月15日写过一篇"Koala Framework是什么?我为什么要写这个框架?"的文章,在开放框架路上迈出了第一步,之后作者如愿找到了一 ...
- 公司ERP系统重构那些事
记一次会议,我提出插件化的想法,有支持也有反对,其中"系统架构师"表示插件化后的项目没什么意义,今天来讨论项目是否需要插件化的一些观点. 项目背景 公司内部"ERP&qu ...
- NET 平台下的插件化开发内核
.NET 平台下的插件化开发内核(Rabbit Kernel) 每个程序猿都有一个框架梦,曾经在2013年8月15日写过一篇“Koala Framework是什么?我为什么要写这个框架?”的文章, ...
- windows类书的学习心得
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- Koala – 开源的前端预处理器语言图形编译工具
koala 是一个前端预处理器语言图形编译工具,支持 Less.Sass.Compass.CoffeeScript,帮助 Web 开发者更高效地使用它们进行开发.跨平台运行,完美兼容 Windows. ...
- Less/Sass编译工具,koala使用指南
如果你正在使用sass.less或coffee,而没有注意到koala, 那说明你可能已经好久没有更新你的知识库了.koala这个由国人编写的,用于编译sass.less.coffee利器,在最近的短 ...
- 怎么使用Less/Sass编译工具koala
怎么使用Less/Sass编译工具koala 如何使用Less/Sass编译工具koala 一.SASS调试插件的方法 如需调试功能,请在编译输出的时候输出debug信息,那样解析的css文件中就会包 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
随机推荐
- javascript中类的属性研究
原文:javascript中类的属性研究 本篇文章主要针对javascript的属性进行分析,由于javascript是一种基于对象的语言,本身没有类的概念,所以对于javascript的类的定义有很 ...
- c# 自定义数据类型
定义引用类型用 class ,值类型 用 struct ,涉及数据转换就用 上一篇的方法做 ,涉及 泛型就用 in 关键字 不用 in interface IContravariant<A& ...
- Oracle在rownum使用结果集排序
Oracle在rownum使用结果集排序 对于 Oracle 的 rownum 问题,非常多资料都说不支持>,>=,=,between...and,仅仅能用以上符号(<.< ...
- java设计模式之八代理模式(Proxy)
其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你 ...
- A在SP.NET跨页多选
在ASP.NET跨页多选 本文介绍怎样在ASP.NET中实现多页面选择的问题.其详细思路非常easy:用隐藏的INPUT记住每次选择的项目,在进行数据绑定时.检查保存的值,再在DataGrid中进行选 ...
- firefox os 该设备呼叫移动开发
1)话筒 权限:telephony api:navigator.moztelephony 参考链接:https://wiki.mozilla.org/WebAPI/WebTelephony 2) 扬声 ...
- js实现是倒计时功能
工作中经常用到倒计时的功能,最近在整理之前做的项目的时候,发现自己写过一个倒计时的功能的效果,这里和大家分享下!实现这个功能是用原生js写的,不需要加载额外的库文件!功能比较简单,但是可以在此基础上扩 ...
- 异常:必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]
异常描述 异常:必须先将 ContentLength 字节写入请求流,然后再调用 [Begin] 解决方案 //解决异常:必须先将 ContentLength 字节写入请求流,然后再调用 [Begin ...
- RPC服务的发布订阅实现Thrift
Thrift 个人实战--RPC服务的发布订阅实现(基于Zookeeper服务) 前言: Thrift作为Facebook开源的RPC框架, 通过IDL中间语言, 并借助代码生成引擎生成各种主流语言的 ...
- vs2012运行项目提示无法连接 asp.net development server的解决方案
更改本项目的.sln文件的端口号即可:如果还不行的话,多试几次: