一、.NET 体系结构
1、基本概念
1.1、专业名词
.NET Framework:包含CTS(公共类型系统)、CLR(公共语言运行库)
CIL:Common Intermediate Language 通用中间语言
JIT:Just-In-Time 编译器
CLR:Common Language Runtime 公共语言运行库
FLC:.NET Framework Class Library .NET框架类库
1.2、首次编译
C#程序编译为CIL,存储到程序集中
程序集包括可执行的应用程序文件(exe)和其他应用程序使用的库(dll)。
1.3、二次编译
在执行应用程序时,JIT把CIL编译为本机代码
程序集经过二次编译为本机代码
1.4、CLR环境运行本机代码
CLR环境运行本机代码
2、 .NET体系架构
ASP.NET:是一种WEB开发框架技术
.NET:是一个平台
C#:是一个基于.NET的开发语言
3、C# 三层架构
二、根据实际项目理解.NET的分层架构
1、工程结构
1.1、设置启动项目
1.2、启动项目服务器设置
1.3、页面请求
ASP.NET中通常将页面和代码分离(前置页面、后置代码),燃气表项目通过上面可以知道,项目启动时会首先加载Default.aspx页面。Default.aspx页面访问时会自动执行后置代码的Page_load方法
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SunMeter.Web.Main.Default" EnableSessionState="true"%>
protected void Page_Load(object sender, EventArgs e) { try { if (Session["username"] == null || Session["username"].ToString() == "") { Response.Write("<script language='javascript' defer>this.parent.parent.location.href='login.aspx';</script>"); return; ........ } } }
aspx文件是前置代码,cs是对应的后置代码,负责处理aspx中<%%>和runat="server"的内容,由CodeBehind属性绑定,Inherits定义aspx页面所要继承的父类的名称,因为aspx会单独生成一个类,不和后台代码重合。
上面代码可以看出,访问Default.aspx时会重定向到login.aspx页面,同样的方式会接着执行login.aspx.cs的Page_Load方法。并生成html返回给客户端,所以服务器对aspx的处理就是渲染html的过程。
aspx请求过程