机房收费系统结束有一周多了,就这一次vb.net的重构版做一个回顾。主要来说经过这次重构的收获有:对vb.net的这门语言有了一定的了解;对SQL Server中的对象做了一次复习和实践;最主要的是对面对对象和三层架构有了一些实战上的模糊认识;另外设计模式(这个太菜了)。就这么多!
vb.net语言:
1.和vb 6.0的对比
一开始,感觉vb 6.0和它差别很大,不是很适应。项目结束以后,感觉vb.net引入的对象和命名空间实质上只是对vb 6.0的做了一次封装,把原来散装的东西都包装到某个容器里成为对象,再把这些对象归纳分类包装到更大的容器里也就有了命名空间。所以本质上最基础的语言、语法上的差别不是很大。这里面一些关键技术的引入和细节的改变就不细说。
2.vb.net 连接池
连接池的引入,使得它在和数据库连接的性能上提升了很多。不用频繁的打开和关闭与数据库的连接,实现了打开的连接的重复使用。连接池需要非常注意的是连接何时被销毁,一般情况下对我们的影响不是很大。但是在连接数很多或者使用了临时表等情况下需要非常小心。这里不在细说,可以访问我的博客《VB.net 连接池》
3.错误处理机制和垃圾回收
vb.net 中的对异常处理也进行的封装(可能这么说不是很妥)为结构化,不过之前vb 6.0 中对异常处理使用的不是很多。但是在vn.net的异常处理机制的使用是非常灵活的,错误的抓取可以精确匹配然后单独处理,甚至有些异常都是可以利用的。
vb.net中所有的元素分为托管资源和非托管资源。托管资源接受 .NET Framework的CLR(通用语言运行时)的管理即可以自行回收 。而非托管资源还是需要手动回收。这里不再细说了。
Sql server:
1.视图
视图对于多表连接的查询而言是个非常好的解决办法,不过还是有一定的使用前提。只有在一对多或者一对一的关系下,或者是在表结构一样的情况下(这种情况下一般都使用了索引表,所以不太实用觉得)。个人来看,视图是表分解的逆过程。
2.存储过程
存储过程的使用,在代码中的便利很明显,简洁的多。而且也相对安全。我很喜欢用,但是据说它维护起来比较麻烦。可能用的还不是很多,所以还未曾体会到。
3.临时表
临时表由于其自动销毁的特性,用起来非常的灵活,但是也有一定的麻烦。使用临时表的时候还需要对连接池的内容好好理解才可以,如下博客有介绍:《VB.net 临时表实现限制用户重复登录》
4.参数化查询
对于SQL注入的问题参数化查询是一剂灵药,它把用户输入的内容直接当成内容插入数据库,也就避免了拼接SQL语句的风险。它的处理过程如下,先是根据参数的字符数写入占位符,让后用内容替换。即输入的内容变成了值而不是语句。
三层架构
三层是对代码的一次归纳和整理,把功能类似的类归为一层,断开类之间的紧耦合关系。这个东西的感受好像不太容易说的清楚。像是本来是一个人处理的工作,现在分别交给三个专职的人来处理。跟线程有一点像!
设计模式
个人版中设计模式用的不多,自己也不太会。理解上还是比较吃力的。只有抽象工厂;简单工厂;观察者以及职责链还算比较清晰。也说不出个所以然来,不说了!
所以,个人版到此为止!