ASP.NET的应用:网络应用程序开发
学习ASP.NET的优势:
- 易学
- 设计人员和后台代码人员专注于自己的工作(原因:ASP.NET将HTML页面代码和脚本代码分离)
- 高效地创建大规模的网络应用程序
背景:自从互联网的出现,各种网络开发技术层出不穷。软件行业中,比较著名的技术有Java阵营的Java Web和.NET阵营的ASP.NET。相比于Java Web,ASP.NET的结构不紊乱,具有良好的组织结构。
动态网页
动态网页是针对于静态网页而言的,动态网页是ASP.NET的实现基础。使用Java技术实现动态网页可以通过JSP或者Servlet。
动态网页的优势:提供用户和网络的交互功能。
动态网页的特点:有后台。通过前台用户输入的信息,后台处理代码操作数据库,再返回给前台用户结果。
在这里之所以提及动态网页,是因为后面学习的ASP.NET网页的运行原理和动态网页相似,但是两者并不是完全相同,ASP.NET网页基于.NET Framework框架编译执行。
.NET Framework框架
.NET Framework主要分为两大部分,即公共语言运行时和基础类库。这两个部分让ASP.NET网站在编译模式下执行,而不是像ASP那样执行。.NET Framework框架类似于Java框架,但是.NET Framework的编译执行技术加快了网页浏览的速度。
为什么基于.NET Framework框架的网站比Java Web网站或者ASP网站快呢?
因为ASP.NET网站在.NET Framework中被编译成一种中间语言(Intermediate Language,简称IL)
.NET Framework中的中间语言IL的优势:使用中间语言的执行模式,就可以使用各种.NET平台支持的语言开发ASP.NET网站。
Web服务机制
为什么使用Web服务机制?
只有提供Web服务机制,才能使用各种Web服务器进行访问。
最常见的Web服务平台是微软公司的互联网信息服务(Internet Information System,IIS)和Apache。因为IIS和ASP.NET都是微软进行开发的,所以IIS和ASP.NET配合地非常默契。Apache平台主要为Java提供Web平台,熟悉Java Web开发的一定对Tomcat比较熟悉。Apache其实对ASP.NET也进行了支持,但是选择ASP.NET开发网站的开发人员大部分还是选择IIS做他们的Web服务。
Web服务必须遵循一定的网页交互协议。如比较常见的HTTP(超文本传输协议)和FTP协议(文件交换协议)。只有遵循了HTTP协议,才能使用Web浏览器对Web服务进行访问。
Web浏览器通过HTTP协议与Web服务交互,我们选择IIS作为Web服务,IIS又与ASP.NET应用交互。
如何评价Web服务的好坏?
- 标准的调用方式(标准的调用方式可以减少调用错误的次数,从而提高服务器的运行效率)
- 简单的协议
- 兼容各种平台
- 多用户连接时,保持良好、稳定的性能
- 具有很强的安全性能
因为IIS和ASP.NET直接交互,所以,用ASP.NET技术开发的Web服务程序是ASP.NET网站稳定运行的保证。
ASP.NET程序结构
目前大多数ASP.NET网站都使用三层B/S架构开发,使用这种开发主要分为3个部分。
- 表现层(将业务逻辑层处理的结果显示出来的程序代码)
- 业务逻辑层(实现各种业务需求的程序代码)
- 数据逻辑层(与数据库交互的程序代码)
以查询为例,用户通过表现层输入查询条件,传输到业务逻辑层统计、分析,再传输到数据操作层取出数据,返回到业务逻辑层,再返回到表现层,显示给用户。
ASP.NET与ASP
ASP.NET的前身是ASP,即Active Server Page,动态服务器网页。ASP.NET相比于ASP,是全面的升级。升级的主要内容是拥有了.NET Framework的加持。
ASP.NET相比于ASP,有更多的优势,具体有以下表现:
- 编译执行的效率更高(.NET Framework需要编译成中间语言)
- 多种语言加持(.NET Framework需要编译成中间语言)
- 丰富的类库和组件(.NET Framework提供了更多的类库和组件)
- 页面代码和处理代码分离(三层架构的设计思想)
ASP.NET另一方面,也兼容ASP,所以,可以在ASP.NET网站中,可以随意编写ASP的代码。、
ASP.NET与JSP
JSP在业界受到广泛支持,所以,业界有许多支持的框架,如Java开发工程师熟悉的Structs、SpringMVC等。但使用ASP.NET开发的框架只有.NET Framework。
但ASP.NET相比于JSP,有以下几种特点:
- 单一的支持架构
- 更快的运行速度。JSP的解释性和Servlet的响应式相比于.NET Framework的编译执行方式和HTTP对象响应模式,速度比较慢。
- 较强的数据库对象。ASP.NET的ADO.NET比JDBC具有更强大的功能和可拓展性
- 广泛的语言支持
- 丰富的类库
- 支持服务器集群
- 优秀的编程IDE加持
ASP.NET相关的技术
脚本语言、XML语言和一门.NET编程语言、LINQ(语言集成查询,Language INtegrated Query)
常见面试题
- ASP.NET和ASP的异同点?
- 相同点:都是网络技术,而不是开发语言
- 不同点:ASP.NET是基于.NET框架的网络应用技术,而ASP仅仅是包含VBScript和一些微软ActiveX插件的早期网络技术。ASP.NET可以通过Virtual Studio提供的开发工具和控件,可以快速开发各种类型的网络应用程序
- 简述.NET的结构和工作原理?
- 结构:.NET封装了常见的类库、提供了一个公共语言运行时引擎(类似于Java中的JDK提供的类库和JVM运行环境)
- 工作原理:.NET支持语言编译成中间语言IL,IL通过JIT编译成机器码由机器执行
- ASP.NET开发需要了解哪些网络技术?
- HTML界面标签组件(界面显示)
- JavaScript脚本(实现界面动态效果)
环境配置
环境:
- Web服务:IIS
- 开发IDE:Virtual Studio
- 框架环境:.NET Framework
使用Virtual Studio创建第一个网站。
常见面试题
- IIS解决不能运行ASP.NET的方法?
- 概括SQL Server、IIS和ASP.NET的安全问题?