什么是代码签名
代码签名证书主要用于软件开发者对各种软件和代码进行数字签名,不仅能证明代码的开发者真实身份,而且能确保用户通过互联网下载时能确信此代码没有被非法篡改和来源可信,从而保护了代码的完整性、保护了用户不会被病毒、恶意代码和间谍软件所侵害,当然也就保护了软件开发商的利益,使得软件开发商能安全地快速地通过网络发布软件。
要解决什么问题
通常情况下,EV代码签名证书都是以UKey形式颁发的,因此只有UKey持有者才能为Binaries进行EV代码签名。本人正在开发游戏加速器,而游戏的反作弊系统需要检验注入者的代码签名,因此需要对生成的可执行文件与动态库进行代码签名,而团队软件开发过程中,只有一个人拥有Ukey,因此代码签名极其不便。为了解决该问题,故想办法与CI集成,在团队协作者签入代码时,触发CI进行编译、测试以及代码签名。
解决过程
首先购置了一台迷你主机,越便宜越好,但是需要是x86_64架构的CPU,因为UKey的驱动要装在这样的平台上,ARM是不支持的。某宝可搜到如下同款机器,成本不算很高,五百出头。
因为个人家没有固定IP,所以在Azure上开通一个Web App建立一个Web API程序来处理向签名队列添加任务以及接收Worker Machine返回结果的系统。
我的MacBook是17年带Touchbar带独显15英寸的版本,在带独显的机器上配置使用外置显卡是一件非常令人头痛的事情,折腾了一整天终于调通,因此整理出本篇文章来供其他玩家参考,本篇文章以NVIDIA显卡为例。
准备工作
- 2017款MacBook Pro 一台,带有4个雷电3接口的
- 外置显卡坞,本人使用的是华硕ROG XG STATION 2
- 显卡一枚,本人使用的是华硕ROG STRIX GTX1080 Ti O11G
- HDMI 2.0虚拟显示器(定制2880×1800分辨率款),淘宝搜索“虚拟显示器 HDMI”很容易搜到,并且可以和商家协商添加你要的分辨率,当然你也可以使用DVI、DisplayPort版本的虚拟显示器。
虚拟显示器将用于内屏显示,请定制与内屏分辨率一致的虚拟显示器
外接显卡
背景
在使用Entity Framework Core进行开发时,若不使用Logger很难查看到一个查询的SQL语句,同时也有些开发者因为不了解EF Core哪些Linq可以Translate成SQL,哪些不能而踩坑导致全表查询的,因此开发了Pomelo.EntityFrameworkCore.Extensions.ToSql。开发者们可以使用这个插件来做查询的单元测试,来检测生成SQL是否正确,或Assert Unevaluated是否为0,同样也可用作对EF Core进行查询语句的输出等。
该项目在GitHub中开源,也欢迎广大开发者加入QQ群522943763提出意见与建议。
使用
首先,在项目中引入Pomelo.EntityFrameworkCore.Extensions.ToSql 2.0.0-preview3-10000
。
在欲输出SQL语句的类中引用命名空间Microsoft.EntityFrameworkCore
,并在欲输出SQL语句位置添加.ToSql()
。
var MySqlContext = new MySqlContext();
背景
- 全文索引(FULL TEXT):MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度。
- 空间索引(SPATIAL):空间索引是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构,其中包含空间对象的概要信息。
- Pomelo.EntityFrameworkCore.MySql:一款第三方MySQL的Entity Framework Core驱动,在GitHub中开源,性能、功能、下载量均超过Oracle官方提供的版本。QQ群522943763。
使用
全文索引在7月28日被支持,需要安装 Pomelo.EntityFrameworkCore.MySql 2.0.0-preview3-10053 或更高版本。
创建TestModel
类
class TestModel
{
public Guid Id { get; set; }