nuget

ASP.NET Core中Ocelot的使用:基于Spring Cloud Netflix Eureka的动态路由

China☆狼群 提交于 2020-07-29 09:19:41
在《 ASP.NET Core中Ocelot的使用:API网关的应用 》一文中,我介绍了如何在ASP.NET Core中使用Ocelot实现API网关。在介绍的过程中,引出了一个问题,就是服务之间相互调用的代码能不能别写死(hard code)在代码里,至少也得通过配置文件来指定吧?说的没错,很好的建议,只不过我也提到过,写在配置文件中也不是一个很好的实践。设想一下,假如我们有几十个微服务,各个微服务之间都有可能会有相互调用的情况,那么我们就需要维护大量的与微服务的地址、端口相关的配置信息,这样非常容易出错,如果是通过微服务的环境变量进行设置,那就更糟糕了,一大堆的环境变量设置,会使得应用程序的部署变得非常麻烦而且容易出错。另一个原因是,在云端部署的微服务,本身就具有伸缩的能力,服务的地址和端口很有可能是不固定的,所以,将这些信息保存在配置文件或者环境变量中是不合理的。因此,本文会介绍Spring Cloud Netflix Eureka服务的使用,通过服务注册与发现(Register and Discovery)机制,配合Ocelot的动态路由来解决这个问题。 这是一件有趣的事情:我们打算实现微服务,于是,将我们的业务拆分成两个微服务,然后发现微服务之间有相互调用的关系,客户端也需要同时使用多个微服务来展示处理结果,因此

Blazor 修仙之旅

雨燕双飞 提交于 2020-07-29 06:18:40
原文: Blazor 修仙之旅 - Ant Design of Blazor 一.前言 这是《Blazor 修仙之旅》的第三篇,前面两分别是《初次尝试》、《组件与数据绑定》,直接到这里上 Ant Design 确实连不起来,跨度比较大,其实我也是在边学边写,看的是官方文档,我觉得中间这部分重复写博客的意义不大,所以我建议去看官方文档,传送门: 点我 。如果看过我的前两篇,我建议您从这里开始看: 点我 。不用每篇都深刻理解,但需要有一个基本概念。好了,下面进入正题。 二. Ant Design of Blazor 介绍 ant-design-blazor 是国内开发者 ElderJames 创建的一个开源项目。在前不久的微软Build大会也见到了它的身影,受到了微软官方推荐,点赞!顾名思义, ant-design-blazor 是 Ant Design 的 Blazor 实现,开发和服务于企业级后台产品。 ✨ 特性 🌈 提炼自企业级中后台产品的交互语言和视觉风格。 📦 开箱即用的高质量 Razor 组件,可在多种托管方式共享。 💕 支持基于 WebAssembly 的客户端和基于 SignalR 的服务端 UI 事件交互。 🎨 支持渐进式 Web 应用(PWA) 🛡 使用 C# 构建,多范式静态语言带来高效的开发体验。 ⚙️ 基于 .NET Standard 2.1,可直接引用丰富的

从零搭建分布式文件系统MinIO比FastDFS要更合适

霸气de小男生 提交于 2020-07-29 06:12:45
前两天跟大家分享了一篇关于如何利用FastDFS组件来自建分布式文件系统的文章,有兴趣的朋友可以阅读下《 用asp.net core结合fastdfs打造分布式文件存储系统 》。通过留言发现大家虽然感兴趣,但是都觉得部署比较麻烦。的确,fastdfs的部署很繁琐,而且也没有官方提供的针对.net core的sdk。而今天带来的MinIO则是一个比fastdfs更好的选择,可以让你足够简单的来部署使用,官方也提供了足够详细的api文档。下面就让我们开始今天的正文吧。 这里说明下为什么今天才进行分享,因为就在几个小时前官方才发布了最新的3.1.12版本的nuget包,解决了 BucketExistsAsync 的一个bug,不然你还得引用源码才能正常运行。 作者:依乐祝 原文地址: https://www.cnblogs.com/yilezhu/p/12830123.html MinIO是什么? 官方对MinIO的介绍是:高性能,Kubernetes原生支持的对象存储系统。MinIO的高性能软件定义对象存储套件可以使用户能够为机器学习、分析和应用程序数据工作负载构建云原生支持的数据基础设施。下面是几个常用的网址 官网: https://min.io/ 开源地址: https://github.com/minio/ 中文文档: https://docs.min.io/cn/ .NET

(八十八)c#Winform自定义控件-转子

