从ASP迁移至ASP+--最初的考虑(二)

2016-01-29 19:28 0 1 收藏

从ASP迁移至ASP+--最初的考虑(二),从ASP迁移至ASP+--最初的考虑(二)

【 tulaoshi.com - ASP 】

       最初的考虑(二)
  作 者 : 雨晨
  
  
     运用和在一个单独模块中创建一个普遍性的连接相同的构想,我们创建了一个Pagelet。Pagelet使开发人员可以创建伪控件,伪控件和对象一样可以用来显示属性,方法以及事件。我们的方案是:创建一个显示ConnectToDB方法的Pagelet,该方法返回一个ADOConnection对象(与ADO的语法稍有不同)。我们用下面的代码创建Pagelet,将它存为connect.aspc(扩展名表明它是一个Pagelet)
  
     < %@ Import Namespace="System.Data" %>
  
     < %@ Import Namespace="System.Data.ADO" %>
  
     < script language="VB" runat="server">
  
     Public Function ConnectToDB() As ADOConnection
  
     ConnectToDB = New ADOConnection("DSN=evilleDSN")
  
     End Function
  
     < /script>
  
     你会注意到我们导入了两个Namespaces,即System.Data和System.Data.ADO。为了使用ADO+ Managed Provider这些Namespaces是必须的。许多人就此问了我许多问题,因为目前多数示例都使用基于Microsoft SQL Server 2000数据库的SQL Managed Provider。对于非SQL Server 数据库,ASP+可以使用ADO+ Managed Provider,这和目前你在程序中使用ADO的方式大致相同。导入Namespaces和在VB程序中创建参考(Reference)有异曲同工之妙。
  
     Pagelet的运用使我可以维护当前的站点计划,一旦在模块中创建了连接,我们就可在任何需要的地方重用模块。这意味着我们需要用Pagelet的一个实例来替代Include文件指令,然后当我们需要数据库连接时调用ConnectToDB方法。在需要使用Pagelet的页面中,我们首先必须使用ASP+指令将之与该页面注册(register)。在指令中,我们定义TagPrefix,TagName,以及Source(src)。与ASP中的include文件类似,在我们放置Pagelet的地方要用到TagPrefix和TagName。
  
     < %@ Register TagPrefix="seven" TagName="Connect"
  
     src="http://img.jcwcn.com/attachment/portal" %>
  
     放置我们刚注册的Pagelet的方法与ASP+服务器控件类似:
  
     < [TagPrefix]:[TagName] id=myPagelet runat=server />
  
     比如:
  
     < seven:Connect id=Connect runat=server />
  
     在ADO+中,记录集(Recordset)的概念被DataSets和DataViews的组合所取代。一会儿我们将讨论这两个概念。首先让我们看看在default.asp页面迁移至default.aspx(ASP+页面的后缀)后代码都有了哪些改变。先看default.asp:
  
     < !-- #include file="_includes/connect.inc" -->
  
     < %
  
     Dim cnEville_DB, rsUpcoming, strSqlUpcoming
  
     Set rsUpcoming = Server.CreateObject("ADODB.Recordset")
  
     strSqlUpcoming = " SELECT TOP 2 " & _
  
     "Classes.Title, Sessions.Session_ID, " & _
  
     "Sessions.Special, Classes.Description " & _
  
     "FROM Classes INNER JOIN Sessions ON " & _
  
     "Classes.Class_ID = Sessions.ClassID " & _
  
     "WHERE (((Sessions.Date)>Date())) " & _
  
     "ORDER BY Sessions.Date"
  
     rsUpcoming.Open strSqlUpcoming,cnEville_DB
  
     %>
  
     在ASP+中成了default.aspx:
  
     < %@ Import Namespace="System.Data" %>
  
     < %@ Import Namespace="System.Data.ADO" %>
  
     < %@ Register TagPrefix="seven" TagName="Connect" &_
  
     src="http://img.jcwcn.com/attachment/portal" %>
  
     < script language="vb" runat=server>
  
     Sub Page_Load(Source As Object, E As EventArgs)

来源:https://www.tulaoshi.com/n/20160129/1509494.html

延伸阅读
标签: ASP
  现存的ASP版的eVille禁止对站点的某些部分的访问,除非用户已经登录。一些功能像查看将来的优惠特价,报名上课,以及了解自己当前的入学状况是受限制区域。如果想在未登录的状态下访问这类区域,你只会被重新导回到登录页面。用户在一份表格中输入他们的用户名与密码,然后与数据库的学生表进行比较,如果登录成功,一个名为blnLoggedIn...
作 者 : 雨晨 现存的ASP版的eVille禁止对站点的某些部分的访问,除非用户已经登录。一些功能像查看将来的优惠特价,报名上课,以及了解自己当前的入学状况是受限制区域。如果想在未登录的状态下访问这类区域,你只会被重新导回到登录页面。用户在一份表格中输入他们的用户名与密码,然后与数据库的学生表进行比较,如果登录成功,一个...
处理会话变量(Session Variables) 作 者 : 雨晨 现存的ASP版的eVille禁止对站点的某些部分的访问,除非用户已经登录。一些功能像查看将来的优惠特价,报名上课,以及了解自己当前的入学状况是受限制区域。如果想在未登录的状态下访问这类区域,你只会被重新导回到登录页面。用户在一份表格中输入他们的用户名与密码,然后与数据库的...
急不可耐了?转换其他的页面吧! 作 者 : 雨晨 至于剩余的页面,我们依样画葫芦,使用ASP+ DataList或是Repeater控件。这样做是必要的,因为按设计要求需要定制的数据布局,而不是一个标准的表格显示。其中有个页面,classcatalog.aspx,有一处要求勾选值,然后根据选中的值,运行两个可能输出中的一个。该页就利用了Repeater控件,因...
标签: ASP
  简介 虽然 Microsoft&reg; ASP .NET 的设计者在保持 ASP 应用程序的向后兼容性方面做了大量不懈的努力,但在将 Web 应用程序由 ASP 向 ASP .NET 迁移之前,还是应该了解一下几个关键的问题。在 .NET 平台和 ASP .NET 中对现有技术进行了改进并采用了一些新技术,透彻理解这些技术有利于简化此迁移过程,但这需要经过一段漫长的时间...

经验教程

320

收藏

56
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部