没有合适的资源?快使用搜索试试~ 我知道了~
ASP.NET 打造互联网未来空间站
资源详情
资源评论
资源推荐
ASP.NET 打造互联网未来空间站
技术话题
如果你已经看过我们前面的那些文章, 您有可能已经形成了这样一个想法:.NET 是微软公司非常重要的战
略措施,微软公司正在花费大量的时间和精力努力营建它。其中, .NET 的一个不可缺少的部分是
ASP.NET。现在,我们来谈一谈 ASP.NET 的体系结构,看看它是如何与.NET 的整体架构协调工作的,以
及如何利用 ASP.NET 开发大型网站那样的东西。
我们已经做 ASP.NET 三年了。我们刚开始主要是研究 ASP。众所周知,ASP 是个建立网络应用非常成功
的平台,我们研究 ASP 主要看看它有些什么东西的确很值得保留,看看在哪些方面,我们可以改进它,
于是我们花了一年半的时间进行头脑风暴式的集体研讨,产生想法并开始建设,这样就产生了 ASP.NET。
此外,我们最近将 ASP+的名字改为 ASP.NET。
请问,你们这样做的确切原因是什么?这样做又意味着什么?
.NET 的起因是多方面的,比如将软件提升为服务;比如 XML 和 web 服务,他们用他们可做到的方
式增强了互联网的性能。我们称之为 ASP+的东西是在我们有.NET 之前被命名的;一旦.NET 名字出来,
我们就将它的名字和.NET 架构紧密联系在一起了。我们可以这么认为,它是 ASP 的新版本,并且紧紧地依
赖于我们谈论的.NET 构架的所有东西。准确地说是这样的。
但是,我们认为关于 ASP.NET 重要的是,它并不是我们拿了来自 ASP 先前的版本的代码,将它移植
到.NET 上,或者与.NET 相结合。我们真正从底层创建了它。这是一种彻底不同的代码,这是在我们花费
3 年时间所提出新想法的基础上,是在 common language runtime 基础上,是在 XML 基础上,是在所有其
它.NET 技术的基础上构建的。
我们在上面讨论了 ASP 新的构架,并且命名为 ASP.NET,还重新建造了它,这难道意味着如果我是
一名 ASP 程序员,我必须抛弃我学习过的一切,为了适应 ASP.NET,必须重新学习一种新思路吗?
绝对不是的。如果你是一名 ASP 开发者,你仍然可以保持你目前的全部技能,并且非常轻易地将它
们应用到 ASP.NET 中。如果你想继续按照你原来的风格写,你可以继续使用。如果你想接受最新的编程
1
方式,你可以开始这种体验。不过,你可以渐渐地做到这一点,你可能会在许多新的特点中使用很多老的
编码风格,并且获得这两种风格的最佳优点。
嗷,有那些新的特点吸引我前往 ASP.NET,为什么我应该向 ASP.NET 模式转移?
有大量的新特点。
第一,现在全部的语言都是可以编译的语言。这是,很多 ASP 用户渴望得到的事情。他们希望在
VB script 中得到 VB 的这种特征。现在你可以用纯粹的 Visual Basic 语言来编写你的 ASP。NET 程序。你
也可以选择许多其他的语言,象 C 或者 JAVA SCRIPT 甚至 COBOL, 我们已经证明 COBOL 可以运行在
ASP 内部,你可以使用这些更好的语言。你也可以拥有更加简明和强大的页面开发工具。因此,你可以利
用很多的方法将对象行为变成 TAGS,这样,你能仅仅把 TAGS 放在你的页面上就可以实现很多行为;
第二,你可以不必写很多的代码。我们做很多试验,约 400 行的 ASP 代码我们把它减少到了 20 行代
码。这样,可以提高工作效率,创造的更多的价值。
另外,从创建你的网站并且使它能被其他的计算机自动访问这个角度看 , web 服务也是一个重要的新
特点。例如一个以 XML 为基础的 web 服务的例子,它可以把不同的种类的信息连结到一起,就像电视节目
列表。商务公司在用这种方式其他的商务公司交流信息。所以,能轻松地制作这些基于 XML 的服务是
ASP.NET 的另一个重要的部分。
不是 SOAP 也在提供同样的事情吗?
是的,但是,ASP.NET 提供了一种非常简单的方法,建立了基于 SOAP 的 WEB 服务。
啊,我知道了。SOAP 的一个方面是将你的页面那些告诉你你的过程所涉及的属性、方法、事件等小
提示包装起来。因此,ASP.NET 在页面上可以自动完成这些事情。
ASP.NET 从根本上提供给这样一种自动化的方法,你用它建造的不是页面, :你实际上用它建造的是
有独立的文件扩展名的 WEB 服务。在这样的页面里面,你实际上能定义使网站被调用的方法,你需要做的
一切只是在页面里写你的代码,点击保存。并且,如果你用浏览器点击那个方法,你将实际上得到所有可
以调用的方法的全部列表,以及一个如何通过 SOAP 调用它的方法的描述。你既可以用标准的查询字符串
调用那些方法,也可以动态的创建一个 com 代理对象, 使网络通信全部自动化,包括全部 http 调用,以及
XML 集合,使用 SOAP 调用这个服务就像你调用一个储存在服务器里的对象的常规方法.
就像 ASP 的产生使得编写动态的网页的工作变得轻而易举所用的方法相同,ASP.NET 的产生真的使
写动态的 WEB 服务变得轻而易举。而实现这一功能,你只需要认真考虑你想写的代码和你想处理的数据。
你根本不必想到 XML。(当然,如果你想考虑 XML,你能考虑 XML。)
你可以写一个提供类别名字的方法,我可以用它来查询我的库存数据库,以及我的其他信息:我的
生意怎么样了,我有多少库存,我将返还给你一个那个类别的所有产品列表;比如 ,如果我是食品杂货商
2
店你向我询问牛奶的信息,我将给你我卖的牛奶的全部不同的种类信息。
你在 ASP+中做这件事(当然,他真的意思是想说 ASP.NET)的方法是:你仅仅用 VB, C#编写一个类,
该类有一个方法比如说取得类别,并且他还包含类别名字。接下来,它能进行查询 SQL SERVER 数据库
或任何 XML 数据源,把数据带回。这个过程实际上不必认真考虑转换成 XML 这些事情。ASP.NET 会自
动完成 XML 的转换工作。
因此,我们能够自动地将一个 xml payload 转换成一个整数。然后,如果你返回一个 records set 的时
候,我们将自动地处理 records set,并将他变成 XML 数据流。因此,在 ASP 中不得不做的那些事情:手
工分析 XML,手工将 HTTP 的内容转换成对 XML payload 的访问并分析他,这些过程都被自动的完成了。
我们在其中提供动态的维护 能力。 主要用来解释如何调用 的。因此你
可以很容易的传递这个 到其他站点上了,其他站点也可以直接对你的站点进行编程。
我们的网站作了一个很有趣的例子,提供了一系列的调用 (即 )的例子,他们提供
的 是:允许其他 站点列举这个站点在某一天写的所有新的例子。因此那些站点可
以订阅这些服务,并且可以对这些 编程,规定他们是一天一次还是一个小时一次获取网站
更新的那些例子的链接列表。
这样说来,对于用户来讲,他们没有必要考虑与浏览器或者 web 页面打交道的这些事情,他们直接通过
web service 就可以访问互联网了?
是的,但是那将是 的美好的远景,那时我们将会认识到,互联网实际上是所有信息的
总和。我们曾经为了便于人们浏览提供了在浏览器中显示 的方式,但是如果您的合作伙伴或者您公
司的其他工作人员的一些进程或者程序需要调用这些信息时候,目前的技术实在是在无能为力的。
技术的 产生 使得 人 们随心 所欲 表现任 何数据 成为 可能 。因此 ,你可以利 用 创 建更 多的
,以便人们可以用多种方式调用程序或者交换数据。 的确是一件强有力的工具,他也可以帮
助人们构建更多种类的应用程序。 技术也给客户提供了更多的帮助,由于他们同样可以获得数据和信
息,所以他们可以做更多的事情。
由于有了以上这些技术,你不一定非要从客户端基于浏览器的应用程序中调用WEB服务。你还可以在一
个普通的V B 或者 C#应用程序中使用WEB服务。
这些都不是什么问题。当然,这里面还有一个问题应该强调一下。我们所使用的 和 都是
开放式协议标准。这些标准不是WINDOWS系统独有的,他们现在已经被许多家生产厂家所推崇。所
以我们可以和UNI 系统,可以和基于 的系统交流,无论是发送信息还是接受信息,我们都可以
3
用这种方式来交换信息,而不必考虑那台机器上是否安装了AS NET系统。如果真的会这样,你将会
看见遍及互联网的应用程序用他们感兴趣的方式开始了互联。我们使用这些新技术的结果是,那些富客户
端的应用程序会渐渐被人们遗忘的。
当然从另一个方面来看,尽管AS NET和NET框架的主要目标是启动任何一种类型设备上的
应用程序,但这并不意味着这些设备必须运行在NET框架上。在 NET平台上,我们已经作了许
多直接支持 ! 这样协议的事情。因此,你可以直接开发出与较小的设备,例如与 !" 或者
其他可以处理HTM 的小设备通信的应用程序。
因此,你用一个简单的AST.NET页面,可以指向许多类型的设备。这些设备可能具有完全不一
样的特征。
是的。
这么说,是 ASP.NET 代码确定了如何到一个小设备或者大设备这样的事情吗?
是这样的。我们有一套特殊的服务器控件,我们称他们为 #$%,他们可以根据设备
的类型,自动地发送 !&"' 或者HTM 信息,譬如说如果你有一个爱立信的手机,他可能只有
(、) 行显示文字的区域,如果你调用的一个页面时,我们可以自动地根据这个设备的情况提供合适的显
示方式。
这是否意味着开发人员不得不考虑他们所遇到的所有不同的情况,例如,这是个彩色的浏览器那是
一个 POCKET PC 的显示界面。
不会的。这实际上就是AS ET最迷人的部分。通过这些服务器控件,你实际上找到了一条包
含你所想象的不同行为方式或者对不同类型设备的不同输出的最好的解决问题的办法。我们可以在许多不
同的情况下实现这些事情。例如,我们有一套控件是用来作确认工作的,确认的工作是一个站点中非常复
杂的工作。特别是当你想生成客户端的代码,并且由这些代码来做确认的工作的时候,你会遇到很多麻烦
的。现在,我们这套控件自动地为你做这些事情。它们包含了最基本的确认行为。对于富浏览器端的程序 ,
他们将发送一种东西,他们将发送 %$代码,对于服务器端的程序他们也将履行确认这个过程,并产
生相同的结果。只不过这里这时的主要工作是在服务器端进行。
服务器端控件自动的处理客户是有意按照客户端脚本运行还是故意不按照客户端脚本运行等情况,
并且可以很好地控制这一切。你所做的只是在你的页面中宣布这些控件为TAGS,然后写上 *,+ 行借
用他们处理的代码,你便拥有了一个完整的确认页面了。
4
你说的只是一些基本的确认,他们支持对数字的确认吗?
是的,有一系列的东西我们支持。我们支持电话号码、邮政编码等相关的东西。我们会遇到很多的
问题,有时候要确认添入的东西是不是数字,有时候他们添入的数字要匹配一些规则的表达式,有时候添
入的数字要满足一定的界限的限制。
这些要求是可扩展的,我们由第三方厂家来从事这方面的工作。其中,第三方厂家做的一项工作是
关于邮政编码的确认。你可以在一个页面的文本框里面使用这种确认,他将判断你输入的数字是否是一个
有效的邮政编码,因此你可以在许多不同的场合使用这些确认功能,他们可以使您更容易编写页面程序。
实际上,完全组件化的系统允许开发人员和第三方的工作人员几乎在系统的任何一个层面插入他们
的代码,这是我们一个最大的革新措施。我们常听见使用 ASP 的那些开发人员说过的一件事情:我喜欢
ASP,我很喜欢 这样的东西,但是我希望他可以工作在 !#,% 上。例如他们会问,
我如何使得他工作在 !#,%上?答案是,在 的环境中那是不可能的。但是在 中,我
们可以使得 工作在 !#,% 中,因此你可以尽情的使用了。此外,如果你想完全取代
你也可以做到;你想修改缓存输出的方法,你也可以轻松做到,因为整个系统是组件化的 。
如果还有人提出,尽管我们的喜欢 -、 ./、 以及与他们相关的这些应用,但是我
还想在 $$ 这个层面做更多的工作。我应该如何去实现呢?答案是,在 中没有办法实现,因为所
有的事情都封装在 系统中。没有办法达到这么低的级别中,但是,如果你采用 的话,由于
它是组件构架的系统模型,所以你可以做你想做的事情。
嗷,在你提及 ISAPI 的时候,我想起了在 ISAPI 应用中有两种完全不同的模式:ISAPI 应用模式和
ISAPI 过滤器模式,ASP.NET 是否支持这两种不同模式?
是的,他支持这两种不同的模式。
我可以想象他是如何支持 ASP.NET 应用模型的,难道他也用 ISAPI 过滤器做一些事情吗?
是的,他也用它做一些事情。我们也支持一种叫做 ASP 模块扩展点的技术。他基本上允许你像一个函数
那样使用 $$ 过滤器。我们提及的很多例子,如替换 等工作都是在那个级别实现的。此
外,重定向 0% 的工作也是在这个级别实现的。例如,我们的许多客户经常要为他们的用户提供个性化
的 0%,像 1/ 站点就可以为他的顾客提供 1/2
这
样的 0% 为一个名叫 的用户,因为他们不想创建太明显的路径,所以要借用重定向技术提供各种
5
剩余20页未读,继续阅读
qieyj
- 粉丝: 58
- 资源: 37
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0