兰色精灵 发表于 2015-1-16 22:49:18

ASP.NET网页设计技能:ASP.NET计划中的功能优化成绩

一个很大的类库。应用程序之所以难以跨平台,在于直接调用了特定平台的接口,而一个巨大的类库,就能极大地减少应用程序对平台的依赖。asp.net|技能|计划|成绩|功能|优化  1、SqlDataRead和Dataset的选择
  Sqldataread长处:读取数据十分快。假如对前往的数据不需做大批处置的情形下,倡议利用SqlDataReader,其功能要比datset好良多。弱点:直到数据读完才可close失落于数据库的毗连
  (SqlDataReader读数据是疾速向前的。SqlDataReader类供应了一种读取从SQLServer数据库检索的只进数据流的办法。它利用SQLServer的本机收集数据传输格局从数据库毗连间接读取数据。DataReader需实时显式的close。可实时的开释对数据的毗连。)
  Dataset是把数据读出,缓存在内存中。弱点:对内存的占用较高。假如对前往的数据需做大批的处置用Dataset对照好些能够削减对数据库的毗连操纵。长处:只需毗连一次便可close于数据库的毗连
  *一样平常情形下,读取大批数据,对前往数据不做大批处置用SqlDataReader.对前往数据大批处置用datset对照符合.对SqlDataReader和Dataset的选择取决于程序功效的完成。
  2、ExecuteNonQuery和ExecuteScalar
  对数据的更新不必要前往了局集,倡议利用ExecuteNonQuery。因为不前往了局集可免却收集数据传输。它仅仅前往受影响的行数。假如只需更新数据用ExecuteNonQuery功能的开支对照小。
  ExecuteScalar它只前往了局会合第一行的第一列。利用ExecuteScalar办法从数据库中检索单个值(比方id号)。与利用ExecuteReader办法,前往的数据实行天生单个值所需的操纵比拟,此操纵必要的代码较少。
  *只需更新数据用ExecuteNonQuery.单个值的查询利用ExecuteScalar数据绑定的选择
  3、数据的绑定DataBinder
  一样平常的绑定办法<%#DataBinder.Eval(Container.DataItem,"字段名")%>用DataBinder.eval绑定不用体贴数据来历(Dataread或dataset)。不用体贴数据的范例eval会把这个数据工具转换为一个字符串。在底层绑定做了良多事情,利用了反射功能。正由于利用便利了,但却影响了数据功能。来看下<%#DataBinder.Eval(Container.DataItem,"字段名")%>。当于dataset绑准时,DataItem实在式一个DataRowView(假如绑定的是一个数据读取器(dataread)它就是一个IdataRecord。)因而间接转换成DataRowView的话,将会给功能带来很年夜提拔。
  <%#ctype(Container.DataItem,DataRowView).Row("字段名")%>
  *对数据的绑定倡议利用<%#ctype(Container.DataItem,DataRowView).Row("字段名")%>。数据量年夜的时分可进步几百倍的速率。利用时注重2方面:1.需在页面增加<%@Importnamespace="System.Data"%>.2.注重字段名的巨细写(要出格注重)。假如和查询的纷歧致,在某些情形下会招致比<%#DataBinder.Eval(Container.DataItem,"字段名")%>还要慢。假如想进一步进步速率,可接纳<%#ctype(Container.DataItem,DataRowView).Row(0)%>的办法。不外其可读性不高。
  以上的是vb.net的写法。在c#中:<@%((DataRowView)Container.DataItem)["字段名"]%>
  对检察页面每一个实行历程形态最复杂的举措:其页面的trace属性为true便可检察细节。
  1、利用存储历程:
  1、功能方面:存储历程供应了很多尺度sql言语中所没有的初级特征。其传送参数和实行逻辑表达式的功效,有助于使用程序计划者处置庞大义务。别的,存储历程存储在当地服务器上,削减了实行该历程所需的收集传输宽带和实行工夫。(存储历程已对sql语句举行了预编译,以是其实行速率比在程序里实行sql语句快良多)
  2、程序布局方面:从程序的可扩大性看,利用存储历程会对程序今后的修正带来便利。好比数据库的布局改动了,只需修正绝对应的存储布局,和程序中的挪用部分便可。这部分不属于本文切磋局限,属于程序布局计划方面。以是不在此睁开。
  3、程序平安性:利用存储历程可制止SQLInjection打击。
  2、查询语句的优化(针对sqlserver2000)
  良多人只为目标写出sql语句,而不思索sql语句的实行效力。在这我只供应一优化表按次的办法,(sql语句的优化和准绳将会在我的sqlserver2000进修条记中专题会商)
  对sql语句实行效力可用sqlserver2000的查询剖析器来检察语句的实行历程。
  优化表按次:一样平常情形下,sqlserver会对表的毗连作出主动优化。比方:selectname,nofromAjoinBonA.id=B.idjoinConC.id=A.idwherename=’wang’
  只管A表在From中先列出,然后才是B,最初才是C。但sqlserver大概会起首利用c表。它的选择准绳是相对该查询限定为单行或多数几行,就能够削减在其他表中查找的总数据量。尽年夜多半情形下,sqlserver会作出最优的选择,但假如你觉察某个庞大的联合查询速率比估计的要慢,就能够利用SETFORCEPLAN语句强迫sqlserver依照表呈现按次利用表。如上例加上:SETFORCEPLANON…….SETFORCEPLANOFF表的实行按次将会依照你所写的按次实行。在查询剖析器中检察2种实行效力,从而选择表的毗连按次。
  *利用SETFORCEPLAN选择表联合按次
  3、页面的优化(.aspx)
  次要针对几个页面属性
  1、EnableViewState(页面的视图形态)。假如无特别请求设置为false。利用ViewState,每一个工具都必需先序列化到ViewState中,然后再经由过程回传举行反序列化,因而利用ViewState是没有价值的。只管削减利用工具,假如大概,只管削减放进ViewState中的工具的数量。上面情形基础上能够禁用viewstate:
  (1)页面控件(.ascx)
  (2)页面不回传给本身。
  (3)无需对控件的事务处置。
  (4)控件没有静态的或数据绑定的属性值(或关于每一个postpack都在代码中处置)
  单个页面或每一个页面都禁用ViewState,以下所示:单个页面:<%@PageEnableViewState="False"%>每一个页面:在web.config中<PagesEnableViewState="false"/>EnableSessionState坚持默许值便可(假如页面用到sessionstate它才会占用资本)。EnableViewStateMac假如无平安上的特别请求,坚持默许值。
  2、Pagelayout.页面结构模子。倡议利用Flowlayout(元素不带相对定位属性增加).Gridlayout(相对定位属性)因为接纳相对定位,将会比Flowlayout临盆更多的代码,次要是控件的定位信息。
  3、项目公布的时分牢记排除页面的Debug形态。
  4、Html言语的优化。我的倡议是纯熟把握Html/javascript,罕用vs.net2003主动临盆的代码,它会主动天生一些无用的html代码。
  5、smartnavigation设置为true能让用户分明的感到功能进步。启用此属性后对客户端和服务端影响不年夜.它能智能涮新必要涮新需涮新的部分.
  4、控件的选择:
  Html控件和服务器控件的选择。服务器控件带来的便利和功效上的完成是html控件所不克不及对比的。可是是以就义服务器真个资本来获得的。我团体倡议:假如html控件达不到所要完成的功效,并且和一些剧本言语(如javascrpt/vbscript)分离也不克不及完成的话。才会选择服务器控件。选择服务器控件后,也只管对其控件优化,如作废一些页面形态等(详细看控件的优化)
  服务器控件的选择:次要针对几个经常使用数据控件申明一下:
  DataGrid:自带最壮大的数据显现控件,内置了对数据的修正、删除、增加、分页等良多有用功效。假如你只需对数据显现的话,只管不要选择DataGrid(它把数据都存储在viewstate中).也不要利用自带的分页功效,microsoft在主动分页的底层做了良多事情,固然利用便利了,但功能开支年夜了。
  DataList:比DataGrid功效少了良多。但自界说性强了良多。独有的多行数据显现,给我们带来了良多便利。DataGrid能完成的功效,它基础能完成。以是倡议利用它。
  Repeater:功效起码,但自界说性十分强。假如只需对数据显现,倡议利用。因为削减了良多功效,对服务器的功能带来损耗最小。因而,假如是对数据显现的话,我基础上都是选择Repeater然后DataList最初DataGrid
  *只管选择html控件。能在客户端完成的功效就在客户端完成(纯熟把握javascript),削减服务器的压力。数据控件选择按次:Repeater、DataList、DataGrid
  5、服务器控件的优化:
  1、Viewstate
  控件的viewstate与页面的viewstate基础是分歧的。用来保留控件的一些形态。处置准绳和处置页面的viewstate一样。有乐趣的能够用Datagrid绑定命据测试下viewstate保留的数据量有多年夜,它所保留的数据基础和Datagrid显现的数据量巨细是同等的。
  2、Ispostpack
  默许false.必要发生事务的时分才需设置为true.
  控件的优化,次要看你对此控件的熟习情形。对控件外部运作的道理越懂得,就会对其作出符合的优化。
  功能优化是三两句话说不清的,我所写出的仅仅是冰山一角,功能的优化是靠平常履历的堆集和对程序的运作道理的不休认知。
如果需要重新编写代码,几乎任何一门计算机语言都可以跨平台了,还用得着Java嘛,而且像PHP/C#等语言不需要修改代码都可以跨Windows/Linux。

若相依 发表于 2015-1-20 05:08:10

如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。

因胸联盟 发表于 2015-1-25 14:42:51

ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。

柔情似水 发表于 2015-2-2 22:31:52

ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。

透明 发表于 2015-2-8 16:05:13

JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。

变相怪杰 发表于 2015-2-25 20:16:23

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。

飘灵儿 发表于 2015-3-8 02:36:02

asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!

谁可相欹 发表于 2015-3-15 20:12:34

关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。

仓酷云 发表于 2015-3-22 03:52:25

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
页: [1]
查看完整版本: ASP.NET网页设计技能:ASP.NET计划中的功能优化成绩