上个周末我去了一个技术的沙龙,次要的内容是关于开源软件框架使用与软件架构。很有意思的一个讲座当前还要再去听。目前我国的软件有很多的平台和编程言语,比如.net j2ee等,在每个言语里面还有相应的框架,比如struts,aop。。。我们的编程普通不用从头开始,而是运用某一种平台,给予某一种框架,进行开发,如今的框架比较多,也不能都使用,在使用中要留意的问题就是,最好直接承继自pojo对象,我们用起来直接用就好,而不用实现他的某一个特定的接口。
在o/r mapping的层面上,有几个比较好的开源的工具,比如说jdo,caster,hibernate,这些东西相比较Entity Bean来说是比较light-weight的,比较简单。在这个层面上我们有很多的选择,很多两头件和平台都有这方面的产品。比如我们的bv平台,他就是使用ContentManager,ContentList,Content,BVI_GenericDBManager这样的东西来进行我们的最底层的数据库操作的。其实说白了,这些东西就是言语中的笼统出来的object和relationship database之间的互操作。最最常用的就是直接使用sql言语,在此之上,我们人为的对于系统进行分级,这数据库和对象之间的操作很自然的就是这一级。我们在定一个类的时候,比如一个Person类,我们同时定义她的PersonManager和PersonContainer这样子的类,我们在manager里面可以笼统出Person的增删改等等操作,比如添加一个person到数据库,我们直接调用p.Save();就可以了,甚至我们可以对它进行愈加深层次的笼统,这时候就需求我们放弃对于数据库的概念,这时候数据库对于编程序的人就是通明的了,程序人员只用调用相应的函数就好了。这时候数据库就是一个更大规模的Container,container.Add(person);就可以了。其实,我们还可以有很多其他的Container,这些container都是装载在内存中的,可以构成各自相应的集合,互相之间是无关的,这些只是初步。我们可以承继Person类,甚至可以定义一个IPerson的接口,这样对于我们实现其多态来还是比较无益的。在这样的基础上我们就能实现愈加面向对象,愈加笼统的环境。
一个同学通知我,在.net的比较简单的使用中,没有data representation layer这个层次的东西了,都用aspx直接调用存储过程。。。各村有个村的高招。