首页
学习
活动
专区
工具
TVP
发布

饭勺oO的技术博客

专栏作者
57
文章
10660
阅读量
10
订阅数
学习Source Generators之了解Source Generators的应用场景
Source Generators(源代码生成器)是.NET生态系统中的一项强大工具,它为开发人员提供了在编译时生成额外代码的能力,从而实现了自动化、性能优化以及更多应用场景。本文将探讨.NET Source Generators 的应用场景,包括自动代码生成、元数据处理、性能优化、DSL 支持、代码分析和跨语言交互。
饭勺oO
2024-04-13
600
学习Source Generators之输出生成的文件
上一篇文章学习了通过获取和解析swagger.json的内容,来生成API的请求响应类。 但是其中无法移动与编辑。 那么本文将介绍如何输出生成的文件。
饭勺oO
2024-04-03
1350
学习Source Generators之从swagger中生成类
前面学习了一些Source Generators的基础只是,接下来就来实践一下,用这个来生成我们所需要的代码。 本文将通过读取swagger.json的内容,解析并生成对应的请求响应类的代码。
饭勺oO
2024-04-03
680
学习Source Generators之IncrementalValueProvider
前面我们使用了IIncrementalGenerator来生成代码,接下来我们来详细了解下IIncrementalGenerator的核心部分IncrementalValueProvider。
饭勺oO
2024-04-02
470
学习Source Generators之IIncrementalGenerator
前面我们用ISourceGenerator来实现代码生成。但是在官方的介绍中有这么一个警告:Warning: Source generators implementing ISourceGenerator have been deprecated in favor of incremental generators. 意思是实现ISourceGenerator的源生成器已被弃用,取而代之的是增量生成器。
饭勺oO
2024-03-29
760
学习Source Generators之HelloWorld
结合使用这两项操作能充分发挥源生成器的强大功能。 可以使用编译器在编译时构建的丰富元数据检查用户代码。 然后,生成器将 C# 代码发送回基于已分析数据的同一编译。 如果你熟悉 Roslyn 分析器,可以将源生成器视为可发出 C# 源代码的分析器。 源生成器作为编译阶段运行,如下所示:
饭勺oO
2024-03-29
690
项目需要实现国际化?不妨来试试它
LinguaNex是一个多语言连接中心,主打一个一处配置多语言,多处使用的想法。让项目方便快捷实现国际化(多语言)。
饭勺oO
2024-03-01
870
单层应用升级到多层应用3
在前文的Core项目中,包含了我们所有的基础功能,但是有些项目可能只需要部分功能却引用整一块Core的话,会显得有些多余,需要将这部分基础设施再做一下细致化的拆分。 在Host项目中,仍旧还有许多功能代码没有拆分,如EventBus,FileStoreages, Authorization,Localization等,这部分又算基础设施功能,一部分又有一定的业务属性。需要将这些功能抽象拆分出来。
饭勺oO
2024-01-24
670
单层应用升级到多层应用2
接上文,我们已经粗略的拆分了单层应用,主要讲一些基础设施功能代码抽离出去,但是业务代码部分还是比较臃肿。
饭勺oO
2024-01-23
1130
单层应用升级到多层应用1
在单层应用中,我们讲基础设施的功能以及业务功能都写在同一个项目中,这将使得后期复杂度越来越高,可维护性越来越低。 首先先思考,哪些部分是属于业务无关的基础功能,哪些是通用的功能数据,哪些是业务功能。 根据这几个问题,暂时先考虑这样安排: 业务无关的基础功能抽离到Core。 通用的功能数据(如枚举,静态遍历)抽离到Shared。 把数据库相关的抽离成Domain和Data。 然后业务功能暂时还是放在Host。
饭勺oO
2024-01-23
1200
助力项目快捷实现国际化,造个多语言轮子
本项目主打一个一处配置多语言,多处使用的想法。助力项目方便快捷实现国际化(多语言)。 主要解决的问题:
饭勺oO
2024-01-05
1660
造轮子之单层应用总结篇
首先,们在基础设施方面取得了巨大的进展。我们实现了自动依赖注入,这个神奇的技术让我们能够轻松管理各个模块之间的依赖关系,提高了代码的可维护性和扩展性。同时,我们还集成了Serilog日志,这为我们的应用提供了详尽的运行日志,便于我们快速定位和解决问题。 另外,我们引入了统一的业务异常处理和请求响应格式,这使得我们的应用在面临异常情况时能够更加优雅和友好地向用户返回错误信息,提升了用户体验。我们还集成缓存和扩展了IDistributedCache缓存功能,更方便的操作和缓存常用数据,我们能够提升应用的响应速度和性能。ORM集成和Identity集成则使得数据库操作和用户认证变得更加简洁和高效。 除此之外,我们还完成了自定义授权策略,EventBus,消息实时推送,种子数据,GraphQL等功能的集成。
饭勺oO
2023-10-27
760
造轮子之文件管理
前面我们完成了设置管理,接下来正好配合设置管理来实现文件管理功能。 文件管理自然包括文件上传,下载以及文件存储功能。设计要求可以支持扩展多种存储服务,如本地文件,云存储等等。
饭勺oO
2023-10-25
2530
造轮子之设置管理
前面我们基础设施基本搭建完毕,后面可以做一些稍微复杂点的功能了,接下来就来实现一个设置管理。 设置管理一般用做一些系统设置之类的,如邮箱配置等,面向使用人员。而不需要修改我们的配置文件,修改配置文件的方式就偏向于技术人员了。 话不多说,开造。
饭勺oO
2023-10-23
1880
造轮子之集成GraphQL
先简单对比以下GraphQL和WebAPI: GraphQL和Web API(如RESTful API)是用于构建和提供Web服务的不同技术。
饭勺oO
2023-10-18
1940
造轮子之种子数据
在前面我们基本把应用框架的基础设施搭建完成。接下来我们就得着手处理一下种子数据的问题。 在一个基础框架里面,种子数据很重要,比如一些基础数据,初始用户等等,这些都需要初始化,否则程序启动却无法使用就很尴尬了。
饭勺oO
2023-10-18
1560
造轮子之消息实时推送
前面我们的EventBus已经弄好了,那么接下来通过EventBus来实现我们的消息推送就是自然而然的事情了。 说到消息推送,很多人肯定会想到Websocket,既然我们使用Asp.net core,那么SignalR肯定是我们的首选。 接下来就用SignalR来实现我们的消息实时推送。
饭勺oO
2023-10-18
2390
造轮子之EventBus
前面基础管理的功能基本开发完了,接下来我们来优化一下开发功能,来添加EventBus功能。 EventBus也是我们使用场景非常广的东西。这里我会实现一个本地的EventBus以及分布式的EventBus。 分别使用MediatR和Cap来实现。
饭勺oO
2023-10-18
2310
造轮子之属性注入配合懒加载构建服务抽象基类
在前面实现管理API的时候,可以看到我们用的挺多功能是没有通过构造函数注入的。比如缓存DistributedCache,MemoryCache,对象映射Mapper,多语言L,当前用户CurrentUser等等。 这些全都初始化在WheelServiceBase以及WheelControllerBase中,可以通过属性注入完成这个操作,同时为了避免注入太多影响性能,可以配合懒加载实现除IServiceProvider以外的服务注入。
饭勺oO
2023-10-18
1620
造轮子之菜单管理
前面完成了基础管理的相关API,接下来就得做一个菜单管理了,用于对接管理后台前端界面。
饭勺oO
2023-10-18
1830
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档