摘要:
系列背景 在进入微服务的实践系列之前,我们一起来学习和实践一下.NET应用开发生态中一些比较重要的技术,这个系列就是关于GraphQL在.NET 6应用中的实现。 系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用(1) —— GraphQL及示例项目介绍 使用Hot Ch 阅读全文
摘要:
写在最开始 坐在电脑前,写这篇年终总结的时间是2021年12月24日下午,西安市小区全部封闭的第二天,小区内因为有确诊病例被划为中风险的第一天,同时也是一个平常的周五。早上六点起来在小区里做了最近的第三次核酸,结果下午就出来了。早上还有一名医护人员可能是因为长时间工作的原因晕倒了,真的辛苦各位医护、 阅读全文
摘要:
项目源码 TodoList on Github 系列导航 使用.NET 6开发TodoList应用(1)——系列背景 使用.NET 6开发TodoList应用(2)——项目结构搭建 使用.NET 6开发TodoList应用(3)——引入第三方日志 使用.NET 6开发TodoList应用(4)——引 阅读全文
摘要:
在.NET开发生态中,我们以前开发定时任务都是用的Quartz.NET完成的。在这篇文章里,记录一下另一个很强大的定时任务框架的使用方法:Hangfire。两个框架各自都有特色和优势,可以根据参考文章里张队的那篇文章对两个框架的对比来进行选择。 引入Nuget包和配置 引入Hangfire相关的Nu 阅读全文
摘要:
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 在上一篇文章中,我们演示了如何使用Hot Chocolate进行GraphQL的Mutate新增数据,这篇文章我们将演示如何实现GraphQL中的数据更新任务。 思路 对数据的更新和新增数据的思路是一样的,都 阅读全文
摘要:
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 在讨论完GraphQL中的查询需求后,这篇文章我们将演示如何实现GraphQL中的数据添加任务。 思路 在GraphQL中,对数据进行查询使用query,而对于修改数据则需要使用mutation,包括新增和修 阅读全文
摘要:
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 GraphQL中的查询分页相对来说是查询中比较难理解的,接口的Schema也和其他不一样。在这篇文章中,我们来实现简单的查询分页。 思路 Hot Chocolate提供了两种排序方式:基于Cursor的分页和 阅读全文
摘要:
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 从前几篇文章可以看出,使用Hot Chocolate实现GraphQL接口是比较简单的,本篇文章我们继续查询中的另一个需求:排序。 思路 Hot Chocolate提供了UseSorting属性来用于构造包含 阅读全文
摘要:
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 对于查询来说,还有一大需求是针对查询的数据进行过滤,本篇文章我们准备实现GraphQL中基本的查询过滤。 思路 Hot Chocolate提供了UseFiltering属性来用于构造包含查询过滤的SQL语句, 阅读全文
摘要:
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 在上一篇文章使用Hot Chocolate和.NET 6构建GraphQL应用(3) —— 实现Query基础功能中,我们留了两个问题,一是通过GraphQL接口返回的Posts结果并没有获取到关联的Comm 阅读全文
摘要:
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 在本文中,我们通过一个简单的例子来看一下如何实现一个最简单的GraphQL的接口。 实现 引入Hot Chocolate依赖包 由于我打算将GraphQL的相关逻辑放到Applicaiton层,并在Appli 阅读全文
摘要:
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 在本文中,我们将会准备好用于实现GraphQL接口所依赖的底层数据,为下一篇文章具体实现GraphQL接口做准备。 实现 实体定义 在上一篇文章使用Hot Chocolate和.NET 6构建GraphQL应 阅读全文
摘要:
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 前言 这篇文章是这个系列的第一篇,我们会简单地讨论一下GraphQL,然后介绍一下这个系列将会使用的示例项目。 关于GraphQL 关于GraphQL和Restful API的讨论已经有很多了,我在本文里不会试图去 阅读全文
摘要:
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在前面的文章里使用.NET 6开发TodoList应用(5)——领域实体创建,我们留了一个坑还没有填上,就是在数据库保存的时候,CreateUser和ModifiedUser我们当时填的都是Anonymous,完成认证的功能后 阅读全文
摘要:
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求和目标 在这个系列的最后一节中,我们将使用GitHub Actions将TodoList应用部署到Azure Container Instance上。 实现 为了确保部署的应用能够正确运行,我们需要做以下几件事: 创建Azure 阅读全文
摘要:
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 .NET 6 Web API应用使用最多的场景是作为后端微服务应用,在实际的项目中,我们一般都是通过将应用程序打包成docker镜像进行发布,以便更好地进行部署,包括基于Kubernetes平台的微服务项目部署。 一般来说作为 阅读全文
摘要:
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在开发一些需要支持多种语言的应用程序时,我们需要根据切换的语言来对应展示一些静态的字符串字段,在本文中我们暂时不去讨论如何结合前端一起来实现根据切换当前应用程序的Culture来实现字符串的自动切换和日期时间的切换,只通过一个 阅读全文
摘要:
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 应用健康检查在容器部署的微服务场景下非常常见,相比而言单体非容器部署的应用就不太关心这个特性,为了后续的内容我们在本文中简单介绍一下如何实现应用程序的健康检查功能。 目标 实现TodoList的健康检查功能。 原理与思路 .N 阅读全文
摘要:
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在日常开发中,我们需要给前端提供文档化的API接口定义,甚至需要模拟架设一个fake服务用来调试接口字段。或者对于后端开发人员来说,我们可以通过导入这个接口定义文件到Postman或者其他API客户端,省去我们手动录入的麻烦。 阅读全文
摘要:
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在上一篇文章使用.NET 6开发TodoList应用(25)——实现RefreshToken中,我们通过使用Configuration获取方法GetSection拿到写在appsettings.Development.json 阅读全文
摘要:
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在上一篇文章使用.NET 6开发TodoList应用(24)——实现基于JWT的Identity功能中,我们演示了如何使用.NET框架的Identity组件实现基于JWT Token的认证和授权功能。我们可以想象一下场景:当获 阅读全文
摘要:
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在.NET Web API开发中还有一个很重要的需求是关于身份认证和授权的,这个主题非常大,所以本文不打算面面俱到地介绍整个主题,而仅使用.NET框架自带的认证和授权中间件去实现基于JWT的身份认证和授权功能。一些关于这个主题 阅读全文
摘要:
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 Rate Limiting允许保护我们的API服务免受过多请求的连接导致的性能下降,如果请求次数超过了限制,API服务端将会拒绝后续的请求。 我们可以实现这样的需求:限制获取所有TodoLists为每个IP地址每小时上限为50 阅读全文