打印

[asp.net教程] asp.net 2.0后台代码与内联代码的对比2

asp.net 2.0后台代码与内联代码的对比2

在页面之间共享代码
   
    尽管可以在站点的每个页面中放置代码(使用内联或者后台代码分离模型),还是可能遇到希望在站点的多个页面之间共享代码的情况。把代码复制到需要它的每个页面是一种低效率的和难于维护的方法。幸运的是,asp.net提供了几个让代码供应用程序的所有页面访问的方法。
   
    代码目录
   
    页面可以在运行时动态的编译,代码文件(例如.cs和.vb文件)也可以。asp.net 2.0引入了app_code目录,它可以包含那些含有代码的独立的文件,而这些代码可供应用程序的多个页面访问。asp.net 1.x要求这些共享文件预编译到bin目录中,然而app_code目录中的代码文件将在运行时动态地编译,并供应用程序使用。把多种语言建立的代码文件放在app_code目录中是可行的,这时候应该把它们放在不同的子目录中(在web.config中注册具体语言)。下面的例子演示了使用app_code目录包含一个类文件,页面会调用它。
   
  <%@ page language="vb" %>
   
  <script runat="server">
  sub button1_click(byval sender as object, byval e as system.eventargs)
   dim c as new customclass
   label1.text = c.getmessage(textbox1.text)
  end sub
  </script>
   
  <html>
  <head>
  <title>asp.net inline pages</title>
  </head>
  <body>
  <form id="form1" runat="server">
   <h1>welcome to asp.net 2.0!</h1>
   <b>enter your name:</b>
   <asp:textbox id="textbox1" runat="server"/>
   <asp:button id="button1" text="click me" onclick="button1_click" runat="server"/>
   <br />
   <br />
   <asp:label id="label1" text="hello" runat="server" />
  </form>
  </body>
  </html>
   
    在默认情况下,app_code目录只能包含相同语言的文件。但是,为了在app_code目录中包含多种语言的文件,你可以把app_code目录划分为多个子目录(每个子目录包含相同语言的文件)。为了实现这个目标,你必须在应用程序的web.config文件中注册每个子目录。
   
  <configuration>
  <system.web>
   <compilation>
    <codesubdirectories>
     <add directoryname="subdirectory"/>
    </codesubdirectories>
   </compilation>
  </system.web>
  </configuration>
   
    下面的例子演示了一个划分过的app_code目录,它同时包含了vb和c#语言的文件。
   
  <%@ page language="vb" %>
   
  <script runat="server">
  sub button1_click(byval sender as object, byval e as system.eventargs)
   dim c as new customclass
   label1.text = c.getmessage(textbox1.text)
   dim c2 as new customclass2
   label2.text = c2.getmessage(textbox1.text)
  end sub
  </script>
   
  <html>
  <head>
  <title>asp.net inline pages</title>
  </head>
  <body>
  <form id="form1" runat="server">
   <h1>welcome to asp.net 2.0!</h1>
   <b>enter your name:</b>
   <asp:textbox id="textbox1" runat="server"/>
   <asp:button id="button1" text="click me" onclick="button1_click" runat="server"/>
   <br />
   <br />
   <asp:label id="label1" runat="server" />
   <br />
   <asp:label id="label2" runat="server" />
  </form>
  </body>
  </html>
   
    bin目录
   
    asp.net第一版本就支持bin目录,它与code目录类似,只不过它能包含预编译的部件。当你需要使用他人的一些代码的时候,它就非常有用了。在这种情况下,你不需要访问源代码(vb或c#文件),而是使用编译过的dll文件。简单地把部件放在bin目录中就可以使用它了。在默认情况下,bin目录中的所有部件都会被自动地载入应用程序并供页面访问。你需要使用页面顶部的@import指令导入bin目录中的部件的名字空间。

   
  <@ import namespace="mycustomnamespace" >
   
    全局部件缓存
   
    .net框架组件2.0包含了大量的表现框架组件不同部分的部件。这些部件都存储在全局部件缓存中,它是一个可供计算机上所有应用程序(不是供特定的应用程序使用)使用的部件仓库。框架组件中的几个部件会自动地供asp.net应用程序使用。你可以在应用程序的web.config文件中注册额外的部件。
   
  <configuration>
   <compilation>
    <assemblies>
     <add assembly="system.data, version=1.0.2411.0, culture=neutral,
  publickeytoken=b77a5c561934e089"/>
    </assemblies>
   </compilation>
  </configuration>
   
    请注意,你还是必须使用@import指令,让单独的页面可以使用这些部件.

TOP

返回顶部
AYBlue

Processed in 0.103432 second(s), 7 queries.

当前时区 GMT+8, 现在时间是 2009-1-10 10:45 京ICP备06054220号

清除 Cookies - 联系我们 - 163K.com - Archiver - WAP