作者 :Erik Reitan
本教程系列将介绍如何使用 ASP.NET 4.5 和 Microsoft Visual Studio Express 2013 for Web 生成 ASP.NET Web 窗体应用程序。 Visual Studio 2013 包含 C# 源代码的项目 随本教程系列一起提供。
在本教程中,将在 Visual Studio 中创建、查看和运行默认项目,以便熟悉 ASP.NET 的功能。 此外,你将查看 Visual Studio 环境。
你将了解的内容:
- 如何创建新的 Web 窗体项目。
- Web 表单项目的文件结构。
- 如何在 Visual Studio 中运行项目。
- 默认 Web 窗体应用程序的不同功能。
- 有关如何使用 Visual Studio 环境的一些基础知识。
创建项目
打开 Visual Studio。
从 Visual Studio 中的“文件”菜单中选择“新建项目”。
选择左侧的 模板 ->Visual C# ->Web 模板组。
在中心列中选择 ASP.NET Web 应用程序 模板。
本教程系列使用 .NET Framework 4.5.2。将项目 命名为 WingtipToys ,然后选择“ 确定 ”按钮。
注释
本教程系列中项目的名称为 WingtipToys。 建议使用此 确切 的项目名称,以便整个教程系列中提供的代码按预期运行。
单击“ 更改身份验证 ”按钮。 选择 “单个用户帐户 ”,然后单击“ 确定 ”按钮。
选择 Web 窗体 模板,然后单击“ 确定 ”按钮。
创建项目需要一些时间。 准备就绪后,打开 Default.aspx 页。
可以通过选择中心窗口底部的选项在 “设计 ”视图和 “源 ”视图之间进行切换。 设计 视图使用近 WYSIWYG 视图显示 ASP.NET 网页、母版页、内容页、HTML 页和用户控件。 源 视图显示网页的 HTML 标记,你可以对其进行编辑。
小窍门
了解 ASP.NET 框架
ASP.NET Web 窗体使你能够使用熟悉的拖放式事件驱动模型生成动态网站。 设计图面和数百个控件和组件使你可以通过数据访问快速构建复杂的功能强大的 UI 驱动站点。 Wingtip Toy Store 基于 ASP.NET Web 窗体,但本教程系列中学到的许多概念都适用于所有 ASP.NET。
ASP.NET 提供四个主要开发框架:
-
ASP.NET Web 窗体
Web 窗体框架旨在为喜好宣告式和控件驱动的编程风格的开发人员而设计,例如微软的 Windows 窗体(WinForms)、WPF/XAML/Silverlight。 它提供 WYSIWYG 设计器驱动的开发模型,因此,它深受寻求快速应用程序开发(RAD)环境的开发人员的欢迎。 如果你不熟悉 Web 编程,并且熟悉传统的 Microsoft RAD 客户端开发工具(例如 Visual Basic 和 Visual C#),则可以快速构建 Web 应用程序,而无需在 HTML 和 JavaScript 中体验。 -
ASP.NET MVC
ASP.NET MVC 面向对模式和原则感兴趣的开发人员,如体验驱动开发、关注点分离、控制反转(IoC)和依赖项注入(DI)。 此框架鼓励将 Web 应用程序的业务逻辑层与其表示层分离。 -
ASP.NET 网页
ASP.NET 网页旨在吸引希望像 PHP 一样进行简单 Web 开发的开发人员。 在网页模型中,创建 HTML 页,然后将基于服务器的代码添加到页面,以便动态控制标记的呈现方式。 网页专用于轻型框架,对于了解 HTML 但可能没有广泛的编程体验(例如学生或业余爱好者)的人来说,网页是 ASP.NET 最简单的入口点。 对于了解 PHP 或类似框架的 Web 开发人员开始使用 ASP.NET 也是一种好方法。 -
ASP.NET 单页应用程序
ASP.NET 单页应用程序(SPA)可帮助你生成应用程序,这些应用程序包括使用 HTML 5、CSS 3 和 JavaScript 进行重要的客户端交互。 ASP.NET 和 Web 工具 2012.2 更新提供了一个新模板,用于使用 knockout.js 和 ASP.NET Web API 生成单页应用程序。 除了新的 SPA 模板,新的社区创建的 SPA 模板也可供下载。
除了四个主要开发框架之外,ASP.NET 还提供其他技术,这些技术对于了解和熟悉非常重要,但本教程系列未介绍:
- ASP.NET Web API - 用于构建访问各种客户端(包括浏览器和移动设备)的 HTTP 服务的框架。
- ASP.NET SignalR - 使开发实时 Web 功能变得轻松的库。
审查项目
在 Visual Studio 中, “解决方案资源管理器” 窗口允许管理项目的文件。 让我们来看看在解决方案资源管理器中已添加到您应用程序的文件夹。 Web 应用程序模板添加基本文件夹结构:
Visual Studio 会为项目创建一些初始文件夹和文件。 本教程稍后将使用的第一个文件如下:
| File | Purpose |
|---|---|
| Default.aspx | 通常在浏览器中运行应用程序时显示的第一页。 |
| Site.Master | 一个页面,可用于创建一致的布局,并为应用程序中的页面使用标准行为。 |
| Global.asax | 一个可选文件,其中包含用于响应 ASP.NET 或 HTTP 模块引发的应用程序级别和会话级别事件的代码。 |
| Web.config | 应用程序的配置数据。 |
运行默认 Web 应用程序
默认 Web 应用程序基于内置功能和支持提供丰富的体验。 无需对默认 Web 窗体项目进行任何更改,应用程序即可在本地 Web 浏览器中运行。
在 Visual Studio 中按 F5 键。
应用程序将在 Web 浏览器中生成并显示。
完成查看正在运行的应用程序后,关闭浏览器窗口。
此默认 Web 应用程序中有三个主页: Default.aspx (主页)、 About.aspx和 Contact.aspx。 可以从顶部导航栏访问其中每个页面。 帐户文件夹中还包含两个附加页面:Register.aspx页和Login.aspx页。 这两个页面允许你使用 ASP.NET 的成员身份功能来创建、存储和验证用户凭据。
ASP.NET Web 窗体背景信息
ASP.NET Web 窗体是基于Microsoft ASP.NET 技术的页面,其中服务器上运行的代码动态生成浏览器或客户端设备的网页输出。 ASP.NET Web 窗体页面会自动为样式、布局等功能呈现与浏览器兼容的正确 HTML。 Web 窗体与 .NET 公共语言运行时支持的任何语言(如 Microsoft Visual Basic 和 Microsoft Visual C#)兼容。 此外,Web 窗体基于 Microsoft .NET Framework 构建,它提供托管环境、类型安全性和继承等优势。
当 ASP.NET Web 窗体页面运行时,该页将经历一个生命周期,在该生命周期中执行一系列处理步骤。 这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码和呈现。 当你更熟悉 ASP.NET Web 窗体的强大功能时,了解 ASP.NET 页生命周期 非常重要,以便你可以在适当的生命周期阶段编写代码,以便根据你打算的效果编写代码。
当 Web 服务器收到页面请求时,它会查找页面、处理页面、将其发送到浏览器,然后丢弃所有页面信息。 如果用户再次请求同一页,服务器将重复整个序列,从头开始重新处理页面。 换句话说,服务器没有已处理页的内存,而已处理的页面是无状态的。 ASP.NET 页面框架会自动处理维护页面状态及其控件的任务,并提供了维护应用程序特定信息状态的显式方法。
小窍门
Web 窗体应用程序模板中的 Web 应用程序特性
ASP.NET Web 窗体应用程序模板提供了一组丰富的内置功能。 它不仅提供 Home.aspx 页面、 About.aspx 页面、 Contact.aspx 页面,还包括注册用户并保存其凭据的成员身份功能,以便他们能够登录到您的网站。 本概述提供了有关 ASP.NET Web 窗体应用程序模板中包含的某些功能的详细信息,以及它们如何在 Wingtip Toys 应用程序中使用。
成员资格
ASP.NET 标识将用户的凭据存储在应用程序创建的数据库中。 当用户登录时,应用程序通过读取数据库来验证其凭据。 项目的 帐户 文件夹包含实现成员身份的各个部分的文件:注册、登录、更改密码和授权访问。 此外,ASP.NET Web 窗体支持 OAuth 和 OpenID。 这些身份验证增强功能允许用户使用现有凭据从 Facebook、Twitter、Windows Live 和 Google 等帐户登录到网站。
默认情况下,模板在 SQL Server Express LocalDB 实例(Visual Studio Express 2013 for Web 附带的开发数据库服务器)上使用默认数据库名称创建成员身份数据库。
SQL Server Express LocalDB
SQL Server Express LocalDB 是 SQL Server 的轻型版本,具有 SQL Server 数据库的许多可编程性功能。 SQL Server Express LocalDB 在用户模式下运行,并且具有快速的零配置安装,其中包含一个简短的安装先决条件列表。 在 Microsoft SQL Server 中,任何数据库或 Transact-SQL 代码都可以从 SQL Server Express LocalDB 移动到 SQL Server 和 SQL Azure,而无需任何升级步骤。 因此,SQL Server Express LocalDB 可用作面向所有版本的 SQL Server 的应用程序的开发人员环境。 SQL Server Express LocalDB 支持存储过程、用户定义的函数和聚合、.NET Framework 集成、空间类型和其他在 SQL Server Compact 中不可用的功能。
母版页
ASP.NET 母版页定义应用程序中所有页面的外观和行为一致。 母版页的布局与单个内容页中的内容合并,以生成用户看到的最终页面。 在 Wingtip Toys 应用程序中,修改 Site.master 母版页,以便 Wingtip Toys 网站中的所有页面共享相同的独特徽标和导航栏。
HTML5
ASP.NET Web 窗体应用程序模板支持 HTML5,这是 HTML 标记语言的最新版本。 HTML5 支持新的元素和功能,以便更轻松地创建网站。
Modernizr
对于不支持 HTML5 的浏览器,可以使用 Modernizr。 Modernizr 是一个开源 JavaScript 库,可以检测浏览器是否支持 HTML5 功能,如果不支持,请启用它们。 在 ASP.NET Web 窗体应用程序模板中,Modernizr 作为 NuGet 包安装。
Bootstrap
Visual Studio 2013 项目模板使用 Bootstrap,这是 Twitter 创建的布局和主题框架。 Bootstrap 使用 CSS3 提供响应式设计,这意味着布局可以动态适应不同的浏览器窗口大小。 还可以使用 Bootstrap 主题功能轻松影响应用程序外观的变化。 默认情况下,Visual Studio 2013 中的 ASP.NET Web 应用程序模板包括 Bootstrap 作为 NuGet 包。
NuGet 包
ASP.NET Web 窗体应用程序模板包括一组 NuGet 包。 这些包以开源库和工具的形式提供组件化功能。 有多种包可帮助你创建和测试应用程序。 Visual Studio 可以轻松地添加、删除和更新 NuGet 包。 开发人员也可以创建包并将其添加到 NuGet。
安装包时,NuGet 会将文件复制到解决方案,并自动进行所需的任何更改,例如添加引用并更改与 Web 应用程序关联的配置。 如果你决定删除库,NuGet 将删除文件并撤销在项目中所做的所有更改,确保不留下任何冗余。 NuGet 可从 Visual Studio 中的 “工具” 菜单获取。
jQuery
jQuery 是一个快速简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画处理和 Ajax 交互,以便快速进行 Web 开发。 jQuery JavaScript 库作为 NuGet 包包含在 ASP.NET Web 窗体应用程序模板中。
非干扰性验证
内置验证程序控件已配置为使用不显眼的 JavaScript 进行客户端验证逻辑。 这大大减少了在页面标记中内联呈现的 JavaScript 数量,并减小了整个页面大小。 基于应用程序根目录中Web.config文件的 appSettings< 元素中的>设置,全局将非公开验证添加到 ASP.NET Web 窗体应用程序模板。
Entity Framework Code First
除了 ASP.NET Web 窗体应用程序模板中的功能外,Wingtip Toys 应用程序还使用 Entity Framework Code First,它是一个 NuGet 库,可在处理数据时实现以代码为中心的开发。 简单地说,它根据编写的代码为你创建应用程序的数据库部分。 使用 Entity Framework,以强类型对象的形式检索和操作数据。 这使你能够专注于应用程序中的业务逻辑,而不是如何访问数据的详细信息。
有关 ASP.NET Web 窗体模板随附的已安装库和包的其他信息,请参阅已安装的 NuGet 包列表。 为此,在 Visual Studio 中创建新的 Web 窗体项目,选择“>工具 NuGet 包管理器>管理解决方案的 NuGet 包”,然后在“管理 NuGet 包”对话框中选择“已安装”包。
浏览 Visual Studio
Visual Studio 中的主窗口包括 解决方案资源管理器、 服务器资源管理器 (Express 中的数据库资源管理器 )、 属性窗口、 工具箱、 工具栏和 文档窗口。
有关 Visual Studio 的详细信息,请参阅 Visual Web 开发人员的 Visual Guide。
总结
在本教程中,你已创建、查看并运行默认的 Web 窗体应用程序。 你已查看默认 Web 窗体应用程序的不同功能,并了解了有关如何使用 Visual Studio 环境的一些基础知识。 在以下教程中,你将创建数据访问层。