仓酷云 发表于 2015-1-16 22:45:35

ASP教程之面向工具的ASP手艺:思索与理论

Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。工具目次:
概述
汗青
先辈的手艺与好用的手艺:
ASP到了止境吗?
组件化的Web程序
一个实例
小技能
停止语

概述
本文扼要形貌了Web开辟的汗青,并次要对JSP,ASP,和ASP.NET举行了对照。最初,较为具体的提出了一种观点模子并做出了复杂的完成。这类模子将使得ASP这类复杂易用的手艺上升一个高度,成为中小企业大概中小项目开辟的较好选择。本文合适ASP的中初级开辟者。

汗青
现在的Web使用程序愈来愈盛行,基于B/S布局的软件也日渐增加。这也不难设想,正如Sun公司总裁Scott所说,“盘算机就是收集”,跟着互联网手艺的开展,常识活着界局限内失掉充实的传布。从90年月很原始静态HTML页面(如今还能在旧书摊看到解说HTML3.2的书,配上16位的InternetExplorer大概NetscapeNavigator插图,当时候的网页美妙程度跟如今已不克不及等量齐观了),到庞大而缺少定制***的CGI,然后是WindowNT的衰亡,呈现一种叫IDC,IDA,IDQ的器材(固然,如今那些器材已不存在了,只是作者昔时还兴高采烈的研讨过他们,可是如今甚么也记不住了),然后就是基于VBScript的ASP2.0。这是后,Java渐渐侵进Internet编程范畴,Servlet、JSP也呈现了。其他的,如PHP,Perl,等,到如今微软年夜行其道的以ASP.NET为中心的.Net手艺,现在的Web开辟范畴可谓百花齐放,半斤八两。

手艺呈现了这么多,不管是ASP、JSP仍是PHP等,在呈现的初期,他们的编程模子不过乎是上面的形式:客户机向服务器提交一个HTTP/GET大概HTTP/POST哀求,服务器失掉这个哀求后,要末哀求数据库,将了局呼应给客户端,要末间接呼应一个了局给客户端。也就是复杂的“哀求-呼应”模子。这类模子的独一的一个长处就是复杂。跟着年夜型的Web使用的呈现,这类模子很快呈现不敷。比方,没法完成代码的重用(在Web开辟中,呈现冗余代码仿佛是难以免的事),良多页面具有类似的功效与类似的代码,在需求改动的时分,代码的变动显得云云的方便,以致于让人很末路火。没法完成庞大的营业逻辑,复杂的布局决意了这类模子没法胜任庞大的逻辑。等等,诸云云类的成绩,使得Web开辟的先辈们入手下手思索更加无效的形式。

这时候候值得一提的是JSPModel2,也就是SmallTalk言语中一种很罕见的形式:Model-View-Controller。有关这类形式的有相干的专业文章先容,这里就不再赘述。总而言之,这类形式的呈现改动了年夜多半Web开辟职员的看法,使他们以一种软件布局的高度下去思索B/S软件,而不是本来的“流式开辟”。完成了MVC形式的ApacheStruts,一时成为开辟职员了与进修和承受的一种新的手艺。(有关JSP与Servlet,请看我翻译的别的一篇文章:《Servlet与JSP,最好理论》)

ASP.NET的推出能够说是又是一个前进。Code-Behind手艺与页面回调等,临时不管其效力怎样,单单从这些手艺自己而言,又将我们的Web开辟看法进步了一个条理。服务器HTML组件能够间接与C#代码交互,并且云云的天然,不能不信服微软的布局计划了。

如今我们来谈一谈这篇文章的主题:ASP。

先辈的手艺与好用的手艺
今朝在Web开辟范畴,几近没有人看好ASP。CSDN上总有人在埋怨ASP开辟者的薪水太少。并且ASP的确存在如许和那样的成绩,最年夜的成绩莫过于它长短编译的剧本,一切的剧本都是经由过程注释实行,这让他的效力年夜打扣头。别的,它的弱范例变量界说下降进修的难度与他的效力。各种的成绩显现,保持ASP吧,不要在寻找一个崎岖潦倒的手艺了。

但是,我想没有一个有履历的Web开辟者会说,ASP欠好用,ASP欠好学。如今的ASP妙手良多,但是JSP,ASP.NET的妙手却很难培育。在CSDN的JSP版上,问“怎样设置JSP运转情况”一类的成绩不在多数,别的一些比方“字符编码”、“数据库毗连”等在ASP种基础不必思索成绩在JSP中的确不足为奇。这里我偶然对照ASP与JSP,我也不敢打击JSP大概说JSP的好话。从地道的手艺的角度,我以为,在易用***上,ASP要稍胜一筹,并且在中小型项目标掌控上,抛开团体大概手艺界的虚荣心,ASP要比JSP掌控年夜。假如读者是一名有多年履历而且熟知ASP与JSP的话,应当不至于否决我的概念。

但是,JSP的长处屈指可数。从软件布局的高度来看,它太优异了。具有JavaBean手艺与扩大标志库手艺,使得JSP的观点已远远凌驾了它自己。组件化简单,高效力,扩大便利,简单完成多层布局,等等。

