从ASP到ASP.NET:迁移用户界面

经验表明,将用户界面(UI)从ASP迁移到ASP.NET,性能将提升50~80%。之所以得到这样的结果,一半的原因是对于大多数良好设计的应用程序来说,惟一未进行原生编译的就是UI。业务和数据层组件已经是编译好的DLL,UI通过一个COM接口来调用这些DLL。由于.NET框架提供了与现有COM对象不错的互操作性,所以较合理的做法就是只将基于ASP的UI层移植到ASP.NET中。
 
但除了编译和COM互操作性的好处之外,这样做还有另外几个优点:

ASP.NET UI模型

如果开发者以前曾综合运用Visual Notepad和Visual Interdev来进行编辑,在接触了ASP.NET的界面后,很快就会被ASP.NET出色的UI构建模型所吸引。微软通过实现一个新的网页和控制模型,并模拟VB6的开发思维模式,从而显著缩短了UI开发时间。网页模型模拟了Windows消息传递模型,并将其分解成Web客户端和Web服务器两个部分。更重要的是,ASP.NET服务器控件为开发者赋予了VB6风格的窗体功能,能自动管理需要的状态,同时不需要开发者的介入。最终的结果是,开发者用少得多的时间就能开发出可靠得多的UI。

ASP.NET还提供了大量预先写好的控件,并提供了容纳它们的一个框架。这些控件包括TextBox、Calendar、Drop-down List Box、TreeView、TabControl等等。服务器控件提供了与ActiveX控件相似的功能,但它们不要求具有相同级别的客户端配置或权限。注意不是在客户端上执行二进制代码,而是在服务器上执行,并生成HTML输出,以便由客户端浏览器使用。另外,如果浏览器支持,还可生成HTML和JScript的一个组合,允许窗体在客户端上执行,从而尽可能减少Web应用程序所产生的往返行程。

为了将现有的ASP窗体升级到ASP.NET,需要将HTML代码载入一个新的ASP.NET窗体中,然后操纵HTML源代码,将控件变成服务器控件。假如窗体中有大量脚本代码,并利用了Visual Interdev设计器,那么较容易的做法是运行ASP应用程序,然后在浏览器中选择【查看】|【源文件】,剪切并粘贴HTML,从而将基本的窗体载入ASP.NET。

可扩展的UI模型

为了真正发挥出ASP.NET的优势,你不仅要从一个现有的ASP应用程序拷贝HTML代码,还应利用ASP.NET的代码重用能力,方法是将网页元素定义成可重用的控件。利用ASP.NET UI模型的扩展能力,你可对常用功能进行分组,并综合运用新的Page基类、用户控件以及Web服务器控件来实现新的ASP.NET网页,并用它取代原始的ASP网页。例如,公司用户在使用由公司的不同部门提供的ASP应用程序时,要解决的最困难的问题之一就是如何应付形形色色的UI模型。

如果你的公司打算迁移到ASP.NET,我们的第一个建议是将自行设计的菜单和导航系统替换成网页类和用户控件的一个内部ASP.NET实现,或者替换成第三方组件厂商的标准导航实现。

对于第三方导航系统,注意要选择提供了.NET源代码的产品,这样才能建立自己的内部导航标准。通过在所有ASP.NET系统中重用这个实现,你的用户就能获得统一的导航机制。另外,还能显著减少为未来的系统编写的导航代码数量。

UI迁移的其他好处
 
除了UI开发模型所带来的好处之外,还应全面地利用ASP.NET内建的缓存和会话状态机制。开发者只需少量工作,即可利用ASP.NET输出缓存机制,为用户显著地改进网页加载性能。如果需要缓存单独的对象,或者要对网页缓存机制进行细致的控制,可利用内建的Cache API来进行更加明确的缓存控制。

除非你实现了自己的专用状态管理机制,否则经典ASP内建的会话状态管理不允许应用程序扩展到一台机器的范围之外。虽然我对“会话管理”的建议保持不变——除非绝对需要,否则不要用它——但使会话状态跨越多个前端服务器的机制是内建于ASP.NET中的。你既可使用单独一个状态服务器,由它将一组Web服务器的状态存储到自己的内存中,也可将状态存储到一个公共的SQL Server后端。无论选择哪种机制,都要求在本地Web.Config文件中进行一处简单的更改。根据我在这两种机制上的经验,建议你将状态数据存储到SQL Server中,尽可能增强可用性及可靠性,因为进程外状态服务器并不能带来显著的性能优势。

时间: 2024-11-03 20:51:30

从ASP到ASP.NET:迁移用户界面的相关文章

在ASP与ASP.NET之间共享对话状态(2)

asp.net ASP实现 原来的ASP对话只能将对话数据保存在内存中.为了将对话数据保存到SQL Server,需要写一个自定义的Visual Basic 6.0 COM对象代替现在的对话对象来管理对话状态.该COM对象在每个Web请求开始时被初始化,并从SQL Server重新载入对话数据.ASP脚本完成时,该对象将终止并把对话状态将返回到SQL Server.Visual Basic 6 COM Session对象的主要目的是提供对微软Internet信息服务器(IIS)内部对象的访问.V

在ASP与ASP.NET之间共享对话状态

