加速企业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
表示实体名称);通过提供的链接可获得每个层的更多文档:
Xxx
XxxAgent
XxxController
XxxManager
XxxDataSvc
XxxData
为了支持事件驱动架构的目标, 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 可能看起来是浪费时间,但单元测试与产品代码同样重要,因此审查对它们的更改也同样重要。这也有助于为您的更改创建可见性,以便其他人可以观察正在发生的情况。
优点很多:提高代码质量,更多地了解更改及其潜在影响,避免重复工作,并创建对各个领域正在取得的进展的普遍认识。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的 高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号