工作的缘故,公司希望我能够设计一个ORM产品,市面上有很多的这类产品,但考虑版权和日后我们的东东要做成平台,所以希望还是自己做。
市面上的ORM真是多啊,收集一下(不分排名):
1、ObjectSpaces
MS的东东,微软在.net 2.0的早期测试版本提供过,后期铲除了,根据ms的说法,因为和WINFS的技术有重叠(我的英文不好,翻译的可能完全错了);
个人认为设计的很经典。
2、Gentle.NET
从飞鹰的网站上搜索到的,知识浅薄,刚刚知道这个大作。
3、NHiberate
这个就懒得说了,程序员都知道。
4、DataQuicker
一个国人开发的ORM,正在开发中,支持国货;
5、SmartPersistenceLayer
国人的又一佳作,对其不太了解,给个连接。
6、DataObjects.NET
老外的东西,名声也挺大。
7、 PDO
这算是我的OR 的启蒙老师了,他的网站我无法访问了,但可以访问这个,大概是旧网站吧。
觉得他的作品抽象能力很强,不盲目效仿主流产品。
8、Swallow.NET
又一个国人的骄傲了,真是形式一片大好啊。
9、XPO
国外有名公司的作品,可是我认为他沿用了JAVA中的一些老思想,没有将实体和操作分离。
10、OJB.NET
老外的,不了解。
11、ECO II (修订后补充)
borland公司在新产品中包含的重量级作品,从特性列表中看,竟然有Undo/Redo,没有具体去使用。
12、Grove.NET (修订后补充)
留言中补充的冬冬,其实前几天反编译看过,总体简洁,但功能就有待提高了。
太多了,有空再补上吧,回帖的朋友尽量推荐一些国产的东东。
最后,照例我也发表一下我的看法:
1、国内如此多的OR高人,DUDU可以建立专门的栏目,将各位高人罗列出来,互相认识,互相促进;
2、建议各位高人共同学习,发表OR的专业文章,并在cnblogs中建立专门的栏目;
3、还是百花齐放的最好,不要心血来潮,要做一个“世上最好”的。
关于OR知识我想说一些浅薄的知识:
1、实体类和操作类还是分开的好,适合分布式开发,以及数据交换,太多好处了;
data.Save();
//分离的例子
dataManager.Save(data);
2、序列化支持我认为也是设计中重要考虑的问题;
3、实体的完整绑定支持也应该是重要的考虑,目前看见的很多OR都没有考虑;
绑定方面需要考虑ICustomPropertyDesc、IBindingList、IDataSource、ITypedList和视图的概念。
4、为方便界面中安全的操作实体,应该在设计中提高基础的Builder支持;
5、等想到别的再补上吧