知识大全 浅析ASP.NET编程中十大技巧
Posted 知
篇首语:所谓活着的人,就是不断挑战的人,不断攀登命运险峰的人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 浅析ASP.NET编程中十大技巧相关的知识,希望对你有一定的参考价值。
浅析ASP.NET编程中十大技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在本篇文件中 我们将讨论编程人员在使用ASP NET开发应用程序时需要注意的 个技巧 这些技巧涉及从缺省的控件 表单名的改变到StringBuilder类的使用 有助于编程人员能够尽快地适应 NET环境 在使用Visual Studio NET时 除直接或非引用的对象外 不要使用缺省的名字 NET带来的好处之一是所有的源代码和配置文件都是纯文本文件 能够使用Notepad或WordPad等任意的文本编辑器进行编辑 如果不愿意 我们并非一定要使用Visual Studio NET作为集成开发环境 但使用了Visual Studio NET 我们可以在Windows文件管理器中看到文件 或在Visual Studio NET之外从文本编辑器中浏览文件的内容 使用Visual Studio NET作为集成开发环境有许多好处 其中最显著的好处是它极大地提高了生产效率 使用Visual Studio NET 我们能够在付出较小代价的情况下更快地开发软件 作为集成开发环境一部分的IntelliSense提供自动的代码完成 在输入方法或函数时提供动态帮助 语法错误的实时提示 以及其他能够提高生产效率的功能 象其他复杂的工具那样 在学会如何充分发挥它的作用和掌握其 习性 前 Visual Studio NET也会使我们产生一种挫折感 有时 它象一个难以了解的黑盒子 会生成大量的文件和许多无用的代码 Visual Studio NET的一个功能是 无论是类 控件或表单中的对象 它都能够为新对象提供缺省名字 例如 如果我们创建了一个新的ASP NET Web Application 其缺省的名字将是WebApplication 我们可以在 新工程 对话框中方便地改变该应用的名字 但同时改变的只是该应用程序的名字空间的名字及其所在的虚拟目录 源代码文件的缺省名字仍然是WebForm aspx和WebForm aspx cs(C#工程)或WebForm aspx vb(VB NET工程) 我们可以在方案浏览器中改变ASPX和代码使用的文件名字 但Web页类的名字仍然将是WebForm 如果在该Web表单上生成一个按钮 其缺省的名字将是Button 事实上 所有控件的名字都是由控件的类型和数字组成的 我们能够 也应该将应用程序中所有的表单和控件的名字都修改成有意义的名字 对于较小的演示性程序而言 缺省的名字还能够胜任 但如果应用程序由多个表单 每个表单上有许多按钮和标签时 象frmStartup frmDataEntry和frmReports这样的表单名就比Form Form 和Form 这样的名字更易于理解和维护 如果表单上控件要在代码的其他地方引用 使它有一个有意义的名字就更重要了 btnOK btnCancel和btnPrint这样的名字使看代码的人更容易理解 因而 也比名字为Button Button Button 这样的控件更容易维护 修改一个工程中所有文件中出现的一个名字的一个好方法是 在Visual Studio NET菜单中依次选择 编辑 > 发现和替换 > 替换 命令 在看二周前编写的代码时 我们经常就象第一次见到这些代码一样 因此使它们有一个有助于我们理解其含义的名字是十分有必要的 即使不使用Visual Studio NET进行编程 使用代码支持文件也有利于提高应用程序的性能 在Web应用程序 Web服务或Web控件等所有的ASP NET Web工程中 Visual Studio NET都使用代码支持文件 代码支持文件使工程具有更好的组织 模块性 更适合多人组成的开发团队 另外 它还会带来性能的提高 代码支持文件的内容被编译成一个组合文件中的类 一般是一个DLL文件 有时也可以是EXE文件 该文件驻留在应用程序的组合体高速缓冲区中 在应用程序启动时 可以立即得到它 如果代码是包含在<script>标记中或ASPX文件代码中 它仍然会被编译成一个Web页类 在这种情况下 每当该网页在应用程序对话中第一次加载时 都需要重新进行编译 被编译的类就会驻留在内存中 每当计算机启动 IIS停止 重新启动或者源代码 配置文件改变时 该文件必须重新编译 尽管不大 但这样引起的性能损耗也是相当可观的 尽量减少表单回送 每当点击Web网页上的Button LinkButton或ImageButton控件时 表单就会被发送到服务器上 如果控件的AutoPostBack属性被设置为true 如果CheckBox CheckBoxList等控件的状态被改变后 也会使表单会发送回服务器 每次当表单被发送回服务器 就会被重新加载 启动Page_Load事件 执行Page_Load事件处理程序中的所有代码 把网页的初始化代码放在这里是最合适不过的了 我们经常会希望在每次加载网页时执行一些代码 而希望只有在网页第一次加载时执行另一些代码 甚至希望一些代码在除首次加载外的每次加载时执行 可以利用IsPostBack特性来完成这一功能 在网页第一次加载时 该属性的值是false 如果网页因回送而被重新加载 IsPostBack属性的值就会被设置为true 通过测试 可以在任意时候执行指定的代码 下面是相关的C#代码 protected void Page_Load(Object sender EventArgs e) // 网页每次加载时 执行的一些操作 if (!IsPostBack) // 网页第一次加载时执行的操作 else // 回送时执行的操作 // 网页每次加载时执行的操作 我们希望尽量不引起回送(每次回送都会要求服务器进行一系列的操作) 即使引起回送后 也希望能够执行尽量少的操作 大规模 浪费时间的操作(例如数据库查找)尤其应当避免 因为它们能够延长应用程序的响应时间 使用StringBuilder类 字符串在 NET框架中是不可变的 这意味着改变字符串的操作符和方法会返回字符串的改变后的拷贝 这意味着性能还有提高的空间 当进行大量的字符串操作时 使用StringBuilder类就是一种比较好的选择了 下面的C#代码测试用二种方式从 个子字符串中生成字符串所需要的时间 第一次使用了一个简单的字符串串联操作 第二次使用了StringBuilder类 要想查看结果字符串 可以去掉下面的代码中注解行的注解符号 <%@ Page Language= C# %> <script runat= server > void Page_Load(Object Source EventArgs E) int intLimit = ; DateTime startTime; DateTime endTime; TimeSpan elapsedTime; string strSub; string strWhole = ; // 首先执行字符串连接操作 startTime = DateTime Now; for (int i= ; i < intLimit; i++) strSub = i ToString(); strWhole = strWhole + + strSub; endTime = DateTime Now; elapsedTime = endTime startTime; lblConcat Text = elapsedTime ToString(); // lblConcatString Text = strWhole; // 使用stringBuilder类进行同样的操作 startTime = DateTime Now; StringBuilder sb = new StringBuilder(); for (int i= ; i < intLimit; i++) strSub = i ToString(); sb Append( ); sb Append(strSub); endTime = DateTime Now; elapsedTime = endTime startTime; lblBuild Text = elapsedTime ToString(); // lblBuildString Text = sb ToString(); </script> <> <body> <form runat= server > <h >String Concatenation Benchmark</h > Concatenation: <asp:Label id= lblConcat runat= server /> <br/> <asp:Label id= lblConcatString runat= server /> <br/> <br/> StringBuilder: <asp:Label id= lblBuild runat= server /> <br/> <asp:Label id= lblBuildString runat= server /> </form> </body> </> 二种方式的差别是相当大的 使用StringBuilder类的Append方法的速度比使用字符串连接的速度快近 倍 只在必要时使用服务器端控件ASP NET中新引入了一种在服务器端运行的被称作Web Server Controls的控件 在代码中 它们经常通过下面的语法被说明 <asp:TextBox id= txtLastName size= runat= server /> 它们有时也被称作ASP控件 服务器端控件是由runat属性指示的 它的值总是 server 通过添加runat属性 一般的HTML控件可以被很方便地转换到服务器端运行 下面是一个简单的例子 <input type= text id= txtLastName size= runat= server /> 可以通过id属性中指定的名字 我们可以引用程序中的控件 可以通过编程的方式设置属性和获得值 因此 服务器端处理方式有较大的灵活性 这种灵活性是有一定代价的 每种服务器端控件都会消耗服务器上的资源 另外 除非控件 网页或应用程序明确地禁止view state 控件的状态是包含在view state的隐藏域中 并在每次回送中都会被传递 这会引起严重的性能下降 在这方面的一个很好的例子是 网页上控件表格的应用 cha138/Article/program/ASP/201311/21790相关参考
知识大全 ASP.NET CheckBoxList组件编程浅析
ASP.NETCheckBoxList组件编程浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP.NETLinkButton组件编程浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! A
ASP.NET编程的十大技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在使用VisualS
小技巧:ASP.NET中编程杀死进程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 通过ASPN
ASP.NET中Cookie编程简明参考 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一写入C
ASP.NET中AJAX编程开发指南 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixin
ASP.NET中Cookie编程的基础知识 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一简介
知识大全 ASP.Net中Session失效的一种编程思路[1]
ASP.Net中Session失效的一种编程思路[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
知识大全 ASP.Net中Session失效的一种编程思路[2]
ASP.Net中Session失效的一种编程思路[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
ASP.NET数据类型转换浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET数据类