从如今Web开辟范畴的走势(大概说全部软件的走势)来讲,组件化的头脑愈来愈主要了。如今的成绩是,基础的ASP功效很分明是没法满意如今日趋庞大的需求,怎样在ASP中完成组件头脑呢?

关于组件我们可以想到最间接的举措就是利用VisualBasic大概VisualC++大概任何一种其他的Windows情况下的编程工具。然后,几近一切人城市说:VC开辟组件是效力最高的,可是很慢;VB开辟式最快的,效力也不错。切实其实,VB具有复杂通用,撑持COM,COM+,等长处,并且开辟速率快,调试便利。如许,VB就成为开辟ASP组件的首选。别的一个不能不提的器材就是XML。利用XML的优点多多,这里也未几说了。

我的基础头脑是:用VB来写组件,用XML来设置使用程序。这里的组件的观点已不是已往的那种功效***组件(比方,SAFileUpload,Jmail等等,只是为了完成某一个功效而完成的组件。今朝这类组件占有了年夜多半的ASP服务器端组件市场。),更多的是完成某一个实体(Entity)。也就是说,在面向工具的ASP手艺中,倡始两种组件的存在:功效组件与实体组件。

功效组件次要用于完成某一个大概一组功效。固然,这些功效也应该是依照面向工具的头脑构造在一同。比方,一个名为LoginControl的功效组件包括以下办法:CheckLogin,UpdateLogin,LoginOut等,更加罕见的例子就是数据库操纵。您能够将数据库操纵写成组件的办法,在ASP页面中举行挪用。而实体组件仅仅完成基础的工具及其属***和办法。最一般的使用的例子莫过于User组件,它大概有Name,Account,Password等等属***。利用用户组件最明显的优点是:充实使用便宜资本DD内存来存储逻辑上自力的一个庞大工具,从而削减高贵资本(比方数据库链接)的利用。

而XML的感化是供应使用的复杂设置,在ASP页面与组件之间创建一种松懈接洽。有了这类接洽,使用程序就能够以一种十分随便而轻松的体例举行合作、装配和组装。这类设法来自于如今的MVCStruts中的struts-config.xml和ASP.NET中的web.config。

关于VB组件的注册一向是一个年夜成绩。如今的Web使用已远远凌驾了已往的观点。本来只是做做网站,如今却能够做庞大的使用体系,并且不但克制运转在ISP的假造主机上,愈来愈多的使用被部署到企业的外部收集。既然云云,VB中组件的注册已不成为成绩,一样平常来讲,除非需要,不然在一个项目中利用一个dll充足了。固然,在开辟过程当中的调试大概长短常单调的。在本文的最初,有一些组件调试的小技能,假如你真的盘算用这类体例来开辟Web使用的话,你能够参考一下。

上面是一个实践的例子。因为工夫、情况的缘故原由,作者仅仅在本人的呆板上对代码举行了运转和测试,因为篇幅所限,作者也不供应全部样例的代码(假如读者熟知ASP与VB的话,实践上代码长短常复杂的),上面的例子仅仅是一个复杂的开辟原型。在实践的体系利用中必要思索更多的要素。

一个会员注册、登录、刊出的例子:
上面这个例子接纳下面提到的面向工具的头脑。在这个小型示例中,包含了以下几个部分:

User类用来摹拟在使用体系中的一个实体

DataProvider类供应一切的数据库操纵

Globals类读取设置xml文件

(以上类被封装到ExtendPortal.dll中。)

一些相干的asp文件

假定我们的站点称号为ExtendPortal

1、 界说xml文件(app-config.xml)

<?xmlversion="1.0"encoding="gb2312"?>

<app-config>

<!--Definethesiteinfomation-->

<site-info>

  <name>ExtendPortal</name>

</site-info>

<!--Definedatasourceinformations-->

<data-sources>

   <data-source>

   <name>AccessDB</name>

   <value>DSN=ep</value>

</data-source>

</data-sources>

<!--Definetheresources-->

<resources>

  <resourcekey="urlHome"value="/index.asp"/>

</resources>

</app-config>

下面只是一个例子,你可在实践的项目中依据需求举行界说。

类图以下所示:


()

体系的处置流程以下:


依据上图所示,一个完成的Web开辟的项目就能够以一种布局化水平很高的体例举行构造和搭建,并且在全部体系的模子中,到处表现着面向工具的头脑,用这类模子完成的多层布局模块之间联合松懈,合作、构造都十分简单</p>Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;

小魔女 发表于 2015-1-19 22:55:12

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。

因胸联盟 发表于 2015-1-27 05:16:14

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件

愤怒的大鸟 发表于 2015-2-4 23:30:55

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

飘灵儿 发表于 2015-2-10 23:04:20

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

老尸 发表于 2015-3-1 17:19:30

Session:这个存储跟客户端会话过程的数据,默认20分钟失效

兰色精灵 发表于 2015-3-10 21:18:40

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。

深爱那片海 发表于 2015-3-17 10:10:29

掌握asp的特性而且一定要知道为什么。

金色的骷髅 发表于 2015-3-17 10:10:30

封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。

灵魂腐蚀 发表于 2015-3-24 06:45:15

如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
页: [1]
查看完整版本: ASP教程之面向工具的ASP手艺:思索与理论