从来没见过SubSonic ,第一次接触是从工作平台下,接手的一个项目,内部使用档案管理系统(cpm). 几经易人手,就像一个女人已经被多个男人睡过一样。可以想像下 ~~~~~~~~~~~ 这也不是什么好“货色”了。
本工作平台用的是自主研发的一个底层功能库。调用数据方便好使,可能是使用习惯了。刚用时,也真有“杀人的想法”。其实就是利用了.net 属性与反射机制。把NHibernate封装了一遍,舍去了一些好的和坏的东西而已。只是调用十足的方便。(多余了,扯远了。)
所谓君要臣死,臣不得不死。生更硬套的就给了我们组进行修改bug,且不说buglist 多少,不想计较“前(浅)辈”所留下来的过错,也许正因为这些“前(浅)辈”留下来的错误,才有了我的饭吃。呀,忽然发现,写的垃圾代码,留给后来人,也是一种高尚,且需具备无余能比的勇气啊。也让后来人得到自我价值的增值啊!
看看代码,我根本就不认识他(SubSonic )。还好我们有百度,百度是不可能给你很多你想要的资料的,谷歌是很有可能给你很多你想要的资料的。找了找,知道他是啥球了。
回到我的项目中,看看真想跳楼,当然这不是说SubSonic 不是,指的是“前(浅)辈” 的逻辑算法让人都不想去改。本想重新开始,但是时间不够。只能低头开始。
可碰到的问题,没有人对SubSonic 熟悉,仿造使我们拉开修正帷幕。修改了几个功能后,尝试到了一点点的扭动;但是在新增表的时候,几乎不知道如何开始,原因有两个,一是:过多的人使用后产生的大量的“脏代码”。不知道哪些需要哪些不需要。尝试几次后,仿造也似乎想玩玩游戏。 二是:对SubSonic 陌生的像个陌生人。
在整体跟踪执行代码流程后,提取了有用的代码信息。重新进行代码编写。终于发现,这个硬编码机制。如果修该表结构,将带来很大的麻烦。“前(浅)辈”还留下一个生成代码工具,我连接mysql 始终提示加载不了mysql.data.dll version 5.2.2版本。尝试失败后,放弃生成。手写类似重复的代码,真让你变得麻木和呆滞。
从中个人发现,有很多查询条件根本没办法构建,也许是我碰到这个版本过低。不知道 SubSonic 是否有新的功能出现满足过于复杂的问题处理方法,有待详细了解熟知。
就我个人接触而言,SubSonic 只适合于短、小、快项目开发,以压缩成本。使用中大型项目,需要"三思".如果后续版本增加强大功能,那就另议了。我碰到的这个版本,几乎让人郁闷。个人看法:"只能玩玩而已,不可重用"。