整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

ASP 引用文件

ASP 引用文件

include 指令

通过使用 #include 指令,您可以在服务器执行 ASP 文件之前,把另一个 ASP 文件的内容插入到这个 ASP 文件中。

#include 指令用于创建函数、页眉、页脚或者其他多个页面上需要重复使用的元素等。


如何使用 #include 指令

这里有一个名为 "mypage.asp" 的文件:

<!DOCTYPE html>

<html>

<body>

<h3>Words of Wisdom:</h3>

<p><!--#include file="wisdom.inc"--></p>

<h3>The time is:</h3>

<p><!--#include file="time.inc"--></p>

</body>

</html>

这是 "wisdom.inc" 文件:

"One should never increase, beyond what is necessary,

the number of entities required to explain anything."

这是 "time.inc" 文件:

<%

Response.Write(Time)

%>

如果您在浏览器中查看源代码,它将如下所示:

<!DOCTYPE html>

<html>

<body>

<h3>Words of Wisdom:</h3>

<p>"One should never increase, beyond what is necessary,

the number of entities required to explain anything."</p>

<h3>The time is:</h3>

<p>11:33:42 AM</p>

</body>

</html>


引用文件的语法

如需在 ASP 页面中引用文件,请把 #include 指令放在注释标签中:

<!--#include virtual="somefilename"-->

or

<!--#include file="somefilename"-->

Virtual 关键词

请使用关键词 virtual 来指示以虚拟目录开始的路径。

如果一个名为 "header.inc" 的文件位于虚拟目录 /html 中,下面这行代码会插入 "header.inc" 文件中的内容:

<!-- #include virtual="/html/header.inc" -->

File 关键词

请使用关键词 file 来指示一个相对路径。相对路径是以含有引用文件的目录开始的。

如果您在 html 目录中有一个文件,且 "header.inc" 文件位于 html 头部,下面这行代码将在您的文件中插入 "header.inc" 文件中的内容:

<!-- #include file="headersheader.inc" -->

请注意被引用文件 (headersheader.inc) 的路径是相对于引用文件的。如果包含 #include 声明的文件不在 html 目录中,这个声明就不会生效。


提示和注释

在上面的一部分中,我们已经使用 ".inc" 来作为被被引用文件的文件扩展名。请注意:如果用户尝试直接浏览 INC 文件,这个文件中内容将会被显示出来。如果您的被引用文件中的内容包含机密的信息或者是您不想让任何用户看到的信息,那么最好还是使用 ".asp" 作为扩展名。ASP 文件中的源代码被编译后是不可见的。被引用的文件也可引用其他文件,同时一个 ASP 文件可以对同一个文件引用多次。

重要事项:在脚本执行前,被引用的文件就会被处理和插入。下面的脚本无法执行,这是由于 ASP 会在为变量赋值之前执行 #include 指令:

<%

fname="header.inc"

%>

<!--#include file="<%fname%>"-->

您不能在脚本分隔符之间包含文件引用。下面的脚本无法执行:

<%

For i=1 To n

<!--#include file="count.inc"-->

Next

%>

但是这段脚本可以执行:

<% For i=1 to n %>

<!--#include file="count.inc" -->

<% Next %>

SP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。

ASP.NET 支持三种不同的开发模式:

Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体)。

Web PagesMVCWeb Forms

MVC 编程模式

MVC 是三种 ASP.NET 编程模式中的一种。

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:

  • Model(模型)表示应用程序核心(比如数据库记录列表)。

  • View(视图)显示数据(数据库记录)。

  • Controller(控制器)处理输入(写入数据库记录)。

MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。


Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。

通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分。

通常视图是依据模型数据创建的。

Controller(控制器)是应用程序中处理用户交互的部分。

通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。

MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。


Web Forms 对比 MVC

MVC 编程模式是对传统 ASP.NET(Web Forms)的一种轻量级的替代方案。它是轻量级的、可测试性高的框架,同时整合了所有已有的 ASP.NET 特性,比如母版页、安全性和认证。


Visual Studio Express 2012/2010

Visual Studio Express 是 Microsoft Visual Studio 的免费版本。

Visual Studio Express 是为 MVC(和 Web Forms)量身定制的开发工具。

