注册登录应该写在表现层,还是业务层

Coffcer 2014-06-18 11:21:07
比方说注册,是应该在业务层写个注册方法(包括验证用户名是否被占用等),然后表现层调用这个方法;
还是在表现层写注册方法(包括验证),然后调用业务层的Insert方法;

新手求指教
...全文
596 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
自然框架 2014-06-20
  • 打赏
  • 举报
回复
引用 5 楼 u013639819 的回复:
[quote=引用 4 楼 jyk 的回复:] 被三层害的。 验证是要写两份的,一份运行在客户端,用js来做验证,目的是提高用户体验。验证用户名是否重复,需要用ajax。 另一份写在服务器端,目的是为了安全,避免故意绕过前台js验证的提交。
是的,我的意思就是服务端分三层作的话,登录注册这些方法写在表示层还是业务层。 我说的表示层指的.NET MVC这种,而不是客户端显示的界面。。[/quote] 这和用不用 .NET MVC 没有关系,用了 .NET MVC 就不需要前台页面做js的验证了吗?也许不需要你自己写代码了,但是在运行的时候,起作用的就是客户端的js脚本。 虽然不知道原理也可以开车,但是知道了原理可以更换的开车! 项目开发也是一样的道理。 多了解了解内部结构、原理。
自然框架 2014-06-20
  • 打赏
  • 举报
回复
引用 6 楼 xiaojie_cp 的回复:
[quote=引用 4 楼 jyk 的回复:] 被三层害的。 验证是要写两份的,一份运行在客户端,用js来做验证,目的是提高用户体验。验证用户名是否重复,需要用ajax。 另一份写在服务器端,目的是为了安全,避免故意绕过前台js验证的提交。
你的说法和回复貌似没什么关系[/quote] 因为被三层害了,所以才会有这样的问题。这个是问题吗?如果按照10楼的思维方式去思考,还会有这种问题吗? 更正一下,是被“伪三层”害的。
黑手党维多 2014-06-20
  • 打赏
  • 举报
回复
引用 10 楼 sp1234 的回复:
所谓“insert方法”,这是因为压根就还没有业务层服务的概念,还是在访问什么sql服务程序。 一个登录注册服务可能需要进行验证(例如验证当前的客户端IP是否是绑定给用户的有效的那几个IP之一),也可能访问多个数据库表(例如访问用户表、登录密码表、部门组织表、权限表、计费表、等等),同时还会异步触发一些操作(例如后台去访问聊天服务,使得其将用户未读的聊天消息推送出去),等等等等。 满脑子只有数据库的人,可能永远也理解不了除了办公室内的小OA程序以外的更实用的系统设计。而三层,可以让他抛开数据库,而从业务服务建模的角度去开点窍。
你说的非常妙
Coffcer 2014-06-20
  • 打赏
  • 举报
回复
引用 10 楼 sp1234 的回复:
所谓“insert方法”,这是因为压根就还没有业务层服务的概念,还是在访问什么sql服务程序。 一个登录注册服务可能需要进行验证(例如验证当前的客户端IP是否是绑定给用户的有效的那几个IP之一),也可能访问多个数据库表(例如访问用户表、登录密码表、部门组织表、权限表、计费表、等等),同时还会异步触发一些操作(例如后台去访问聊天服务,使得其将用户未读的聊天消息推送出去),等等等等。 满脑子只有数据库的人,可能永远也理解不了除了办公室内的小OA程序以外的更实用的系统设计。而三层,可以让他抛开数据库,而从业务服务建模的角度去开点窍。
你说的非常好
Coffcer 2014-06-20
  • 打赏
  • 举报
