none
【asp.net】三层架构就是好吗? RRS feed

  • 问题

  • 对于这个问题我有点想不透。三层架构就是好吗?我一般做项目就用到了两个类。一个是Application.cs //应用类,主要是对页面各种功能的封装

    OperateDB.cs // 数据库类,主要是用来返回从数据库提取的数据的

    以下以一个例子说明我是怎样调用的 DataSet ds = OperateDB.GetDataSet("select * from tb_other", CommandType.Text, "tb_other"); //以上我是利用 OperateDB类的GetDataSet方法获取了DataSet对象 Application.ShowMessage(this, "alert", "登录名和密码不能为空!");//实现了Application类中填出对话框方法。

    我感觉以上两种类就搞定了,为什么还要分三层架构呢? 而当我接触多层架构设计时我有点迷糊了。其中还有Model实体对象,我看到里面有很多cs文件,而每个cs文件是数据库中字段的对象。基本上就是私有变量和共有属性。我感到很奇怪,都说三层架构开发好,究竟好在哪里?如果10000张表的话,实体岂不是得对应数据库表10000个cs文件吗?这样岂不是更繁琐吗?很不解,而这些属性又会在SqlDAL数据库访问层被赋值,然后在aspx的cs文件中再次调用SqlDAL中的方法获取数据,感觉太繁琐了,请高手帮小弟指点一下吧;我就是转不过弯了 请高手给小弟解释解释吧 谢谢了!


    煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com

    2011年6月30日 15:23

答案

  • 对于这个问题我有点想不透。三层架构就是好吗?我一般做项目就用到了两个类。一个是Application.cs //应用类,主要是对页面各种功能的封装

    OperateDB.cs // 数据库类,主要是用来返回从数据库提取的数据的

    以下以一个例子说明我是怎样调用的 DataSet ds = OperateDB.GetDataSet("select * from tb_other", CommandType.Text, "tb_other"); //以上我是利用 OperateDB类的GetDataSet方法获取了DataSet对象 Application.ShowMessage(this, "alert", "登录名和密码不能为空!");//实现了Application类中填出对话框方法。

    我感觉以上两种类就搞定了,为什么还要分三层架构呢? 而当我接触多层架构设计时我有点迷糊了。其中还有Model实体对象,我看到里面有很多cs文件,而每个cs文件是数据库中字段的对象。基本上就是私有变量和共有属性。我感到很奇怪,都说三层架构开发好,究竟好在哪里?如果10000张表的话,实体岂不是得对应数据库表10000个cs文件吗?这样岂不是更繁琐吗?很不解,而这些属性又会在SqlDAL数据库访问层被赋值,然后在aspx的cs文件中再次调用SqlDAL中的方法获取数据,感觉太繁琐了,请高手帮小弟指点一下吧;我就是转不过弯了 请高手给小弟解释解释吧 谢谢了!


    煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com


    对。你应该根据具体问题具体分析。

    如果说你的页面需要和服务器交互,并且需要频繁跳转页面,以及存在大量复杂应用逻辑的时候,显然MVC是有好处的;但是如果你只是很简单的业务逻辑,或者通过微软提供的Validator就直接可以完成的。根本不需要业务逻辑层,直接两层甚至更少。

    所以事情都不是绝对的。如果你用微软的MVC,建议你使用LINQ或者EnfityFramework去完成这个任务。


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请讨论
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处

    2011年7月1日 5:29
    版主

全部回复

  • 对于这个问题我有点想不透。三层架构就是好吗?我一般做项目就用到了两个类。一个是Application.cs //应用类,主要是对页面各种功能的封装

    OperateDB.cs // 数据库类,主要是用来返回从数据库提取的数据的

    以下以一个例子说明我是怎样调用的 DataSet ds = OperateDB.GetDataSet("select * from tb_other", CommandType.Text, "tb_other"); //以上我是利用 OperateDB类的GetDataSet方法获取了DataSet对象 Application.ShowMessage(this, "alert", "登录名和密码不能为空!");//实现了Application类中填出对话框方法。

    我感觉以上两种类就搞定了,为什么还要分三层架构呢? 而当我接触多层架构设计时我有点迷糊了。其中还有Model实体对象,我看到里面有很多cs文件,而每个cs文件是数据库中字段的对象。基本上就是私有变量和共有属性。我感到很奇怪,都说三层架构开发好,究竟好在哪里?如果10000张表的话,实体岂不是得对应数据库表10000个cs文件吗?这样岂不是更繁琐吗?很不解,而这些属性又会在SqlDAL数据库访问层被赋值,然后在aspx的cs文件中再次调用SqlDAL中的方法获取数据,感觉太繁琐了,请高手帮小弟指点一下吧;我就是转不过弯了 请高手给小弟解释解释吧 谢谢了!


    煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com


    对。你应该根据具体问题具体分析。

    如果说你的页面需要和服务器交互,并且需要频繁跳转页面,以及存在大量复杂应用逻辑的时候,显然MVC是有好处的;但是如果你只是很简单的业务逻辑,或者通过微软提供的Validator就直接可以完成的。根本不需要业务逻辑层,直接两层甚至更少。

    所以事情都不是绝对的。如果你用微软的MVC,建议你使用LINQ或者EnfityFramework去完成这个任务。


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请讨论
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处

    2011年7月1日 5:29
    版主
  • 你好,

    我把这个问题标记为答案了。如果你还有进一步的问题,可以随时补充。

    谢谢!


    Min Zhu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年7月6日 2:24
    版主