ASP.NET技能提升纲要

本文档旨在通过梳理ASP.NET开发技术的知识点,帮助程序员认识自身知识结构,提高技能水平。内容涵盖基础知识、应用方向、工具使用及开发经验与约定等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                           ASP.NET技能提升纲要  

      我做了四年多软件开发,这四年多也是不断学习的过程。但仍时常觉得迷茫,自已到底学会了什么,能做些什么,还差多少?这些问题常困扰着我,没有答案。可能是因为我对整个知识体系没有系统的认识,当然也就不知道自己所处的位置了。
编写目的:       
 本文档不是一篇技术性文章。它只是通过对ASP.NET开发技术的知识点的划分、归类,为程序员(开发团队)     
认识自身(开发团队)知识结构,找出自身知识结构(开发团队)不足,提高和完善程序员(开发团队)自身知识    
结构提供参考。方便团队成员之间技术交流,有利于ASP.NET技能水平的提高。       

基础知识       
        基础是ASP.NET程序开发人员必须具备的技能,它主要包含开发工具的使用,相关语言的语法。     
一、开发工具       
 “工欲善其事,必先利其器.”,学习任何一门编程语言必先学习它的开发工具。ASP.NET的开发工具有    
 很多,小到记事本加命令行,大到Microsoft Visual Studio 2005集成开发(简称VS2005)。VS2005是目前最流   
 行、最强大、最简易的ASP.NET开发工具。学会用VS2005创建网站、新建网页、使用控件。      
二、Html语法       
 Html语法。Html语法是编写网站程序必不可少的知识。建议参考文档      HTML教程
三、JavaScript语法       
 建议参考文档  JavaScript中文版  JavaScript实例讲解  
四、C#语法  
 建议参考文档:MSDN 
 1、C#程序的一般结构Main()和命令行参数 
 2、数据类型、数组、字符串、表达式、运算符、关键字; 
 3、对象、类和结构 
 4、属性、索引器、委托、事件、泛型、迭代器、可为空的类型; 
 5、不安全的代码和指针、XML文档注释、应用程序域、集合类 
 6、异常、互操作性、线程、性能、反射、DLL、安全性; 
五、ASP.NET基本概念  

应用方向  
     ASP.NET的开发过程中会应用到很多知识点如:ADO.NET技术、Crystal Report、Office、智能设备、控件及DLL、序列化、 
 分布式等。开发人员可针对这些技术有计划地学习、研究。每位开发人员至少精通其中一到两个技术点,项目小组应该能够覆盖 
 所有这些技术点。这样即可保证项目的顺利进行,小组成员之间了可以相互交流,取长补短,共同进步。 

工具和开源  
 工具和开源项目一样,都不是ASP.NET语言的一部分。它们的诞生往往是为了解决程序开发中某个、某些或某类复杂的、需要重复劳动的工作。  
      目前流行的ASP.NET辅助工具有很多,现将以下几种工具作为本小组ASP.NET程序开发的标准工具:    CodeSmith 
   CodeSmith 是一种基于模板的代码生成工具,提高生产力。可以参考《Founder.Framework开发手册》中的介绍。
 开源项目  

  Castle项目 
   Castle是一个开源项目,它是为了简化企业级Web应用程序开发项设计的。它提供了一系列
       工具、综合其它开源项目,帮助你恰当地完成工作并减少代码量。 
  Microsoft Enterprise library 
   该企业库的设计思想是为了协助开发商解决企业级应用开发过程中所面临的一系列共性的问题
       如安全、日志、数据访问、配置管理等 
  Atlas(Ajax) 

经验及约定   
一、             HTML 层   
  HTML层最重要的是布局。 
  1.不要用绝对位置,如: 
  <!-- Do not do this. --> 
  <div id = idFindWhatLabel style = "position: absolute; left: 0.98em; top:1.2168em;width:4.8em; 
  height:1.2168em;"> 
  2.使用相对位置 
   如表用:
   <!-- 一个表的大小占据页面的整个宽度 -->
   <table width = 100%>
   层叠样式用:
   <!-- Div元素大小占据页面宽和高的一半 -->
   <div style =' height: expression(document.body.clientHeight / 2); width: expression(document.body
   .clientWidth / 2); '>
  3.每个控件都用单元格定位 
