由Nate Barbettini
版权所有©2018。保留所有权利。
ISBN:978-1-387-75615-5
在创意共享归因4.0许可下发布。您可以自由以任何格式共享,复制和重新分发本书,或重新混合并出于任何目的(甚至在商业上)进行转换。您必须给予适当的信用,并提供链接到许可证。
有关更多信息,请访问https://creativecommons.org/licenses/4.0/
感谢您拿起小ASP.NET核心书!我写了这本简短的书,以帮助开发人员和对Web编程感兴趣的人了解ASP.NET Core 2.0,这是一个用于构建Web应用程序和API的框架。
Little ASP.NET核心书籍的结构是教程。您将从开始到完成并学习:
不用担心,您无需了解ASP.NET Core(或以上任何一个)即可开始。
您将构建的应用程序的完成版本的代码可在GitHub上使用:
https://www.github.com/nbarbettini/little-aspnetcore-todo
如果您想查看成品,请随时下载它,或在编写自己的代码时进行比较。
该书本身经常使用错误修复和新内容更新。如果您正在阅读PDF,电子书或打印版本,请查看官方网站(Littleasp.net/book),以查看是否有更新的版本。这本书的最后一页包含版本信息和一个更改。
多亏了一些出色的多语言贡献者,Little ASP.NET核心书已转化为其他语言:
ASP.NET Core ElKitabı (土耳其)
简明asp.net核心手册(中文)
如果您是编程的新手,本书将向您介绍用于构建现代Web应用程序的模式和概念。您将学习如何通过从头开始构建一些东西来构建Web应用程序(以及大型材料的结合在一起)!尽管这本小书将无法涵盖有关编程所需的所有信息,但它将为您提供一个起点,以便您可以学习更多的高级主题。
如果您已经用Node,Python,Ruby,Go或Java等后端语言进行编码,您会注意到许多熟悉的想法,例如MVC,查看模板和依赖项注入。该代码将在C#中,但看起来与您已经知道的内容不会太大。
如果您是ASP.NET MVC开发人员,您会感到宾至如归! ASP.NET Core添加了一些您已经知道的东西(并简化)。我将指出以下一些区别。
无论您以前在Web编程方面的经验如何,本书都会教您在ASP.NET Core中创建一个简单有用的Web应用程序所需的一切。您将学习如何使用后端和前端代码,如何与数据库进行交互以及如何将应用程序部署到世界上。
ASP.NET Core是Microsoft为构建Web应用程序,API和微服务而创建的Web框架。它使用常见模式,例如MVC(模型视图控制器),依赖项注入和由中间软件组成的请求管道。它是Apache 2.0许可证下的开源,这意味着源代码可以免费使用,并鼓励社区贡献错误修复和新功能。
ASP.NET Core在Microsoft的.NET运行时运行,类似于Java Virtual Machine(JVM)或Ruby Instrument。您可以用多种语言(C#,Visual Basic,F#)编写ASP.NET核心应用程序。 C#是最受欢迎的选择,这是我在本书中使用的选择。您可以在Windows,Mac和Linux上构建并运行ASP.NET核心应用程序。
已经有很多很棒的网络框架可供选择:节点/Express,Spring,Ruby on Rails,Django,Laravel等。 ASP.NET核心具有什么优势?
速度。 ASP.NET核心很快。因为编译了.NET代码,因此在JavaScript或Ruby等解释的语言中,执行速度要比代码快得多。 ASP.NET Core还针对多线程和异步任务进行了优化。通常,与Node.J.编写的代码相比,通常会提高5-10倍的速度。
生态系统。 ASP.NET核心可能是新的,但是.NET已经存在了很长时间。 Nuget(.NET软件包管理器;想想NPM,Ruby Gems或Maven)上有成千上万个软件包。已经有可用于JSON避难化的软件包,数据库连接器,PDF生成或您几乎可以想到的其他内容。
安全。 Microsoft的团队认真对待安全性,ASP.NET Core旨在从头开始安全。它处理诸如消毒数据和防止跨站点伪造(CSRF)攻击之类的事情,因此您不必这样做。您还可以从.NET编译器中获得静态键入的好处,这就像始终打开非常偏执的衬里一样。这使得不打算使用可变或大量数据来做一些您不打算做的事情变得更加困难。
在本书中,您将学习有关ASP.NET Core(网络框架)的知识。我有时会提到.NET运行时,即运行.NET代码的支持库。如果这对您来说听起来像是希腊语,那就跳到下一章!
您可能还会听到.NET Core和.NET标准。命名令人困惑,因此这是一个简单的解释:
.NET标准是一种平台 - 不合骨界面,可定义功能和API。重要的是要注意,.NET标准不代表任何实际的代码或功能,仅代表API定义。有不同的“版本”或.NET标准级别反映了可用的API(或API表面积的宽度)。例如,.NET Standard 2.0比.NET标准1.5的API多,该API比.NET标准1.0多。
.NET Core是可以在Windows,Mac或Linux上安装的.NET运行时。它在每个操作系统上使用适当的平台特定代码实现了.NET标准接口中定义的API。这是您将在自己的计算机上安装的内容来构建和运行ASP.NET核心应用程序。
而且,出于良好的衡量标准, .NET Framework是一个仅Windows标准的.NET标准的实现。这是唯一的.NET运行时间,直到.NET Core出现并将.NET带到Mac和Linux。 ASP.NET Core也可以在仅Windows的.NET框架上运行,但是我不会太多。
如果您对所有这些命名感到困惑,那就不用担心了!我们会稍微提取一些真实的代码。
如果您没有使用过以前的ASP.NET版本,请前进到下一章。
ASP.NET Core是ASP.NET的完整接地重写,重点是现代化框架,最后将其与System.Web,IIS和Windows解耦。如果您还记得ASP.NET 4中的所有OWIN/KATANA东西,那么您已经到了一半:Katana Project成为ASP.NET 5,最终将其重命名为ASP.NET Core。
由于Katana的遗产, Startup类是正面和中心,并且不再有Application_Start或Global.asax 。整个管道都是由中间件驱动的,MVC和Web API之间不再拆分:控制器可以简单地返回视图,状态代码或数据。依赖性注入出现,因此您不需要安装和配置诸如结构图或ninject之类的容器。整个框架已针对速度和运行时效率进行了优化。
好吧,介绍足够。让我们潜入ASP.NET Core!