仓酷云

标题: ASP.NET网页设计怎样最年夜限制进步.NET的功能 [打印本页]

作者: 金色的骷髅    时间: 2015-1-16 22:47
标题: ASP.NET网页设计怎样最年夜限制进步.NET的功能
既然话题已经抄起,我打算今晚发篇博文再引导一下舆论方向,使它再火两天,抛砖引玉,而且赵劼先生一直在跟帖,使.NET阵营的我感到万分难得。功能优化.NET的功能
1)制止利用ArrayList。
由于任何工具增加到ArrayList都要封箱为System.Object范例,从ArrayList掏出数据时,要拆箱回实践的范例。倡议利用自界说的汇合范例取代ArrayList。.net2.0供应了一个新的范例,叫泛型,这是一个强范例,利用泛型汇合就能够制止了封箱和拆箱的产生,进步了功能。
2)利用HashTale取代其他字典汇合范例(如StringDictionary,NameValueCollection,HybridCollection),寄存大批数据的时分可使用HashTable.
3)为字符串容器声明常量,不要间接把字符封装在双引号""内里。
//制止
//
MyObjectobj=newMyObject();
obj.Status="ACTIVE";
//保举
conststringC_STATUS="ACTIVE";
MyObjectobj=newMyObject();
obj.Status=C_STATUS;
4)不要用UpperCase,Lowercase转换字符串举行对照,用String.Compare取代,它能够疏忽巨细写举行对照.

例:

conststringC_VALUE="COMPARE";
if(String.Compare(sVariable,C_VALUE,true)==0)
{
Console.Write("SAME");
}

5)用StringBuilder取代利用字符串联接符“+”,.
//制止
StringsXML="<parent>";
sXML+="<child>";
sXML+="Data";
sXML+="</child>";
sXML+="</parent>";
//保举
StringBuildersbXML=newStringBuilder();
sbXML.Append("<parent>");
sbXML.Append("<child>");
sbXML.Append("Data");
sbXML.Append("</child>");
sbXML.Append("</parent>");
6)IfyouareonlyreadingfromtheXMLobject,avoidusingXMLDocumentt,insteaduseXPathDocument,whichisreadonlyandsoimprovesperformance.
假如只是从XML工具读取数据,用只读的XPathDocument取代XMLDocument,能够进步功能
//制止
XmlDocumentxmld=newXmlDocument();
xmld.LoadXml(sXML);
txtName.Text=xmld.SelectSingleNode("/packet/child").InnerText;
.
//保举
XPathDocumentxmldContext=newXPathDocument(newStringReader(oContext.Value));
XPathNavigatorxnav=xmldContext.CreateNavigator();
XPathNodeIteratorxpNodeIter=xnav.Select("packet/child");
iCount=xpNodeIter.Count;
xpNodeIter=xnav.SelectDescendants(XPathNodeType.Element,false);
while(xpNodeIter.MoveNext())
{
sCurrValues+=xpNodeIter.Current.Value+"~";
}

7)制止在轮回体里声明变量,应当在轮回体外声明变量,在轮回体里初始化。
//制止
for(inti=0;i<10;i++)
{
SomeClassobjSC=newSomeClass();
.
.
.
}
//保举
SomeClassobjSC=null;
for(inti=0;i<10;i++)
{
objSC=newSomeClass();

.
.
.
}
8)捕捉指定的非常,不要利用通用的System.Exception.
//制止
try
{
<somelogic>
}
catch(Exceptionexc)
{
<Errorhandling>
}

//保举
try
{
<somelogic>
}
catch(System.NullReferenceExceptionexc)
{
<Errorhandling>
}
catch(System.ArgumentOutOfRangeExceptionexc)
{
<Errorhandling>
}
catch(System.InvalidCastExceptionexc)
{
<Errorhandling>
}
9)利用Try...catch...finally时,要在finally里开释占用的资本如毗连,文件流等
否则在Catch到毛病后占用的资本不克不及开释。

try
{
...
}
catch
{...}
finally
{
conntion.close()
}
10)制止利用递回挪用和嵌套轮回,利用他们会严峻影响功能,在不能不用的时分才利用。
11)利用得当的Caching战略来进步功能
好了明天就写到这里,今后有空再写。
我实在想不明白java的机制,为什么非要那么蛋疼,在同一个平台下重复编译。
作者: 仓酷云    时间: 2015-1-19 23:42
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
作者: 蒙在股里    时间: 2015-1-26 11:10
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
作者: 海妖    时间: 2015-2-4 14:16
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
作者: 金色的骷髅    时间: 2015-2-10 01:21
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
作者: 飘灵儿    时间: 2015-2-28 12:11
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 再见西城    时间: 2015-3-9 23:04
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
作者: 小妖女    时间: 2015-3-23 17:09
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2