零、序言
ASP.NET Core 是由 Microsoft 构建的开源跨平台 web 应用框架。ASP.NET Core 是构建与 SQL Server 交互并托管在 Azure 中的高性能后端的最佳选择。
React 由 Facebook 构建,旨在提高其代码库的可伸缩性,并最终于 2013 年开源。React 现在是一个非常流行的库,用于构建基于组件的前端,并且与许多后端技术(包括 ASP.NET Core)配合得非常好。
本书将帮助您构建一个利用这两种技术的真实应用。您将一章一章地逐步构建应用,以积极学习这些技术中的关键主题。每章结尾都有一个总结和一些关于内容的问题,以加强您的学习。在本书的结尾,您将拥有一个安全、高性能且可维护的单页应用(SPA),该应用托管在 Azure 中,并具备构建下一个 ASP.NET Core 和 React 应用的知识。
这本书是给谁的
如果您是一名 web 开发人员,希望使用.NET Core 和 React 快速开发全堆栈 web 应用,那么本书适合您。尽管本书没有假定您对 React 有任何了解,但对.NETCore 的基本理解将帮助您掌握所涵盖的概念。
这本书涵盖的内容
第 1 节:开始
第 1 章了解 ASP.NET 5 React 模板,涵盖 Visual Studio 为 ASP.NET Core 和 React 应用提供的标准 SPA 模板。它涵盖了前端和后端的编程入口点,以及它们如何在 VisualStudio 解决方案中协同工作。
第 2 章创建解耦的 React 和 ASP.NET 5 应用,逐步介绍如何创建最新的 ASP.NET Core 和 React 解决方案。本章包括 TypeScript 的使用,这在创建大型复杂前端时非常有用。
*## 第 2 节:使用 React 和 TypeScript 构建前端
第 3 章React 和 TypeScript入门,涵盖 React 的基础知识,如 JSX、道具、状态和事件。本章还介绍了如何使用 TypeScript 创建强类型组件。
第 4 章用 Emotion 塑造 React 组件涵盖了塑造 React 组件的不同方法。本章在介绍 JS 中的 CSS 之前,先介绍使用普通 CSS 的样式,然后介绍 CSS 模块。
第 5 章路由与 React 路由介绍了一个库,可以高效创建具有多个页面的应用。它包括如何声明应用中的所有路由,以及这些路由如何映射到 React 组件,包括带有参数的路由。本章还介绍了如何根据需要从路由加载组件,以优化性能。
第 6 章使用表单*介绍如何在 React 中构建表单。本章介绍了如何在利用流行的第三方库使表单构建过程更加高效之前,在 plain React 中构建表单。
第 7 章使用 Redux管理状态,逐步介绍此流行库如何帮助管理应用中的状态。在 TypeScript 的帮助下,构建了一个强类型 Redux 存储以及操作和减缩器。
第 3 节:构建 ASP.NET 后端
第 8 章通过 Dapper与数据库交互,介绍了一个库,使我们能够以高效的方式与 SQL Server 数据库交互。包括对数据库的读写,包括从 C#类映射 SQL 参数和将结果映射到 C#类。
第 9 章创建 REST API 端点介绍了如何创建与数据存储库交互的 REST API。在此过程中,将介绍依赖项注入、模型绑定和模型验证。
第 10 章提高性能和可扩展性介绍了几种提高后端性能和可扩展性的方法,包括减少数据库往返、使 API 异步和数据缓存。在这一过程中,使用了几种工具来衡量改进的影响。
第 11 章保护后端利用 ASP.NET 标识和 JSON web 令牌向 ASP.NET Core 后端添加身份验证。本章还介绍了使用标准和自定义授权策略对 RESTAPI 端点的保护。
第 12 章与 RESTful API 的交互介绍了 React 前端如何使用 JavaScript 获取功能与 ASP.NET Core 后端对话。本章还介绍 React 前端如何使用 JSON web 令牌访问受保护的 REST API 端点。
第 4 节:投入生产
第 13 章增加自动测试介绍了如何使用 xUnit 在 ASP.NET Core 后端创建单元测试和集成测试。本章还介绍了如何使用 Jest 在纯 JavaScript 函数和 React 组件上创建测试。
第 14 章配置并部署到 Azure,介绍 Azure,然后逐步部署后端和前端以分离 Azure 应用服务。本章还介绍了 SQL Server 数据库到 SQL Azure 的部署。
第 15 章使用 Azure DevOps实现 CI 和 CD,在逐步创建构建管道之前引入 Azure DevOps,该管道在代码推送到源代码存储库时自动触发。然后,本章逐步设置一个发布管道,将构件从构建部署到 Azure 中。
充分利用这本书
您需要了解 C#的基本知识,包括以下内容:
- 了解如何创建变量并引用它们,包括数组和对象
- 了解如何创建和使用类
- 了解如何使用
if
和else
关键字创建条件语句
您需要了解 JavaScript 的基础知识,包括以下内容:
- 了解如何创建变量并引用它们,包括数组和对象
- 了解如何创建函数并调用它们
- 了解如何使用
if
和else
关键字创建条件语句
您需要了解 HTML 的基本知识,包括以下内容:
- 了解基本 HTML 标记,如
div
、ul
、p
、a
、h1
和h2
,以及如何将它们组合在一起创建网页 - 了解如何引用 CSS 类来设置 HTML 元素的样式
您需要了解基本 CSS,包括以下内容:
- 如何调整元素大小并包括边距和填充
- 如何定位元素
- 如何为元素着色
了解基本 SQL 会有所帮助,但不是必需的。
您需要在计算机上安装以下设备:
- 谷歌浏览器:可以从安装 https://www.google.com/chrome/ 。
- Visual Studio 2019:可从下载并安装 https://visualstudio.microsoft.com/vs/ 。
- .NET Core 5:可从下载安装 https://dotnet.microsoft.com/download/dotnet-core 。
- Visual Studio 代码:可从下载并安装 https://code.visualstudio.com/ 。
- Node.js 和 npm:可从下载安装 https://nodejs.org/ 。如果已经安装了这些,请确保 Node.js 至少为 8.2 版,npm 至少为 5.2 版
- SQL Server Express Edition:可从下载并安装 https://www.microsoft.com/en-gb/sql-server/sql-server-editions-express 。
- SQL Server Management Studio:可从下载并安装 https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms 。
如果您使用的是本书的数字版本,我们建议您自己键入代码或通过 GitHub 存储库访问代码(下一节提供链接)。这样做将帮助您避免与复制和粘贴代码相关的任何潜在错误。
下载示例代码文件
您可以从 GitHub 的下载本书的示例代码文件 https://github.com/PacktPublishing/ASP.NET-Core-5-and-React-Second-Edition 。如果代码有更新,它将在现有 GitHub 存储库中更新。
我们的丰富书籍和视频目录中还有其他代码包,请访问https://github.com/PacktPublishing/ 。看看他们!
运行中的代码
本书的行动代码视频可在查看 http://bit.ly/3mB8KuU 。
使用的约定
本书中使用了许多文本约定。
Code in text
:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:“让我们用以下代码在frontend
中创建一个名为.eslintrc.json
的文件。”
代码块设置如下:
{
"extends": "react-app"
}
当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:
function App() {
const unused = 'something';
return (
...
);
};
任何命令行输入或输出的编写方式如下:
> cd frontend
> npm start
粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个例子:“点击安装安装扩展,然后点击重新加载按钮完成安装。”
提示或重要提示
看起来像这样。
联系
我们欢迎读者的反馈。
一般反馈:如果您对本书的任何方面有疑问,请在邮件主题中注明书名,并发送电子邮件至customercare@packtpub.com。
勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packtpub.com/support/errata,选择您的书籍,单击 errata 提交表单链接,然后输入详细信息。
盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请致电与我们联系 copyright@packt.com带有指向该材料的链接。
如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com。
审查
请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。
有关 Packt 的更多信息,请访问Packt.com。**
版权属于:月萌API www.moonapi.com,转载请注明出处