科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件突然发现ASP.NET的面向对象把大家都耍了!

突然发现ASP.NET的面向对象把大家都耍了!

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

突然发现ASP.NET的面向对象把大家都耍了!

作者:csdn 来源:csdn 2009年12月14日

关键字: ASP.NET 问答

  • 评论
  • 分享微博
  • 分享邮件

 突然发现ASP.NET的面向对象把大家都耍了!

我举个例子,当我们注册一个用户的时候,只要得到Request的各个字段的值,是不是直接执行一句SQL插入数据库就完了。但用Asp.net开发呢,首先,好!面向对象,微软就出来一个注册控件,但是我们知道现实需求中注册选项复杂多变,一句SQL语句就可以搞定的事,难道我们非要再继承这个组件,再开发一个符合己用的?好,不怕麻烦你来吧,没个1、2天时间我看你搞不好吧!正可谓费尽心力,而且吃力不讨好!

好,我们换个方式,不用注册控件。美工把静态页面给你之后,你怎么办?一个一个转换成Web服务器控件,然后再弄些个格式不良的验证控件,搞东搞西最后Layout也难符合需求;可能半天时间又过去了;最后部门经理说你要面向对象,说不定还要什么三层架构之类的东东,好,弄个User的类,你再新建一个类库,弄个类,添加属性,搞get,set访问存储。然后再建方法。最后再接收那些postBack过来Web控件的值进入插入,但最后搞来搞去,还是那一句SQL!

但是最后我们看看反编译生成的DLL,每次postBack都要重建整个控件树,而且连那些静态的HTML标签都要变成一个个Literal。再加上ViewSate的值,调用方法,类所造成的性能损失等等。。。最后大家用Reflector看看Web.UI.Page类里面的那些东东吧,就知道这个类有多大了,每次访问一个页面,就得New一个这么大的对象,你说性能会高吗?而本来只要继承IHttpHander接口使用几个基本对象就可以了构建网站了。

    说来说去,我还是觉得ASP好,像网站这种东西用面向对象实在是不合适,因为说白了,网站无非就是显示图片,文字,还有像FLASH之类的加载控件。再说白了,就是简单的数据库数据存取。没有真正很多复杂的逻辑。网站真正应该关注的是,客户端的JS,CSS,应该像AJAX这样从服务器端取得XML后应该怎么处理。用WebForm都是一种浪费,甚至我觉得ASP的模式都足够了。

    MVC也不是最好的解决方法,理想中的办法应该是放弃所有服务端控件并把所有应用请求都做成webService,页面上通过脚本调用webService来获取数据并渲染,但是目前这个方法有很多局限性,比如在需要文件上传的时候很多浏览器默认不提供网页脚本对本地数据的访问只能通过指定标记定义的上传控件来进行上传。

webform也好,winform也好,control也好,都是UI上的东西,无非就是一种计算结果的呈现方式,楼主不要在这个问题上钻牛角尖.User类,这属于业务部分,跟用不用控件、用什么控件、如何用控件这些问题毫不相干。面向对象能够让你更好地了解、分析并实现你的业务需求.

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章