新年新迹象,我的新年就是要做Lor。什么是Lor?Lor是Lightweight OR的意思,是我自己根据实际需要拟定的O/R Mapping项目。就像它的名字所说,它是一个轻量级的O/R Mapping,主要特色就是使用快捷、简便,多种选项让您在不影响(极少)效率的前提下尽量简化与数据库的操作。这就是Lor。以下是Lor的基本需求。 需求描述
数据
只是在数据与对象之间实现一个简单的映射,其他的因素一概不予考虑,但需要其他因素都可以用原始方式达到实现,其适用度不能下降。
1. 支持延时加载(Lazy Loading)
2. 支持约束(Constraints)
3. 支持计算值(Computed Value)
4. 内部数据状态。
5. 必须可以XML序列化并二进制序列化。
6. 考虑多线程操作。
7. 支持数据实体的单个事务与多个数据实体共同的事务。
业务逻辑
实现简单的数据关系与对象关系的映射,不考虑其他因素,但提供其实现路径。
1. 内嵌关系,外界不能直接操作关系,但可以通过面向对象的标准方式(继承、聚合)达到关系的扩展。
2. 数据实体之间的基本关系,创建、修改、销毁关系。
一般需求
1. 动态的数据库绑定,可以在不改变源代码的情况下重新与数据库不同的字段做绑定。
2. 集中定义模型,利用模型生成相应的数据库及代码。
3. 考虑对多数据库的生成支持,同时注意对不同的数据库生成不同的源代码实现高效能调用。
4. 考虑对多编程语言的生成支持。
5. 提供图像化模型设计工具,设计模型。
6. 多次生成时提供选项选择是否覆盖所有已生成文件,或者只覆盖其结构上的改变(也就是个人实现将得以保存)。同时支持数据库脚本与源代码生成两种选项。
Lor暂时不作为开源项目考虑,但在将来可能会开源。敬请期待!^_^
另外值得一提的是,将来我的发展可能要偏向于Java了,到时候的开发就是基于Java的了,但.NET上的新技术等我仍然不会丢掉,我要吸取两种平台的精华!^_^