Ribbon

Autocad.net利用Xaml创建Ribbon界面

空扰寡人 提交于 2020-08-16 08:27:40
0.Ribbon界面 Ribbon界面设计语言最早于Office 2007出现,后来逐渐被其他Windows系统组件采用,一些专业软件也开始以Ribbon界面取代传统菜单栏设计。Ribbon设计语言显著减少了鼠标点击的平均次数,且更易于使用户找到已存在的功能和发现新功能。 Autodesk AutoCAD从 2009 版开始,引入了 Ribbon 界面,并于2015版开始正式取代传统的菜单组件。一般创建Ribbon界面的方式是用c#新建一个RibbonTab对象,然后加入各种各样的组件,最后附加到Ribbon中去。这种办法不方便实现前后端分离的设计,我们可以仿照WPF的方式,用Xaml编写前端,C#编写后端。 1.准备工作 本文采用Visual Studio 2019和AutoCAD 2018。AutoCAD 2018需要的.Net Framework版本为≥4.6。 首先,因为需要用到WPF的Xaml模板,创建一个“WPF应用(.Net Framework)”,选择版本”.Net Framework 4.6”。 在项目属性中,将输出类型改为“类库”,生成的目标平台改为“x64”。 在“解决方案资源管理器”中,删除“App.config”、“App.xaml”、“MainWindow.xaml”三项。 增加“AutoCAD.Net”Nuget包,选择2018对应的版本22.0.0。

一个线上问题的思考:Eureka注册中心集群如何实现客户端请求负载及故障转移?

寵の児 提交于 2020-08-15 16:48:09
前言 先抛一个问题给我聪明的读者,如果你们使用微服务 SpringCloud-Netflix 进行业务开发,那么线上注册中心肯定也是用了集群部署,问题来了: 你了解Eureka注册中心集群如何实现客户端请求负载及故障转移吗? 可以先思考一分钟,我希望你能够带着问题来阅读此篇文章,也希望你看完文章后会有所收获! 背景 前段时间线上 Sentry 平台报警,多个业务服务在和注册中心交互时,例如 续约 和 注册表增量拉取 等都报了 Request execution failed with message : Connection refused 的警告: 紧接着又看到 Request execution succeeded on retry #2 的日志。 看到这里,表明我们的服务在尝试两次重连后和注册中心交互正常了。 一切都显得那么有惊无险,这里报 Connection refused 是注册中心网络抖动导致的,接着触发了我们服务的重连,重连成功后一切又恢复正常。 这次的报警虽然没有对我们线上业务造成影响,并且也在第一时间恢复了正常,但作为一个爱思考的小火鸡,我很好奇这背后的一系列逻辑: Eureka注册中心集群如何实现客户端请求负载及故障转移? 注册中心集群负载测试 线上注册中心是由三台机器组成的集群,都是 4c8g 的配置,业务端配置注册中心地址如下(

ribbon-loadbalancer 负载均衡单独使用

て烟熏妆下的殇ゞ 提交于 2020-08-15 16:33:00
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.mycompany.ribbon.test ; import com.google.common.collect.Lists ; import com.netflix.client.DefaultLoadBalancerRetryHandler ; import com.netflix.client.RetryHandler ; import com.netflix.loadbalancer.* ; import com.netflix.loadbalancer.reactive.LoadBalancerCommand ; import com.netflix.loadbalancer.reactive.ServerOperation ; import rx.Observable ; import java.net.HttpURLConnection ; import java.net.URL ;

Winforms界面开发v20.1——Charting\Diagram控件增强功能

≯℡__Kan透↙ 提交于 2020-08-15 15:51:52
DevExpress WinForms Subscription拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任! DevExpress Winforms v20.1震撼发布,新版本增强Charting、Diagram控件功能等,欢迎下载v20.1体验! DevExpress Winforms v20.1正式版下载 Charting 计算字段 v20.1包含对计算得出的现场支持,计算字段允许您将表达式应用于数据源字段。 ChartControl.CalculatedFields.Add(new ChartCalculatedField() { DisplayName = "Calculated Population", Expression = "IIF ([GenderAge.Gender] == \'Male\', [Population] * -1, [Population])", FieldType = ChartCalculatedFieldType.Double, Name = "CalculatedPopulation" }); ChartControl

