蒙在股里 发表于 2015-1-16 22:43:10

ASP.NET网站制作之ASP.NET 2.0背景代码与内联代码的对照

如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具)asp.net|背景<P>  内联(Inline)代码的分别

  上面的例子演示了一个复杂的带有三个服务器控件(分离是文本框、按钮和标签)的ASP.NET页面。最后这些控件出现的内容与HTML情势是不异的。可是,当你在客户真个文本框中输出值并点击按钮的时分,该页面会发还服务器而且在该页面的代码中处置这个点击事务,静态地更新标签控件的Text属性。接上去这个页面会从头出现以反应更新过的文本。这个复杂的例子演示了服务器控件模子面前的基础道理,它使ASP.NET成为最简单进修和把握的Web编程模子之一。

<%@pagelanguage="VB"%>
<scriptrunat="server">
SubButton1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)
Label1.Text="Hello"&TextBox1.Text
EndSub
</script>

<html>
<head>
<title>ASP.NETInlinePages</title>
</head>
<body>
<formid="Form1"runat="server">
<h1>WelcometoASP.NET2.0!</h1>
<b>EnterYourName:</b>
<asp:TextBoxID="TextBox1"Runat="server"/>
<asp:ButtonID="Button1"Text="ClickMe"Runat="server"/>
<br/>
<br/>
<asp:LabelID="Label1"Text="Hello"Runat="server"/>
</form>
</body>
</html>
  请注重:下面的例子中的按钮事务处置程序位于包括服务器控件的统一个页面中的<script></script>标志以内。ASP.NET把这类情形称为页面编程代码内联(code-inline),当你但愿在统一个文件中处置代码和显现逻辑的时分,它长短常有效的。可是,ASP.NET还撑持别的一种用于寄存你的代码和显现内容的办法,称为背景代码(code-behind)模子。利用背景代码的时分,处置事务的代码位于与服务器控件和标志的页面文件分别的另外一个物理上自力的文件当中。当你必要保护这些自力的文件(比方多团体一同创建使用程序)的时分,代码和内容之间的这类明晰的分别长短常有效的。在小组项目中,计划者处置使用程序的UI部分,开辟者处置举动或代码是很罕见的,背景代码模子合适于这类情形。

  简化的背景代码模子

  ASP.NET2.0为背景代码页面引进了一个改进的运转时(runtime),它简化了页面和代码之间的毗连。在新的背景代码模子中,页面被声明为部分(partial)类,同意在运转时把页面和代码文件编译到一个类中。页面代码援用CodeFile属性和<%@Page%>指令中的背景代码文件,在Inherits属性中指定类的称号。请注重,背景代码类的成员必需是大众的(public)或受回护的(protected),不克不及是公有的(private)。

<%@pagelanguage="VB"CodeFile="CodeBehind_vb.aspx.vb"Inherits="CodeBehind_vb_aspx"%>

<html>
<head>
<title>ASP.NETCodeBehindPages</title>
</head>
<body>
 <formrunat="server">
  <h1>WelcometoASP.NET2.0!</h1>
  <b>EnterYourName:</b>
  <asp:TextBoxID="TextBox1"Runat="server"/>
  <asp:ButtonID="Button1"Text="ClickMe"Runat="server"/>
  <br/>
  <br/>
  <asp:LabelID="Label1"Text="Hello"Runat="server"/>
 </form>
</body>
</html>
  简化的背景代码模子的上风在于,你不用独自地在背景代码类中声明服务器控件变量。利用部分类(2.0中的新特征)同意ASPX页面中的服务器控件ID间接被背景代码文件会见。这极年夜地简化了背景代码页面的保护事情量。
<P>  在页面之间共享代码

  只管能够在站点的每一个页面中安排代码(利用内联大概背景代码分别模子),仍是大概碰到但愿在站点的多个页面之间共享代码的情形。把代码复制到必要它的每一个页面是一种低效力的和难于保护的办法。侥幸的是,ASP.NET供应了几个让代码供给用程序的一切页面会见的办法。

  代码目次

  页面能够在运转时静态的编译,代码文件(比方.cs和.vb文件)也能够。ASP.NET2.0引进了App_Code目次,它能够包括那些含有代码的自力的文件,而这些代码可供给用程序的多个页面会见。ASP.NET1.x请求这些共享文件预编译到Bin目次中,但是App_Code目次中的代码文件将在运转时静态地编译,并供给用程序利用。把多种言语创建的代码文件放在App_Code目次中是可行的,这时候候应当把它们放在分歧的子目次中(在Web.config中注册详细言语)。上面的例子演示了利用App_Code目次包括一个类文件,页面会挪用它。

<%@pagelanguage="VB"%>

<scriptrunat="server">
SubButton1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)
 DimcAsNewCustomClass
 Label1.Text=c.GetMessage(TextBox1.Text)
EndSub
</script>

<html>
<head>
<title>ASP.NETInlinePages</title>
</head>
<body>
<formid="Form1"runat="server">
 <h1>WelcometoASP.NET2.0!</h1>
 <b>EnterYourName:</b>
 <asp:TextBoxID="TextBox1"Runat="server"/>
 <asp:ButtonID="Button1"Text="ClickMe"Runat="server"/>
 <br/>
 <br/>
 <asp:LabelID="Label1"Text="Hello"Runat="server"/>
</form>
</body>
</html>
  在默许情形下,App_Code目次只能包括不异言语的文件。可是,为了在App_Code目次中包括多种言语的文件,你能够把App_Code目次分别为多个子目次(每一个子目次包括不异言语的文件)。为了完成这个方针,你必需在使用程序的Web.config文件中注册每一个子目次。

<configuration>
<system.web>
 <compilation>
  <codeSubDirectories>
   <adddirectoryName="Subdirectory"/>
  </codeSubDirectories>
 </compilation>
</system.web>
</configuration>
  上面的例子演示了一个分别过的App_Code目次,它同时包括了VB和C#言语的文件。

<%@pagelanguage="VB"%>

<scriptrunat="server">
SubButton1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)
 DimcAsNewCustomClass
 Label1.Text=c.GetMessage(TextBox1.Text)
 Dimc2AsNewCustomClass2
 Label2.Text=c2.GetMessage(TextBox1.Text)
EndSub
</script>

<html>
<head>
<title>ASP.NETInlinePages</title>
</head>
<body>
<formid="Form1"runat="server">
 <h1>WelcometoASP.NET2.0!</h1>
 <b>EnterYourName:</b>
 <asp:TextBoxID="TextBox1"Runat="server"/>
 <asp:ButtonID="Button1"Text="ClickMe"Runat="server"/>
 <br/>
 <br/>
 <asp:LabelID="Label1"Runat="server"/>
 <br/>
 <asp:LabelID="Label2"Runat="server"/>
</form>
</body>
</html>
  Bin目次

  ASP.NET初版本就撑持Bin目次,它与Code目次相似,只不外它能包括预编译的部件。当你必要利用别人的一些代码的时分,它就十分有效了。在这类情形下,你不必要会见源代码(VB或C#文件),而是利用编译过的DLL文件。复杂地把部件放在Bin目次中就能够利用它了。在默许情形下,Bin目次中的一切部件城市被主动地载进使用程序并供页面会见。你必要利用页面顶部的@Import指令导进Bin目次中的部件的名字空间。

<@ImportNamespace="MyCustomNamespace">
  全部分件缓存

  .NET框架组件2.0包括了大批的体现框架组件分歧部分的部件。这些部件都存储在全部分件缓存中,它是一个可供盘算机上一切使用程序(不是供特定的使用程序利用)利用的部件堆栈。框架组件中的几个部件会主动地供ASP.NET使用程序利用。你能够在使用程序的Web.config文件中注册分外的部件。

<configuration>
 <compilation>
  <assemblies>
   <addassembly="System.Data,Version=1.0.2411.0,Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
  </assemblies>
 </compilation>
</configuration>
  请注重,你仍是必需利用@Import指令,让独自的页面可使用这些部件。无论谁倒了对双方阵营的粉丝们也是有害无益。

小魔女 发表于 2015-1-25 16:02:46

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

爱飞 发表于 2015-2-8 19:51:02

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

小妖女 发表于 2015-2-26 00:14:10

比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。

admin 发表于 2015-3-8 10:44:24

同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。

仓酷云 发表于 2015-3-15 22:07:51

HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.

老尸 发表于 2015-3-22 06:08:15

关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
页: [1]
查看完整版本: ASP.NET网站制作之ASP.NET 2.0背景代码与内联代码的对照