开学的时候,有个公司来我们学校招人,给了我们一个选拔新人性质的项目做。
他们是叫擅长WINFORM编程的写WEBFORM,这样我就新学ASP.net ,那个时候我还不懂3层结构是什么东西,入门的时候看的那本书太基础了,也不可能提到3层结构。    就这样接到项目,我们马上写了文档,进度表给人家。我们宿舍是写后台了,靠,那些游戏迷实在没有用。慢慢的后台就从名义上的团队变成实际的DIY了。    现在作到一半,我已经见过公司给3层结构的代码,太难理解,我就不管了。到了快做完了,我决定水平够的,又看了一次他们的代码。我终于把DA全部做完了,但中间层存在的意义我还有点疑问。
    是不是,用户层接到输入数据,传给中间层给数据“消毒”,中间层又给数据层,然后数据层就返回数据给用户层?   我奇怪的时候,是不是非写判断语句,过滤非法字符(SQL注入等)在中间层不可啊,一定要这样才能符合规范啊。   我发现sesion、response.write这些代码是不能写在类里的,那么我的程序中间层几乎是空的了,就剩个过滤非法字符,加密函数,判断日期格式的函数,是否填写了数字以外的数据的函数,就没有什么了。   用户层有大量的判断会不会太不规范??

解决方案 »

  1.   

    数据层和表示层都理解了吧..中间层就是一个业务层..所以相关业务都是这里实现滴.所以呢.该有的判断都要在这里做操作,然后返回错误消息给表示层然后呈现出来.sesion、response.write 这里是system.web里面的东西.你可以在表示层调用业务层的规则,把Session值作为参数传入.
    一个简单的写法哈
    表示
    string result = InsertRule(Session["aaa"].ToString());
    if(result == "")
    {
          Response.write("新增失败");
    }业务
    public string  InsertRule(string aaa)
    {
    if(aaa == "")
    {
      return "";
    }
    else

       调用数据访问那些东西就好了..
    }
    }
      

  2.   

    三层结构是程序设计方法.其实你也可以设计四层结构,只要够规范.
    三层结构的表示层一般是对用户输入数据的check.业务层,处理业务逻辑.数据层,数据存取操作.
    这种设计结构清晰,方便维护.
      

  3.   

    三层结构或多层结构,我认为更关键的是对业务的理解,只有对业务理解透彻了,才能把中间层写得比较清晰,否则,三层或多层结构带来的是更多的冗余代码,混乱的逻辑结构;而技术等各方面,网上有很多写得很好的三层结构文章以及可以参考mircrosoft的sample等