ASP.NET开发要抛弃ASP旧习和破烂

使用ASP没有错,只要适用够用就行了。但是在用ASP.NET开发网站或系统的时候,应该抛弃开发ASP时形成的习惯,用ASP.NET的方法去开发,而不是在ASP.NET中用ASP的写法去做。

AD:

使用ASP没有错,只要适用够用就行了。但是在用ASP.NET开发网站或系统的时候,应该抛弃开发ASP时形成的习惯,用ASP.NET的方法去开发,而不是在ASP.NET中用ASP的写法去做。

在技术更新的进程中,仍然有一些人死抱着已经过了气的东西不放,也有一些人虽然进入到新的世界,但仍摆脱不了陈旧的习惯,我没有用”陋习”这个词,因为我对这个词也非常反感。

新技术应该有新技术的做法,进入ASP.NET的世界,就应该把以往的习惯改正,全新的进入新的世界,把ASP的破烂扔掉。

以下列举的都是错误的做法,请不要误以为是推荐的做法而进行推广:

1. 使用Server Side Include给ASPX引入共同的页面构图.

在ASP.NET的机制下,应使用ASCX(web user control)来实现。ASCX提供了更多可控制接口,并且更重要的是,ASCX是一个类,一个实实在在的类,可以全面控制它。

2.不使用web.config

web.config提供了非常丰富的配置管理接口,是一个应用程序最核心的部分,但是很多人的web.config往往是空的,或者就从来没有修改过。

3.使用Response.Write向前端输出消息

ASP.NET平台下的Response和ASP的Response有很大的不同。虽然表示同一含义,但用法上已经大不相同。Response.Write的内容只会输出到页的最前端,向前端输出消息的正确方法是使用PlaceHolder。

4.使用一系列Session管理用户连接状态

这种方法在ASP里被滥用。在ASP.NET环境下,正确的做法应该是设计一个类,结构化地保存数据,将对Session或者Cookie的访问封装起来。

5.使用Session验证身份

这几乎是通病,ASP.NET提供了一组用于用户身份验证的API,类型是forms验证或者windows验证,这一点quick start有一节讲解得很清楚,可是绝大部分人还是依靠给Session赋值来保持用户身份验证状态。

6.使用Response.Redirect重定向页

这一点在必要的时候可以使用,但不可滥用,事实证明滥用重定向将导致逻辑上的严重混乱,这是在以页为程序单元的时候的做法,使用front controller模式将使用户的操作逻辑集中起来。

7.使用太多ASPX页

ASP环境下的程序单元只有*.asp页,ASP.NET可不是这样,还有后端的类库,ASCX等等。应将业务逻辑分别集中在不同的单元,而不应该一项操作使用一个ASPX。更多时候ASPX将做为ASCX或者custom control的容器而管理页内逻辑,ASPX重用ASCX的同时,ASPX也做为统一的页构图重用。

8.在多个逻辑单元之间复制代码并修改相应逻辑

重用!重用!重用!处理此类问题的原则是不出现任何相同或相似的过程,如果你用上面的方法,一旦出现重大逻辑更改,带来的结果将是灾难性的。

9.害怕使用DataSet

很多人被DataSet吓坏了,认为”肯定”影响性能。但连最初的尝试都不敢,他们总认为他们的产品一定重大,设计上应该”慎重”。他们往往使用ArrayList或者设计低级的类来保存集合数据,进行艰难的数据倒入工作。

10.对“性能”过多注意

对ASP.NET ViewState的机制特别不满,或者总是挖空心思迫害人家,反倒把自己弄得很累,如果在对付ViewState的同时多注意少连几次数据库也许更文明些。

11.应用程序根目录很乱

ASP.NET是开发项目,不是网站。应该把不同的资源分类放置。例如把所有静态资源(样式表, 脚本, 图像)组织到一起,甚至可以写一组API来管理他们,ASPX应该放在一起,ASCX应该放在一起,*.cs呢?应该把他们放到另外一个project里。

12.不厌其烦的写访问数据库的过程

应该把这工作交给DataAccess Application Block。你自己还要开关connection,何苦呢?

13.自己写的东西最靠得住

事实往往正好相反,多注意使用人家写好的产品,又不收你钱,何苦那么爱面子呢?

14. 胡乱命名ASPX文件名

这是最让人痛苦的了,ASPX文件名不仅需要容易识别,还应该遵循一定规则,因为behind每个ASPX都会有一个同名的类,想象一下,多难受。另外大部分人不知道管理自己的项目的name space,让人好像看到一本帐一样。

15.从来不作继承或派生

一些具有相同行为的类,应该从公共的基类派生出来,实际意义上,我们的ASPX应该有一个基类PageBase,因为总有一些公共的特性需要抽象出来。

  16.零property

他们的类(ASPX所对应)里只有private method,不公开自己的任何秘密,可以这一定是JAVA的遗老干的事。

17. 零ASCX

不用说,他还没学会ASP.NET。

18.使用DreamWeaver“画“ASPX

这批人是美工,甚至有一些人在非常陶醉地讨论如何更好地“整合“ DreamWeaver和Visual Studio。

