重构机房收费系统——起步

开始机房收费系统重构也半个月过去了。但看自己的系统连一个简单的登录还没有实现。自己不免有些惭愧了。最近自己的学习状态总的来说还是不错的。但是由于自己对原来的知识掌握的不好所以导致了自己不知如何下手。总是感觉有好多的问题要解决:

  1. 写软件开发文档。
    1. 画数据流程图
    2. E-R
  2. uml
    1. 学习使用EA
  3. 建立数据库
    1. 学习触发器的使用
    2. 学习存储过程的建了与使用
    3. 学习数据库的规范化
    4. 学习ADO.net
    5. 学习使用SqlHelper对数据库访问类的封装。
  4. 使用设计模式
    1. 尽可能多的使用设计模式。
  5. 使用三层架构
  6. 学习使用命名规范

把这些问题都列出来,发现都是以前学过的内容。但是由于自己当时学的不扎实现在只能回过头来都看一遍了。返回去看了好多同学的博客,感觉收获挺大的。


通过半个多月的的大复习。前几天终于开始我的机房收费系统个人版了。先从写文档开始,但是我发现写到概要设计的时候我实在是写不下去了。原因是要写数据字典和接口实现。记得自己第一版的机房收费系统是在系统已经完成的前提下写的。写文档的时候可以看着系统一点一点的写。自己用了那几个方法,需要定义什么变量(当然那时候是没有接口的概念的)自己清楚的很。但是现在没有做系统的时候就要把这些都写出来。肯定是不能拿原来的系统作为参考的。那时的系统自己从来没有考虑什么命名规范三范式的。而且那时候更没有使用接口、设计模式。这让我怎么写呢。

但是话说回来些文档的目的就是为了方便开发的。些文档和画uml图应该是要占整个开发过程80%的时间的。

对于我这种刚刚体会了一点面向对象的思想的菜鸟来说,让我做到运筹帷幄,决胜千里。好像有点难了。于是我大胆的决定,在文档只写到了概要设计的时候我开始了编程实现。


vbc#vb.net这个过度应该说是不大的。但做得真正的灵活运用还真得多倒腾几遍。开始用vb.net编码时总感觉不知道如何下手了。

但几天的摸爬滚打总算实现了简单的登录。


总结几个技术要点值得注意。。

1.Shared Static关键字:

参考阅读:

VB.net中shared和static关键字的区别解密

其中vbstatic关键字的作用为:


在类中的static成员变量意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见;


vb.netshared关键字的作用:

共享类或结构的成员使每个实例都可以使用该成员,而不是采用非共享模式,在非共享模式下,每个实例都需要有自己的副本。例如,如果一个变量的值应用于整个应用程序,这点很有用。如果声明该变量为Shared,那么所有实例会访问相同的存储位置,而如果一个实例更改了变量值,所有实例都会访问更新后的值。

由此可见vb.net中的shared关键字的用法和vbstatic的用法是相同的。

2.使用抽象工厂时提示:

未能加载文件或程序集“”或它的某一个依赖项。系统找不到指定的文件

解决方法:


按照三层的架构,是DALFactory程序集里通过反射创建针对特定数据访问层里的对应类实例,这样BLL调用接口时就知道调用这个对应类实例里的实现方法


而反射动态加载程序集是通过这种方法 Assembly.Load("程序集").CreateInstance("命名空间."),其中的“程序集”读取的是Webbin文件夹下对应的dll,即反射加载的程序集dllUI层的bin文件夹必须有,不然就会出现如题的错误。

只需把DAL层的变异路径放到:UI层的bin文件夹。


但这之前一定要保证一下几点:


1.反射编程要求在网站的Bin文件夹中有已经编译好的.DLL文件(即保持DLL文件存在),并且保持名称和编译前类库的名称一致。

可称:添加引用性。

2.查看网站中的项目(类库)属性,确认是否默认命名空间和程序集名称以及Bin文件夹下的DLL文件名称是否一致,不一致则会出现未能加载文件或者程序集,所以的修改项目的属性。

可称:名称一致性。

3.建议在编程的时在创建类库的时候写上系统名称+项目名称,能够有效的避免Bug产出。即:SystemName.Model或者SystemName.IDALegBBS.Model

可称:名称完整性。

Assembly.Load(path)其中这个path是加载你项目webbin目录的程序集,也就是说你要反射的程序集在你的UIbin下一定要有,看看你引用没有呢?

4Model无引用。

5DALFactory引用IDAL,通过读取web.config里设置的程序集,加载类的实例,返回给BLL使用。

6SQLServerDAL引用 ModelIDAL,被DALFactory加载的程序集,实现接口里的方法。

两个主要的问题。大家可能也会遇到。

当然不止是这两个问题。而且以后的问题也一定很多。但代码是一点点写的不写是永远完不成的。想动手还没有动手重构的同学希望对你们有帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值