asp.net [前言:]ASP.NET是微软提供的最新的开发基于Web的应用程序的技术.它提供了大量的比传统ASP脚本技术的好处,包括: 1)通过把UI表现层(presentation)与商业逻辑(business logic)分开建立了更好的开发结构: 2)使用完全编译的代码代替了传统ASP的代码翻译: 3)它编译特性与每个支持的方法协同,这意味着使用ASP.NET的站点比使用传统的ASP站点的性能更高. 尽管把存在的ASP应用程序转换到ASP.NET有很多潜在的好处,也有些ASP应用程序任

数据-新手求解asp.net:asp.net中如何根据自己的需要动态的生成表格并能输入保存

问题描述 新手求解asp.net:asp.net中如何根据自己的需要动态的生成表格并能输入保存 新手求解asp.net:asp.net中如何根据自己的需要输入行列数动态的生成表格行和列,并且在网页中生成的表格能够对数据的输入并保存到后台数据库中,如果表格不能实现输入的话用文本框形式又如何解决?如何动态生成文本框并保存到数据库表格中,急啊,谢谢大神指点,好人一生平安0.0! 解决方案 asp.net 动态表格生成1.ASP.NET动态生成HTML页面Asp.net利用Jquery动态添加表格的行数

asp和asp.net中Server.UrlEncode

ASP.net中的Server.UrlEncode函数和ASP中的Server.URLEncode函数返回的值不一样. 试验代码: ASP.net 中:Response.Write(Server.UrlEncode("汇编"));返回:%e6%b1%87%e7%bc%96 ASP       中:Response.Write Server.URLEncode("汇编") 返回:%BB%E3%B1%E0 产生这个问题的原因:     ASP.net 中的 Server

ASP+与ASP有什么不同

asp+ 编译:http://www.aspcn.com 飞刀 原文出自http://www.asptoday.com 看到翻译就头疼,而且这篇文章还很长啊,本来这篇文章很早就会写完,不过为了不争气的中国队又耽误了几天,跑到工体,还是输了....... 在以前的文章中我们认识到ASP+是一个完整的操作系统的一部分.但是为什么ASP+不同于以前版本的ASP?他们之间到底有什么不同?如果你仅仅是运行一些页面或应用程序,那么你可能完全不会注意到他们之前的区别. 一旦你打开ASP+SDK或者帮助文件,你

ASP:用ASP打造一个小型的网页BBS系统

传统的网页BBS大多是采用CGI模式实现的,它的实现要求编程者既要掌握编程语言如Perl或C等,又要了解关于CGI模式的各项技术内容,因此要制作自己的网页BBS确实困难不小.ASP(Active Server Pages 动态服务器主页)的出现,使我们眼前一亮,能不能利用ASP实现网页BBS呢?回答当然是肯定的.ASP的诱人之处就在于它提供了一种简单易学的脚本,并带有许多内置的对象,从而提供了一条简捷的编程之路. 该BBS主要由用户注册(浏览器端).用户注册(服务器端).加帖子(浏览器端).加帖

动态网站Web开发PHP、ASP还是ASP.NET(2)

实践--语言比较 变量声明 在VBScript中(ASP和ASP.NET都使用VBScript),在使用变量之前并不一定要对其进行声明,尽管技术文档通常建议这么做.使用Option Explicit声明,开发人员可以通过程序强制进行变量声明.在PHP中,变量可以被声明,尽管没有办法强制开发人员做到这点.的确,在使用之前变量都自动进行声明.PHP变量的优点在于变量可以被设置成为其他变量的引用(references),而在VBScript中变量只能通过值来定义. 以下是引用片段: <% ' VBSc

动态网站Web开发PHP、ASP还是ASP.NET(1)

这是一个经常被提出的问题,并且它很容易把人们带入争论Linux还是Windows的歧途.这样的争论事实上反映出了对于相互竞争的Web开发技术要进行并行分析是多么困难的一件事情,而这一难度同时因为开发人员对任何可比较操作系统的不同意见而大大增加. 所以与其继续参与到这样的争论中,我们还不如来看看每一项技术对于特定Web开发以及运行环境所表现出的优势.尽管ASP和PHP的相似程度大于其中任意一种与ASP.NET的相似程度,我们还是要讨论ASP.NET.原因是开发人员常常将其与ASP相混淆,并且在微软

游走于ASP与ASP.NET的郁闷

asp.net 今天的问题是,关于在ASP.NET的环境下提交表单.我和ASP一样编写了一个按钮触发的事件,然后使用formname.submit来进行submit.结果提示: BC30451: Name 'form1' is not declared. 但我在后面的表单里明明是定义了啊,源代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset

从asp到asp.net之快速转型

asp.net asp用了两年,三个月前开始转入asp.net,并完成了处女作就业中心网站(http://job.n ju.edu.cn),从一种语言转到另一种,过程总是艰辛的,于是我想把我在转型过程中遇到 的一些曾经很是困惑的问题做成了FAQ的形式,希望能对想转入asp.net的同学有点帮助或 是启示,同时也算是理一理自己的思路吧^_^. PS:我也是初学者,很多理解显然有点幼稚,并没有涉及到较深的层面,大家就凑合着瞧 瞧吧^_^ 1.怎样建立asp.net运行环境? asp有了IIS就可以了