ASP.NET 简介
ASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。
ASP.NET具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。在代码撰写方面特色是将页面逻辑和业务逻辑分开,它分离程序代码与显示的内容,让丰富多彩的网页更容易撰写。同时使程序代码看起来更洁净、更简单。
一、软件简介
1.ASP.NET 是开源,跨平台,高性能,轻量级的 Web 应用构建框架,使用 .NET 构建 Web 应用。
2.ASP.NET 是一个开发框架,用于通过 HTML、CSS、JavaScript 以及服务器脚本来构建网页和网站。
3.ASP.NET 支持三种开发模式:
Web Pages | MVC | Web Forms |
单页面模型 | 模型视图控制器 | 事件驱动模型 |
Web Pages
最简单的 ASP.NET 模型。
类似 PHP 和 ASP。
内置了用于数据库、视频、社交媒体等的模板和帮助器。
MVC
MVC 将 web 应用程序分为三种不同的组件:
针对数据的模型
针对现实的视图
针对输入的控制器
Web Forms
传统的 ASP.NET 事件驱动开发模型。
添加了服务器控件、服务器事件以及服务器代码的网页。
二、语言特点
多语言支持
多语言支持是ASP.NET的重要新特性之一,主要表现在所支持的编程语言种类多和单个语言功能强两个方面。首先,ASP.NET为Web应用提供一种类似于Java编译技术的“二次编译技术”——中间语言MSIL(Microsoft Intermediate Language)执行架构,先将ASP.NET应用编译成MSIL,再将MSIL编译成机器语言执行。这样,只要能被编译成MSIL的编程语言都可以用来编写ASP.NET应用。
其次,ASP.NET所支持的编程语言是指这种语言的功能全集(而不是子集),所以,ASP.NET中每种编程语言的功能要比ASP中使用的VB script和Java Script更为强大。
增强的性能
在ASP.NET中,页面代码是被编译执行的,它利用提前绑定、即时编译、本地优化和缓存服务来提高性能。当第一次请求一个页面时,cLR对页面程序代码和页面自身进行编译,并在高速缓存cache中保存编译结果的副本。当第二次请求该页面时,就直接使用cache中的结果(无需再次编译)。这就大大提高了页面的处理性能。
类和名空间
ASP.NET包含一整套有用的类和名空间(Namespaces)。名空间被用做一种有组织的机制——一种表示可用于其他程序和应用的程序组件的方法。名空间包含类。和类库一样,名空间可以使Web应用程序的编写变得更加容易。HtmlAnchor、HtmlContrl以及HtmlForm是ASP.NET中的几个类,它们被包含System.web.UI.HtmlControl空间中。
服务器控件
ASP.NET提供了许多功能强大的服务器控件,这大大简化了web页面的创建任务。这些服务器控件提供从显示、日历、表格到用户输入验证等通用功能,它们自动维护其选择状态,并允许服务器端代码访问和调用其属性、方法和事件。因此,服务器控件提供了一个清晰的编程模型,使得Web应用的开发变得简单、容易。
支持web服务
ASP.NET提供了强大的、标准化的web服务支持能力,通过使用Internet标准,可以将一个web服务和其他web服务集成在一起。web服务提供了构建分布式web应用的基本模块。ASP.NET允许使用和创建web服务。
更高的安全性
与ASP相比,在支持常规windows身份验证方法的基础上,ASP.NET还提供了Passport和cookie两种不同类型的登录和身份验证方法。同时,ASP.NET还采用了基于角色的安全模式,为不同角色的用户指定不同的安全授权。另一方面,ASP.NET还使得创建基于页面的身份验证工作变得更为简单。
良好的可伸缩性
在ASP.NET中,允许使用跨服务器会话(Cross - Server Sessions),其会话状态可以被另一台机器或另一个数据库上的其他的进程所维护。随着信息处理和传输流量的增加,可以为系统添加更多的Web服务器。
无Cookie会话
即使在浏览器不允许使用cookie的情况下,ASP.NET仍然能够使用户使用会话状态。与带cookie的会话不同,无cookie会话是通过URL将会话标识(SessionID)传递到ASP.NET页面的。
三、语言基础
- Request对象
- Response对象
- Server对象
- Application对象
- Session对象
- Cookie对象
Request
Request封装了客户端请求信息。Request的常见属性如下:
属性名 |
值类型 |
说明 |
ApplicationPath |
String |
获取请求的资源在网站上的根路径 |
ContentEncoding |
Encoding |
设置请求对象的编码 |
Cookies |
HttpCookieCollection |
客户端发送到服务器的Cookie集合 |
QueryString |
NameValueCollection |
当前请求的查询字符串集合 |
UrlReferrer |
Uri |
获取用户由哪个url跳转到当前页面 |
Response
Response代表了服务器响应对象。每次客户端发出一个请求的时候,服务器就会用一个响应对象来处理这个请求,处理完这个请求之后,服务器就会销毁这个相应对象,以便继续接受其它客服端请求。
Response常用属性如下:
属性名 |
值类型 |
说明 |
Charset |
string |
表示输出流的所使用的字符集 |
ContentEncoding |
Encoding |
设置输出流的编码 |
ContentLength |
Int |
输出流的字节大小 |
ContentType |
string |
输出流的HTTP MIME类型 |
Cookies |
HttpCookieCollection |
服务器发送到客户端的Cookie集合 |
Output |
TextWriter |
服务器响应对象的字符输出流 |
RedirectLocation |
string |
将当前请求重定向 |
Response常用方法
属性名 |
返回值类型 |
说明 |
AppendCookie |
void |
向响应对象的Cookie集合中增加一个Cookie |
Clear |
void |
清空缓冲区中的所有内容输出 |
Close |
void |
关闭当前服务器到客户端的连接 |
End |
void |
终止响应,并且将缓冲区中的输出发送到客户端 |
Redirect |
void |
重定向当前请求 |
Server
Server对象是用于获取服务器的相关信息的对象。它常用方法如下:
属性名 |
返回值类型 |
说明 |
Execute |
void |
执行指定的资源,并且在执行完之后再执行本页的代码 |
HtmlDecode |
string |
消除对特殊字符串编码的影响 |
HtmlEncode |
string |
对特殊字符串进行编码 |
MapPath |
string |
获取指定相对路径在服务器上的无力路径 |
Transfer |
void |
停止执行当前程序,执行指定的资源 |
UrlDecode |
string |
对路径字符串进行解码 |
UrlEncode |
string |
对路径字符串进行编码 |
Session对象
内置对象Session负责存储、读取和改变一个特定用户的会话信息,对于每个用户的每次访问Session对象都是唯一的。
属性 | 说明 |
SessionID | 表示一个会话的存在,当用户与服务器建立连接时服务器就自动给用户分配一个SessionID,SessionID可以区分不同的会话(Session) |
TimeOut | 表示在一个会话结束之前会等待用户没有任何活动的最大时间,单位是分钟。 |
方法 | 说明 |
Add(name,value) | 新增名字为name,值为value的Session变量 |
Clear | 清除所有Session变量 |
RemoveAll | 清除所有Session变量 |
Remove(name) | 清除名字为name的Session变量 |
RemoveAt(index) | 删除索引为index的Session变量 |
Abandon | 调用该方法用于消除用户的Session对象并释放其所占的资源。 |
Cookie对象
在Web程序设计中,它表示一个长度不超过4k的文本文件,这个文件在用户的硬盘上,可以由Web浏览器进行访问。
Application对象
是一个集合对象,并在整个ASP.NET网站内可用,不同的用户在不同的时间都可以访问Application对象的变量。由于它是一个内置对象,所以使用它的时候与使用Response对象和Request对象类似,不需要进行任何对象的实例化,就可以直接使用。
属性 | 说明 |
Count | 取得Application对象变量的数量 |
方法 | 说明 |
Get | 使用索引或变量名称获取变量的值 |
GetKey | 使用索引获取对象变量的值 |
Add(name,value) | 新增一个名称为name,值为value的Application对象变量 |
Set(name,value) | 更新名为name的Application对象变量的值 |
Clear | 清除全部的Application对象变量 |
Remove(name) | 删除名称为name的Application对象变量 |
Lock | 锁定所有Application对象变量 |
UnLock | 解除锁定所有Application对象变量 |
下面是Session、Cookie和Application的区别:
名称 |
使用范围 |
存储位置 |
存放数据类型 |
生命周期 |
Session |
特定用户 |
服务器 |
Object,也就是任意类型 |
有,可以自行设置 |
Cookie |
特定用户 |
客户端 |
String,也就值字符串 |
可以自行设置 |
Application |
所有用户 |
服务器 |
Object,也就是任意类型 |
无 |
ASP.NET 简介相关推荐
- 【ASP.NET】服务器控件大演练与实例分析
asp服务器控件 简介(特点):保存视图状态,公共对象模型,简单,用户定制,创建浏览器特定HTML web服务器控件:文本控件(2个) 1) TextBox控件 <asp:TextBox ID= ...
- 基于asp.net的网上书店商城设计与实现
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 目 录 前言 1 第1章 系统概述 2 第1.1节 ASP.NET简介 2 ...
- ASP.NETWebPage应用深入探讨
ASP.NETWebPage应用深入探讨 注:[转载] Author: goudan &;nbspFrom:Internet 一.服务器脚本基础介绍 首先,我们先复习一下Web服务器页面的基本 ...
- 第一章节 ASP.NET Web应用程序基础(二)
1.ASP.NET简介 一.ASP.NET支持三种开发模式 1.Web Pages 2.Web Forms 3.MVC 二.页面文件结构分析 一般名为default.aspx是项目默认首页,也可以使用 ...
- 在asp中实现由动态网页转变为静态网页
在asp中实现由动态网页转变为静态网页可以使用模板生成,通过FsoFile进行操作根据模板生成静态网页,比较适合产品和新闻两个板块转变!具体代码实现: 1.********************** ...
- C#毕设asp.net江山旅游网站管理系统(论文+源码)
1 项目简介 Hi,各位同学好呀,这里是卡莫! 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品,[C#毕设asp.net江山旅游网站管理系统(论文+源码)] 学姐根据实现的难度和等级对项 ...
- asp毕业设计—— 基于asp+access的论坛网站设计与实现(毕业论文+程序源码)——论坛网站
基于asp+access的论坛网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的论坛网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录: 基于 ...
- ASP.NET基础与入门:WebForm,事件驱动编程,Page类
注:因为这个暑假做了一个ASP.NET的项目(WebForms模式),暑假期间太忙没有来得及整理,现在统一梳理下知识(有些我认为可以跟HTML共通的就没记) 推荐几个学习ASP.NET的网站: W3S ...
- asp毕业设计—— 基于asp+access的软件信息发布系统设计与实现(毕业论文+程序源码)——软件信息发布系统
基于asp+access的软件信息发布系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的软件信息发布系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需 ...
最新文章
- 连接远程服务器CredSSP加密Oracle修正报错解决办法
- not optimal php,php环境配置 配置
- Chapter3_操作符_方法调用中的别名问题
- SAP ABAP实用技巧介绍系列之Debug XSLT transformation
- html触摸电脑ui系统,如何用高级UI制作触摸系统界面
- linux lsiutil raid创建,使用MegaCli工具查看状态
- CentOs6.5安装使用数据恢复软件extundelete
- php如何防止网站被攻击,防止网站被攻击的办法
- 阶段3 2.Spring_10.Spring中事务控制_8 spring基于纯注解的声明式事务控制
- 复合函数求导经典例题_复合函数求导公式大全_复合函数求导法则_复合函数求导经典例题_复合函数求导导学案...
- Rust 调用标准C接口的自定义c/c++库,FFI详解
- 2021免费大容量OneDrive + office 365桌面版 (a1 a1p)
- 爱琴海的伤感空间日志发布:七月的雨,落得太敷衍
- WSN无线传感网络--网络连通率测试
- 一款新型的maphack
- Ringly智能戒指:能在手机收到消息时发光
- 如何使用Github学生包申请JET BRAINS
- 服装类APP开发解决痛点
- 淘宝高性能可伸缩平台架构简介
- java面向对象三大特性理解