区分 调试和发布环境 众所周知,Debug 是在开发、在 VS 中时,自动会有的编译常量,而代码发布后则是 Release。 为了在 Debug、Release 环境下出现不同的编译条件。 .NET Core 项目添加条件编译变量,可在 .csproj 中加上 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <DefineConstants>AAAA</DefineConstants&…
区分 调试和发布环境 众所周知,Debug 是在开发、在 VS 中时,自动会有的编译常量,而代码发布后则是 Release。 为了在 Debug、Release 环境下出现不同的编译条件。 .NET Core 项目添加条件编译变量,可在 .csproj 中加上 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <DefineConstants>AAAA</DefineConstants&…
Parallelism through simple threads Every year, parallelism and concurrency become more important as processors tend to have more and more physical cores. In most languages, writing parallel code is tricky. Very tricky. Not so in Rust, as it has been designed a…
Parallelism through simple threads Every year, parallelism and concurrency become more important as processors tend to have more and more physical cores. In most languages, writing parallel code is tricky. Very tricky. Not so in Rust, as it has been designed a…
Using the builder pattern Sometimes you need something between the customization of the constructor and the implicitness of the default implementation. Enter the builder pattern, another technique frequently used by the Rust standard library, as it allows a ca…
Using the builder pattern Sometimes you need something between the customization of the constructor and the implicitness of the default implementation. Enter the builder pattern, another technique frequently used by the Rust standard library, as it allows a ca…
Using the constructor pattern You may have asked yourself how to idiomatically initialize complex structs in Rust, considering it doesn't have constructors. The answer is simple, there is a constructor, it's just a convention rather than a rule. Rust's standar…
Using the constructor pattern You may have asked yourself how to idiomatically initialize complex structs in Rust, considering it doesn't have constructors. The answer is simple, there is a constructor, it's just a convention rather than a rule. Rust's standar…
Providing a default implementation Often, when dealing with structures that represent configurations, you don't care about certain values and just want to silently assign them a standard value. Usually, when processing structures that represent configurations,…
Providing a default implementation Often, when dealing with structures that represent configurations, you don't care about certain values and just want to silently assign them a standard value. 通常,当处理表示配置的结构时,你并不关心某些值,只想为其默默分配一个标准值。 Rust 使用 Default::default();…
Using the format! macro format! is a Rust macro that is essentially similar to the usage of String.Format() in C#. There is an additional way to combine strings, which can also be used to combine them with other data types, such as numbers. It provides another…
Using the format! macro format! 是一个 rust 宏,跟 C# 的 String.Format() 用法基本一致。 There is an additional way to combine strings, which can also be used to combine them with other data types, such as numbers. 能够以另一种方式去组合字符串,也可以组合不同的数据类型,例如数字。 其定义如下: #[macro_export] #[s…
How to convert pfx to other types of certificates. Convert pfx to pem openssl pkcs12 -in ssl.pfx -nodes -out ssl.pem Convert pem to cer openssl x509 -in ssl.pem -inform PEM -out ssl.der -outform DER Output all information of the pem certificate: openssl x509 -…
pfx 转换为其他类型证书的方法。 pfx 转 pem openssl pkcs12 -in ssl.pfx -nodes -out ssl.pem pem 转 cer openssl x509 -in ssl.pem -inform PEM -out ssl.der -outform DER 输出 pem 证书的所有信息: openssl x509 -in ss.pem -noout -text Certificate: Data: Version: 3 (0x2) Serial Number: 86900348…
Part One: Consul Basics 1. Introduction to Consul According to the official documentation: Consul is a network tool that provides a full-featured service mesh and service discovery. What can it do? Automate network configuration, discover services, and enable …
第一部分:Consul 基础 1,Consul 介绍 2,安装 Consul Ubuntu/Debian 系统 Centos/RHEL 系统 检查安装 3,运行 Consul Agent 启动 agent 发现数据中心成员 查看 UI 4,在 Consul Service Discovery 中注册服务 端口 定义服务 使用配置启动服务 如何重新加载配置文件 5,查询服务 通过 HTTP API 通过 UI 查询 6,DNS 知识与查询 基础知识 通过 DNS 查询 Consul 服务信息 小结 7,将数据存储在C…
CZGL.Roslyn Open source project location: https://github.com/whuanle/CZGL.CodeAnalysis A dynamic code builder and compiler for C# based on Roslyn technology, developers can use this library to dynamically construct C# code and compile it conditionally. Runtime…
CZGL.Roslyn 开源项目位置:https://github.com/whuanle/CZGL.CodeAnalysis 基于 Roslyn 技术的 C# 动态代码构建器以及编译器,开发者可以使用此库动态构建 C# 代码,并且通过指定条件编译代码。 运行时动态构造代码; 运行时为程序提供新的模块功能,拓展能力; 设计函数平台,以代码片段为单位执行; 语法分析提示,编译错误语法警告,精确到代码行; 完善的代码标准,避免动态代码语法错误; 简洁、简单的 API,完整的 Test 测试; ... ... 动图演示 …
0. About Redis RESP 1. Define Data Types 2. Define Asynchronous Message State Machine 3. Define Command Sending Template 4. Define Redis Client 5. Implement Simple RESP Parsing 6. Implement Command Sending Client 7. How to Use 8. More Clients 9. More Tests 10.…
0,关于 Redis RESP 1,定义数据类型 2,定义异步消息状态机 3,定义命令发送模板 4,定义 Redis Client 5,实现简单的 RESP 解析 6,实现命令发送客户端 7,如何使用 8,更多客户端 9,更多测试 10,性能测试 11,关于 NCC 最近叶老板写了个 FreeRedis,刚好前段时间在学习 Redis,于是跟风试试也写一个简单的 RedisClient。目前 FreeRedis 处于初级阶段,需要更多人的参与、测试,有兴趣大家一起参与贡献: FreeRedis 项目地址:https…
After the Dotnet SDK/Runtime is installed, you can see a file named dotnet.exe in the C:\Program Files\dotnet directory. Copy your dotnet program (.dll, .exe, configuration files, etc.) to an appropriate directory. Extract the nssm-2.24.zip file, open cmd or P…