ASP.NET 技术 毕业论文外文翻译.doc_第1页
ASP.NET 技术 毕业论文外文翻译.doc_第2页
ASP.NET 技术 毕业论文外文翻译.doc_第3页
ASP.NET 技术 毕业论文外文翻译.doc_第4页
ASP.NET 技术 毕业论文外文翻译.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

asp.net 技术 1. 发展缘起的前身asp技术,是在iis 2.0上首次推出(windows nt 3.51),当时与 ado 1.0 一起推出,在iis 3.0 (windows nt 4.0)发扬光大,成为服务器端应用程序的热门开发工具,微软还特别为它量身打造了visual。interdev开发工具,在1994年到2000年之间,asp技术已经成为微软推展windows nt 4.0平台的关键技术之一,数以万计的asp网站也是这个时候开始如雨后春笋般的出现在网络上。它的简单以及高度可定制化的能力,也是它能迅速崛起的原因之一,不过asp的缺点也逐渐的浮现出来。意大利面型的程序开发方法,让维护的难度提高很多,尤其是大型的asp应用程序。 直译式的vbscript或jscript语言,让效能有些许的受限。 延展性因为其基础架构扩充性不足而受限,虽然有com元件可用,但开发一些特殊功能(像文件上传)时,没有来自内置的支持,需要寻求第三方控件商的元件。 1997年时,微软开始针对asp的缺点(尤其是意大利面型的程序开发方法)准备开始一个新项目来开发,当时的主要领导人scott guthrie刚从杜克大学毕业,他和iis团队的mark anders经理一起合作两个月,开发出了下一代asp技术的原型,这个原型在1997年的圣诞节时被发展出来,并给予一个名称:xsp,这个原型产品使用的是java语言。不过它马上就被纳入当时还在开发中的clr平台,scott guthrie事后也认为将这个技术移植到当时的clr平台,确实有很大的风险(huge risk),但当时的xsp团队却是以clr开发应用的第一个团队。为了将xsp移植到clr中,xsp团队将xsp的内核程序全部以c#语言重新撰写(在内部的项目代号是 project cool,但是当时对公开场合是保密的),并且改名为asp+,作为asp技术的后继者,并且也会提供一个简单的移转方法给asp开发人员。asp+首次的beta版本以及应用在pdc 2000中亮相,由bill gates主讲keynote(即关键技术的概览),由富士通公司展示使用cobol语言撰写asp+应用程序,并且宣布它可以使用visual basic.net、c#、perl与python语言(后两者由activestate公司开发的互通工具支持)来开发。在2000年第二季时,微软正式推动.net策略,asp+也顺理成章的改名为,经过四年的开发,第一个版本的在2002年1月5日亮相(和.net framework1.0),scott guthrie也成为的产品经理(到现在已经开发了数个微软产品,像 ajax和microsoft silverlight)。2010年 4.0 以及 .net framework 4.0 已经在vs2010平台内应用。2012年最新版本 4.5已经.net framework4.5已经在visual studio 2012平台应用。2. 工具支持构架是可以用microsoft(r)公司最新的产品visual s开发环境进行开发,wysiwyg(what you see is what you get所见即为所得)的编辑。这些仅是强大化软件支持的一小部分。3. 强大的适应性因为是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在web应用软件开发者的几乎全部的平台上(笔者到现在为止只知道它只能用在windows 2000/2003 server/vista/7/xp上)。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到的web应用中。同时也是language-independent(语言独立化)的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有c#(c+和java的结合体),vb,jscript,c+、f+。将来,这样的多种程序语言协同工作的能力保护您现在的基于com+开发的程序,能够完整的移植向。4. 简单易学使运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。例如页面构架允许你建立你自己的用户分界面,使其不同于常见的vb-like界面。5. 可管理性使用一种字符基础的,分级的配置系统,虚拟服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为zero local administration的哲学观念使的基于应用的开发更加具体和快捷。一个的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须的文件,不需要系统的重新启动,一切就是这么简单。多处理器环境的可靠性 已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。即使你现在的应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的asp却做不到这一点。自定义性和可扩展性 设计时考虑了让网站开发人员可以在自己的代码中自己定义plug-in的模块。这与原来的包含关系不同,可以加入自己定义的任何组件。网站程序的开发从来没有这么简单过。安全性基于windows认证技术和每应用程序配置,你可以确保你的原程序是绝对安全的。 的语法在很大程度上与 asp 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 asp 应用程序中逐渐添加 功能,随时增强 asp 应用程序的功能。 是一个已编译的、基于 .net 的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比asp即时解释程序速度上要快很多.而且是可以用任何与 .net 兼容的语言(包括visual basic .net、c# 和 jscript .net.)创作应用程序。另外,任何 应用程序都可以使用整个 .net framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 可以无缝地与 wysiwyg html编辑器和其他编程工具(包括microsoft visual studio .net)一起工作。这不仅使得 web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 web 页的 gui 和完全集成的调试支持。 当创建 应用程序时,开发人员可以使用 web窗体或 xml web services,或以他们认为合适的任何方式进行组合。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义. 如果你从来没有开发过网站程序,那么这不适合你,你应该至少掌握一些html语言和简单的web开发术语(不过我相信如果有兴趣的话是可以很快的掌握的)。你不需要先前的asp开发经验(当然有经验更好),但是你必须了解交互式web程序开发的概念,包含窗体,脚本,和数据接口的概念,如果你具备了这些条件的话,那么你就可以在的世界开始展翅高飞了。6. iisiis指 internet information services(因特网信息服务)iis 是 windows 2000 捆绑的免费组件iis同时也是 windows nt 4.0 的可选组件此可选组件可通过因特网下载pws的体积更小,不过拥有 iis 的完整功能pws可在 windows 95/98 的安装 cd 中找到。不仅仅是 active server page (asp) 的下一个版本,而且是一种建立在通用语言上的程序构架,能被用于一台web服务器来建立强大的web应用程序。提供许多比现在的web开发模式强大的优势。7. 处理架构 运行的架构分为几个阶段:在 iis 与 web 服务器中的消息流动阶段。 在 网页中的消息分派。 在 网页中的消息处理。8. 消息流动当装载(hosting) 的 web 服务器接收到 http 要求时,http 聆听程序 (http listener) 会将要求转交给 url 指定的网站应用程序的工作流程 (worker process), 的工作流程处理器 (aspnet_isapi.dll,若是 iis 5.0 时则是 aspnet_wp.exe) 会解析 url,并激活位于 system.web.hosting 命名空间中的 isapiruntime(视版本)对象,接收 http 要求,并调用 httpruntime,运行 httpruntime.processrequest(),在 processrequest() 中使用 httpapplicationfactory 建立新的 httpapplication (或是指定的 ihttphandler 处理器),再分派给 page 中的 processrequest() 或是 ihttphandler 的 processrequest() 方法,运行之后,再传回到 isapiruntime,以及 aspnet_isapi.dll,最后交由 http listener 回传给用户端,因为运行程序有如管线般顺畅的运行,因此称为http pipeline mode。在 内部的 http 处理器有:isapiruntime:由 aspnet_isapi.dll 调用,初始化 httpworkerrequest 对象(会由iis的版本决定要初始化的版本)。 httpruntime:提供要求队列 (request queue)、调用 httpworkerrequest 中的 processrequest() 方法,以及后续的处理工作。 httpworkerrequest:产生 httpapplication、httprequest、httpresponse 等基础对象的 http 要求对象,并将要求转送到要处理的对象(并调用它的 processrequest() 方法)。 ihttphandler 与 ihttpasynchandler:负责处理 http 要求的单元,由 processrequest() 来分派与运行要求。 网页中的事件程序 当 httpworkerrequest 调用网页(system.web.ui 命名空间的 page 类) 的 page.processrequest() 方法时,它会依序的引发 page 内的各个事件,并同时调用在 page 中所有控件的相关事件,其引发顺序为:preinit 事件:运行预先初始化的工作,在 2.0中,若要动态调整主版页面 (master page)、布景主题 (theme) 时,要在这个事件中调整。 init 事件:运行初始化工作。 initcompleted 事件:在完成初始化工作后引发。 preload 事件:运行预先加载的工作。 load 事件:运行加载的工作,大多数的网页都拥有 page_load 事件处理程序,用户控件 (user control) 中也有 page_load 事件例程,都会在此时调用。 控件的 postback 变更通知:当网页侦测到是 postback 要求时,会引发 postback 消息通知的事件。 控件的 postback 相关事件:当网页侦测到是 postback 要求时,会引发 postback 消息指定的控件的事件。 loadcompleted 事件:运行加载完成后的工作。 prerender 事件:处理在产生 html 结果前的工作。 savestatecompleted 事件:处理页面状态 (viewstate 与 controlstate) 储存完成后的事件。 render 事件:处理产生 html 的工作。 unload 事件:处理退出网页处理时的工作。 如果 httpworkerrequest 调用的是实现 ihttphandler 界面的http 处理程序时,它只会调用 ihttphandler.processrequest() 方法,由它来处理程序的输出,不像 page.processrequest() 会处理事件顺序,因此 http handler 很适合轻量级的数据处理,像是输出文件数据流或是图片数据流等。9. 事件模型 的原始设计构想,就是要让开发人员能够像 vb 开发工具那样,可以使用事件驱动式程序开发模式 (event-driven programming model) 的方法来开发网页与应用程序,若要以asp技术来做到这件事的话,用必须要使用大量的辅助信息,像是查询字符串或是窗体字段数据来识别与判断对象的来源、事件流向以及调用的函数等等,需要撰写的代码量相当的多,但 很巧妙利用窗体字段和javascript脚本把事件的传递模型隐藏起来了。 的事件模型是由以及数个 hidden field 组合而成,基于 http 模型的限制,所有的网页程序在运行结果输出到用户端后,程序就会退出运行,为了维护在 网页与控件的状态数据,因此在输出 控件时, 会将部份状态数据储存到网页的 hidden field 中,这类型的状态数据称为 viewstate(id 为 _viewstate),在服务器端即会被解译出状态与事件数据。在大多数的内置 web 控件中都有使用到这个机制,因此在使用大量 web 控件的网页中,会有许多的 viewstate 会存放在网页中并随着 http 数据流输出到用户端,viewstate 在输出时,会被加密为一组乱码字符串,其金钥值定义在计算机中,并且每一个对象都会被序列化 (serialize) 成字符串(因此若是自定义对象要放到 viewstate 时,则应要让它支持序列化),再输出到 _viewstate 字段中,在每次的网页来回时都会被传输,较大的 viewstate 会让网页大小膨胀,不利于快速的网络传输,不过 本身有提供将 viewstate 关闭的功能,因此如果控件不需要状态保存时,可将它关闭以减少输出的大小。为确保控件的事件能够确实被引发,让事件驱动能够被运行,因此控件事件引发命令时需要的参数,是交由 javascript 脚本在用户端引发时,填入另一个 hidden field(id 为 _eventtarget 以及 _eventargument),并且引发窗体的送出指示 (submit),传送到服务端后,服务端的 httpapplication 中的工具函数会解析 _eventtarget 和 _eventargument 字段中的信息,并且交由控件所实现的 raisepostbackevent() 来引发事件,并由 .net framework 内部的事件处理器制接手处理(调用控件设置的事件处理程序)。10. 来回模式在 运行的时候,经常会有网页的来回动作 (round-trip),在 中称为 postback,在传统的 asp 技术上,判断网页的来回是需要由开发人员自行撰写,到了 时,开发人员可以用 page.ispostback 机能来判断是否为第一次运行 (当 发现 http post 要求的数据是空值时),它可以保证 的控件事件只会运行一次,但是它有个缺点(基于 http post 本身的缺陷),就是若用户使用浏览器的刷新功能 (按 f5 或刷新的按钮) 刷新网页时,最后一次运行的事件会再被运行一次,若要避免这个状况,必须要强迫浏览器清空高速缓存才可以。2.0 中有新增三个来回模式:cross page postback:允许跨不同的网页运行 postback,服务端可使用 page.iscrosspostback 来判断是否是跨网页型的来回。 async page mode:允许网页使用异步的方式运行,服务端可用 page.isasync 来判断。 callback: 2.0 新增的由网页回呼用户端指令的功能,服务端可用 page.iscallback 来判断是否要求是来自 callback。来回模式不仅是 运作时的内核:它也是 应用程序的一个主要缺点,尤其是在设计复杂度高的页面时,在网页中隐藏的 viewstate 的大小会相当大,而在每次的来回动作中,都会传送 viewstate 在内的窗体信息,大量的 viewstate 会使得传送的时间拉长,而且每次来回动作都会让整个网页被刷新,而出现闪烁的情况(就算在本地端也一样),但在ajax技术尚未成熟时,只能够忍受这种因底层限制所带来的问题,在 ajax技术发展出来后,通过updatepanel成功的缓解了这个问题(但 viewstate 传送的问题仍然未根本的解决,必须要使用像 page method 这样的方式才能彻底的解决)。11.控件的控件分为内置和外置两种。 的内置控件分为两种:html 控件 (html control)和用户控件 (user control)。外置控件,在使用前,需要将其添加到visual studio .net环境中。然后就可以通过启动一个新项目来使用新的控件。html 控件 (html control)直接在 html 标记中加上 runat=server,即可对应到 指定的 html 服务器控件类,像是: htmlanchor:表示 html 的 web 控件 (web control):由 提供,比 html 控件提供更多的功能,但操作与设置会比 html 控件要复杂许多,像是: linkbutton:一种外型为链接 htmlbutton:表示 html 的 。 htmlimage:表示 html 的 。 htmlgenericcontrol:表示没有对应到服务器控件的对象,都会被对应到这个类。 web 控件 (web control):由 提供,比 html 控件提供更多的功能,但操作与设置会比 html 控件要复杂许多,像是: linkbutton:一种外型为链接 (除了内置的控件之外, 也提供了可以自定义的控件架构,并且支持两种控件开发方法。用户控件 (user control)以 .ascx 为扩展名,可以让开发人员用最轻松的方式来开发控件,优点是开发速度很快,但缺点是无法转散布,且无法加入参考。 自定义控件 (custom control),可转散布型的控件,是经过编译后的代码 (dll),可单独转散布,并且可在其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论