摘要:
接上文,我们已经初步完成了单层到多层的拆分,接下来就是再优化我们的结构了。 升级思路 在前文的Core项目中,包含了我们所有的基础功能,但是有些项目可能只需要部分功能却引用整一块Core的话,会显得有些多余,需要将这部分基础设施再做一下细致化的拆分。 在Host项目中,仍旧还有许多功能代码没有拆分, 阅读全文
摘要:
接上文,我们已经粗略的拆分了单层应用,主要讲一些基础设施功能代码抽离出去,但是业务代码部分还是比较臃肿。 接下来就准备将业务部分抽离一下。 思路 前面将一些基础的部分抽离出去了,接下来就是业务和API方面,这里准备再抽离出两个类库。分别是Api和Application。 Api主要是接口部分的代码。 阅读全文
摘要:
前面我们已经逐步完善了我们的单层应用,但是随着复杂度提升,单层应用逐渐变得臃肿。为了更好地应对日益增长的业务需求和保持应用的可维护性,我们需要考虑将单层应用升级为多层应用。 升级思路 在单层应用中,我们讲基础设施的功能以及业务功能都写在同一个项目中,这将使得后期复杂度越来越高,可维护性越来越低。 首 阅读全文
摘要:
前段时间跟同事吹水聊天时,吐槽一个话题,就是公司项目都需要做多语言,前端后端都需要做。 而且是需要支持8国语言翻译,每次弄起来都特麻烦,每加一个Key就需要去翻译其他7个语言出来添加,每新增一个项目就需要弄一遍多语言资源,重复且枯燥费时的体力活。 项目想法 本项目主打一个一处配置多语言,多处使用的想 阅读全文
摘要:
在前面的篇章中,我们一起探讨了单层应用,从基础设施的建设到实现各种业务功能,我们的单层应用经历了一次又一次的进化。让我们来回顾一下我们所实现的一些重要功能。 首先,我们在基础设施方面取得了巨大的进展。我们实现了自动依赖注入,这个神奇的技术让我们能够轻松管理各个模块之间的依赖关系,提高了代码的可维护性 阅读全文
摘要:
前面我们完成了设置管理,接下来正好配合设置管理来实现文件管理功能。文件管理自然包括文件上传,下载以及文件存储功能。设计要求可以支持扩展多种存储服务,如本地文件,云存储等等。 数据库设计 首先当然是我们的数据库表设计,用于管理文件。创建一个文件信息存储表。 using Wheel.Domain.Com 阅读全文
摘要:
前面我们基础设施基本搭建完毕,后面可以做一些稍微复杂点的功能了,接下来就来实现一个设置管理。设置管理一般用做一些系统设置之类的,如邮箱配置等,面向使用人员。而不需要修改我们的配置文件,修改配置文件的方式就偏向于技术人员了。话不多说,开造。 设计结构 设置管理中需要2个表,一个是设置组表,比如什么邮箱 阅读全文
摘要:
先简单对比以下GraphQL和WebAPI:GraphQL和Web API(如RESTful API)是用于构建和提供Web服务的不同技术。 数据获取方式: Web API:通常使用RESTful API,客户端通过发送HTTP请求(如GET、POST、PUT、DELETE)来获取特定的数据。每个请 阅读全文
摘要:
在前面我们基本把应用框架的基础设施搭建完成。接下来我们就得着手处理一下种子数据的问题。在一个基础框架里面,种子数据很重要,比如一些基础数据,初始用户等等,这些都需要初始化,否则程序启动却无法使用就很尴尬了。 IDataSeeder 首先定义一个种子数据接口 using Wheel.Dependenc 阅读全文
摘要:
前面我们的EventBus已经弄好了,那么接下来通过EventBus来实现我们的消息推送就是自然而然的事情了。说到消息推送,很多人肯定会想到Websocket,既然我们使用Asp.net core,那么SignalR肯定是我们的首选。接下来就用SignalR来实现我们的消息实时推送。 Notific 阅读全文