这两天将自己做的基于Ibatis.NET的开发框架整理了一下,做了一个PPT介绍和一个DEMO,顺便起了一个名字——Flying,代表轻量级和快速。
这个框架非常简单:
实体层:每一张数据表对应两个实体类,一个实现了外键关联,一个没有;
数据层:在Ibatis的基础上,根据公司的项目特点,做了简单的包装,其中修改了ibatis部分源码,提供面向DataTable的接口;
业务层:利用CodeSmith生成业务逻辑层通用的代码,利用PartClass留出了自定义业务逻辑方法的位置;
表现层:利用基类统一了错误处理和利用Log4Net进行错误日志;
做的过程中舍弃了不少好的思想和技术:
1.因为Castle的DynamicProxy不知道甚么原因,我加入泛型会错,舍弃了泛型的性能;
2.不知道怎样更改实体类来应用ibatis的LazyLoad,改变了我的部分架构,稍微减少了框架的易用性;
3.最主要的因为我现在水平和思路不够,时间也不允许,舍弃了Castle的IOC和AOP,使整个架构失色不少。