前 言
ASP.NET Core MVC是微软面向 .NET开发者的最新的Web框架,它是如今广为人知的ASP.NET MVC框架的下一代,并致力于开启跨平台开发、部署的能力。它广泛利用了各种各样的开源库,当然,它本身也是开源的。ASP.NET Core MVC帮助开发者独立思考关于业务逻辑、路由、服务以及视图的实现,并提供了一套新的配置和扩展系统。它使用了C#编程语言,以及Razor视图引擎。不管你是一个经验丰富的.NET开发者,还是一个新手,使用ASP.NET Core MVC来构建项目应该都是不错的开端。
本书展示了一个重构项目的最初几个迭代版本,该项目是由一个虚构公司Alpine Ski House的团队重新开发的。每一章都介绍了一些在开发过程中团队所遇到的挑战,以及他们是如何克服这些难关的。除了每章前面的一个小故事之外,本书深入介绍了从ASP.NET Core MVC的特性,到构建、维护和部署应用程序所使用的相关工具。
除故事片段和关于ASP.NET Core MVC的技术内容之外,本书还讨论了新版的Entity Framework、包管理系统,以及其他在Web开发领域中流行的周边工具。除相关技术内容的介绍外,本书也附带了一个项目——正是Alpine Ski House的开发者们构建的那个项目。
本书读者对象
本书以一个程序员的视角,贯穿了使用ASP.NET Core开发一个全新应用程序,并将其发布到互联网上的所有必经步骤。不过仍然有相当多的程序员还没有接触过Web开发,或者还停留在Webforms时代,很少接触到如今全新的各种工具。本书将帮助他们掌握这些技巧、树立信心来跟上脚步,使用新兴的框架来构建现代应用程序。本书将帮助读者探索应用程序的架构,部署并构建适用于云端的应用程序。
阅读本书的前提条件
本书的读者需要拥有中高级的程序开发能力、熟练掌握C#、拥有Web开发的背景知识,并了解Visual Studio的基本功能。如果了解上一个版本的MVC会更有帮助,不过它不是必需的。熟悉使用命令行界面进行工作也是个加分项。在阅读本书后,你将有能力构建一个真实的、由关系型数据库驱动的应用程序,并可以将其部署在基于云端的基础架构。
本书可能不适合……
如果你是经验丰富的高级ASP.NET MVC开发者,始终在密切关注甚至参与了ASP.NET Core MVC开发的话,那么本书可能不太适合你。
本书结构安排
本书创新性地从开发者的视角出发,贯穿了一个完整应用程序开发的各个迭代环节。书中不仅包含了技术内容,也涵盖了如何从错误中吸取教训、根据用户的反馈进行调整,从零开始,逐步构建出一个完整的产品。
本书分为如下四个部分:
● 第Ⅰ部分:“Alpine Ski House”。介绍了一些背景知识,构建了示例应用程序,并引入了贯穿本书的所有虚构角色。
● 第Ⅱ部分:“迭代回顾:千里之行”。关注能够让应用程序运行起来的必要特性,对构建流水线进行配置,使配置实时生效,从而使整个团队都关注到项目进度。
● 第Ⅲ部分:“迭代回顾:激流勇进”。关注一些核心的特性能够在示例程序的基础上加上所需的业务逻辑。该部分中,我们使用了 Entity Framework Core来进行数据访问、使用 Razor 创建视图,还介绍了配置、日志、安全、用户管理,以及依赖注入。
● 第Ⅳ部分:“迭代回顾:最后冲刺”。介绍了JavaScript、依赖管理,以及在前文介绍的基础上进行构架的内容。
在附录中包含了一些重要主题,比如测试、重构和扩展能力。
寻找本书最佳切入点
本书中的不同章节涵盖了ASP.NET Core 框架中相关的各种技术。根据你的需要,以及你对微软技术栈的掌握程度,你可能会需要重点关注本书中某些特定的领域。可以通过如下表格来决定你阅读本书的最佳切入点:
如果你…… 阅读建议
是ASP.NET Core开发的新手,或者已经是ASP.NET Core的开发者 关注第Ⅰ、第Ⅱ和第Ⅲ部分,或者按照顺序阅读整本书
熟悉之前版本的ASP.NET 如果你只需要关注核心内容,可以略过前两章,并通读本书中的其他章节,以了解新的技术
对客户端开发感兴趣 阅读第Ⅳ部分的第15、16、17章,略读第20章中关于 JavaScript 服务的介绍
对跨平台开发感兴趣 整本书的内容都可应用在跨平台开发中,不过第8、9章的主题特别涉及了该内容
本书中的大部分章节都包括了动手示例,通过它们你可以练习刚刚学到的内容。不论你关注的是哪部分内容,请在你的系统中下载并安装示例应用程序。
本书的约定和特色
本书在介绍内容时使用了一些约定,了解它们可以让阅读变得更易理解。
● 本书中的代码是面向 C# 程序员的,使用的语法涵盖了 HTML、CSS、SCSS和Razor。
● 在两个按键之间使用加号(+)表示同时按下两个键。比如“按下Alt + Tab”的意思是你需要在按住Alt键的同时,按下Tab键。
● 在两个或多个菜单项之间的竖线符号(比如文件 | 关闭),意思是你需要先选择第一个菜单或菜单项,然后再选择下一个,以此类推。
系统要求
为了运行本书的示例应用程序,你需要如下的软、硬件配置:
● .NET Core 1.0及以上版本,可以跨平台安装,来自https://dot.net。
● 选择你的代码编辑器。我们使用的是Windows上的Visual Studio 2015(任何一个版本都可以)及以上版本,或者也可以使用Windows / Mac / Ubuntu Linux上的Visual Studio Code。
● SQL Server LocalDB(包含在Windows中的Visual Studio 2015及以上版本中)。对于Linux或者Mac的用户,你需要访问一个位于其他Windows机器或者MicrosoftAzure上的SQLServer数据库。
● 电脑的处理器至少是1.6GHz。
● 至少1GB内存。
● 4GB剩余磁盘空间。
● 互联网连接(用于下载软件和示例项目)。
根据你的Windows配置,可能需要本地管理员权限来安装或配置Visual Studio 2015。
下载:示例项目
本书中大部分章节都包含了来自这个示例项目中的代码片段,该项目可以在GitHub上找到:
https://github.com/AspNetMonsters/AlpineSkiHouse
按照GitHub上的指示下载并运行该示例代码。
注意:
除了示例项目之外,你的系统还需要安装.NET Core 1.0及以上的版本。
勘误表、更新及内容支持
我们尽了最大的努力来确保本书内容的正确性。你可以访问本书的更新(以勘误表的形式记录了相关的错误和纠正内容):
https://aka.ms/ASPCoreAppDev/errata
如果你发现了一个尚未列出的错误,请使用该页面提交错误。
可以在网站https://aka.ms/ASPCoreAppDev/downloads中下载所有的示例代码以及完整的应用程序。
请注意上述地址并不提供对微软的软、硬件产品的支持。如果需要这些支持,请访问http://support.microsoft.com。
期待您的反馈
在 MS Press,您的满意是我们首要的目标,您的反馈是我们最有价值的资产。请通过如下地址告诉我们你对本书的看法:
http://aka.ms/tellpress
我们知道你公务繁忙,所以只保留了非常简短的几个问题。你的答案将会直接发送给MS Press的编辑(不需要提供你的个人信息)。非常感谢您的反馈!
保持关注
让我们持续保持交流,我们的Twitter是http://twitter.com/MicrosoftPress。