变相怪杰 发表于 2015-1-16 22:40:58

ASP编程:ASP.NET中增进代码重用的2种形式

专业性的服务。有的ASP商提供垂直型的应用服务,针对某一特定行业提供应用服务。开辟庞大的静态ASP.NET使用程序时,必需只管削减反复代码,进步使用程序的重用性和天真性。在某些使用程序中,用户接纳的分歧操纵大概具有分歧的把持器逻辑,但了局都是不异的视图(比方显现一个产物列表时,大概同意用户增加或删除一件产物。但在把持器引诱用户完成了增加或删除历程后,终极显现的都是一样的产物视图,个中含有修正过的数据)。
开辟可重用的程序逻辑时,第一步就是只管削减服务器剧本页中的代码数目。剧本页中的逻辑很难(偶然乃至不成能)重用,形成视图和把持器分别得不敷好。别的,它的测试和调试也显得非常坚苦。以是,不要将剧本代码增加到一个.aspx页中,更无效的做法是利用类来完成把持器。如许可在全部Web使用程序中一致表面和导航机制,并可在全部使用程序的局限内重用暗示(出现)逻辑。
完成ASP.NET使用程序的把持类时,可接纳两种分歧的形式。在用PageController形式构建的使用程序中,导航形式是静态的,但网页是静态天生的。关于更庞大的使用程序,假如导航是静态的,大概请求依据一个划定规矩集(比方用户权限或使用程序形态)来设置,那末利用FrontController形式可取得一个更无效的完成。上面将具体会商这两种形式。
PageController形式
利用PageController形式时,要由名为BaseController的一其中心类来完成必要的一切大众举动,以便处置HTTP哀求、更新模子和将哀求转发给得当的视图。BaseController供应的通勤奋能包含会话办理、平安性和从查询字符串或埋没字段中检索数据。针对Web使用程序中的每一个链接,你都必要创立一个自力的PageController类,该类要从BaseController类承继。这些自力的PageController卖力完成网页独有的任何举动,并间接利用已由BaseController完成的中心功效。
很多时分,你的使用程序能够分化成一系列大众网页范例,它们共享通用的逻辑。比方,你大概有一系列数据输出页大概网格视图页,它们全体共享不异的逻辑。在这类情形下,最好完成一个DataEntryController大概一个GridViewController,并请求它们从BaseController类承继。基于这些派生类,你可完成本人PageController,并利用现成的大众办法。但要注重的是,承继条理不克不及太庞大,不然使用程序逻辑会变得难以保护。为了只管延长承继链,你可创立一系列“助手类”,它们含有一系列大众代码,可在任何一个承继级别上挪用。
为了完成PageController形式,你可从System.Web.UI.Page承继一个BaseController类,然后完成通用的使用程序功效。比方,BaseController可供应页眉、页脚和一些用户独有的信息(比方登录称号和部门等),从而完成分歧的表面与感到。接着可从这个BaseController类承继,并由承继的类(放在代码埋没文件中)来完成网页所独有的逻辑,从而创立使用程序必要的每个页。关于中等庞大水平的使用程序,假如它具有流动的导航线径,就特别合适接纳这一形式。相反,假如必要静态导航才能,则必要接纳FrontController形式。

FrontController形式
假如必要在多个网页之间举行互助式处置,PageController形式的效力会年夜打扣头,由于它请求为每一个逻辑性的网页都完成一个工具。在这类情形下,FrontController形式显得更无效,由于它用一个把持器来吸收一切哀求,然后经由过程一个处置程序和命令类的一个条理布局来引诱哀求。处置程序从HTTP哀求中猎取参数,选择准确的命令并实行之。每一个命令工具都实行了指定的操纵后,它判别必要用哪一个视图来准确地出现网页。经由过程完成FrontController,可取得更会合的使用程序把持,由于一切网页哀求都经由过程独自一个把持器,而非由分歧的PageController举行处置。但如许做也不是没有价值的:假如处置程序举行一些高开支的处置,好比举行数据库查找,便可能招致全部使用程序的运转速率变慢。以是,处置程序应尽量高效,并且只要在相对需要时才利用内部资本。还招考虑对任何内部资本举行缓存,以进步处置程序的功能。
为了完成FrontController类,你必要创立一个Handler(处置程序)和一个CommandFactory,后者用于断定为了呼应一个哀求而必要实行的命令。ASP.NET供应了IHttpHandler接口,它同意开辟者创立为传进的HTTP哀求供应服务所需的自界说接口。为了完成Handler,你必要从System.Web.IHttpHandler承继,并增加响应的逻辑,以便从CommandFactory中实例化和挪用得当的命令。CommandFactory界说了一个命令汇合,和用于判别应当实行甚么命令的逻辑。挪用CommandFactory会前往得当的Command工具,而Handler可挪用该工具的Execute办法。接纳这类形式,你可扩大CommandFactory逻辑,并创立附加的命令来处置分歧的实践情形,从而创立出更牢靠的导航机制,并会合地完成它们。
布局化形式
.NET布局师应尽量地利用布局化形式。利用ASP.NET内建的特征,很简单就可以完成PageController和FrontController如许的形式。使用它们可取得具有高度重用性和扩大性的使用程序计划。关于这些形式和其他布局化形式,要懂得它们的更多信息和ASP.NET完成的细节,请会见Microsoft.NETArchitectureCenter。


缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。

乐观 发表于 2015-1-19 21:13:18

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

若相依 发表于 2015-1-24 19:16:09

在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。

山那边是海 发表于 2015-2-2 12:40:59

Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write

金色的骷髅 发表于 2015-2-7 19:47:04

跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组

灵魂腐蚀 发表于 2015-2-23 08:47:45

ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。

小妖女 发表于 2015-3-7 06:21:32

从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了

只想知道 发表于 2015-3-14 13:38:48

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

愤怒的大鸟 发表于 2015-3-21 09:17:03

不能只是将它停留在纸上谈兵的程度上。
页: [1]
查看完整版本: ASP编程:ASP.NET中增进代码重用的2种形式