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的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
随机推荐
- 启用IIS7报错功能
进入:控制面板 - 卸载程序 - 打开或关闭Windows功能 如果访问任何不存在页面或页面出错时空白: Internet 信息服务 - 万维网服务 - 常见 HTTP 功能 - HTTP 错误 打勾 ...
- struts2基本介绍
前言 文本 Struts2 Apache SoftWare Foundation Tomcat/Struts1/Struts2/Ibaitas/ MVC框架:Struts1/Struts2/JSF/W ...
- linux下一个Oracle11g RAC建立(八)
linux下一个Oracle11g RAC建立(八) 七.安装oracle软件 直接在图形界面里安装oracle.在node1操作 在虚拟机界面中,直接切换到oracle用户下: [grid@no ...
- EasyUi TreeGrid封装
礼物一:树型实体的抽象与封装 所谓树型实体,就是具有树型结构关系的实体,比如省.市.区.对于初学者,可能会创建三张表进行存储,有经验的开发者通过引入ParentId将设计简化为一张表,但是基于Pare ...
- GetDirectories 出错的解决方法
我想找到D盘里面所有 "*.pst文件,类似 windows 下的磁盘搜索功能, using System.IO; Directory.GetFiles(@"d:\", ...
- 异常处理 Access to the path is denied
在需要进行读写操作的目录下添加Network Service这个帐号, 由于在iis 6.0中,默认的应用程序池中的标示用的是Network Service, 所以在进程中是使用Network Ser ...
- LayOutControl
DevExpress DXperience 12.2 在 Navigation & Layout 中 有个 LayOutControl 它适用于做布局,我们普通控件 长宽 只能给固定的值,这个 ...
- hdoj 4324 Triangle LOVE 【拓扑】
Triangle LOVE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) To ...
- linux网络编程学习笔记之四 -----多-threaded服务器
对于使用过程中并发.通过实现更轻量级线程. 每个线程都是一个独立的逻辑流. 主题是CPU在执行调度的最小独立单位,这个过程是资源分配单元.当然,这是在微内核操作系统说.总之,这是唯一的一个操作系统内核 ...
- Oracle / PLSQL写语句的时候常使用的函数
最近在学习数据库方面的知识,做个标记. 这里有英文解释,建议多看看英文文档: https://www.techonthenet.com/oracle/functions/ 下面开始记录一下,自己在Or ...