前 言
ASP.NET Core发展历程的某些方面让我想起了15年前ASP.NET刚问世的时候。1999年秋天,当时还很年轻的Scott Guthrie ——现在担任Microsoft的副总裁——在伦敦向一小群Web开发人员展示了一个被称为ASP+的新东西。当时还是Active Server Pages居于统治地位的时代,ASP+试图引入一种新语法,将VBScript代码放回服务器,并用一种编译语言来表达这种语法。ASP+是一项重大的成就。
Scott进行展示时,公众还不知道有.NET,它要到第二年夏天才会正式公布。Scott在一个独立的运行环境中进行演示(演示内容包括一个令人惊叹的Web Service示例),这个运行时环境基于一个能够监听端口80的自定义工作进程(一个控制台应用程序)。最早的演示使用了普通的Visual Basic和C++代码,以及Win32 API。很快,ASP+被吸收到了新的.NET Framework中,并最终蜕变为ASP.NET。
ASP.NET Core在一开始被展示时,同样作为一个新的独立框架,这是一个从头编写的框架,将Microsoft的Web堆栈的可扩展性和性能提升到了新高度。但在这个过程中,ASP.NET Core的开发团队看到了一个诱人的机会来让ASP.NET Core框架在多个平台上可用。为实现这个目标,必须使.NET Framework的一个子集在目标平台上可用,这意味着必须创建一个新的.NET Framework。最终,一个新的.NET Framework被开发出来了。
在很长时间内,ASP.NET Core是一个移动的目标,而移动这个目标的机制没有人清楚,并且没有被及时、有效地沟通。大约20年前,我们还没有如今这种社交媒体带来的即时分享的态度。而且,虽然ASP+很可能也是一个移动的目标,但是Microsoft以外的人们(甚至Microsoft内没有直接参与ASP+项目的人们)并不知道这一点。
虽然ASP.NET和ASP.NET Core的发展过程在关键方面可能看上去是相同的,但是它们的发展环境有很大区别。ASP.NET之前的Web是新生阶段的Web,可扩展的服务器端技术有限,而且可扩展性并不像今天这样是一个严峻的问题。同时,有大量应用程序需要针对Web重写,只是在等待由可靠的供应商提供的一个可靠的平台。
如今,即使不使用ASP.NET Core,也仍然有许多框架可供使用。但是,ASP.NET Core并不只是前端技术;它也是后端技术、Web API以及要独立部署或者部署到Service Fabric的小型简洁的Web(容器化)整体式应用程序。ASP.NET Core还可以用在多个硬件/软件平台上。
很难说在近期甚至目前,ASP.NET Core会不会成为每个公司和团队必须使用的技术。但可以肯定,ASP.NET Core是ASP.NET开发人员需要了解的一种技术,是在多种平台上进行Web开发时可供使用的另一种全栈解决方案。
《ASP.NET Core开发实战》面向的读者对象
完全的新手(至少是对Web开发没有一点了解的新手)不适合阅读《ASP.NET Core开发实战》。《ASP.NET Core开发实战》针对的是ASP.NET开发人员,尤其是具有MVC背景的ASP.NET开发人员。同时,《ASP.NET Core开发实战》适合有丰富开发经验的Web开发人员,特别是具有MVC开发背景但是新接触ASP.NET的Web开发人员。虽然ASP.NET Core是一种全新的框架,但是它与ASP.NET MVC有许多共同点,与Web Forms也有少量共同点。
如果读者使用Microsoft技术或者计划使用Microsoft技术,那么对于全栈开发,ASP.NET Core提供了一个出色的选择,包括与Azure云紧密结合起来。
《ASP.NET Core开发实战》的假定
《ASP.NET Core开发实战》假定读者对Microsoft堆栈(其他平台也可以)上的Web开发有基本了解,最好有成熟的理解。
《ASP.NET Core开发实战》不适合的读者对象
如果读者是Web编程的新手,从来没有听说过ASP.NET,想要寻找一本ASP.NET Core的分步骤指南,那么《ASP.NET Core开发实战》可能不是一个理想选择。
《ASP.NET Core开发实战》结构
《ASP.NET Core开发实战》分为5个部分。
● 第I部分概述ASP.NET Core的基础知识,并介绍hello-world应用程序。
● 第II部分关注MVC应用程序模型,并介绍其核心组成,如控制器和视图。
● 第III部分介绍一些公共的开发问题,如身份验证、配置和数据访问。
● 第IV部分介绍用于构建可用的、有效的表示层的技术和其他框架。
● 第V部分介绍运行时管道、部署和迁移策略。
系统需求
要完成《ASP.NET Core开发实战》的练习,需要配备下面列出的硬件和软件:
● Windows 7或更高版本,macOS 10.12或更高版本。
● 或者,可使用众多Linux发行版中的一种,请参考https://docs.microsoft. com/en-us/dotnet/core/linux-prerequisites。
● Visual Studio 2015或更高版本的任意版本;Visual Studio Code。
● Internet连接,以下载软件或者章节示例。
代码示例下载
《ASP.NET Core开发实战》中的所有代码,可在https://aka.ms/ ASPNetCore/downloads上找到,也可扫描封底二维码获取。
勘误、更新和图书支持
我们已经尽最大努力来确保《ASP.NET Core开发实战》及其配套内容的准确性。在以下网址,可以查阅《ASP.NET Core开发实战》的更新列表,其中列举了提交的勘误及对应的更正:
https://aka.ms/ASPNetCore/errata
如果读者发现了列表中没有列出的错误,请在该页面上把错误提交给我们。
如果需要额外的支持,请给Microsoft Press Book Support发送邮件,地址为mspinput@microsoft.com。
请注意,上面列出的地址不提供对Microsoft的软件和硬件产品的支持。要想获得关于Microsoft的软件和硬件的帮助,请访问http://support.microsoft.com。
保持联系
让我们保持对话!在Twitter上可以联系到我们:http://twitter.com/MicrosoftPress。