回复
引用 12 楼 jyk 的回复:
[quote=引用 5 楼 u013639819 的回复:] [quote=引用 4 楼 jyk 的回复:] 被三层害的。 验证是要写两份的,一份运行在客户端,用js来做验证,目的是提高用户体验。验证用户名是否重复,需要用ajax。 另一份写在服务器端,目的是为了安全,避免故意绕过前台js验证的提交。
是的,我的意思就是服务端分三层作的话,登录注册这些方法写在表示层还是业务层。 我说的表示层指的.NET MVC这种,而不是客户端显示的界面。。[/quote] 这和用不用 .NET MVC 没有关系,用了 .NET MVC 就不需要前台页面做js的验证了吗?也许不需要你自己写代码了,但是在运行的时候,起作用的就是客户端的js脚本。 虽然不知道原理也可以开车,但是知道了原理可以更换的开车! 项目开发也是一样的道理。 多了解了解内部结构、原理。[/quote] 你说的真的和这个问题毫无关系。。 可能我表述不清,我的意思是,【【【已经通过客户端验证后】】】,服务端登录(包括服务端验证)应该写在何处,是写在接收请求的Action(发帖的时候称为【表示层】,不知正确否),还是另起炉灶写在Account相关的业务类中。 我一直把登录当成一个方法写在业务类中,其中除了单纯登录之外还包括登录时需要做的好几个操作。 但是这几天看了几个源码,却是写在控制器里,业务层则分散成各种小方法(各种登录时需要作的操作),供控制器的登录方法一个一个调用。 所以才问的这个问题!
  • 打赏
  • 举报
回复
所谓“insert方法”,这是因为压根就还没有业务层服务的概念,还是在访问什么sql服务程序。 一个登录注册服务可能需要进行验证(例如验证当前的客户端IP是否是绑定给用户的有效的那几个IP之一),也可能访问多个数据库表(例如访问用户表、登录密码表、部门组织表、权限表、计费表、等等),同时还会异步触发一些操作(例如后台去访问聊天服务,使得其将用户未读的聊天消息推送出去),等等等等。 满脑子只有数据库的人,可能永远也理解不了除了办公室内的小OA程序以外的更实用的系统设计。而三层,可以让他抛开数据库,而从业务服务建模的角度去开点窍。
  • 打赏
  • 举报
回复
你的业务层有个“登录注册”方法,各种表现层代码才可能访问它嘛。如果知识表现层自己弄个假的玩儿,肯定不够玩儿的。
asds123as12sa 2014-06-19
  • 打赏
  • 举报
回复
最好是业务逻辑层 如果麻烦的话可以在数据访问层和业务逻辑层都写
lovebaby 2014-06-19
  • 打赏
  • 举报
回复
和三层没什么关系
lovebaby 2014-06-19
  • 打赏
  • 举报
回复
引用 4 楼 jyk 的回复:
被三层害的。 验证是要写两份的,一份运行在客户端,用js来做验证,目的是提高用户体验。验证用户名是否重复,需要用ajax。 另一份写在服务器端,目的是为了安全,避免故意绕过前台js验证的提交。
你的说法和回复貌似没什么关系
Coffcer 2014-06-19
  • 打赏
  • 举报
回复
引用 4 楼 jyk 的回复:
被三层害的。 验证是要写两份的,一份运行在客户端,用js来做验证,目的是提高用户体验。验证用户名是否重复,需要用ajax。 另一份写在服务器端,目的是为了安全,避免故意绕过前台js验证的提交。
是的,我的意思就是服务端分三层作的话,登录注册这些方法写在表示层还是业务层。 我说的表示层指的.NET MVC这种,而不是客户端显示的界面。。
自然框架 2014-06-19
  • 打赏
  • 举报
回复
被三层害的。 验证是要写两份的,一份运行在客户端,用js来做验证,目的是提高用户体验。验证用户名是否重复,需要用ajax。 另一份写在服务器端,目的是为了安全,避免故意绕过前台js验证的提交。
ran丶 2014-06-19
  • 打赏
  • 举报
回复
你要用三层的话,在数据访问层写方法,业务层返回方法,表示在调用吧
zlw0905 2014-06-18
  • 打赏
  • 举报
回复
一些有效性验证的工作,保证程序运行的健壮性的这些应该是写在业务逻辑层吧,,,,,帮顶,看后边怎么说
-烟花雨季 2014-06-18
  • 打赏
  • 举报
回复
想怎么写就怎么写,不过最好写在业务层

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