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

.NET周报 【5月第1期 2023-05-06】

这是一篇ChatGPT插件开发教程,描述如何使用 ASP.NET Core Minimal API 开发 ChatGPT 插件,以最简单的 Todo List 指导示例作为入门教程。...文章介绍了用 C# 实现和调用工作流的代码示例以及相关机制等。 目前 .NET SDK 处于 Alpha 发布阶段,API 可能会发生变化,但所有功能都已实现,预计不久将发布 Beta 和 GA。...包括错误消息的改进以及在 .NET 6 中启用修剪时的异常修复等一些修复。 【英文】Fleet 中的 C# 支持:解决方案视图、单元测试等!...通过使用 Copilot Chat,可以将基于 LLM 的自定义聊天机器人集成到应用程序中。...【英文】解锁 NuGet 的力量:.NET REST API 或微服务的必备软件包 https://levelup.gitconnected.com/unlock-the-power-of-nuget-essential-packages-for-net-rest-api-or-microservices-b1c25cfbdefa

1.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    博文推荐|整合 Spring 与 Pulsar,在 Java 中构建微服务

    本文我们来探讨如何在 Java 框架——Spring 中整合 Apache Pulsar。文章阐述如何在 Java 中构建基于 Spring 的微服务。在正文内容开始前,我们先介绍 Spring。...有了 Spring,开发者无需堆砌非业务相关的重复模板代码。基于 Spring,开发者可以如鱼得水般快速开发微服务应用,包括各类 REST API、Web 应用程序、控制台应用程序等。...在本文示例中,将展示如何基于 Spring Boot 提供的依赖注入机制,为应用程序接入实例化和已配置的 Apache Pulsar 来生产与消费消息。...airnowapi.url 这个变量配置的是用于访问 Air Now REST 数据流的专用令牌,建议配置到环境变量中。如果你也想使用该数据流,请先注册[4]。 我们现在开始构建应用。...在接收到消息事件之后,进行转换得到普通 Java 对象(Plain Old Java Object,即 POJO),我们可以对数据做任意处理,包括将 Spring 库持久化到数据库、发送到 REST 服务中或存储到文件等

    1.7K10

    activemq学习之activemq功能(一)

    ActiveMQ 主要应用在分布式系统架构中,帮助构建高可用、高性能、可伸缩的企业级面向消息服务的系统 ActiveMQ 特性 多语言和协议编写客户端 语言:java/C/C++/C#/Ruby/...订阅一个主题的消费者只能消费自它订阅之后发布的消息。JMS 规范允许客户创建持久订阅,这在一定程度上降低了时间上的相关性要求。...消息会被持久化保存 直到消息被签收 发布订阅 持久化订阅和非持久订阅 非持久化订阅 不能回复或重新指标一个未签收的消息 如果所有消息必须要签收 则使用持久订阅 消息结构组成 JMS 消息由及部分组成:...事务性的会话总是牵涉到事务处理中,commit 或 rollback 方法一旦被调用,一个事务就结束了,而另一个事务被开始。...也就是说非持久消息驻留在 内存中,如果 jms provider 宕机,那么内存中的非持久消息会丢失 对于持久消息,消息提供者会使用存储-转发机制,先将消息存储到稳定介质中,等消息发送成功后再删除。

    1.5K20

    gRPC 与.NET 入门

    REST REST 是一套架构约束,而不是协议或标准。API 开发人员可以使用各种方式来实现 REST。...考虑到这些因素,我们再来看一下 gRPC 和 REST 的差异: gRPC 契约优先的 API 开发方式:契约(服务和消息)是在*.proto文件中定义的,它们是 gRPC 的核心。...我们回到customers.proto文件并在Customer服务中添加一个流方法: // 我们要返回一个消费者的列表 // 但是在 gRPC 中我们不能返回列表,而是需要返回一个流 rpc GetAllCustomers...); // 我们要返回一个消费者的列表 // 但是在 gRPC 中我们不能返回列表,而是需要返回一个流 rpc GetAllCustomers (AllCustomerModel...而使用 REST 的时候,我们几乎不需要任何搭建过程就可以直接开始消费端点。 gRPC 不一定会取代 REST,因为这两种技术都有其特定的应用场景。

    1K20

    如何进行微服务的API测试

    管理Orchestrated微服务中的API更改 随着团队不断发展他们的微服务,不可避免地会对服务进行API更改。API更改带来的一个关键问题是如何理解这些更改对服务使用者的影响。...如果是这样,它会减少用户帐户中的资金数量,并将事件发布到“帐户更新”事件流。如果用户在他们的帐户中没有足够的资金,则它可以将错误事件发布到不同的事件流(为了简化示例,未示出)。...权衡是事件的异步性质使得更难理解系统将如何执行以及事件流将是什么。根据生成的事件的顺序或种类,系统可能会以意想不到的方式运行。这被称为紧急行为,并且是编排的微服务的开发和测试中的固有挑战。...Portfolio服务将事件发布到要添加的位置,以便处理Accounts微服务,然后等待Accounts服务将回复事件发布到Account Updated队列,以便REST API调用可以返回从该事件接收的数据...Parasoft SOAtest测试场景将使用两个测试构建:一个执行Portfolio服务的REST API,另一个测试从Accounts服务发布事件。

    3.3K20

    什么是反应式编程? 这里有你想要了解的反应式编程 (Reactive programming)

    流中的事件包括正常事件(对象代表的数据、数据流结束标识)和异常事件(异常对象,例如Exception)。...同时,只有当订阅者第一次发布者,发布者发布的事件流才会被消费,后续的订阅者只能从订阅点开始消费,但是我们可以通过背压、流控等方式控制消费。...How 基本概念 Flux,是Reactor中的一种发布者,包含0到N个元素的异步序列。通过其提供的操作可以生成、转换、编排序列。如果不触发异常事件,Flux是无限的。...Mono,是Reactor中的一种发布者,包含0或者1个的异步序列。可以用于类似于Runnable的场景。 背压(backpressure),由订阅者声明的、限定本消费者可处理的流中的元素个数。...Spring 5引入了一个非阻塞、异步的Web框架,该框架在很大程度上是基于Reactor项目的,能够解决Web应用和API中对更好的可扩展性的需求。

    6.3K42

    使用 ONNX 将 AI 推理引入 Java:企业架构师实用指南

    为什么对架构师重要 企业系统日益需要 AI 来驱动客户体验、自动化工作流、并从非结构化数据中提取洞见。但在金融、医疗等受监管领域,生产环境更看重可审计性、资源控制与 JVM 原生工具链。...设计为跨栈复用 基于 ONNX 的推理模块应能够整洁地集成到 REST API、批处理管道、事件驱动处理器与嵌入式分析层。将预处理、模型执行与后处理解耦,是实现复用、可测试与长期维护合规性的关键。...最终结果会路由到下游消费者,无论是业务流程引擎、关系型数据库还是 HTTP 响应管道。 系统遵循整洁的架构流:适配器到分词器、分词器到推理引擎、推理引擎到后处理器、后处理器到消费者。...架构师应将其视为受控的部署资产:经过验证、测试,并在各环境间有序发布,遵循与代码或数据库迁移同样的纪律。 可重复的模型生命周期包括导出模型与分词器、用代表性用例进行测试,并存储到内部的注册表或制品库。...Java 系统涵盖从 REST API 到 ETL 管道与实时引擎的广泛场景,因此基于 ONNX 的推理必须在不重复逻辑或割裂配置的前提下进行适配。

    26110

    API协议设计的10种技术

    类型系统还描述了查询参数的输入类型,并在 GraphQL Runtime 中检查参数值的有效性。一个 GraphQL 服务是通过定义类型和类型上的字段来创建的,然后给每个类型上的每个字段提供解析函数。...在 GraphQL 中,GraphQL Runtime 确定 GraphQL Server 可以提供的能力,而消费端具体要获取哪些数据则完全由消费者说了算。...客户端(消费端)可以以更加平等的地位,更加积极地参与到整个的数据交互过程。借助于GraphQL的类型系统,客户端可以更加自由地根据自己的需求来获得自己的所需,而无需受到 Server 端的限制。...客户端流式通信:客户端向服务器发送一系列请求,然后发送消息通知服务器流已结束,最后,服务器发送一个响应。 服务器流式通信:客户端向服务器发出单个请求。然后,服务器向客户端发送一个消息流。...这一架构强调了通过事件的发布和订阅机制实现 API 组件之间的松散耦合。API 组件可以是生产者(发布事件的组件)或消费者(订阅并响应事件的组件)。

    1.3K10

    RESTful .NET API中的隐形杀手:为何事件优先架构是生存之道

    你的RESTful .NET API中的隐形杀手 你刚刚发布了那个崭新的功能。 一个在.NET 8+ API中精心设计的POST端点——经过xUnit测试验证,CI/CD流水线全绿通过。...为何你的REST优先.NET架构本质上是脆弱的 REST优先的API设计在许多.NET系统中仍是默认选择——但在分布式架构环境中,它往往隐藏着结构性的脆弱性。...REST中本质上不存在分布式事务边界。 结果?复杂、脆弱且容易出错的恢复路径。 REST无法满足分布式系统的需求 RESTful API并非为分布式保证而设计。...多米诺骨牌效应:同步依赖如何在分布式系统中引发级联故障。 示例说明:考虑一个航班预订API。如果它在明确预订座位之前就发送确认邮件并处理支付,就会存在一个关键漏洞。...事件优先工作流:解耦意图与执行以增强弹性。 ️ 在.NET中实现事件优先API 在.NET 8+中实现事件优先原则,需要整合关键组件以确保可靠性和架构解耦。

    32210

    【知识总结】3.微服务从架构到发布

    本篇文章中,会介绍微服务架构(Microservices Architecture)的基础概念,以及如何在实践中具体应用。...点对点方式 – 直接调用服务 点对点方式中,服务之间直接用。每个微服务都开放REST API,并且调用其它微服务的接口。...而是一个轻量级的总线,能够提供非业务功能的抽象。这就是API网关方式。 API-网关方式 API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能个。...通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。...统一控制安全、监控、限流等非业务功能。 每个微服务会变得更加轻量,非业务功能个都在网关层统一处理,微服务只需要关注业务逻辑 目前,API网关方式应该是微服务架构中应用最广泛的设计模式。

    62520

    万字讲解API网关的来龙去脉

    流控是我们谈的另外一个关键能力,包括了服务限流和服务熔断。对于服务限流主要是实现对服务消费前线程数控制,资源分配实现消费前等待。...将一个 JAR 包中的 API 接口方法或函数发布为一个 Http Rest 接口服务。...即在微服务平台首先定义数据或对象模型,然后将对象模型转换为 Http Rest 中的资源对象,并发布对应的 Get , Post 各种 Http Rest 接口服务。...一旦资源的拥有者授权访问他们的数据之后,他们将会被重定向到 Web 应用并在 URL 的查询参数中附带一个授权码(code)。在客户端里,该 code 用于请求访问令牌(access_token)。...在整个定制中增加了基于 DB 适配的 Http Rest API 接口的自动发布,API 服务自动化注册,服务日志采集和服务日志查询,常见映射模板定制,接口服务的自动化测试等方面的能力。

    1.9K20

    REST API 设计最佳实践:如何构建、设计和使用 API ?

    因此我决定写篇文章分享一下,在设计 REST API 时的最佳实践。以下是关于设计优秀REST API 的一些建议、提示和指导,帮助您让消费者(以及开发人员)满意。 1....此类内容应放在查询字符串中。因此最后, 用户可以像这样获取“包含20个项目、已发布书籍第二页”: GET: /books?...使用专门针对REST API的网络框架 作为最后一个最佳实践,让我们讨论这个问题:如何在您的API中实际应用最佳实践?大多数时候,您希望建立一个快速的API,以便一些服务可以相互交互。...因此,在API中应用最佳实践需要采取额外措施。而且大多数时候, 懒惰或缺乏时间意味着你不会付出努力——从而使你的消费者面临一个古怪的API。 解决方案很简单:使用合适工具完成任务。...结束语 我们都应该努力使API变得易于使用。无论是对于消费者,还是我们自己的开发人员同伴。我希望这篇文章能帮助你学到一些技巧,并激发出构建更好REST API的方法。

    2.2K40

    微服务构建持久API的7大规则

    微服务的一大特性就是独立发布,快速迭代,但前提是足够稳定,他们在使用微服务构建API的过程中就遇到很多问题: 1. ...这三个元素提供了实用REST API所需的一切,包括简单性、可移植性、互操作性和可修改性。在构建了API之后,用户可以轻松地对其进行集成,而不考虑他们的编程语言,包括C#、PHP和Node。...二、发展进化并管理变化 我们有许多开发人员和团队在使用我们的API的微服务,并在持续的变更。当工程师确定它已经通过了我们的测试时,我们就会自动将变更部署到生产中。...· 请求主体中的非预期查询参数和JSON字段应该被忽略。 治理组还为如何进行更改以及允许哪些类型的更改设置了基本规则。...五、使用客户端库来帮助非javascript用户 我们的一些用户更喜欢Python、c#、Java或PHP而不是JavaScript。

    1K00

    .NET周刊【1月第2期 2025-01-12】

    System.Reactive是微软实施Reactive Extensions的库,它允许开发者轻松管理数据流。关键组件包括IObservable和IObserver,分别代表数据流的生产者和消费者。...观察者模式在此框架中起核心作用。示例代码展示了如何使用Subject来实现数据订阅和发布。对比Observable和Task,前者处理多个值,后者限于单个值。...通过观察者模式,IObservable 作为数据流的生产者,负责推动数据,而 IObserver 作为消费者,响应接收的数据流。...此外,作者着重于非托管和托管层之间的映射关系,明确了C#对Win32 API的调用方式。文章逻辑清晰,内容技术深度较高,对理解C#异步操作的工作机制非常有帮助。...Profiler API 包装器在 C# 中实现 .NET Profiler。

    1K10

    带你了解OData

    REST本身只是一个构建web服务的思想和理念,其没有规定一个统一的标准来限制开发人员该如何设计RESTful API。其实我们实际开发中的确也没有遵循某个统一的标准去设计WebAPI。...标准化的另一个好处:可以将Odata协议实现到一个通用的类库中,通过这个类库去创建和访问RESTful API可以减少开发人员的工作量。官网上有很多这样的组件。 Who - 谁发布了OData?...由于没有类似于SOAP的权威性协议作为规范,因此各个网站的REST实现都自有一套,也正是因为这种各自实现的情况,在性能和可用性上会大大高于SOAP发布的web service,但细节方面有太多没有约束的地方...第四步:在我们的代码中就可以操作CLR对象来消费远程的webAPI了。体验到Odata标准的力量了吧。 ?...接下来看一下C#服务端如何实现上面客户端需要调用的OData的WebAPI,有两种方式,有点细微的差别。 第一步:创建一个空的WebApi项目。

    3.9K30

    初识kafka

    同时它是稳定的,提供了可靠的持久性,具有灵活的发布-订阅/队列,可以很好地扩展到n个消费者组,具有健壮的复制,为生产者提供了可调的一致性保证,并在碎片级别(即Kafka主题分区)提供了保留的排序。...Kafka是一个分布式流媒体平台,用于发布和订阅记录流。Kafka用于容错存储。Kafka将主题日志分区复制到多个服务器。Kafka是设计处理来应用程序实时产生的数据。...在c#、Java、C、Python、Ruby和许多其他语言中都有客户端。 Kafka生态系统还提供了REST代理,允许通过HTTP和JSON进行简单的集成,这使得集成更加容易。...Kafka 会保留消费记录 Kafka集群保留所有已发布的记录。如果不设置限制,它将保存记录,直到耗尽磁盘空间。...主题日志中的记录可供使用,直到根据时间、大小或压缩丢弃为止。消费速度不受大小的影响,因为Kafka总是写到主题日志的末尾。 Kafka经常用于实时流数据架构,提供实时分析。

    1.2K30

    什么是Kafka

    Kafka用例 简而言之,卡夫卡用于流处理,网站活动跟踪,度量收集和监控,日志聚合,实时分析,CEP,将数据导入到Spark中,将数据导入到Hadoop,CQRS,重播消息,错误恢复,并保证内存计算(微服务...它是稳定的,提供可靠的持久性,具有灵活的发布 - 订阅/队列,可与N个消费者群体进行良好扩展,具有强大的复制功能,为制作者提供可调整的一致性保证,并在碎片级别提供保留排序(即Kafka 主题分区)。...这些批次的数据可以从生产者到文件系统(Kafka主题日志)到消费者端到端地看到。批处理允许更高效的数据压缩并减少I / O延迟。...Kafka是一个分布式流媒体平台,用于发布和订阅记录流。Kafka用于容错存储。 Kafka将主题日志分区复制到多个服务器。Kafka旨在让您的应用程序处理记录。...有C#,Java,C,Python,Ruby等多种语言的客户端。Kafka生态系统还提供了REST代理,可以通过HTTP和JSON轻松集成,从而使集成变得更加简单。

    4.7K20

    常用消息队列介绍和对比

    语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。...特点是: 高性能,非持久化 跨平台:支持Linux、Windows、OS X等 多语言支持; C、C++、Java、.NET、Python等30多种开发语言 可单独部署或集成到应用中使用...Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。...Producer 负责发布消息到Kafka broker Consumer 消息消费者,向Kafka broker读取消息的客户端。...因为是阿里内部从实践到产品的产物,因此里面很多接口、api并不是很普遍适用。可靠性毋庸置疑,而且与Kafka一脉相承(甚至更优),性能强劲,支持海量堆积。

    4.9K51

    究极缝合怪 | Pulsar核心概念和特性解读

    极低的发布延迟和端到端延迟。 可无缝扩展到超过一百万个 topic。 简单的客户端 API,支持 Java、Go、Python 和 C++。...Brokers Pulsar的broker是一个无状态组件, 主要负责运行另外的两个组件: http服务器,可用于接收Rest API请求,并负责生产者连接生产消息,消费者连接消费消息。...在此机制中,无法使用的消息存储在单独的主题中,称为死信主题。您可以决定如何处理死信主题中的消息。...非持久topic 一般,pulsar会持久化所有未被消费的消息数据到bookkeep bookies中,以保证持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。...下面为官网配置链接: Message deduplication · Apache Pulsar 消息延迟传递 延时消息功能允许你能够过一段时间才能消费到这条消息,而不是消息发布后,就马上可以消费到

    2.6K20
    领券