二、             ASPX 文件   
  1.应确保用户看到的每个异常信息都是恰如其分的; 
  2.代码应该标有标准模型和可读的; 
  3.不必要的Html标记应该从.aspx文件中删除; 
  4.不必要的空格应该删除,因为它们增加了地方; 
  5.当JavaScript中使用了注释,应该使用服务器端注释替代客户端注释如: 
  6.Server side comments: <code> <%  %></code> 
  7.Client side comments: <code> // <code> or <code> <!-- --> </code> 
  8.代码应该用且只用两个空格交错; 
  9.常常使用的页应该使用页缓存技术; 
  10.尽量避免包含.js 文件; 
  11.避免使用frames,因为它们是过时的,应使用include-files. 
  12.避免大量使用隐藏字段,它们占用带宽; 
三、             代码隐藏、类文件   
  1.模块级的变量应该避免使用,因为它们不是线程安全的; 
  2.尽量使用StringBuilder替代字符串联接,StringBuilder初始化时最好设置大小。 
   如:<code> stringBuilder = new stringBuilder(500)</code>
  3.变量初始化:变量应在使用的时候才初始化,定义时不初始化。 
   <code>
   string strName = Nothing;
   if(intId == 1)
   {
      strName = "Raghu";
   }
   </code>
  4.释放对象:尽管.NET提供了垃圾回收功能,还是应该在对象使用完后显示释放,以减少程序的执行。 
  5.视图状态:它有很多缺点。首先,它增加传输的数据量。其次,序列化和反序列化时,它被传到服务器。 
   最后,它增加内存分配;
