当前位置: 首页 > news >正文

大连网站建设案例嵌入式培训班多少钱

大连网站建设案例,嵌入式培训班多少钱,国外在线代理服务器,怎么制作ppt的步骤教程写在前面Web服务开发过程中我们经常有这样的需求#xff1a;某些功能我必须我修改了配置才启用#xff0c;比如新用户注册送券等#xff1b;某个功能需到特定的时间才启用#xff0c;过后就失效#xff0c;比如春节活动等#xff1b;某些功能#xff0c;我想先对10%的用… 写在前面Web服务开发过程中我们经常有这样的需求某些功能我必须我修改了配置才启用比如新用户注册送券等某个功能需到特定的时间才启用过后就失效比如春节活动等某些功能我想先对10%的用户开放验证没问题后再逐步全量开放等这就是功能开关。日常开发中功能开关我们一般是写到配置文件里的根据不同的配置做不同的逻辑但其实.net core是对功能开关有官方支持的但因为跟Azure集成比较好所以文档不在.net core的文档里面而是在Azure的文档这边https://docs.microsoft.com/en-us/azure/azure-app-configuration/Asp.net Core中集成Asp.net Core的功能开关(Feature Flag)是直接仅根据配置文件方式使用和集成Azure配置中心使用的我们来看看区别本地配置文件方式1、先安装包install-package Microsoft.FeatureManagement.AspNetCore2、注入服务net6builder.Services.AddFeatureManagement();3、配置文件写几个配置appsettings.jsonFeatureManagement: { //简单功能开关Beta: true,v1: true,v2: true,}以上配置对应以下的枚举public enum MyFeatureFlags{Beta,V1,V2,PercentageFlag,TimeWindowFlag,CustomFeatureFlag}其实不用枚举直接用字符串也是可以的4、使用功能开关1、创建一个FeatureFlagController注入服务private readonly IFeatureManager _featureManager;public FeatureFlagController(IFeatureManager featureManager) {_featureManager  featureManager; }简单功能开关/// summary /// 当启用beta版本的时候接口有效 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.Beta)] [HttpGet] public async TaskIActionResult Beta() {var beta  await _featureManager.IsEnabledAsync(nameof(MyFeatureFlags.Beta));if (beta){//beta版本特有逻辑}return Success(Beta, beta); //这里Success是封装的大家可以改成返回Ok() }/// summary /// 当启用v1版本的时候接口有效 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.V1)] [HttpGet] public async TaskIActionResult V1() {return Success(V1); }/// summary /// 当启用v2版本的时候接口有效 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.V2)] [HttpGet] public async TaskIActionResult V2() {return Success(V2); }由于我们上面的配置都是开启的... //简单功能开关 Beta: true, v1: true, v2: true,可以看到image-20220804104253051接口都可以访问我们把v1改成false试试image-20220804104401620马上404了这里清晰的看到功能开关在多版本Api上线下某个版本时候确实方便基于过滤器的功能开关基于过滤器的功能开关是有一定逻辑的功能开关a、百分率功能开关/// summary /// 启用百分率的功能开关 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.PercentageFlag)] [HttpGet] public async TaskIActionResult PercentageFlag() {return Success(PercentageFlag); }builder.Services.AddFeatureManagement().AddFeatureFilterPercentageFilter();添加配置FeatureManagement节点下//百分率功能开关 PercentageFlag: {EnabledFor: [{Name: Percentage,Parameters: {Value: 30}}] },这里的配置参数值代表30%的概率启用次功能我们试试image-20220804105858780分别是不启用和启用状态b、时间窗口功能开关/// summary /// 启用时间窗口的功能开关 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.TimeWindowFlag)] [HttpGet] public async TaskIActionResult TimeWindowFlag() {return Success(TimeWindowFlag); }builder.Services.AddFeatureManagement().AddFeatureFilterTimeWindowFilter();添加配置//时间窗口功能开关 TimeWindowFlag: {EnabledFor: [{Name: TimeWindow,Parameters: {Start: 2022/08/03 08:00:00 00:00, //这里是UTC时间End: 2022/08/03 09:00:00 00:00}}] },这个开关在2022年8月3日 下午16时(北京时间)和17时这个世界窗口内才启用对应的Start就是生效时刻End失效时刻c、自定义功能开关ok以上都是系统内置的功能开关我们来根据自己需求创建一个自定义的需求某个功能只有在客户端是手机或者平板的情况下启用pc端不启用创建一个自定义功能开关过滤器类CustomFeatureFilter[FilterAlias(CustomFeature)] public class CustomFeatureFilter : IFeatureFilter {private readonly IHttpContextAccessor _httpContextAccessor;public CustomFeatureFilter(IHttpContextAccessor httpContextAccessor){_httpContextAccessor  httpContextAccessor;}public Taskbool EvaluateAsync(FeatureFilterEvaluationContext context){//这里参数模拟平台实际业务会有实际业务的逻辑var platform  _httpContextAccessor.HttpContext.Request.Query[platform].ToString();var allowPlatform  context.Parameters.GetCustomFeatureFilterSettings();return Task.FromResult(allowPlatform.AllowedPlatforms.Any(c  c  platform));} }public class CustomFeatureFilterSettings {public string[] AllowedPlatforms { get; set; } }/// summary /// 自定义功能开关 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.CustomFeatureFlag)] [HttpGet] public async TaskIActionResult CustomFeatureFlag(string platform) {return Success(CustomFeatureFlag); }builder.Services.AddFeatureManagement().AddFeatureFilterCustomFeatureFilter();添加配置//自定义功能开关 CustomFeatureFlag: {EnabledFor: [{Name: CustomFeature,Parameters: {AllowedPlatforms: [ //这里配置运行启用功能的平台phone,pad//pc]}}] }我们来测测image-20220804111012239可以看到仅在设置运行的平台下启用验证ok集成Azure配置中心App Configuration方式1、添加配置ConnectionStrings: {AppConfig: your app connection string},具体可参考我之前的文章《微软Azure配置中心 App Configuration (一)轻松集成到Asp.Net Core》2、启用Azure功能开关var connectionString  builder.Configuration.GetConnectionString(AppConfig);builder.Host.ConfigureAppConfiguration((hostingContext, config)  {//配置不同功能config.AddAzureAppConfiguration(options {启用功能开关特性options.Connect(connectionString)//启用功能开关特性.UseFeatureFlags(options {options.CacheExpirationInterval  TimeSpan.FromSeconds(30); //配置FeatureFlag缓存本地时间默认就是30});}); });UseFeatureFlags启用后本地配置文件的方式失效builder.Services.AddAzureAppConfiguration(); //注入服务3、在Azure 配置中心后台配置好功能开关(代替本地配置文件)基本功能开关配置创建配置image-20220804115402160填写配置信息image-20220804122451808OK以上是基本的配置配置好后可以直接在列表页面勾选启用配置与否image-20220804123400869基于过滤器的开关配置百分率功能开关image-20220804123721457时间窗口功能开关image-20220804123801220这里的Start date,和Expiry date就对应前面配置文件的Start,End;自定义功能开关image-20220804123835703这里的过滤器的**Name:**CustomFeature ,要跟代码标签 [FilterAlias(CustomFeature)]一致AllowedPlatforms也要跟代码里面的配置一致[phone,pad]这个是数组的写法总结1、启用集成到Azure的UseFeatureFlags后本地配置文件的方式失效2、Azure这套功能开关还是有可选之处的我尤其喜欢其接口标签[FeatureGate]另外定义了的标准配置项与Azure配置中心无缝集成香。源码https://github.com/gebiWangshushu/Hei.Azure.Test[参考]https://docs.microsoft.com/en-us/azure/azure-app-configuration/overview
http://www.pierceye.com/news/693584/

