创建项目

作者 :Erik Reitan

本教程系列将介绍使用 ASP.NET 4.5 和 Microsoft Visual Studio Express 2013 for Web 生成 ASP.NET Web Forms应用程序的基础知识。 本教程系列随附了一个包含 C# 源代码的Visual Studio 2013项目。

在本教程中,你将在 Visual Studio 中创建、查看和运行默认项目,这样就可以熟悉 ASP.NET 的功能。 此外,你将查看 Visual Studio 环境。

学习内容:

  • 如何创建新的Web Forms项目。
  • Web Forms项目的文件结构。
  • 如何在 Visual Studio 中运行项目。
  • 默认 Web 窗体应用程序的不同功能。
  • 有关如何使用 Visual Studio 环境的一些基础知识。

创建项目

  1. 打开 Visual Studio。

  2. 从 Visual Studio 中的“文件”菜单中选择“新建项目”。

    创建项目 - 新建项目菜单项

  3. 选择左侧的 “模板 ->Visual C# ->Web 模板”组。

  4. 在中心列中选择 “ASP.NET Web 应用程序 ”模板。
    本教程系列使用 .NET Framework 4.5.2。

  5. 将项目命名 为 WingtipToys ,然后选择“ 确定” 按钮。

    “创建项目 - 新建项目”对话框

    注意

    本教程系列中的项目名称为 WingtipToys。 建议使用此 确切 的项目名称,以便整个教程系列中提供的代码按预期运行。

  6. 单击“ 更改身份验证 ”按钮。 选择“ 单个用户帐户 ”,然后单击“ 确定” 按钮。

  7. 选择Web Forms模板,然后单击“确定”按钮。

    “新建 ASP.NET 项目”窗口的屏幕截图,其中选择了“Web Forms模板”和“确定”按钮。

创建该项目需要一些时间。 准备就绪后,打开 Default.aspx 页。

Microsoft Visual Studio Express 2013 for Web 窗口的屏幕截图,其中显示了“Default.aspx”页面。

可以通过选择中心窗口底部的选项,在 “设计 ”视图和 “源 ”视图之间切换。 设计 视图使用近即所得视图显示 ASP.NET 网页、母版页、内容页、HTML 页和用户控件。 视图显示网页的 HTML 标记,你可以对其进行编辑。

提示

了解 ASP.NET 框架

ASP.NET Web Forms允许使用熟悉的拖放式事件驱动模型生成动态网站。 利用设计图面以及许多控件和组件,你可以迅速生成带有数据访问的高级的、功能强大的 UI 驱动型网站。 Wingtip 玩具商店基于 ASP.NET Web Forms,但在本教程系列中学习的许多概念适用于所有 ASP.NET。