四、             性能   
  以下几方面可能导致性能上的"瓶径"; 
  1.页面: 
   1.1 页面大小,页面大加重CPU负荷和网络带宽;
   1.2 脚本程序应写入.js文件中,这样可以缓存在客户端;如:<script language = javascript
                                                        src = "scripts/myscript.js">
   1.3 限制使用图片、图像;
   1.4 避免控件的名字过长,一般在10个字符以内。
   1.5 尽量使用缓冲;
   1.6 使用Page.IsPostBack
   1.7 使用客户端验证:客户端验证可以有效的减少连接服务器的次数。
  2.数据绑定 
   数据绑定是经常用到的技术,如果处理效果不好,会经常出故障。可以考虑以下几个方面:
   2.1 避免使用Page.DataBind.Page.DataBind递归调用每个控件的DataBind,处理效率低。
   2.2 尽量少调用DataBinder.Eval方法。
  3.字符串管理 
   3.1 使用Response.Write进行格式化输出;
   3.2 使用StringBuilder进行大量字符串连接;
   3.3 当编译普通控件时使用HtmlTextWriter
  4.异常处理 
   4.1 首先要在Global.asax文件或代码隐藏文件中实现一个全局错误手柄。在这个句柄里应在数据库里
   、系统事件日志、或日志文件里标明如下信息: 
    产生错误的页面名称;
    调用堆栈信息;
    异常名称和信息;
   4.2 使用Try/Finally释放资源,如: 
    try
    {
       conn.Open();
       ...
    }
    finally
    {
       if(null!=conn)
         conn.close;
    }
   4.3 写代码避免异常 
    下面是一些常的的避免异常的方法:  
    1) 检查null值  
     对可能为空的对象检查,确保使用时它不为空。这常发生在使用view state、session state、 
     application state 或者 cache 时。如:不要用下面的方式处理: 
     try { 
       loginid = Session["loginid"].ToString(); 
     } 
     catch(Exception ex) { 
       Response.Redirect("login.aspx", false); 
     } 
     替代的,应该用如下代码: 
              if (Session["loginid"] != null)
              {
                  loginid = Session["loginid"].ToString();
              }
              else
              {
                  Response.Redirect("login.aspx", false);
              }
    2) 不要使用异常处理逻辑:  
  5.资源管理    
  6.设计考虑    
  7.缓存技术    
   7.1 在页中将静态数据与动大庆数据分离   
   [main.aspx]   
   <html>   
   <body>   
   <table>   
   <tr><td colspan=3>Application Header – Welcome John Smith</td></tr>   
   <tr><td>Menu</td><td>Dynamic Content</td><td>Advertisments</td></tr>   
   <tr><td colspan=3>Application Footer</td></tr>   
   </table>   
   </html>  
   你可以使用以下代码缓存这个页:  
   [main.aspx]  
   <%@ Register TagPrefix="app" TagName="header" src="header.ascx" %>  
   <%@ Register TagPrefix="app" TagName="menu" src="menu.ascx" %>  
   <%@ Register TagPrefix="app" TagName="advertisements"   
   src="advertisements.ascx" %>  
   <%@ Register TagPrefix="app" TagName="footer" src="footer.ascx" %>  
   <html>  
   <body>  
   <table>  
   <tr><td colspan=3><app:header runat=server /></td></tr>  
   <tr><td><app:menu runat=server /></td><td>Dynamic   
   Content</td><td><app:advertisements runat=server /></td></tr>  
   <tr><td colspan=3><app:footer runat=server /></td></tr>  
   </table>  
   </html>  
     
   [header.ascx]  
   <%@Control %>  
   Application Header – Welcome <% GetName() %>  
     
   [menu.ascx]  
   <%@Control %>  
   <%@ OutputCache Duration="30" VaryByParam="none" %>  
   Menu  
     
   [advertisements.ascx]  
   <%@Control %>  
   <%@ OutputCache Duration="30" VaryByParam="none" %>  
   Advertisements  
     
   [footer.ascx]  
   <%@Control %>  
   <%@ OutputCache Duration="60" VaryByParam="none" %>  
   Footer  
   7.2 缓存正确的数据  
  8.状态管理   
   本人水平实在有限,请给位贴友多多指教。有什么好的想法都请贴出来。

 