相关文章:

  • 旅游网站建设的概念ppt模板自己制作
  • 重庆网站建设首选承越网站开发建设方案
  • 创建一个网站的费用网站服务器租用报价
  • 潍坊企化网站建设大型免费网站制作
  • 松原网站制作网页制作的基本步骤流程
  • 太原网站建设制作机构西安网络seo公司
  • 移动网站建设报价表抖音代运营商
  • 镇平县两学一做网站服装网站建设推荐
  • 苏州建网站的公wordpress添加侧栏广告
  • 企业商城网站 .networdpress模板作者怎样去除
  • 强生网站还要怎样做衡水网站推广的网络公司
  • 茂名建站公司南通长城建设集团有限公司网站
  • 网络平台怎么建立网站吗做暧暧视频网站安全吗
  • 免费域名x网站网站前期准备工作
  • 陕西网站建设公司排名智能优化网站
  • 做瞹瞹网站萍乡做网站的公司有哪些
  • 网站建设的类型有几种wordpress搜索返回页面内容
  • 建设网站备案与不备案区别招远建网站首选公司
  • 四川住房和城乡建设厅网站三类人员软文网站备案如何查询
  • 个人与企业签订网站开发合同网页制作教程实例
  • 做网站遇到竞争对手怎么办wordpress中文版邮件发送
  • 美橙互联旗下网站渐变网站
  • 做网站域名需要在哪里备案微信答题小程序
  • 购物网站页面布局个人站长做导航网站
  • wordpress 增强编辑器网站暂时关闭 seo
  • 重庆网站设计开发培训广西省住房和城乡建设厅官网
  • 购物网站模板免费下载网站排名快速提升工具
  • 中山制作网站的公司滨江区网站开发公司
  • 申请建设工作网站的函酒店网站建设方案策划方案
  • 宠物店网站模板你是网站设计有限公司的项目经理