Visual Studio Express 包含:

  • MVC 和 Web Forms

  • 拖拽 Web 控件和 Web 组件

  • Web 服务器语言(Razor 使用 VB 或者 C#)

  • Web 服务器(IIS Express)

  • 数据库服务器(SQL Server Compact)

  • 完整的 Web 开发框架(ASP.NET)

如果您已经安装了 Visual Studio Express,您将从本教程中学到更多。

如果您想安装 Visual Studio Express,请点击下列链接中的一个:

Visual Web Developer 2012(Windows 7 或者 Windows 8)

Visual Web Developer 2010(Windows Vista 或者 XP)

MVC 模式定义 Web 应用程序

带有三个逻辑层:

业务层(模型逻辑)

显示层(视图逻辑)

输入控制(控制器逻辑)

在您首次安装完 Visual Studio Express 之后,您可以通过再次运行安装程序来安装补丁和服务包,只需要再次点击链接即可。

. .NET Core

.NET Framework发布至今已有十余年,.NET一直是Windows平台的封闭产品。虽然有Mono项目对.NET实现了平台移植,但毕竟不是微软“亲生”,Mono在一些功能实现上仍然不够完美。

随着2014年Xamarin和微软发起.NET基金会,微软在2014年11月开放.NET Core框架源代码。随后在.NET基金会的统一规划下诞生了.NET Core。

.NET Core早期被称为 .NET vNext或 .NET 5,直到2016年1月才正式命名为 .NET Core 1.0。2019年5月6日,微软再次介绍了.NET 5。我们会在后文中详细说明。

需要注意的是,虽然微软把 .NET Core作为.NET未来的发展方向,但 .NET Core和 .NET Framework仍然是两个独立的产品。.NET Framework也会继续被更新和维护。

2019年微软发布了 .NET技术的下一步发展规划,2020年微软会将.NET Core和 .NET Framework整合为.NET 5。

.NET Core与 .NET Framework的一大区别是,.NET Core是完全开源的,它托管在GitHub上,支持任何开发者向项目贡献代码,.NET Core不再仅支持Windows,还支持Linux、macOS等多种平台。

可以说 .NET Core是.NET Framework的新一代版本,或者说是其进化版本,是微软官方开发的第一个跨平台 (Windows、macOS和Linux) 的应用程序开发框架(Application Framework)。

.NET Core的开发目标是成为跨平台的.NET平台,为此 .NET Core会包含 .NET Framework的类库。但与 .NET Framework不同的是,.NET Core采用包 (Package)的管理方式,应用程序只需要获取需要的组件即可(不像 .NET Framework使用打包安装的方式),同时各个包亦有独立的版本线(Version Line),不再硬性要求应用程序跟随主线版本的更新而更新。

1.1 .NET Core的特点

.NET Core的核心是创新、开源和跨平台,可以说.NET Core就是一个用更少的时间做更多有趣的事情的跨平台开发框架。

.NET Core具有以下特点。

  • 跨平台。读者可以创建一个.NET Core应用程序,可分别在Windows、Linux和macOS上运行。
  • 统一性和兼容性。利用统一的.NET标准库,使用相同的代码兼容所有平台,并使用相同的语言和工具复用读者的技能,降低学习成本。
  • 命令行工具。它包括可用于本地开发和持续集成方案中的易于使用的命令行工具。
  • 现代化。多语言支持(C#、VB、F#)和现代化的设计结构,如泛型、语言集成查询(LINQ)和异步支持等。
  • 开源。.NET Core平台是开源的,它的运行库、库、编译器、语言和工具的源代码都在GitHub上开源,接受代码贡献,并且使用宽泛的MIT和Apache 2开源许可证。
  • .NET基金会官方支持。.NET Core由微软的.NET基金会创立后交付给社区独立运营,由基金会提供对 .NET Core的支持。

1.2 .NET Core 3.1

2016年6月27日,RedHat DevNation峰会宣布了 .NET Core & ASP .NET Core 1.0 RTM的发行。

截至本书截稿,.NET Core最新的版本为3.1.0,更新时间为2019年10月15日。

2. .NET Core与其他平台

.NET Core经常被拿来与其他平台做类比,尤其是它的源头 .NET Framework以及另一个相似性质的开源平台Mono。

2.1 .NET Core与.NET Framework

据微软的帮助文档说明,.NET Core和 .NET Framework是子集 (Subset) 与超集 (Superset) 的关系,.NET Core将会实现部分的 .NET Framework功能 (基本上是不含用户界面的部分),比如JIT(.NET Core采用RyuJIT)、垃圾收集器 (GC) 以及类型 (包含基本类型以及泛型类型等)。未来 .NET Framework和 .NET Core也会各自发展,但它们同时也使用彼此的功能,比如 .NET Compiler Platform与RyuJIT等技术,最终会在2020年合并。

2.2 .NET Core与Mono

Mono是另一个历史悠久的.NET跨平台开源版本,基本上并不隶属微软官方,而是由社区的力量所主导,自成一个生态系统,也开发出了像Xamarin这样的跨平台.NET移动应用。.NET Core与Mono未来会是合作的关系,Mono仍会维持由社区力量主导的维护与发展,而.NET Core则会以官方角度来发展,两者也会一起进行彼此功能上的补充。

2.3 .NET Core与ASP .NET Core

其实一开始.NET Core与ASP .NET Core并不是主从关系 ,在ASP.NET Core的开发初期 (ASP.NET Next),.NET Core还没有“起跑”。ASP.NET Core当时有自己的运行器与工具,被称为Project K,后来改为.NET运行环境(.NET Execution Environment, DNX)。DNX本身就具有可独立运行的能力,不需要依赖 .NET Core运行,但是这样会形成 .NET Core和ASP.NET Core成为“双头马车”的现象。在 .NET Core逐渐成熟之后,微软也决定要将这两个各自独立发展的产品线集成在一起,因此DNX也改用 .NET Core运行器而终止开发,DNX的功能也由 .NET Core以及旗下的 .NET命令行界面(Command-Line Interface,CLI)接替提供,集成后的版本在1.0 RC2的时候就发布了。

3. ASP .NET的发展历程

严谨来说,ASP.NET本不应该放在此处与以上3个框架平行,但是因为ASP.NET太出名了,因此我觉得有必要厘清它们的关系。

ASP.NET最初是.NET Framework框架中的一个组件,用于开发Web应用程序,它是ASP技术的改进版本。需要注意的是,ASP与ASP.NET是完全不同的两个产品。同理,VB和VB.NET也是完全不同的两个产品。ASP和VB都是20世纪的技术,有些“古老”,在此不再赘述,但请务必注意区分它们。

早期的ASP.NET提供一种叫作WebForm的方式用于呈现网页,它可以让网页开发变得像WinForm开发一样简单且可视化。但随着Web技术的飞速发展,WebForm由于其低效、封闭和难以定制的缺陷已经逐渐淡出历史舞台。

随着2009年 .NET Framework 3.5的发布,微软提供了全新的ASP.NET网页呈现方式,称为ASP.NET MVC Framework。这套框架遵循MVC设计模式思想,将视图和业务逻辑进行了很好的分离,并且大幅提升了性能和可定制性。

经过多年发展,目前已经更新到了ASP.NET MVC 6,完全采用.NET Core的项目结构,支持.NET Framework、.NET Core和Mono多种运行时。在ASP.NET MVC的未来演进路上,ASP.NET MVC 6将不再存在,而是被称为ASP.NET MVC Core 1.0。

图2.1所示为MVC版本演进的历程。

图2.1

推荐一本最适合入门ASP.NET Core的书:《深入浅出 ASP.NET Core》

如果你想学习ASP.NET Core,那么推荐一本最适合入门ASP.NET Core的书:《深入浅出 ASP.NET Core》


内容简介

本书是一本系统地介绍http://ASP.NET Core、Entity Framework Core以及http://ASP.NET Core Identity框架技术的入门图书,旨在帮助读者循序渐进地了解和掌握http://ASP.NET Core。本书使用http://ASP.NET Core从零开始搭建一个实际的项目。从基本的控制台应用程序开始,介绍http://ASP.NET Core基本的启动流程,涵盖http://ASP.NET Core框架中各个技术的实际应用。同时,本书也会介绍一些http://ASP.NET Core的高级概念。在本书中,我们会开发一个学校管理系统,其中包含清晰的操作步骤和大量的实际代码,以帮助读者学以致用,将http://ASP.NET Core的知识运用到实际的项目开发当中,最后我们会将开发的项目部署到生产环境中。通过阅读本书,读者将掌握使用http://ASP.NET Core开发Web应用程序的方法,并能够在对新项目进行技术选型时做出战略决策。

本书适合有一定C# 编程经验和HTML、JavaScript基础,并对http://ASP.NET Core感兴趣的读者阅读,也可以作为高等院校相关专业的教学用书和培训学校的教材。

适用对象

本书适合有一定的C# 编程经验和HTML、 JavaScript基础,并对http://ASP.NET Core感兴趣的开发者,包括以下对象。

  • .NET工程师。
  • 计算机相关专业的 .NET或网页设计方向的在校大学生。
  • 从其他面向对象语言转向学习 .NET编程的开发者。

本书的结构

本书分为以下5个部分。

第一部分(第1章~第9章)介绍http://ASP.NET Core的基础知识,比如中间件、环境变量和配置信息等,简单讲解完整的http://ASP.NET Core的项目结构。

第二部分(第10章~第20章)介绍并运用MVC模型及路由中间件,结合http://ASP.NET Core提供的TagHelper等新特性,完成对学生信息的增删改查、图片上传;介绍简单的仓储模式与依赖注入的关系,为搭建管理系统做好基础准备。

第三部分(第21章~第29章) 通过搭建一个基础管理系统,分析及处理实际业务场景中的常见问题,比如身份验证和授权、客户端及服务端验证、配置信息、 EF Core数据访问、数据分页和统一异常处理等。

第四部分(第30章~第38章) 介绍架构的作用以及意义,根据架构的思想应用设计模式,结合C#泛型特性优化仓储模式,建立多层体系架构,通过并发、 LINQ及活用Entity Framework Core中的常用功能完成一个类似领域驱动设计的项目。

第五部分(第39章~第42章)介绍简单的Web API入门、部署http://ASP.NET Core项目以及从ASP .NET Core 2.2到http://ASP.NET Core 3.1的版本升级过程