论坛凯发k8国际首页 编程语言技术论坛

c# wpf模块化开发反应釜控制系统 -凯发k8国际

浏览 221 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2024-01-03  
学习地址1:https://pan.baidu.com/s/1fb4g2filkfb3ctzeqnvohq 提取码:zhap
学习地址2:https://share.weiyun.com/mfnrjbo6 密码:ybk95y

wpf(windows presentation foundation)是微软推出的基于windows 的用户界面框架,属于.net framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

wpf(windows presentation foundation)是由微软开发的桌面应用程序框架,用于创建现代化、高度交互和具有视觉吸引力的用户界面。它是 .net framework 的一部分,提供了一种基于 xaml(extensible application markup language)语言的声明性编程模型,可以很容易地创建动态、灵活的用户界面,并且可以与其他 .net 技术无缝集成。wpf 还具有强大的数据绑定和可重用性,使开发人员可以更快地构建和维护应用程序。wpf 也支持硬件加速和高分辨率显示,为用户带来更好的体验。

wpf 和 winform 的区别#
wpf(windows presentation foundation)和 winforms(windows forms)都是用于创建 windows 桌面应用程序的框架,但它们有一些重要的区别:

编程模型:wpf 是基于 xaml 的声明性编程模型,它可以很容易地创建动态、灵活的用户界面,支持动画和高级视觉效果。而 winforms 则是基于传统的命令式编程模型,需要在代码中手动设置每个控件的属性和事件处理程序。
数据绑定:wpf 有一个强大的数据绑定系统,可以将 ui 元素和数据源相互绑定,使应用程序更容易管理和更新数据。winforms 也支持数据绑定,但不如 wpf 灵活。
可重用性:wpf 支持样式和模板,使 ui 元素可以轻松地重用和自定义,这大大简化了应用程序的开发和维护。winforms 则需要手动创建每个 ui 元素,不太容易重用。
矢量图形和分辨率:wpf 使用矢量图形,可在高分辨率屏幕上呈现清晰的图像,而 winforms 使用像素图形,可能在高分辨率屏幕上显示模糊或失真。

首先我们新建一个订单索引,我们将订单中的多个商品以数组的形式存到订单这个索引中的goods字段中

put order
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  },
  "mappings": {
    "properties": {
      "id":{
        "type": "keyword",
        "doc_values": false,
        "similarity": "boolean",
        "norms": false
      },
      "ctime":{
        "type": "long"
      },
      "pay":{
        "type": "double"
      }
    }
  }
}
我们搜索商品数量为2,且商品标题为iphone的商品,按照我们的预期来看,应该搜不到这个商品,我们执行看看
get order/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "goods.num": {
              "value": 2
            }
          }
        },{
          "match_phrase": {
            "goods.name": "iphone"
          }
        }
      ]
    }
  }
}
对于es的 _id其实不一定是唯一的,我们可以通过下面的例子来验证
put test_index
{
  "settings": {
    "number_of_shards": 10
  }
}

# 没有指定routing,默认使用es _id 作为文档的routing
post test_index/_doc/1
{
  "name":"测试文档1"
}

# 指定routing=2
post test_index/_doc/1?routing=2
{
  "name":"测试文档2"
}

# 指定routing=3
post test_index/_doc/1?routing=3
{
  "name":"测试文档3"
}
我们通过test集群来充当查询集群,也就是本地集群的角色,则需要在test集群上配置test2集群的信息,当然,也可以使用单独的集群来做查询集群,需要对其他需要查询的集群进行配置。
put _cluster/settings
{
  "persistent" : {
    "cluster" : {
      "remote" : {
        "test2" : {
          "mode" : "sniff",
          "transport.compress": true,
          "skip_unavailable": true,
          "transport.ping_schedule": "60s",
          "seeds" : [
            "127.0.0.1:9302"
          ]
        }
      }
    }
  }
}
需要注意yml文件的层级关系,我的完整配置文件如下:
# my global config
global:
  scrape_interval: 15s # set the scrape interval to every 15 seconds. default is every 1 minute.
  evaluation_interval: 15s # evaluate rules every 15 seconds. the default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# alertmanager configuration
# my global config
global:
  scrape_interval: 15s # set the scrape interval to every 15 seconds. default is every 1 minute.
  evaluation_interval: 15s # evaluate rules every 15 seconds. the default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# alertmanager configuration
alerting:
        - targets:
          # - alertmanager:9093

# load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# a scrape configuration containing exactly one endpoint to scrape:
# here it's prometheus itself.
scrape_configs:
  # the job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
   
    static_configs:
      - targets: ["localhost:9090"]
  - job_name: "es_test"     
    static_configs:
      - targets: ['192.168.1.86:9114']
由于开发者接口不做用户登录态的校验,我们通过参数加签的方式使用系统下发的ak,sk来对接口进行鉴权。
devordercontroller := dev.ordercontroller{}
//开发者api
devapiv1 := r.group("/dev/v1").use(middleware.auth())
{
   devapiv1.get("/orders/user/:uid", devordercontroller.getuserorders)
}
 
global site tag (gtag.js) - google analytics
网站地图