ASP.NET - 编写ASP.NET应用程序的十大技巧
{
// 网页每次加载时,执行的一些操作
if (!IsPostBack)
{
// 网页第一次加载时执行的操作
}
else
{
// 回送时执行的操作
}
// 网页每次加载时执行的操作
}
我们希望尽量不引起回送(每次回送都会要求服务器进行一系列的操作),即使引起回送后。也希望能够执行尽量少的操作。大规模、浪费时间的操作(例如数据库查找)尤其应当避免,因为它们能够延长应用程序的响应时间。
<script runat= "server">
void Page_Load(Object Source, EventArgs E)
{
int intLimit = 10000;
DateTime startTime;
DateTime endTime;
TimeSpan elapsedTime;
string strSub;
string strWhole = "";
// 首先执行字符串连接操作
startTime = DateTime.Now;
for ( int i=0; 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=0; 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>
<html>
<body>
<form runat= "server">
<h1>String Concatenation Benchmark</h1>
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>
</html>
二种方式的差别是相当大的:使用StringBuilder类的Append方法的速度比使用字符串连接的速度快近200倍。
<asp:TextBox id="txtLastName" size="40" runat="server" />
它们有时也被称作ASP控件。服务器端控件是由runat属性指示的,它的值总是“server”。
通过添加runat属性,一般的HTML控件可以被很方便地转换到服务器端运行,下面是一个简单的例子:
<input type="text" id="txtLastName" size="40" runat="server" />
可以通过id属性中指定的名字,我们可以引用程序中的控件,可以通过编程的方式设置属性和获得值,因此,服务器端处理方式有较大的灵活性。
这种灵活性是有一定代价的。每种服务器端控件都会消耗服务器上的资源。另外,除非控件、网页或应用程序明确地禁止view state,控件的状态是包含在view state的隐藏域中,并在每次回送中都会被传递,这会引起严重的性能下降。
在这方面的一个很好的例子是,网页上控件表格的应用,如果不需要在代码中引用表格中的元素,则使用无需进行服务器端处理的HTML表格。我们仍然可以在HTML表格单元中放置服务器控件,并在代码中引用服务器控件。如果需要引用任意的表格元素,例如指定的单元,则整个表格必须是服务器控件。
.NET工程中的不同的编程语言都有各自不同的注释符号,下面是一个简要的说明:
HTML <!-- 注释 -->
JavaScript // 注释
VBScript ' 注释
VB.NET ' 注释
C# // 注释
/* 多行内容
的注释
*/
SQL -- 注释
在服务器控件的开始和结束标记中没有注释符号,但服务器能够忽略掉所有它不能识别的属性,因此我们能够通过使用没有定义的属性来插入注释。下面是一个例子:
id="txtLastName"
size="40"
comment="这是我的注释"
runat="server" />
在Visual Studio .NET中对源代码进行注释非常简单。高亮度显示需要注释的行,然后按Ctrl K C组合键添加注释。要删除注释,只需高亮度显示被注释的代码,并按下Ctrl K U组合键。
在C#工程中,我们还可以通过在每行的开始处使用///输入XML注释小节。在注释小节中,我们可以使用下面的XML标记组织注释:
<remarks></remarks >
<param></param>
<returns></returns>
<newpara></newpara>
要在Visual Studio .NET中查看这些XML注释的格式化的报告,我们可以首先选择“工具”菜单项,然后选择“建立注释Web网页”菜单项。
Page命令中的属性之一是trace,其值可能是true或false,下面是一个典型的Page命令,其中的trace属性的值是true:
<%@ Page language="c#" trace="true" %>
如果trace属性的值设置为true,由ASPX文件生成的Web页就会显示出来,除了网页本身外,关于该页的大量其他信息也会显示出来。这些信息以下面小节的形式显示在一张表格中:
·Request细节 提供Session ID、请求时间和请求的状态码。
·Trace Information 包含跟踪日志、网页生命周期中按时间先后顺序各个步骤的列表。另外,也可以向其中添加定制信息。
·控件树 以一种分层次的方式列出网页上的所有控件,包括每个控件以字节计算的大小。
·Cookies集合 列出该网页创建的所有Cookie。
·头部集合 HTTP头部以及它们的值。
·Server变量 与该网页相关的Server环境变量。
包含在Trace Information小节中的跟踪日志是最有用的,在这里我们可以插入自己的跟踪命令。trace类中有2个方法能够在跟踪日志中插入命令:Trace.Write和Trace.Warn,除了Trace.Warn命令用红色字体显示、Trace.Write命令用黑色字体显示外,它们是相同的。下面是跟踪日志的一个屏幕快照,其中包含有几个Trace.Warn命令。
跟踪日志中最方便的功能是我们可以在开发和测试过程中在整个代码中插入Trace.Write和Trace.Warn语句,而在最终交付应用程序时,可以通过改变Page命令中trace属性的值,禁止这些命令起作用,而无需在部署应用软件前删除这些输出语句。
存储过程是一系列被查询处理器预解析和优化的SQL命令,这些命令会被存储起来,可以得到快速地执行。存储过程也被称作sprocs,它可以接收输入参数,使一个单一的存储过程能够处理较大范围的特定的查询。
因为sprocs是预先被解析的,对于复杂的查询更显得重要,其查询计划是预先优化的,因此调用查询过程比执行相同功能的SQL语句速度要快得多。
.NET SDK在“启动”菜单上安装一个菜单项,该菜单项能够打开一个正确设置了PATH环境变量的命令提示符窗口。我们可以通过依次点击“开始”->“程序”->“Microsoft Visual Studio .NET”->“Visual Studio .NET工具”->“Visual Studio .NET命令提示符”,启动命令提示符窗口。
通过在将该菜单项从菜单上拖到桌面上时,同时按Ctrl C键,就可以将该菜单项的快捷方式拷贝到桌面上,使用起来会非常方便。
0
分享
收藏
59篇文章,10W+人气,0粉丝
Ctrl+Enter 发布
发布
取消
推荐专栏更多
掌握VMware超融合技术
共41章 | 王春海
¥51.00 345人订阅
容器私有云平台实践之路
共15章 | 李振良OK
¥51.00 595人订阅
网络工程师2.0进阶指南
共30章 | 姜汁啤酒
¥51.00 1556人订阅
高并发架构之路
共15章 | sery
¥51.00 506人订阅
前百度高级工程师的架构高可用实战
共15章 | 曹林华
¥51.00 461人订阅
猜你喜欢
扫一扫,领取大礼包
0
luoyi107
转载于:https://blog.51cto.com/luoyi/296452
ASP.NET - 编写ASP.NET应用程序的十大技巧相关推荐
- 引用:编写高性能Web应用程序的10个技巧(一)
在网上看到这样一篇文章:编写高性能Web应用程序的10个技巧 感觉很不错就引用到我的blog里面,和大家一起学习,同时也谢谢作者本人 数据层性能 技巧 1 - 返回多个结果集 技巧 2 - 分页的数据 ...
- 编写高性能Web应用程序的10个技巧
编写高性能Web应用程序的10个技巧 linux宝库 收集整理 作者:linux宝库 时间:2007-09-30 收藏本站 来自:linux宝库 联系:linuxmine#gmail.com 分类:[ ...
- ASP.NET Core中的OWASP Top 10 十大风险-失效的访问控制与Session管理
本博文翻译自: https://dotnetcoretutorials.com/2017/10/16/owasp-top-10-asp-net-core-broken-authentication-s ...
- 引用: 编写高性能 Web 应用程序的10个技巧
ASP.NET 专栏... 编写高性能 Web 应用程序的10个技巧 原著:Rob Howard 翻译:alpha2002 原文出处:ASP.NET: 10 Tips for Writing High ...
- ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)
本博文翻译自: https://dotnetcoretutorials.com/2017/10/25/owasp-top-10-asp-net-core-cross-site-scripting-xs ...
- Windows自动启动程序的十大藏身之所(转载)
Windows自动启动程序的十大藏身之所 Windows启动时通常会有一大堆程序自动启动.不要以为管好了"开始→程序→启动"菜单就万事大吉,实际上,在Windows XP/2K中, ...
- 转:OWASP发布Web应用程序的十大安全风险
Open Web Application Security Project(OWASP)是世界范围内的非盈利组织,关注于提高软件的安全性.它们的使命是使应用软件更加安全,使企业和组织能够对应用安全风险 ...
- Web 应用程序的十大安全漏洞
应用程序的安全性非常重要,解决安全问题的方法有很多,但一个有效的入门方法是解决 OWASP(开放 Web 应用程序安全项目)确定的十大安全问题.在本文中,我们将介绍当前应用程序的十大安全漏洞. OWA ...
- 编写高性能 Web 应用程序的 10 个技巧 (转)
http://www.microsoft.com/china/msdn/library/webservices/asp.net/us0501ASPNETPerformance.mspx 本文讨论: 常 ...
最新文章
- python爬虫赚钱的经历-聊一聊,这些年我用Python爬虫挣钱的那些事
- How to Use Git
- [算法练习]Two Sum
- 手动更改oracle监听,详解Oracle数据库手动注册监听的方法
- Node.js 入门详解 (三)
- iredmail邮件服务器之修改默认的web服务端口号
- Exchange Server 2013系列四:小企业邮件系统部署
- 混淆矩阵简介与Python实现
- Verilog 教程
- 关于 Matlab R2014a下载与安装流程
- 用python实现pdf转word_Python实现PDF转Word
- 谷歌浏览器 无法翻译此网页的解决方法
- 分糖果系列一(DP+暴力)
- 阅读不懂,图书之过——《大话设计模式》创作历程
- 如何一周之内摸清一个行业?
- photoshop中如何在6寸相纸上打印1寸照片12张3X4模式(手动拖动模式)
- 怎么实现EDIUS中添加的图片素材一样大
- SQL 查询语句报错
- dell出现插入耳机无提示,无反应
- 服务器上蓝色常亮灯是干什么的功能作用