拥有回忆 提交于 2020-07-29 04:17:10
官网 http://www.hzhcontrols.com/ 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。 GitHub: https://github.com/kwwwvagaa/NetWinformControl 码云: https://gitee.com/kwwwvagaa/net_winform_custom_control.git 如果觉得写的还行,请点个 star 支持一下吧 欢迎前来交流探讨: 企鹅群568015492 来都来了,点个【推荐】再走吧,谢谢 NuGet Install-Package HZH_Controls 目录 http://www.hzhcontrols.com/blog-63.html 用处及效果 准备工作 也没什么准备的,开撸 开始 添加一个用户控件UCRotor 添加一下属性 1 private Color rotorColor = Color.Black; 2 3 public Color RotorColor 4 { 5 get { return rotorColor; } 6 set 7 { 8 rotorColor = value; 9 Refresh(); 10 } 11 } 12 13 RotorAround rotorAround = RotorAround.None; 14 int

01.敏捷开发框架-项目创建

我们两清 提交于 2020-07-28 20:43:29
打开华东信息辅助开发工具 项目类型:选择CORE框架 这里以创建 WMS项目为例子 暂时存放在C:\\WMS目录下 点击【创建解决方案】 非常速度,只需2秒,我们就获得完整的解决方案 我们打开解决方案 直接编译一下 完全正常 运行项目: 点击登录 这是因为没有添加Redis的引用 我们只要通过Nuget添加引用即可 选中项目 ECI.WMS.API 右键: 选择: 然后点击安装 弹出 点击【确定】 再次运行登录画面,点击登录 进入系统主框架页面 这时,左侧菜单没有 这个在哪里配置? 网站项目 wwwroot 根目录下 有 website.js 这个站点 website.config 主管了我们站点的基本配置项 包括,MENU 菜单的 对应权限平台的 functionId 例如我们在权限平台建立如下菜单 这里拷贝 功能点id 右侧红色显示 刷新页面: 好,这样框架就运行起来了。 接下来就是进入到业务系统的开发了。 来源: oschina 链接: https://my.oschina.net/u/4288530/blog/4316309

ASP.NET Core中的依赖注入(3): 服务的注册与提供