基于SpringBoot、SpringCloud、Docker微服务架构实战,资源分享

孤街醉人 提交于 2020-08-15 14:09:15
前言 近年来,微服务架构( Microservices Architecture )已经成为一种主流的软件开发方法论,它把一种特定的软件应用设计方法描述为能够独立部署的服务套件。所谓微服务( Microservices ),就是一些具有足够小的力度、能够相互协作且自治的服务体系。每个微服务都比较简单 仅关注于完成一个功能并能很好地完成该功能,而这里的功能代表的是一种业务能力。构建微服务体系需要一套完整的方法论和工程实践,而微服务架构的提出代表的就是实现微服务体系的架构模式,即为我们提供了这些方法论和工程实践 从这个角度讲 微服务架构需要我们理解、学习并应用到日常开发过程中去。 成为一名架构师几乎是每个程序员的梦想。而微服务架构则是当今架构领域最受关注的话题。掌握微服务架构技术栈相关技能,是从一名普通程序员到资深架构师的必经之路。 今天楼主给大家带来的一篇关于微服务相关的电子书资源,介绍了关于微服务架构、Spring Boot、Spring Cloud、Docker方面的内容。 1.根据Spring Boot、Spring Cloud、Docker等技术性搭建微保障体系。 2.精简而详细的经典案例展现保持分布式架构的详细宏伟蓝图。 3.融合业务流程情景,根据全方位实例得出专用工具在搭建分布式架构中的工程项目实战演练。

SpringCloud之初识Zuul(网关)---动态路由,权限验证

喜欢而已 提交于 2020-08-15 11:29:50
通过前面的学习,使用Spring Cloud实现微服务的架构基本成型,大致是这样的: 我们使用Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注册与发现;而服务间通过Ribbon或Feign实现服务的消费以及均衡负载;通过Spring Cloud Config实现了应用多环境的外部化配置以及版本管理。为了使得服务集群更为健壮,使用Hystrix的融断机制来避免在微服务架构中个别服务出现异常时引起的故障蔓延。 在该架构中,我们的服务集群包含:内部服务Service A和Service B,他们都会注册与订阅服务至Eureka Server,而Open Service是一个对外的服务,通过均衡负载公开至服务调用方。我们把焦点聚集在对外服务这块,直接暴露我们的服务地址,这样的实现是否合理,或者是否有更好的实现方式呢? 先来说说这样架构需要做的一些事儿以及存在的不足: 首先,破坏了服务无状态特点。 为了保证对外服务的安全性,我们需要实现对服务访问的权限控制,而开放服务的权限控制机制将会贯穿并污染整个开放服务的业务逻辑,这会带来的最直接问题是,破坏了服务集群中REST API无状态的特点。 从具体开发和测试的角度来说,在工作中除了要考虑实际的业务逻辑之外,还需要额外考虑对接口访问的控制处理。 其次,无法直接复用既有接口。 当我们需要对一个即有的集群内访问接口

曹工杂谈:分布式事务解决方案之基于本地消息表实现最终一致性

