1. 现在lead一个.NET项目,冏。我不写代码,但是要review别人写的代码。
2. .NET在ORM方面还是很落后,手动把所有的表结构mapping成class,手动写每一个SIUD方法,手动写每一行SQL。虽然我是偏向手写SQL的,但这种场合下也忍不住写个EntityManager来管理了。以C#对reflection和attribute的良好支持,一个统一的EntityManager应该是不难实现的。我的观点,手写SQL是可以的,某些情况下是必需的,但至少应该实现动态属性吧?
3. LINQ可能是一个好的选择,通过Anonymous Types和Extension Methods,可以一劳永逸地解决动态属性的问题。这和我的思路一致:通过动态属性而不是独立的持久化引擎来解决问题。但LINQ的普及速度太慢,2005年SoftCon的时候,我讲的topic就是LINQ,据说到现在还被当作新技术在讲。
4. VS2008自带了一个SQL Server Express,功能足够,而且VS2008集成的server管理基本可以替代SQL Server的Enterprise Studio,我就不想再单独安装庞大的SQL Server了。但遇到了一个新问题:没法Backup/Restore数据库,因为界面上没有。折腾了一阵,最后用命令行解决了:
RESTORE DATABASE FROM DISK = ''D:\XXXX.bak''
5. 每一个业务对象都有三个Class,分别放在Model,Business Logic Layer,Data Access Layer中。Model里面放PONO(这是我根据POJO生造出来的词),BLL里面的对象接受PONO作为参数,然后调DAL里面的对象完成持久化。连EJB都只有两层,这个小小的项目,既没有独立的持久化引擎,也不需要分布式对象,搞这么多层干什么呢?