C# 中表达式计算问题
问题:计算公式为 [A/G] = [ALB] / ([TP] - [ALB]),已知 [TP] 与 [ALB] 的值,求得 [A/G]。 这是一个很简单的四则运算问题,下面将演示如何在 C# 代码中如何简单、高效的进行求解。 一、解析算式首先,需要考虑的是如何将已知的内容,替换到表达式中,其实想必大家和我一样,想到了正则的替换: 1234567891011121314/// <summary>/// 解析表达式内容/// </summary>/// <param name="text">文本</param>/// <param name="values">需要替换的值</param>/// <returns>解析后的内容</returns>public static string Parse(string text, Dictionary<string, string> values){ var regex = new...
ASP.NET Core - 001 源码编译与调试
一、源码编译需要编译的源码的代码仓库有两个,一个是 aspnetcore,另外一个是 extensions。 如果有代理,编译的过程比较简单,参考微软的文档进行编译即可。 ASP.NET Core:Build ASP.NET Core from Source —— GitHub .NET Extensions:Build .NET Extensions from Source —— GitHub 如果没有代理,那么整个编译流程可能非常慢,甚至无法正常进行,可以B站这个视频执行编译:编译并调试 Asp.Net Core 源码 —— B站视频 如果使用代理软件,建议使用 Global(全局)代理,同时命令行与 Powershell 需要设置代理: 12345# CMDset http_proxy=http://127.0.0.1:7890 & set https_proxy=http://127.0.0.1:7890# Powershell$Env:http_proxy="http://127.0.0.1:7890";$Env:https_proxy=...
ASP.NET Core - 000 开发环境配置
IDE 推荐主流的 C# 开发工具如下: Rider:收费、跨平台,习惯使用 JetBrains 家的产品首选。 Visual Studio:社区版免费、不支持跨平台,Windows 下首选。 Visual Studio Code:免费、跨平台、流行,配置、调试以及使用不及以上两个傻瓜化,有学习成本。 我的开发环境这里我的开发环境是:Windows + Visual Studio Code + WSL 2。 当然,我平时不这么用,因为 Visual Studio 2019 还是香的,但是接下来内容主要抱着学习的目的,这样的环境可以帮助我了解 .NET Core 的一些细节。 Terminal 与 WSL 2该环境需要 Windows 10 版本不低于 2004,升级可以前往官网下载 升级工具。 安装 WSL 2 需要启用 适用于 Linux 的 Windows 子系统 选项,也可以使用 PowerShell 运行命令: 1dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /nor...
迁移 Web Service 项目到 .NET Core
目前公司产品由 .NET Framework 升级到 .NET Core 过程中,因一部分对内或对外界接口使用的是 Web Service。 为了保证这些接口在升级后正常提供服务,开始考虑过使用 SoapCore 对这些接口进行实现。 但是尝试之后发现 SoapHeader 问题不好解决,所以暂时放弃将 Web Service 迁移到 .NET Core,而是将 Web Service 进行独立部署。 最终开发时决定使用的方案有以下两种: “类库” 的目标框架调整为可供 .NET Framework 使用的 SDK,例如 netstandard2.0(使用 TargetFrameworks 指定多个依赖项也可),方便托管 Web Service 的 ASP.NET Web 网站使用; .NET Core 中提供 Web API 接口,Web Service 的项目内不涉及具体业务,将请求转发到 .NET Core 的项目中处理。 考虑到如果采用方案一,每次发布要发布两套程序,即 .NET Core 与 ASP.NET Web,并且使用 Web Service 转发消息产生的...
环境部署
配置数据库首先需要安装数据库,安装的版本必须是 Oracle 11.2.0.4.0。 安装完成后,需要创建两个用户: 1234create user userhita170524 identified by hishita;grant connect,resource,dba to userhita170524;create user useremr_hita170524 identified by hita;grant connect,resource,dba to useremr_hita170524; 用户创建完成后,使用 imp 导入数据前还需要创建表空间。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990create tablespace USERS datafile '...
PlantUML 的安装与使用
工作中经常需要输出一些文档,需要叙述产品的设计、研发、使用等。 如果只是文字,肯定显得很晦涩,所以最好是结合一些图表,方便读者理解。 之前绘图主要是使用 Visio,提供的模板很多,搭配 Office 套件使用很舒服。但是 Visio 需要单独购买安装,并且价格略贵。 之前在微信看到有人在讨论 PlantUML,就搜索试用了一下,虽然有学习成本,但是相比 Visio 的拖拽,我更喜欢 PlantUML 编码生成图形的方式。 安装PlantUML 的示例可以参考官方文档,这里建议使用 VS Code 搭配对应的扩展进行绘图。 PlantUML 官方中文文档:https://plantuml.com/zh/。 安装 VS Code 插件直接在插件里搜索 PlantUML,然后进行安装即可。 安装 Java JDK这里建议安装 jdk8,否则生成预览时,可能会有一些警告信息。 jdk8 下载路径:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html。 安装以后还需要配置系统环境变量: 123...
使用 frp 实现内网穿透访问内网电脑
远程办公的工具,一般会选择 TeamViewer 或者向日葵,但是这些都是收费工具。 免费的 TeamViewer 经常会被禁用,又不想用破解版,收费价格比较贵。向日葵虽然收费可以接收,但是使用过都知道,使用体验比 TeamViewer 差了太多。 我个人更倾向于使用 mstsc,但是访问公司内网电脑,就需要想办法穿透到内网来使用。 准备工作后续的操作需要一台有公网 IP 的电脑或服务器,否则就可以跳过这篇文章了。 我的服务器系统为 CentOS 7.6,其他的可以参考,除了下载的程序包不同外,其他大同小异。 首先是下载安装包,下载地址:https://github.com/fatedier/frp/releases。 我下载的时候,最新发布版本是 v0.33.0,建议使用最新版。 因为我使用的服务器是 CentOS,所以要下载一个 Linux 的程序包。客户端是 Windows 10,需要下载一个 Windows 的程序包。 而 Linux 选项又那么多,如果不能确定可以先通过以下命令打印出服务器类型: 123# 查看服务器类型uname -mx86_64 如果输出是 i38...
WPF 系列教程:控件之布局
布局(Layout)控件用于管理子元素的大小、尺寸、位置和排列方式。 边框(Border)Border 可以在另一个元素周围绘制边框与背景。 需要注意的是,Border 内最多只能有一个子级。 若要显示多个子元素,需要在父 Border 中放置其他 Panel 元素,可以将子元素放在该 Panel 元素中。 1<Border Background="LightBlue" BorderBrush="Black" BorderThickness="2" CornerRadius="45" Padding="25" /> 子弹装饰器(BulletDecorator)BulletDecorator 是一个布局控件,该控件可以将项目符号与另一个可视对象对齐。 1234567891011121314151617181920212223242526272829303132<StackPanel> <BulletDecorator Margin="5...
Git 删除大文件
之前创建的一个 git 仓库提交了几个大文件,影响小伙伴的下载体验,于是便想把大文件删除掉,大文件通过网盘等方式分享。 试过几种方案,最终使用 BFG Repo-Cleaner 解决,这里记录处理的过程。 查看仓库大文件打开 Git Bash,进入到本地仓库,运行以下命令: 123456789101112hd2y@DESKTOP-V2RPVP4 MINGW64 /e/LIS接口/Instruments (master)$ git rev-list --all | xargs -rL1 git ls-tree -r --long | sort -uk3 | sort -rnk4 | head -10100644 blob e212baea0de1eceda3fb219bb5ef65e51dcfc047 29208376 "dist/Tools/Access\346\225\260\346\215\256\345\272\223\351\251\261\345\212\250/AccessDatabaseEngine_2010_X64.exe"100644 b...
WPF 系列教程:从 WPF (.NET Core) 开始
如果是一名 .NETer,应该有用 Windows Form 与 WPF 创建过一些简单项目,如果没用过至少也应该听说过。 开始我也用 Windows Form 与 WPF 写过很多小工具。 当然后期用 Windows Form 布局感觉太过繁琐耗费精力,现在已经完全投入了 WPF 的怀抱。 因为在这过程中碰到过很多问题,为此查看过很多资料,这里就简单整理一下,以后再碰到这些问题,方便 Copy。 初始化代码仓库因为我是用 git 托管代码,所以创建项目的第一步,就是先创建一个 git 仓库。 可以选择 github、gitlab,如果担心以后有被美国“制裁”的风险,也可以选择国内的 gitee。当然也可以自己使用 gitlab、gitea 或者 gogs 搭建自己的 git 服务。 虽然选择很多,但是创建一个代码仓的过程都没什么区别,下图是如何在 github 上创建一个仓库。 创建成功后,待仓库初始化完成会自动跳转到如下界面: 这时我们可以选择用 Open in Visual Studio,使用 Visual Studio 直接克隆下载并打开这个仓库。 建议也可以安装 git...