三层架构实战篇 上

来源:互联网 发布:德国警察 知乎 编辑:程序博客网 时间:2024/06/08 05:04

         上篇博客我们已经对三层架构有了一定的了解,但是光说不练假把式,就像站在岸上学游泳,不下水你永远学不会,编程也一样。

         我们要做的例子是系统登录的小例子,要求是输入用户名和密码,点击登录,系统提示登录成功。本例使用的IDE是VS2012,使用的数据库是SQL Server2008,使用的语言是C#。

         做例子的时候,是照着视频一步一步来的,所以人家敲错哪里,你也敲错哪里,人家改哪里你也跟着改哪里,这种感觉非常不爽,所以在总结的时候,觉得从宏观到微观的顺序比较合适,这正是软件工程所谓的先概要设计,再详细设计的思想。

         既然是三层架构的实践,那么首先把层次结构建起来:点击新建项目,建立一个Windows窗体应用程序,显然这是U层的东西,然后右击解决方案,添加新项目,给此解决方案添加三个类库类型的项目,分别是D层、B层和E层(Entity层,即数据模型),建完之后如下图所示:

        

         三层的基本结构搭建起来了,那么就要为每一层添加类和引用了。根据依赖关系,三层都要依赖于实体层,所以在每一层的引用中都要添加引用LoginModel,然后根据UI—>BLL—>DAL的依赖关系,分别为UI层添加引用BLL层,BLL层引用DAL层。最后根据自己的设计,为每一层添加相应的类,具体如下图所示:

        

         在这里简要说明一下每个类都是干嘛的,从上到下来看,BLL的LoginManager类负责登录管理,调用DAL层的函数,判断是否登录成功以及相关的业务处理等;DAL的DbUtil类就是一个连接字符串,单独拿出来是想提高复用性,而ScoreDAO类负责向数据库中写入数据,UserDAO类则只是负责登录连接数据库,这似乎是设计模式的单一职责的意思。LoginModel层的UserInfo类就是一个数据实体,为了方便三层之间的通信。最后的U层就是编写按钮的单击事件了,具体的代码大家自己能够写出来,我就不再赘述了。

         下面我分享一下在调试过程中遇到的问题及解决办法:

        

         一开始没找到错误所在,就点击了下面的“获取此异常的常规帮助”

        

         还是没能找到,后来根据错误提示“Value附近有语法错误”,想到肯定是关键字Value的问题,于是发现了错误所在

         

         然后,程序完美的运行了,后来我看别人的连接字符串中的参数Server值用的都是ip,自己也换成了IP地址,然而运行时报错如下:

        


         看到内存已损坏的字眼,觉得有这么严重吗?于是去找度娘问了问,度娘说:It is a piece of cake!

         用管理员身份运行CMD:netsh winsock reset 回车即可!具体原因大家自己可以查阅相关资料,限于篇幅,不再深究。

3 0
原创粉丝点击