孤者浪人 提交于 2020-07-28 20:35:00
原文: ASP.NET Core中的依赖注入(3): 服务的注册与提供 在采用了依赖注入的应用中,我们总是直接利用DI容器直接获取所需的服务实例,换句话说,DI容器起到了一个服务提供者的角色,它能够根据我们提供的服务描述信息提供一个可用的服务对象。ASP.NET Core中的DI容器体现为一个实现了IServiceProvider接口的对象。 ServiceProvider与ServiceDescriptor 服务的注册与提供 利用ServiceProvider来提供服务 提供一个服务实例的集合 获取ServiceProvider自身对象 对泛型的支持 一、ServiceProvider与ServiceDescriptor 我一直觉得优秀的设计首先应该是简单的设计,至少是看起来简单的设计,这就是我们所谓的大道至简。作为一个服务的提供者,ASP.NET Core中的DI容器最终体现为一个IServiceProvider接口,我们将所有实现了该接口的类型及其实例统称为ServiceProvider。如下面的代码片段所示,该接口简单至极,它仅仅提供了唯一个GetService方法,该方法根据提供的服务类型为你提供对应的服务实例。 1: public interface IServiceProvider 2: { 3: object GetService(Type serviceType)

ML.NET案例详解:在.NET下使用机器学习API实现化学分子式数据格式的判定

纵然是瞬间 提交于 2020-07-28 20:19:59
半年前写过一篇类似的文章,题目是:《 在.NET中使用机器学习API(ML.NET)实现化学分子式数据格式的判定 》,在该文中,我介绍了化学分子式数据格式的基本知识,同时给出了一个案例,展示了如何在.NET/.NET Core中,使用微软开源的ML.NET框架,通过机器学习,实现化学分子式数据格式的预测。 时隔半年,ML.NET有了很大的发展。在阅读我之前那篇文章的时候,或许还会对给出的案例代码有些疑问,ML.NET经过几个版本的更新之后,API的设计变得更为合理易用,所开放的接口也越来越多(比如,新版本的ML.NET中,对机器学习引擎的OutputSchema进行了完全开放,开发者可以根据自己的需要进行调用),因此,本文就再一次回到这个话题并进行更为详细的介绍,用新版本的ML.NET重新实现化学分子式数据格式的判定。 有关化学分子式的相关知识,在这里也就不多说了,直接看代码实现部分。 准备数据 我们的数据仍然是一个CSV文件,通过逗号分隔,文件包含两个字段:结构式数据(ChemicalStructure),以及该结构式数据的类型(Type),以下是这个文件的部分片段,注意,在这个文件中,我们没有定义CSV头,不过这不重要,只要记得在后面的代码实现中,将这个设置体现出来就可以了。 [O-]C(CCCCCCCCCCCCCCCCC)=O.[Na+],SMILES O=C(C1)N(C2

『简易日志』NuGet 日志包 SimpleLogger

别等时光非礼了梦想. 提交于 2020-07-28 12:40:57
『 简易 日志 』 NuGet 日志包 Simple Logger 独立观察员 2020 年 7 月 7 日 一、概述 目前, .NET 框架下,主流的日志组件大致就是 N log 和 Log4Net 了,功能比较强大,但总感觉太重了,学习他们的配置规则也是个门槛。当然还有这两者的各种封装变种,以及似乎在 .NET Core 中比较流行的微软官方的 Microsoft.Extensions.Logging,具体没怎么使用过,不好评价。(说到变种,本人曾经也改造过一个 log4net 的版本: https://gitee.com/dlgcy/YTLog ,感兴趣的可以试试)。 其实,对于个人项目或者较小的项目,我们实际只需要将日志内容写入文本文件即可。本人制作的这个 “简易日志 (Simple Logger )” 包里面包含的代码逻辑,最开始也就是简单地写入文本,后来经过实际使用的演化,做了各种优化,添加了一些实用的特性,感觉用着还不错。正所谓独乐乐不如众乐乐,于是将其打包上传到微软的包管理库 NuGet 中,大家可以使用试试,相互交流。核心代码已托管在码云了: https://gitee.com/dlgcy/dotnetcodes/blob/dlgcy/DotNet.Utilities/ 日志 / LogHelper.cs 。 二、使用方法 1、配置(可选) 配置不是必须的

ASP.NET Core中Ocelot的使用:API网关的应用

杀马特。学长 韩版系。学妹 提交于 2020-07-28 07:51:58
在向微服务体系架构转型的过程中,我们都会毫不意外地遇到越来越多的现实问题,而这些问题却并不是因为功能性需求而引入的。比如,服务的注册与发现,是应用程序在云中部署、提供可伸缩支持的主要实现方案,在特定的微服务架构中,实践这样的云设计模式是利远远大于弊的。今我们需要讨论的API网关也是这样的一种微服务实现方案,它解决了客户端与服务端之间繁琐的通信问题。 在进一步讨论API网关在微服务架构中的应用前,先一起了解一下目前我手上的两个微服务:A服务提供了数学计算的API,B服务则提供了天气数据查询的API。两者看上去风马牛不相及,然而,B服务中的一个需求使得两者之间产生了密不可分的联系:B服务需要提供某些城市5年来平均气温的标准差,以便用户能够了解各个城市的气温变化情况。业务需求其实挺简单,从一个外部数据源将指定城市的平均气温数据读入,然后计算标准差即可,不过从实现上看,由于A服务已经提供了计算标准差的API,因此,B服务没有必要自己再写一套,只需要调用A服务提供的API即可,也就是A和B之间存在互相调用的情况。另一方面,对于用户来说,也存在需要同时调用A和B两组API的场景,因此,A和B的API也需要向外界曝露,这样一来应用程序的结构大致如下: 也就是上图中B服务的/weather/stddev API将会用到A服务中的/calc/stddev这个API。OK

WPF 基于 Azure 的认知服务 情绪分析 语言检测 关键短语提取

筅森魡賤 提交于 2020-07-28 07:19:52
本文主要是来安利大家基于 Azure 的认知服务,主要是文本认知服务,可以做到分析输入文本的情绪,以及判断当前输入文本所属语言等功能 本文分为两个部分 ,一个就是在 Azure 上的配置,另一个就是 WPF 端的使用 在 Azure 上我用的是 世纪互联 的一块钱订阅,可以用一块钱订阅一个月的试用,这就是为什么我这几天都会写 Azure 相关博客的原因 登录 Azure 控制台,新建一个 认知服务 新建方法基本上看界面就会了,而微软的界面会改来改去,我就不放详细的步骤了 这个服务属于新建完成就完成 Azure 端的部署 在开始之前还请小伙伴看一下定价层是否是免费的哈,点击资源管理,点击定价层,选择免费,点击下方的选择按钮 接下来还需要点击 密钥和终结点 复制粘贴密钥和访问地址 在上面的图片可以看到有两个密钥,其实这两个密钥可以在代码里面使用任意一个,在这里放两个只是为了在一个失效之后可以备用另一个 新建一个 WPF 项目,在项目里面通过 NuGet 安装 Microsoft.Azure.CognitiveServices.Language.TextAnalytics 库,这个是 2.1 版本的,最新版本是 3.0 预览版。不过 3.0 预览版需要 Azure 服务器的支持,暂时中国微软的版本是不支持的,如果使用 3.0 的预览版将会提示 {code: "404", message: