.NET学习笔记

从今天开始学习.NET,选择C#作为实验工具。学习资料均从网上DOWNLOAD,经过挑选后,逐一学习。

1)了解.NET架构;

2)配置.NET运行环境;

3)C#语法;

4)常用的.NET对象;

5)Server端控件;

6)数据库访问技术及ADO.NET;

7).NET的application对象;

8)文件的操作;

9)XML及Webservice;

10).NET错误处理及调试;

11).NET的安全性。

 

名词:

解释与编译

ASP.NET对文件进行语法分析,并编译为程序集,而ASP却是将服务器端代码交由解释器来处理(VBSCRIPT&JSCRIPT)。ASP对网页中的文本进行线性解释,提取不是服务器端的内容作为回应,而服务器端内容先有解释器执行返回客户端,从而决定了ASP的执行效率比预编译低。而对于ASP.NET,页面代码始终被编译为.NET的类,并保存于程序中,所以只要第一访问了网页,以后生成该网页时只需执行编译代码即可。

编译模型的优点:

1)效率和性能高,以上已经提及;

2)将网页编译为类,便于调试;

3)开发语言不受限制。

System.Web.UI.Page&类

在默认情况下,每个.aspx网页从page基类派生而来。

 由于现在网页在一个类中进行定义,故而可以指定字段(field)和方法(method)的保护等级,使用字段初始化值(field initializer),以及所有其他需要添加到一个类中的东两。这一点很重要,因为这两个地方所放置的代码,将被放入生成的类定义之中,而这两个地方可是截然不同的。位于服务器端脚本块(<script runat=server></script))之内的代码,可以直接放入类定义之中;而位于服务器端脚本标记(<%%>)之内的代码,放入类的一个函数主体之中;在生成网页时,就会调用该函数。

System.Web.UI.Page类中的重要成员
====================
public class Page:TemplateControl,IHttpHandler
{
//State Management
public HttpAplicationState Application {get;}
public virtual HttpSessionState Session {get;}
public Cache Cache {get;}
//Instrinsics
public HttpRequest Request {get;}
public HttpResponse Response {get;}
//Client information
public ClientTarget ClientTarget {get;set;}
public IPincipal User {get;}
//Core
public UserControl LoadControl )string virtualPath);
public virtual ControlCollection Controls {get;}
public override string ID {get;set;}
public bool IsPostBack{get;}
Protected void
RenderControl (HtmlTextWriter writer)
//...
}

代码隐藏

作用:将编程逻辑与静态布局分离开来。
说明:代码隐藏是一种创建中间基类(介于page基类和机器根据.aspx文件生成的类之间)的技术。中间基类直接从page类派生过来,而根据.aspx文件生成的类直接派生与中间基类,而不是直接派生于page类。使用之中技术,可以想代码隐藏类中添加字段、方法和函数,并可以容那些根据.aspx文件创建的类继承这些特性,从而可以从.aspx文件中移出大量的代码。这种技术以来于为自动生成的类指定另一种基类的能力,可以由page指令中的inherist属性设定。

示例:

<!--Codebinhind.aspx-->
<%@ page Language="c#"
Inherits="EssentialAspDotNet.Architecture.SamplePage"%>
<html><body>
<h2>ASPX CLASS</h2>
<ul>
<%WriteArray%>
</ul>
</body></html>
//SampleCodeBinhand.cs

using System;
using System.web;
using System.Web.UI;
using System.Collections;
namespace EssentialAspDotNet.Architecture
{
public class SaplePage:Page
{
  private ArrayList_values=new ArrayList();
  public SamplePage()
  {
    _values.Add("v1");
    _values.Add("v2");
    _values.Add("v3");
    _values.Add("v4");
   }
   protected void WriteArray()
   {
    for (int i=0;i<_values.Count;i++)
        Response.Output.Write("<li>{0}</li>",_values[i]);
    }
  }
}

另一种预编译代码隐藏文件的方法是使用src属性。
任何被page指令的src属性引用的文件都被编译为一个单独的程序集,并在编译网页时,把它加入引用的程序集代码。使用src的好处:只要通过替换文件就可以更新代码隐藏程序集文件,并在下一个请求时从新编译引用文件,而不必更新/bin目录下的物理程序集。

示例:

<!--CodeBinhind.aspx-->
<%@ Page Language="C#" src="SampleCodeBehind.cs"
Inherits="EssentialAspDotNet.Architecture.SamplePage"%>
<!--....-->

事件处理

page基类定义了4个事件,由control基类继承而来,Init,Load,PreRender,Unload.

示例:
Public Class Page:TemplateControl,IHttpHandler
{
//事件
public event EventHandler Init;
public event EventHandler load;
public event EventHandler PreRender;
public event EventHandler Unload;
//虚函数
protected virtual void OnInit(EventArgs e);
Protected virtual void OnLoad(EventArgs e);
Protected virtual void OnPreRender(EventArgs e);
Protected virtual void OnUnload(EventArgs e);
}

Init事件发生在任何服务器端状态还原完成之前;Load事件发生在服务器端状态还
原完成之后,但在激发服务器端事件之前;PreRender事件发生在激发所有的服务器端
事件之后,们在生成任何东西之前(即在返回HTML之前);unload事件发生在网页生
成完成之后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值