ano*_*ous 4 asp.net-mvc design-patterns
这可能是一个过于自以为是的问题,但寻求帮助!
我一直在尝试优化我的ASP.NET MVC程序结构.我刚开始在预览5中使用它,这是我第一次涉足业务应用程序开发 - 所以每一个都是新的!
在控制器级别,我有一个服务对象负责与存储库进行通信并负责所有业务逻辑.在动作级别,我有一个对象,它包含所有视图数据 - 用户输入和生成的输出 - 我将其称为视图对象(这是一个通用术语吗?).与我看到的大多数示例不同,此对象不是数据库对象,而是特定于视图的对象.
所以现在我想添加用户验证.问题是,我不知道该把它放在哪里.在Service层中,我最有意义.Service层负责所有业务逻辑,验证是业务逻辑.另一方面,我看到的大多数验证框架都用于验证对象,这使我认为视图对象应该是验证感知的.最后,有一些验证方法需要数据库连接(例如,检查用户输入字段是否具有相应的数据库记录),并且视图对象没有数据库的概念,只有服务.
所以我看到的一些选项是:
我相信还有更多.我很好奇其他人如何处理MVC意义上的用户输入验证.我以前使用过企业验证块,并且喜欢能够为所有东西使用股票验证器,但我不确定如何使它适合单独的视图对象和服务层.如果他们(查看对象/服务)是同一个对象,这可能很容易,这可能是人们做的事情?就像我说的那样,它对我来说都很新,我正在寻找最佳实践/模式.
我通常在提交表单时在控制器操作中进行基本验证(必填字段,电子邮件格式等).然后我让业务层处理需要业务知识的验证.我通常也会仔细检查业务层中的基本内容,因此如果我通过Web服务公开该逻辑或稍后在其他应用程序中使用它,我仍然需要验证最重要的地方(IMO).
关于此有一些有趣的链接
就我个人而言,我已向我的服务层对象添加了验证(前两个链接)。这样,如果任何控制器中的任何方法决定调用我的服务方法..逻辑都会被选中并装箱在一个位置。干燥的。
也就是说,我还有一些 UI 验证(第三个链接)..以减少往返时间。
最后,当前的 MVC dll 能够将错误消息传递回 UI。因此视图可以很好地显示它们。查看 :-
哈!
归档时间: |
|
查看次数: |
3305 次 |
最近记录: |