
加速企业API开发的高效框架
Beef是一个面向工业化API开发的框架,旨在提高开发效率和质量。它提供实体管理、数据验证、CRUD操作、分页等核心功能,同时支持事件驱动架构和自动化测试。通过标准化流程和丰富工具,Beef帮助开发团队更快速地交付高质量、低成本的企业级API。

Beef 框架主要是为了支持API开发的工业化而创建的。
一种让软件开发人员直接专注于加速交付业务价值的方式;以更高的质量和更低的总体成本持续产出。
主要的工业化目标是:
以下视频(包含声音)提供了 Beef 及其功能的高级演示。
https://github.com/Avanade/Beef/assets/12836934/693d4839-dfde-4360-9994-33f8dc10e3a1
<br/><br/>注意: Beef 的一个新的主要版本 第5版 于2023年1月26日发布。示例已相应更新,相关文档也已更新。因此,之前的版本(v4.x)的开发将在很大程度上停止;只会解决重大问题(一段时间内)。新版本主要是对底层运行时的重大重构(改进和简化),尽管努力将从v4升级的影响降到最低,但这不可避免。我们提供了指导,以帮助在适用的情况下从v4.2.x升级到v5.x。
Beef 本质上是代码生成引擎和解决方案编排,最终依赖于以下功能以标准化(尽管有些固执己见)的方式实现最终功能和测试:
在5.x版本之前,Beef 包罗万象。这些功能已被提取、简化并重构为独立的一流框架,并制作成上述列出的存储库。这允许它们独立于 Beef 使用和维护;因此,提供了更多的重用机会,而不是全有或全无。
<br/>由于 Beef 的架构、支持的框架和包含的代码生成功能,企业级API可以在几个小时内以标准化和一致的方式开发,而不是几天。
创建的API将具有以下开箱即用的功能,开发人员只需付出很少的努力,因此开发人员可以专注于关键的业务价值:
INotifyPropertyChanged、IEditableObject、IEquatable、ICopyFrom、ICleanUp、IPrimaryKey等。If-Match/If-None-Match处理。$fields=firstname,lastname)要实现这些包含的功能,实际上需要花费数月/年的时间来构建和测试;这些功能可供开发人员立即使用,如果愿意,也可以贡献回来。这些功能和实现受到了Microsoft云应用程序最佳实践的影响;具体来说:
要开始使用,提供了一个.NET Core模板功能,使您能够在几分钟内启动并运行解决方案。
<br/>Beef 的开发旨在鼓励应用程序架构中微服务(API)的分层和分层的标准化和工业化。
<br/>概念架构如下; Beef 专门针对API层的实现。

主要概念如下:
渠道无关 - API基于关键实体及其可执行的操作:
基于领域 – API基于并封装了功能领域的功能:
创建基于领域的API的架构模式:
<br/>"微"并不意味着代码行数;而是域内的有界概念/业务能力。 - http://herdingcode.com
该架构支持基于领域的渠道无关的微服务方法。API服务端点代表业务(域逻辑)层的轻量级外观,该层最终负责完成请求。
以下代表该架构规定的分层:

基于此架构,使用 Beef 创建的.NET解决方案应遵循规定的解决方案结构。
上面的每个关键层/组件都进行了进一步详细说明(Xxx表示实体名称);通过提供的链接可获得每个层的更多文档:
XxxXxxAgentXxxControllerXxxManagerXxxDataSvcXxxData为了支持事件驱动架构的目标, Beef 启用了关键功能;向事件流(或等效物)发布(生产者)和订阅(消费者)事件(消息)。

生产者/发布者 - 事件发布集成到API处理管道中;这在数据(当利用事务性发件箱模式时)或服务编排层中启用,以确保方法的一致性。 Beef 在很大程度上与底层事件/消息基础设施(事件流)无关,必须由开发人员实现(除非提供,请参阅Azure ServiceBus)。
消费者/订阅者 - 然后实现事件订阅者以侦听来自底层事件/消息基础设施(事件流)的事件并执行相关操作。鼓励事件订阅者通过托管 Beef 功能来重用底层逻辑以实现。域逻辑层可以重新 利用来执行接收事件时的底层业务逻辑(在订阅域的上下文中)。
此外, Beef 具有支持(和生成)事务性发件箱模式的功能,当需要_可靠_发送事件时(没有消息丢失);即在底层数据更新的上下文中保证至少一次发送语义(目前仅支持数据库存储库)。
<br/>创建了一个全面的框架来支持定义的架构,封装和标
实体驱动 (.NET C#)
数据库驱动 (数据库)
Beef 是根据 MIT 许可证 开源的,可以免费用于商业用途。
<br/>要开始使用 Beef,您不需要克隆或复刻存储库;您只需要使用规定的解决方案结构创建一个包含底层项目的解决方案,包括引用适当的 NuGet 包。为了加速这一过程,提供了 .NET Core 模板功能,使您能够在几分钟内开始使用。
请参阅以下示例,了解端到端的解决方案/项目创建;每个示例都演示了相同的 API 功能,但利用不同的数据源来实现:
否则,请按照以下示例教程进行操作,这些教程将提供更深入的演练,解决定义的功能问题:
My.Hr - 针对 SQL 数据库的微服务,同时使用存储过程和实体框架。MyEf.Hr - 针对 SQL 数据库的微服务,使用实体框架。Cdr.Banking - 针对 Azure CosmosDB 数据源的微服务。Xyz.Legacy - 针对旧数据库的 CDC 实现,将消息发布到 Azure 服务总线。贡献的最简单方式之一是参与 GitHub 问题的讨论。您也可以通过提交带有代码更改的拉取请求 (PR) 来做出贡献。
<br/>最一般的指南是我们使用所有 VS 默认设置进行代码格式化;如有疑问,请遵循现有代码库的编码约定。
_camelCase。this.。private string _foo; 而不是 string _foo;)。{) 另起一行(单行语句的 if 不需要括号)。更多指导请参见 ASP.NET Core 工程指南。
<br/>NUnit 用于单元测试。
为了确保只有最高质量的代码进入项目,请将所有代码更改作为 PR 提交到 GitHub。这包括运行时代码更改、单元测试更新和端到端演示的更新。
例如,仅为单元测试更新发送 PR 可能看起来是浪费时间,但单元测试与产品代码同样重要,因此审查对它们的更改也同样重要。这也有助于为您的更改创建可见性,以便其他人可以观察正在发生的情况。
优点很多:提高代码质量,更多地了解更改及其潜在影响,避免重复工作,并创建对各个领域正在取得的进展的普遍认识。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频


实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。


选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI 集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

