|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
就安全性而言,Java已经远远低于VB.NET,更无法与安全性著称的C#相比。</p>在使用Visiolstudio.NET开辟Web使用程式中,开辟者经常会碰到一些成绩:如我开辟好的程式,在开辟情况下测试没成绩,怎样一搬到使用情况下,就会有成绩?不是程式的没法运转,就是程式的效力慢的同蜗牛在爬,这类情形在.NET的老手中特别罕见。我不晓得为何,一些先容.NET开辟的书籍里援用的例子代码,也对此成绩置若罔闻,特别让我忧郁的是一些我喜好的书,如:<<ADO.NET手艺内情>>,<<ASP.NET2.0初级编程(第4版)>>,这两本都是清华年夜学出书社出书的,有一本书更糟<<VisualBasic.Net专业项目实例开辟>>,我倡议人人仍是不要看了吧,免的华侈工夫和精神。
这篇文章不但对.NET开辟者的老手有匡助,一样对哪些有履历,也带来一些启发和参考。
他们会碰到甚么样的成绩,我无妨总结给人人:
1.数据库毗连超时
2.创立的工具尽管用,不论开释
3.调试(Debug)形式下编译后,就用于使用情况中了
4.实践功课形式分享
下面的成绩就像毒瘤,堆集到必定水平就发作,且影响深远。
1、数据库毗连超时篇
若要晓得数据库毗连超时成绩,先看上面一段代码:
[Sample-01]:
PublicSharedFunctiongetOEMPN(ByValpsPNAsString,ByRefOEMPNAsString)AsBSResult
0001DimclsResultAsNewBSResult
0002Try
0003clsResult.ResultID=-1
0004DimdtResultAsNewDataTable
0005DimSqlAsString=String.Empty
0006DimclsOraDbAsNewclsOraClienDb
0007DimstrConnAsString=ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
0008clsOraDb.Open(strConn)‘这里Open后,前面看不到clsOraDb.Close
0009Sql="SELECTSATBMMBRND.OEMPNFRUNOFROMSATBMMBRNDWHERESATBMMBRND.MATNO=:MATNO"
0010Dimparams()AsOracleParameter={NewOracleParameter("MATNO",psPN)}
0011IfclsOraDb.FillDataTable(Sql,dtResult,params)=FalseThen
0012ReturnclsResult
0013EndIf
0014IfdtResultIsNothingThen
0015ReturnclsResult
0016EndIf
0017IfdtResult.Rows.Count>0Then
0018OEMPN=dtResult.Rows(0)("FRUNO").ToString()
0019Else
0020OEMPN=""
0021EndIf
0022clsResult.ResultID=1
0023ReturnclsResult
0024CatchexAsException
0025clsResult.ResultID=-1
0026ReturnclsResult
0027EndTry
EndFunction
对上述代码行的部分化释:
0006:援用数据库毗连的类;
0008:翻开数据库毗连;
然后,全部函数你再找不到封闭数据库毗连的举措,是要等着操纵体系来开释吗?有人就说啦,看起来仿佛没有甚么年夜不了的,这仅仅是一个函数罢了;数据库翻开毗连,未封闭不会影响到全部使用程式;果然是如许吗?
让我们谈谈数据库毗连的成绩,在Oracle数据库里,一样平常默许的数据库毗连数最多也就100多来个,不会凌驾200个,即便你改动这个毗连数,但不管如何,它的毗连数是无限的,不成能无穷地供你损耗。
在Web这个程式里,它不但不会主动封闭数据库毗连,象如许的函数还会每次挪用,城市从头用失落一个数据库毗连;假如象如许的函数良多的话,你就等着一个毛病告诫页面弹出来,如DatabaseConnectionTimeout...等讯息。
<p>是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^) |
|