ASP.NET三层架构的一个简单实现
2011-03-31 15:31
453 查看
昨天晚上回去想自己开始三层架构的框架学习,先从用户登录这个小例子开始,本来想着简单,除了视频上的登陆,再加个用户管理一起做了,结果发现,到最后优点乱了.到底层与层之间用什么联系看来还是要好好,研究下,不能模棱两可了.
首先UI层负责显示,先整个登陆界面,我没有用登陆控件,这样可以和jsp更加接近点吧,便于理解。还有就是既然三层架构将UI分离,可以很轻易的更换不同UI,那么我这次就用个winform的当UI(其实真正的原因是我对webform还不知道怎么和后面联系到一起,就先这样吧,以后再改回webform)。
具体实现:
当用户点击登陆的时候,获得用户输入的用户名和密码,然后将数据传递到BLL层做业务处理,所谓的业务处理,这里也就是判断用户名是否存在,如果存在,给用户增加10点积分,并弹出欢迎界面。
在UI中的实现:一个登陆页面用来获取用户信息,创建BLL中对登陆管理的实例,将用户信息通过参数传递到BLL中对数据的具体处理是。创建model中的用户信息user(实体类),将BLL处理过的数据交给用户实例。然后便可对其做相应的操作。这里打印 欢迎+用户名 信息。由上面可知,要想创建model中user实体类和BLL项目中的管理类,那就必须在UI项目中引用上述两个项目类库。
在BLL中的具体实现:有一个登陆管理类,类中有一个用户登录方法,包含连个参数,用来处理从UI前段传来的数据,返回一个用户实体类。BLL中只负责用户逻辑处理,所以查询用户是否存在的具体实现还要交给DAL中的类来实现。先创建DAL中对用户信息访问的DAO类对象,调用对象的select方法查询用户信息,如果存在,再创建DAL中用户信息对象,调用相应方法更新用户的积分。并返回此用户实例。如果不存在信息,进行报错或者相应的处理。由上面可知,BLL中也要引用DAL项目类库和Model实体类库。
Model中的具体实现:用户的实体模型,包括用户各种信息的set,get方法。
DAL中的具体实现:进行数据库访问,userDAO中有各种相应方法,接受BLL中传来的数据访问数据库,看有无此数据,如果有那么就返回此用户实体类,没有做相应的处理。
这里就有了另外的问题,asp.net中是怎么访问数据库的。
答案是ADO.NET,具体实现,有待继续学习。
首先UI层负责显示,先整个登陆界面,我没有用登陆控件,这样可以和jsp更加接近点吧,便于理解。还有就是既然三层架构将UI分离,可以很轻易的更换不同UI,那么我这次就用个winform的当UI(其实真正的原因是我对webform还不知道怎么和后面联系到一起,就先这样吧,以后再改回webform)。
具体实现:
当用户点击登陆的时候,获得用户输入的用户名和密码,然后将数据传递到BLL层做业务处理,所谓的业务处理,这里也就是判断用户名是否存在,如果存在,给用户增加10点积分,并弹出欢迎界面。
在UI中的实现:一个登陆页面用来获取用户信息,创建BLL中对登陆管理的实例,将用户信息通过参数传递到BLL中对数据的具体处理是。创建model中的用户信息user(实体类),将BLL处理过的数据交给用户实例。然后便可对其做相应的操作。这里打印 欢迎+用户名 信息。由上面可知,要想创建model中user实体类和BLL项目中的管理类,那就必须在UI项目中引用上述两个项目类库。
在BLL中的具体实现:有一个登陆管理类,类中有一个用户登录方法,包含连个参数,用来处理从UI前段传来的数据,返回一个用户实体类。BLL中只负责用户逻辑处理,所以查询用户是否存在的具体实现还要交给DAL中的类来实现。先创建DAL中对用户信息访问的DAO类对象,调用对象的select方法查询用户信息,如果存在,再创建DAL中用户信息对象,调用相应方法更新用户的积分。并返回此用户实例。如果不存在信息,进行报错或者相应的处理。由上面可知,BLL中也要引用DAL项目类库和Model实体类库。
Model中的具体实现:用户的实体模型,包括用户各种信息的set,get方法。
DAL中的具体实现:进行数据库访问,userDAO中有各种相应方法,接受BLL中传来的数据访问数据库,看有无此数据,如果有那么就返回此用户实体类,没有做相应的处理。
这里就有了另外的问题,asp.net中是怎么访问数据库的。
答案是ADO.NET,具体实现,有待继续学习。
相关文章推荐
- asp.net core 实现一个简单的仓储
- asp.net core 实现一个简单的仓储的方法
- ASP.NET : 一个网站繁体转换的简单实现
- ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现
- asp.net core 实现一个简单的仓储
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- ASP.NET Signalr 2.0 实现一个简单的聊天室
- asp.net core 实现一个简单的仓储
- 一个简单的asp.net 单点登录实现
- 在ASP.NET Core中通过EF Core实现一个简单的全局过滤查询
- asp.net core 实现一个简单的仓储
- asp.net core 实现一个简单的仓储
- Asp.Net MVC3 简单入门第一季(五) 通过Asp.Net MVC的区域功能实现将多个MVC项目部署到一个站点
- 一个简单的asp.net 单点登录实现
- ASP.NET 管道事件与HttpModule一个简单地实现
- 一个简单的asp.net 单点登录实现
- 我的一个ASP.net简单查询实现
- 【网络转载】Asp.net使用XPath实现一个简单的RSS阅读器
- asp.net mvc 简单实现一个账号只能在一个地方登录