19.只熟悉System.Web.UI.WebControl和System.Data.SqlClient应该还有一些值得熟悉的类库。

20.零注释

这些都是心里很明白的快手,一任IDE生成的缺省注释横在那里不管。

21.零事件

对“事件驱动“一无所知,只知道在Page_Load()里写过程,或者双击一个按钮写Xxx_Clock()过程,在他们的程序里看不到event和delegate。

ASP.NET开发要抛弃ASP旧习和破烂相关推荐

  1. 《ASP.NET 开发从入门到精通》----2.3 编译和部署ASP.NET程序

    本节书摘来自异步社区<ASP.NET 开发从入门到精通>一书中的第2章,第2.3节,著 张明星 ,责任编辑 张 涛, 更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  2. ASP.NET 开发知识小结

    做了几年的ASP.NET,积累了不少小技巧.但是技巧只适合于特定的环境,还不如加强对基础知识的理解与运用.下面是我的一点体会,与大家分享. 1 母版页 这个控件可以使我忘记html的iframe之类的 ...

  3. 用 ASP.NET 开发 Web 服务的五则技巧

    (转的,作者不详) 一.禁用HTTP POST/GET协议 除非另外指定,否则,.NET将试图把Web服务绑定到三种协议:HTTP/POST.HTTP/GET和SOAP.之所以说"试图&qu ...

  4. ASP.NET-FineUI开发实践-9(四)

    现在是这么个问题,在开发中表格是动态出来的,就是标准板是全部字段列出,客户要根据情况列出自己想要的,在增加操作页面的同时要是能用前台自带的功能直接保存到后台就好了,现在的列显示和隐藏是不回发的. 1. ...

  5. server 2008 IIS 7下asp.net开发环境部署及配置

    前面两篇讲了系统安装及server2008的基本设置,现在进行asp.net开发网站项目实例详解. 1,打开visual studio 2008,新建网站,刚开始选择.net2.0吧(因为现在支持.n ...

  6. ASP.NET开发,从二层至三层,至面向对象 (4)

    继续上一篇<ASP.NET开发,从二层至三层,至面向对象 (3)>http://www.cnblogs.com/insus/p/3826706.html .我们更深层次学会了逻辑层对象,即 ...

  7. asp.net开发 网络硬盘[转贴+删节]

    asp.net开发 网络硬盘[转贴+删节] asp.net开发网络硬盘    文件传输常用方式: ftp(太过复杂), emai(不够安全), 网上邻居(范围有限).这3中方式主要都是面向点对点的. ...

  8. 【ASP.NET开发】.NET三层架构简单解析

    这篇文章本来应该很早就写出来的,但是一直苦于自己的精神能力有限,而且已经到了我们学校的考试周,所以时间上还是有点紧迫.关键的一点就是,找不到合理的思路来写,思路没有的话,就算是再好的素材,也写不来大家 ...

  9. 在进行 ASP.NET 开发时,有时候需要对页面输出的最终 HTML 源代码进行控制

    在进行 ASP.NET 开发时,有时候需要对页面输出的最终 HTML 源代码进行控制,是页面的 render 方法中很容易实现这个功能.下面就是一个实现的方法,注释都在代码中. [c-sharp] v ...

最新文章

  1. C语言之free函数及野指针
  2. python 串口上位机_如何使用Python开发串口通讯上位机(二)
  3. python中pos的用法_Python:数组、队列及堆栈的使用(list用法)--转
  4. Autofac框架初识与应用
  5. Ubuntu 16.04 安装phpmyadmin以及注意事项
  6. 简练软考知识点整理-互联网+
  7. 业界分享 | 数据科学家工作融入及面试技巧
  8. GIS专业书籍、文档、数据、网站、工具等干货
  9. vue.js 密码加密_几种常见的密码简介
  10. 抑郁症可以学计算机吗,AI能从人的话语中察觉到抑郁症吗?目前还为时过早
  11. qt5把qt_zh_CN.qm加载了,但QTextEdit的右键菜单仍然是英文,而QLineEdit的倒是中文。怎样设置使得QTextEdit的右键菜单是中文
  12. 【图文并茂】六十多个 vscode 插件,助你打造最强编辑器
  13. 历代显卡精彩演示DEMO赏析点评之NV篇
  14. centos查看oracle版本,查看linux系統版本信息(Oracle Linux、Centos Linux、Redhat Linux、Debian、Ubuntu)...
  15. 数据概览神器—Pandas-profiling
  16. SpringCloud DataFlow — 0. 本地部署
  17. 简简单单玩转CSS3(1)
  18. 计算机专业的自荐书,计算机专业的自荐书
  19. 计算机毕设(附源码)JAVA-SSM京东仓库管理系统
  20. python使用命令大全

热门文章

  1. 思科与华为生成树协议的对接
  2. 关于l ibrary not found for -lz.1.2.3 编译错误
  3. 自己写的sqlHelper 以及读取配置文件
  4. linux下dhcp配置(一)
  5. NYOJ 891 找点
  6. NYOJ 597 完数?
  7. uni-app-页面结构
  8. Spring Boot修改内置Tomcat端口号
  9. 【Mysql】MySQL event 计划任务
  10. linux下配置某程序的sudo不用输密码