ASP.NET 提供四个主要开发框架:

  • ASP.NET Web 窗体
    Web Forms框架面向喜欢声明性和基于控件的编程的开发人员,例如 Microsoft Windows 窗体 (WinForms) 和 WPF/XAML/Silverlight。 它提供 WYSIWYG 设计器驱动的开发模型,因此,寻求快速应用程序开发 (RAD) 环境进行 Web 开发的开发人员很受欢迎。 如果你不熟悉 Web 编程,并且熟悉传统的 Microsoft RAD 客户端开发工具 (例如 Visual Basic 和 Visual C#) ,则可以快速生成 Web 应用程序,而无需具有 HTML 和 JavaScript 方面的经验。
  • ASP.NET MVC
    ASP.NET MVC 面向对模式和原则感兴趣的开发人员,例如测试驱动开发、关注点分离、控制 (IoC) 反转以及依赖项注入 (DI) 。 此框架鼓励将 Web 应用程序的业务逻辑层与其表示层分开。
  • ASP.NET 网页
    ASP.NET 网页面向想要简单 Web 开发故事(如 PHP)的开发人员。 在网页模型中,可以创建 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 模板。

除了四个main开发框架外,ASP.NET 还提供了其他技术,这些技术非常重要,但本教程系列中未涵盖这些技术:

  • ASP.NET Web API - 用于生成 HTTP 服务的框架,可覆盖各种客户端,包括浏览器和移动设备。
  • ASP.NET SignalR - 一个库,使开发实时 Web 功能变得简单。

查看项目

在 Visual Studio 中,解决方案资源管理器窗口允许你管理项目的文件。 让我们看一下在 解决方案资源管理器 中添加到应用程序的文件夹。 Web 应用程序模板添加基本文件夹结构:

创建项目 - 解决方案资源管理器

Visual Studio 为项目创建一些初始文件夹和文件。 本教程稍后将处理的第一个文件如下:

File 用途
Default.aspx 通常在浏览器中运行应用程序时显示的第一页。
Site.Master 一个页面,允许你创建一致的布局并为应用程序中的页面使用标准行为。
Global.asax 一个可选文件,其中包含用于响应 ASP.NET 或 HTTP 模块引发的应用程序级和会话级事件的代码。
Web.config 应用程序的配置数据。

运行默认 Web 应用程序

默认 Web 应用程序基于内置功能和支持提供丰富的体验。 无需对默认 Web 窗体项目进行任何更改,应用程序即可在本地 Web 浏览器上运行。

  1. 在 Visual Studio 中按 F5 键。
    应用程序将生成并在 Web 浏览器中显示。

    创建项目 - 默认页面

  2. 完成查看正在运行的应用程序后,关闭浏览器窗口。

此默认 Web 应用程序中有三个main页面:Default.aspx (主页) 、About.aspxContact.aspx。 可以从顶部导航栏访问其中每个页面。 帐户文件夹中还包含两个其他页面:Register.aspx页和Login.aspx页。 这两个页面允许你使用 ASP.NET 的成员身份功能来创建、存储和验证用户凭据。

ASP.NET Web Forms背景

ASP.NET Web Forms是基于 Microsoft ASP.NET 技术的页面,其中在服务器上运行的代码会动态生成浏览器或客户端设备的网页输出。 ASP.NET Web Forms页会自动为样式、布局等功能呈现正确的浏览器兼容 HTML。 Web Forms与 .NET 公共语言运行时支持的任何语言(如 Microsoft Visual Basic 和 Microsoft Visual C#)兼容。 此外,Web Forms基于 Microsoft .NET Framework构建,它提供托管环境、类型安全性和继承等优势。

当 ASP.NET Web Forms页运行时,页面将经历一个生命周期,在其中执行一系列处理步骤。 这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及呈现。 随着你越来越熟悉 ASP.NET Web Forms的强大功能,了解 ASP.NET 页生命周期非常重要,这样就可以在适当的生命周期阶段编写代码来获得所需的效果。

当 Web 服务器收到页面请求时,它会查找页面、对其进行处理、将其发送到浏览器,然后放弃所有页面信息。 如果用户再次请求同一页,服务器将重复整个序列,从头开始重新处理页面。 换句话说,服务器没有其已处理的页的内存-页是无状态的。 ASP.NET 页框架会自动处理维护页面及其控件的状态的任务,并提供了维护应用程序特定信息状态的显式方法。

提示

Web Forms应用程序模板中的 Web 应用程序功能

ASP.NET Web Forms应用程序模板提供了一组丰富的内置功能。 它不仅提供 Home.aspx 页面、 About.aspx 页面、 Contact.aspx 页面,还包含注册用户并保存其凭据以便用户登录网站的成员身份功能。 此概述详细介绍了 ASP.NET Web Forms 应用程序模板中包含的一些功能,以及如何在 Wingtip Toys 应用程序中使用这些功能。

成员资格

ASP.NET 标识将用户的凭据存储在应用程序创建的数据库中。 当用户登录时,应用程序将通过读取数据库来验证其凭据。 项目的 “帐户” 文件夹包含实现成员资格的各个部分的文件:注册、登录、更改密码和授权访问权限。 此外,ASP.NET Web Forms支持 OAuth 和 OpenID。 这些身份验证增强功能允许用户使用现有凭据从 Facebook、Twitter、Windows Live 和 Google 等帐户登录到站点。

创建项目 - 解决方案资源管理器 (ASP.NET 标识)

默认情况下,该模板在 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 Forms应用程序模板支持 HTML5,HTML5 是 HTML 标记语言的最新版本。 HTML5 支持新元素和功能,以便更轻松地创建网站。

Modernizr

对于不支持 HTML5 的浏览器,可以使用 Modernizr。 Modernizr 是一个开源 JavaScript 库,可以检测浏览器是否支持 HTML5 功能,如果不支持,则启用这些功能。 在 ASP.NET Web Forms 应用程序模板中,Modernizr 作为 NuGet 包安装。

Bootstrap

Visual Studio 2013项目模板使用 Bootstrap,这是 Twitter 创建的布局和主题框架。 Bootstrap 使用 CSS3 提供响应式设计,这意味着布局可以动态适应不同的浏览器窗口大小。 还可以使用 Bootstrap 的主题设置功能轻松更改应用程序的外观。 默认情况下,Visual Studio 2013 中的 ASP.NET Web 应用程序模板将 Bootstrap 作为 NuGet 包包含在内。

NuGet 包

ASP.NET Web Forms应用程序模板包含一组 NuGet 包。 这些包以开放源代码库和工具的形式提供组件化功能。 有多种包可帮助你创建和测试应用程序。 使用 Visual Studio 可以轻松添加、删除和更新 NuGet 包。 开发人员还可以创建包并将其添加到 NuGet。

“管理 NuGet 包”窗口的屏幕截图,其中突出显示了 jQuery。

安装包时,NuGet 会将文件复制到解决方案,并自动进行所需的任何更改,例如添加引用和更改与 Web 应用程序关联的配置。 如果决定删除库,NuGet 会删除文件,并反转它在项目中所做的任何更改,以便不会留下混乱。 可从 Visual Studio 中的 “工具” 菜单获取 NuGet。

jQuery

jQuery 是一个快速简洁的 JavaScript 库,可简化 HTML 文档遍历、事件处理、动画处理和 Ajax 交互,实现快速 Web 开发。 jQuery JavaScript 库作为 NuGet 包包含在 ASP.NET Web Forms 应用程序模板中。

不显眼的验证

内置验证程序控件已配置为对客户端验证逻辑使用不显眼的 JavaScript。 这大大减少了在页面标记中内联呈现的 JavaScript 数量,并减小了整体页面大小。 根据应用程序根目录下Web.config文件的 appSettings> 元素中的 <设置,将非侵入性验证全局添加到 ASP.NET Web Forms 应用程序模板。

实体框架代码优先

除了 ASP.NET Web Forms 应用程序模板中的功能外,Wingtip Toys 应用程序还使用 Entity Framework Code First,这是一个 NuGet 库,可在处理数据时启用以代码为中心的开发。 简单地说,它会根据你编写的代码为你创建应用程序的数据库部分。 使用实体框架,可以检索数据并将其作为强类型对象进行操作。 这使你可以专注于应用程序中的业务逻辑,而不是访问数据的详细信息。

有关 ASP.NET Web Forms模板随附的已安装库和包的其他信息,请参阅已安装的 NuGet 包列表。 为此,请在 Visual Studio 中创建新的Web Forms项目,选择“工具>”“NuGet 包管理器>”“管理解决方案的 NuGet 包”,然后在“管理 NuGet 包”对话框中选择“已安装的包”。

浏览 Visual Studio

Visual Studio 中的主窗口包括解决方案资源管理器、Express) 中的服务器资源管理器 (数据库资源管理器属性窗口工具箱工具栏文档窗口

显示 Visual Studio 中主窗口的示意图。

有关 Visual Studio 的详细信息,请参阅 Visual Web 开发人员指南

总结

在本教程中,你已创建、查看并运行默认Web Forms应用程序。 你已查看默认 Web 窗体应用程序的不同功能,并了解了有关如何使用 Visual Studio 环境的一些基础知识。 在以下教程中,你将创建数据访问层。

其他资源

Web 应用程序项目与网站项目
ASP.NET Web Forms页面概述