语言规范 C# Language Specification 1.2(C#语言规范1.2).doc C# Language Specification 2.0(C#语言规范2.0).doc 源码教程 ASP.NET编程技术与交互式网页设计 asp.net亲密接触_带源码 C#学习 01_类.htm.txt 02_构造函数的执行序列.htm.txt 03_抽象类和接口.htm.txt 04_结构类型.htm.txt 05_类成员的定义.htm.txt 06_类成员的其他议题.htm.txt 07_接口的执行.htm.txt 08_集合.htm.txt 09_运算符重载.htm.txt 10_阴影和深度复制.htm.txt 11_事件基础.htm.txt 12_事件进阶.htm.txt 13_读写Txt文件.htm.txt 14_StatusBar控件.htm.txt 15_自定义控件.htm.txt 16_使用打开保存文件对话框.htm.txt 17_图形绘制基础.htm.txt 18_图形绘制进阶-线条、字体.htm.txt 19_图形绘制进阶-图像(双倍缓冲).htm.txt 20_Windows应用程序安装部署概念.htm.txt 21_使用文件基础.htm.txt 22_使用文件高级.htm.txt 23_串行化和并行化.htm.txt 技术资料 ACCESS数据库操作类.txt ASP.NET常用代码.txt asp.net常用函数表.txt Asp.net的身份验证.txt ASP导出Excel数据的四种方法.txt C#调用存储过程.txt CheckBox控件.txt datagrid排序_选择_分页.txt DataSet对象.txt DotNET WinForm FAQ 16个.txt excel打印.txt EXCEL导出.txt EXCEL中合并单元格.txt mail.txt NET在RichTextBox控件加入图片(类似QQ).txt send.txt SQL储存过程等的解密.txt VisualC#打造“浏览器”.txt vs2005常用快捷键.txt webcontrol和pagelet.txt win2003中配置msdtc.txt word导出.txt 保证应用程序只有一个实例运行.txt 编辑字段中的word文件.txt 编码标准.txt 播放声音.txt 捕捉DataGrid的双击事件(C#版本).txt 不显示窗口后台运行程序.txt 储存过程.txt 处理“进程性能计数器被禁用”的错误.txt 串口操作.txt 打开word文件.txt 打造“浏览器”.txt 带图标和自定义颜色的ListBox.txt 得到当前数据库中所有用户表信息.txt 读取、设置系统时间日期.txt 读写注册表.txt 对过程进行加密.txt 二进制数据保存.txt 二进制数据字段的更新.txt 分页及动态创建列的控件 .txt 改变Windows服务的启动顺序.txt 各进制之间的转换.txt 给图片添加版权信息.txt 关于拖放操作.txt 关于在WinForm里用HttpWebRequest获得某个页面,并填写页面的textbox及点击button的方法.txt 画带阴影效果的文字.txt 环境信息.txt 获得光标在多行textbox中的行与列的函数.txt 计算控件中文字所占的宽度.txt 加半透明图片水印.txt 将控件放到datagrid中以及修改列宽.txt 截取系统消息.txt 解决VS.NET使用中属性框不显示的问题.txt 里的InputBox.txt 模拟鼠标和键盘操作.txt 取CPU的序列号.txt 如何:在VisualC#.NET中建立一个平滑的进度条.txt 如何得到网卡号.txt 如何调用WindowsAPI的要点.txt 如何控制输入法.txt 如何利用GDI作图解决异或问题.txt 如何取硬件标志.txt 如何让应用程序只有一个实例运行.txt 如何如何插入照片到Excel.txt 如何识别键盘左右的shift,Ctrl或Alt键.txt 如何水晶按钮的程序生成.txt 如何为DataGrid添加下拉列表框.txt 如何用C#在Excel中生成图表?.txt 如何用程序实现键盘和鼠标的模拟?.txt 如何与资源管理器互动剪切、拷贝、粘贴文件.txt 深入理解C#编程中的组件-事件-委托.txt 生成透明的GIF图片 .txt 生成压缩图片时的2种方法.txt 使用C#返回系统特殊路径.txt 使用VisualC#.NET检查Windows版本.txt 使用Win32和其他库.txt 使用自己画的光标.txt 数据绑定.txt 水晶报表使用winform.txt 水印.txt 特殊文件夹路径.txt 同一解决方案中一个项目的xml注释在另一个项目中不能智能提示显示这些注释的解决方法.txt 图像读取.txt 无标题窗口的拖放.txt 下面的5行代码完成了从局域网中找出所有的机器.txt 显示DataGrid序号的一个适用的方法.txt 用C#快速往Excel写数据.txt 用C#来捕获屏幕.txt 用C#做ScreenSaver.txt 用imgscan.ocx来扫描图像.txt 用word填充表格.txt 用户登录组合控件.txt 在.NET中得到计算机硬件信息的一些功能.txt 在MapX中响应滚轮放大缩小地图.txt 在两个ASP.NET页面之间传递值.txt 在如何利用SharpZipLib进行文件的压缩和解压缩.txt 怎样打开关闭CDROM.txt 怎样检测网络中的电脑是否有安装SQL2000.txt 怎样写一个存储过程类来实现如何对存储过程的调用?.txt 直接拉入图片文件到程序窗口中打开.txt 指定Web服务器运行的不是ASP.NET1.1版.txt 字符串加密.txt 字幕显示屏幕保护.txt 自己动手用c#写控件.txt C#试题 简答题.txt 填空题.txt 问答题1.txt 问答题2.txt 选择题.txt 综合题.txt 辅助软件 aspx/asp代码生成器
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值