扶醉桌前 提交于 2020-08-15 08:04:44
曹工杂谈:分布式事务解决方案之基于本地消息表实现最终一致性 前言 为什么写这个?其实我这边的业务场景,严格来说,不算是典型的分布式事务,需求是这样说的:因为我这边负责的一个服务消费者consumer,是用户登录的入口;正常情况下,登录时候要走用户中心,这是个单独的服务;如果用户中心挂了,我这边自然是没法登录的。 现在的需求就是说,假设用户中心挂了,也要可以正常登录。因为我这个consumer其实也是缓存了用户的数据的,在本地登录也可以的,如果在我本地登录的话,我就得后续等用户中心恢复后,再把相关状态同步过去。 基于这样一个需求,我这边的实现方案是: 1.配置文件里维护一个开关,表示是否开启:故障转移模式。暂不考虑动态修改开关(如果要做,简单做就提供个接口来改;复杂做,就放到配置中心里,我们现在用的nacos,可以改了后推送到服务端) 2.如果开关是打开的,表示需要进行故障转移,则登录、退出登录等各种需要访问用户中心的请求,都存储到数据库中;数据库会有一张表,用来存放这类请求。大致如下: CREATE TABLE `cached_http_req_to_resend` ( `http_req_id` bigint(20) NOT NULL COMMENT '主键', `req_type` tinyint(4) NOT NULL COMMENT '请求类型,1

领课教育系统,在线教育(录播+直播)技术解决方案

青春壹個敷衍的年華 提交于 2020-08-14 13:51:38
线下培训机构如何低成本实现在线知识付费,并拥有自主 独立域名的在线教育系统网站 ,领课在线教育系统支持PC端和移动端小程序播放,可满足各类在线教学需求。 领课教育系统 - 技术说明文档 1. 技术架构图 后台技术说明: 分布式微服务架构 注册中心: Netflix Eureka 配置中心: Spring Cloud Config 服务网关: Netflix Zuul 客服端负载均: Netflix Ribbon 数据库连接池: Alibaba Druid 链路追踪: Spring Cloud Sleuth + Zipkin 应用管理: Spring Boot Admin 文档框架: Swagger 持久层框架: Mybatis 模板引擎: Freemarker 注:列出主要组件,其他组件因太多,不一一列出 前台技术说明: 前后端分离架构 Vue.js: 渐进式技术栈,足以应付任何规模的应用。 Nuxt.js: 服务端渲染,有效地解决单页面应用的 SEO 的问题。 2. 应用架构图 来源: oschina 链接: https://my.oschina.net/u/4386758/blog/4277191

使用Gateway自定义负载均衡过滤器

眉间皱痕 提交于 2020-08-13 19:48:44
背景 最近项目中需要上传视频文件,由于视频文件可能会比较大,但是我们应用服务器tomcat设置单次只支持的100M,因此决定开发一个分片上传接口。 把大文件分成若干个小文件上传。所有文件上传完成后通过唯一标示进行合并文件。 我们的开发人员很快完成了开发,并在单元测试中表现无误。上传代码到测试环境,喔嚯!!!出错了。 经过一段时间的辛苦排查终于发现问题,测试环境多实例,分片上传的接口会被路由到不同的实例,导致上传后的分片文件在不同的机器,那么也就无法被合并。 知道了原因就好解决,经过一系列的过程最终决定修改网关把uuid相同的请求路由到相同的实例上,这样就不会出错了! 准备 由于是公司代码不方便透露,现使用本地测试代码。 准备:Eureka注册中心,Gateway网关,测试微服务 启动后服务如下两个测试的微服务,一个网关服务 gateway版本 < spring-cloud.version > Greenwich.SR2 </ spring-cloud.version > < spring-boot.version > 2.1.6.RELEASE </ spring-boot.version > 此处就说下我网关的配置。 #网关名 spring.cloud.gateway.routes [ 0 ] .id = route-my-service-id #网关uri,lb代表负载均衡

MFC界面开发工具,BCGControlBar v30.4详解——Ribbon Bar控件

杀马特。学长 韩版系。学妹 提交于 2020-08-13 18:36:47
亲爱的BCGSoft用户,我们非常高兴地宣布 BCGControlBar Professional for MFC 和 BCGSuite for MFC v30.4正式发布!此版本包含适用于Visual Studio 2017-2019的新应用程序向导,Ribbon后台视图位于底部项目、新的图表类型Polar Bar、改进的甘特图以及其他新的功能和改进。需要最新版的可以点击这里【 BCG下载 】 v30.4引入了适用于Visual Studio 2017和Visual Studio 2019的新应用程序向导,该向导极大地简化了基于BCGControlBar的新应用程序的创建,您可以在几秒内创建Visual Studio、Office或类似Explorer的应用程序。如果出于某种原因您更喜欢使用经典(基于HTML)的应用程序向导,则可以在Integration Wizard设置中指定此选项。 Ribbon Bar 1. BCGPBaseRibbonElement:新方法IsOnActiveFrame告知ribbon控件是否位于活动(聚焦)的框架上。 2. CBCGPBaseRibbonElement:新方法IsOnZoomedFrame告诉ribbon控件是否位于最大化(缩放)帧上。 3. CBCGPRibbonSlider:添加对"Zoom In" ("+") / "Zoom