最佳ASP.NET编程习惯

 初学编程的朋友往往喜欢收集一些很“奇妙”的编程技巧,然而,技巧的积累往往并没有提高程序质量,反而引导一些编程者一味追求奇和新,忘记了基本编程习惯的培养,不利于团队的合作,可能,这也是中国并不缺少聪明的程序员,但是缺少聪明的开发团队的一个原因吧。在ASP.NET的开发中,可以学习的技巧不少,但是,一些基本的编程习惯我们一定要养成,这样不但能根本上提高程序质量和开发效率,而且,也利于程序的阅读和团队开发。如果自己写的程序只有自己可以看懂或者只有几个人可以看懂,即使程序技巧神乎其技,对于程序的升级和维护都是致命问题。
  
  一、 错误(以外)的处理
  程序健壮性最基本要求就是程序错误的处理与捕捉,在ASP.NET中,错误的处理有和其他编程语言一样的机制,可以使用Try…Catch…Finally等方式,这一点和ASP相比具有较大的进步。而且,使用这些错误处理方法,可以大大提高程序的可读性和程序调试速度,在这几个优势结合的情况下,我们更加应该注意这一点。
  关于错误的处理,我们可以参考这篇文章(英文):
  http://www.123aspx.com/redir.aspx?res=28336
  
  二、 字符串的处理
  网页设计中,字符串的处理几乎是最常见的了。使用ASP.NET以后,字符串的处理比ASP的速度快,而且,在ASP.NET中,专门增加一个字符串处理类StringBulider,使用这个类可以完成一些常见的字符串操作,而最主要的,使用StringBuilder可以大大提高字符串处理速度。
  在ASP.NET中,最常见的就是使用“&”来连接两个字符串:
  Dim myOutputString As String = "My name is"
  Dim myInputString As String = " Alex"
  myOutputString = myOutputString & myInputString
  Response.Write(myoutputString)
  现在,我们来看看StringBuilder的使用,在使用StringBuilder的时候,我们对字符串可以做一些基本的操作,比如Append、Replace、Insert、Remove等,现在我们来看具体举例。
  (1)StringBuilder中Append的使用
  Append和其他语言的Append一样,就是在字符串最后增加其他字符。
  Dim sb as StringBuilder = New StringBuilder()
  sb.append( "<table border='1' width='80%'>" )
  For i = 0 To RowCount - 1
  sb.Append("<tr>")
  For k = 0 To ColCount - 1
  sb.Append("<td>")
  sb.Append( dt.Rows(i).Item(k, DataRowVersion.Current).toString())
  sb.Append( "</td>" )
  Next
  sb.Append("<tr>")
  Next
  sb.Append( "</table>")
  Dim strOutput as String = sb.ToString()
  lblCompany.Text = strOutput
  在以上的程序中,用Append方法实现了一个表格的输出,需要注意的一点是,StringBulider必须首先使用ToString()方法将其转化为String类型才可以直接输出。在以上的举例中,我们看到的全部是Append一个直接的字符串,其实,这个方法有一个很方便的功能,那就是可以直接Append其他类型的变量,比如可以直接Appemd一个Integer类型的数值,当然,我们输出以后自动转化为一个字符串:
  Sub Page_Load(Source As Object, E As EventArgs)
  Dim sb As System.Text.StringBuilder
  Dim varother As Integer
  varother=9999
  sb =new System.Text.StringBuilder()
  sb.append("<font color='blue'>可以Append其他类型:</font>")
  sb.append(varother)
  Response.write(sb.toString())
  End Sub
  (2)字符串中其他方法的使用
  我们还可以使用其他方法,我们来看看常见的:
  Insert方法,可以在指定位置插入其他字符,使用方法:Insert(插入位置,插入字符);
  Remove方法,可以在指定位置删除指定字数字符,使用方法:Remove(其实位置,字符数);
  Replace方法,可以替换指定字符,使用方法:replace(被替换字符串,替换字符串)
  字符串的具体介绍和使用方法可以参考以下文章(英文):
  http://aspfree.com/aspnet/stringbuilder.aspx
  http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemTextStringBuilderClassTopic.asp
  
  三、 数据库链接Connection和DataReader的关闭
  在使用ASP编程的时候,我们就已经知道,在使用数据库连接以后,一定要将连接关闭,然后设置为NoThing。在Asp.NET中,我们仍然需要这样使用,不过,在ASP.NET中,由于使用了ADO.NET,所以,在一些相关的处理方面,实际还是有一些细微的区别,而这些区别,往往也就是我们设计的时候最需要注意的。现在,我们通过举例,来看看在常见的ADO.NET操作中,需要注意哪些问题。
  (1)举例一
  Dim myConnection As SqlConnection = new SqlConnection(ConfigurationSettings.AppSettings("DSN_pubs"))
  Dim myCommand As SqlCommand = new SqlCommand("Select pub_id, pub_name From publishers", myConnection)
  Dim myDataReader As SqlDataReader
  Try
  myConnection.Open()
  myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
  DropDownList1.DataSource = myDataReader
  DropDownList1.DataBind()
  Catch myException As Exception
  Response.Write("An error has occurred: " & myException.ToString())
  Finally
  If Not myDataReader Is Nothing Then
  '关闭DataReader
  myDataReader.Close()
  End If
  End Try
  在以上的举例中,我们注意到,这里只关闭了DataReader,并没有关闭Connection。为什么呢?仔细观察以上的ExecuteReader方法,原来,设置了ExecuteReader参数,当执行完ExecuteReader以后,会自动关闭Connection。所以,这样设置以后,就没有必要再手动关闭Connection了。
  (2)举例二
  Dim myConnection As SqlConnection = new SqlConnection(ConfigurationSettings.AppSettings("DSN_pubs"))
  Dim myCommand As SqlCommand = new SqlCommand("Select pub_id, pub_name From publishers", myConnection)
  Try
  myConnection.Open()
  DropDownList1.DataSource = myCommand.ExecuteReader()
  DropDownList1.DataBind()
  Catch myException As Exception
  Response.Write("An error has occurred: " & myException.ToString())
  Finally
  If Not myConnection Is Nothing AndAlso ((myConnection.State And ConnectionState.Open) = ConnectionState.Open) Then
  myConnection.Close()
  End If
  End Try
  在以上的举例中,我们发现,居然没有关闭DataReader。为什么呢?其实上面的代码中,没有直接生成DataReader对象,当然也就无从关闭了。需要注意一点的是,在关闭Connection之前,程序首先判断Connection是否已经打开,如果没有打开,也就没必要关闭了。
  
  四、使用Web.Config/Maching.Config保存常用数据
  一些数据我们需要时常使用,比如使用ADO.NET的时候,最常见的就是数据库连接语句,在ASP中,我们常常将这些信息保存在Application中。当然,在ASP.NET中,也可以这样,不过,ASP.NET已经提供一个配置文件WEB.Config,所以,我们最好将这些信息保存在WEB.Config中,当然,我们也可以保存在Machine.Config中,不过,这样的话,整个网站都必须使用,所以,一般我们都使用Web.Config。现在,我们来看具体这个文件的使用。
  (1)Web.Config文件的设置
  首先,我们来看Web.Config的设置,我们在这个文件中增加设置以下两个项目,设置如下:
  <configuration>
  <appsettings>
  <add key="dsn" value="myserver"/>
  <add key="someotherkey" value="somevalue"/>
  </appsettings>
  </configuration>
  (2)变量的使用
  以上XML文件设置了dsn和someotherkey两个变量,现在我们看看程序中怎样使用:
  <html>
  <script language="VB" runat=server>
  Sub Page_Load(Sender as Object, E as EventArgs)
  Dim AppSettings as Hashtable = Context.GetConfig("appsettings")
  DSN.Text = AppSettings("dsn")
  SomeOther.Text = AppSettings("someotherkey")
  End Sub
  </script>
  <body>
  DSN Setting: <asp:label id="DSN" runat=server/> <br>
  Some Other Setting: <asp:label id="SomeOther" runat=server/>
  </body>
  </html>
  上面的程序我们看到,使用这样定义的变量很简单也很方便。
  
  五、使用.NET的方式调试程序
  ASP程序的调试一直是编写ASP最难的地方,这一点,ASP程序员大概都深有体会,因为大家都是使用Response.write来调试。而这样调试最大的缺点是,当我们调试完毕,必须一个个来删除或者注释掉这些信息,想一想,如果程序代码达到几百行或者页面很多的程序,这样的工作是多么枯燥,最怕一点,忘记将这些调试用的write删除,可能在用户使用的时候就会出现一些不雅的调试信息。
  使用ASP.NET以后,我们可以直接定义Trace来实现程序的调试。以上提到的麻烦可以轻松解决,熟悉,Trace可以通过具体页面和在Web.Config配置文件中来定义实现,这样,当程序调试完毕以后,直接将Trace设置为Off就可以了,这样,程序就不会有调试功能了。
  (1)页面调试的实现
  在一个具体的页面需要实现调试功能的时候,我们可以这样设置:
  <%@ Page Language="VB" Trace="True" %>
  (2)定义WEB.Config实现
  在WEB.CONFIG中,我们也可以实现程序调试的打开:
  <configuration>
  <system.web>
  <trace enabled="true" requestLimit="10" localOnly="false"/>
  </system.web>
  </configuration>
  使用以上的设置打开Trace以后,我们在具体的程序中就可以使用Trace来调试程序了,比如:
  Trace.Write("This is some custom debugging information")
  或者调试程序变量:
  Trace.Write("This is is my variable and it's value is:" & myVariable.ToString())
  以上设置我们可以看出,在ASP.NET中,程序调试功能已经很方便简单了,我们在程序设计中如果忽略这些特点,继续采用ASP的思维来设计程序,那么我们的程序不但效率没有提高,也增加了其他开发者合作的难度。
  
  六、总结
  以上的一些程序编写习惯,我们可以慢慢养成,在程序设计的时候,不要太在意程序是否最简洁灵活,对于一般开发者而言,程序规范化和可读性可能比追求程序的灵活性更加重要。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP NET精彩编程百例 pdf 学习ASP NET的必看书籍 讲述了100个ASp NET实例的来笼去脉 由这些实例扩展出许多值得学习的ASP NET技巧 是您学习ASP NET的必看知识 ASP NET是微软.NET战略中的一个重要成员 除了可以使用Visual C# VB.NET VisualC++ NET JScript.NET等语言编写外 还可以使用第三方的.NET接口 如COBOL.NET Perl.NET等 进行编写 本书通过100个精彩实例 由浅入深介绍了ASP NET网络程序设计的编程方法与实用技巧 为了方便读者学习与深入理解ASP NET 本书将这100 个实例分为4篇 即基础编程实例 中级编程实例 高级编程实例与混合编程实例 在每个实例中 除了介绍ASP NET中所提供的基础知识点及编程技巧外 还介绍了ASP NET在网络编程 图形编程 多媒体编程 Mobile 移动通信 等方面的重要应用及开发技术 本书附赠一张光盘 其中包括全部100个实例源代码及可执行文件 详细内容请参见光盘中的“本书配套光盘说明.txt” 本书体系结构清晰 解释说明详尽 开发实例典型 适合于计算机编程用户 网络用户及对ASP NET感兴趣的用户阅读 也可作为ASP NET培训参考书 书籍目录: 第1篇ASP NET基础编程实例 实例1一个HTML化的ASP NET程序 实例2ASP+WebForms广告轮换控制过程 实例3驱动器列表应用 实例4列出当前盘上目录和文件 实例5使用“文件预览”显示文件夹信息 实例6使用递归循环以显示目录列表 实例7在ASP 7NET中随意创建图形信息 实例8在ASP 8NET中显示事件日志记录 1 实例9在ASP 9NET中显示事件日志记录 2 实例10在ASP 10NET中使用DataGrid分页 实例11在ASP 11NET访问Excel2000 XP文件 实例12显示当前浏览器头信息 实例13利用ASP NET获取主机名和IP地址 实例14由域名获取其IP地址 实例15由IP地址获得其域名 实例16ASP NET中的正则表达式应用 实例17主机远程控制与探测应用 实例18ASP NET控件———AdRotator应用 实例19ASP NET日历程序 实例20查看主机内存情况 实例21ASP NET简易应用程序“Hello 22World ” 实例22读取Config 22Web配置文件 实例23显示BrowseCaps配置段内容 实例24写入文件操作与应用 实例25文件读操作及应用 实例26文件删除与应用 实例27ASP NET中异常处理及其应用 实例28AutoPostBack技术及其应用 实例29用户合法性验证与应用 实例30ASP 30NET列表框应用 实例31Calendar控件操作与应用 实例32用户操作验证与应用 实例33CompareValidator服务器比较控件操作与应用 实例34CustomValidator控件操作与应用 实例35服务器端控件ValidationSummary应用操作 实例36HtmlTable控件操作与应用 实例37在HTML控件中运用样式 实例38在Web服务器控件中运用样式 第2篇ASP NET中级编程实例 第3篇ASP NET高级编程实例 本站提供的ASP NET编程百例 PDF扫描版 附源代码(vb net)资源来源互联网 版权归该下载资源的合法拥有者所有 收起信息返回顶部

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值