![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
自我心的
muzizongheng
熟悉.net技术栈、web技术栈、ELK、xml/xslt/xsd、mfc、python等;熟悉DICOM、IHE熟悉敏捷、DDD
展开
-
利用xslt3 把xml转为json (abp vnext本地化升级的xml到json的资源转换)
最近在做Abp升级到abp vnext的时候, 发现旧版abp的本地化资源是xml, 新版abp vnext是json。 好吧, 得写个xslt来转换下。然后就发现这个事情没那么容易。xslt默认的output的method没有json。<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>结论:如果我们需要xml转为json的话, 我们需要...原创 2020-09-29 17:08:28 · 1025 阅读 · 0 评论 -
ASP.NET Boilerplate v5升级到Abp vNext的改动
AppConfigurations GetAssembly() 改为 Assembly属性访问 MongoDB的配置更改 DBMigrate和 数据库连接。 注入方式的初始化 更改了审计日志的接口, 更改AbpSession 到ICurrentUser 更改了ApplicationService里的entity和dto的mapper方式, 由entity.mapto改为调用ApplicationService成员变量ObjectMapper....原创 2020-09-29 17:05:10 · 1046 阅读 · 0 评论 -
linq 的查询语法和静态扩展的方法语法的对比
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/linq/query-syntax-and-method-syntax-in-linq根据msdn的说明以及大量StackOverflow的说明,结论是: linq的两者使用没有区别, 性能一致。 查询语法易读,方法语法在.net CLR中全部使用了。查询语法://Query syntax:IEnumerable<int&g...原创 2020-09-29 17:04:07 · 442 阅读 · 0 评论 -
防腐层(Anti Corruption Layer)介绍
防腐层(ACL):DDD(Eric Evans)中引入的模式, 用于隔离两个系统, 允许两个系统之间在不知道对方领域知识的情况下进行集成。主要进行的是两个系统之间的model(模型)或者协议的转换, 并且最终目的是为了系统使用者的方便而不是系统提供者的方便, 进一步解释就是ACL尽量把系统提供者的模型转换为系统使用者的模型(而不引入中间第三者模型)使用场景: 新旧系统切换时, 有些新系统需要和旧系统打交道, 此时可以利用 防腐层隔离新旧系统。 微服务中多个边界上下文的领域知识..原创 2020-09-29 17:02:03 · 15775 阅读 · 0 评论 -
绞杀者模式的介绍
先看两张图(来自Martin Fowler)上面图的介绍:绞杀无花果树绞杀无花果树是一种非常奇怪的树,它们不从地面开始生长。热带雨林重气 候湿润,一粒无花果树种子落在一颗树顶,如果条件合适,它就会在那儿发芽。 那颗树就成了它的寄主。那么,那些种子是怎样到那儿的呢?从猴子、蝙蝠或鸟 儿嘴里掉下来的。 由于发芽的小树在大树肩上,能得到更多的阳光,它长得很快,生出许多根 来缠绕着大树。这些根很快长长到达地面,源源不断地将水分和营养物质从绞杀 根送到高处。 根不断向下生长,它牢牢...原创 2020-09-29 17:00:18 · 1836 阅读 · 1 评论 -
编译器的自举及实现过程
自举来源于自己提着鞋带把自己提起来, 编译器的自举就是用X语言自己开发的编译器来编译X语言本身。比如python编译器的自举: 用C语言开发第一个python编译器 A 然后用python语言写个编译器 B, 用A编译器编译程序B,得到B.exe 接下来只要不断的修改源码B来完善B编译器,并用前一个生成的B.exe或者B2.exe编译修改后的B源码生成B2.exe即可。 最终B2.exe可能就是一个完备的python编译器。 编译过程一般分为:..原创 2020-09-29 16:58:41 · 2356 阅读 · 0 评论 -
EFcore 报错:Value cannot be null. Parameter name: frameworkName
今天在EF core 2.2 中使用code first 保存数据时遇到一个错误:Value cannot be null.Parameter name: frameworkNameat Microsoft.EntityFrameworkCore.Metadata.Internal.ClrCollectionAccessorFactory.Create(INavigation navigation)at Microsoft.EntityFrameworkCore.Metadat...原创 2020-09-29 16:55:18 · 4191 阅读 · 0 评论 -
Can‘t bind to ‘ngModel‘ since it isn‘t a known property of ‘xxx‘
当在angular中使用双向绑定时, 需要导入angular的FormsModule。import { FormsModule } from '@angular/forms';另外,记着 imports: [ FormsModule]原创 2020-09-29 16:56:54 · 3174 阅读 · 0 评论 -
基于Abp 的.net core 工程改造mysql 的记录
1. 首先从 https://aspnetboilerplate.com/创建个demo, 注意:abp现在有2个网站创建模板, 另一个是 http://abp.io/。 区别是abp.io是基于.net core 3.0以上的。因为项目需求, 此处用的还是第一个网站创建。2. 改造EntityFrameworkCore工程的引用,目前是用的.net core 2.2。具体最终的引用如下3. 该种EntityFrameworkCore工程里DbContextOptionsConfigurer .原创 2020-09-29 16:51:58 · 546 阅读 · 0 评论 -
使用nuget私用源 nexus 的方法
下载nuget命令程序,https://dist.nuget.org/win-x86-commandline/latest/nuget.exe, 可以参考 https://docs.microsoft.com/zh-cn/nuget/consume-packages/install-use-packages-nuget-cli 把下载好的nuget.exe放到一个自己建的目录, 比...原创 2020-04-09 14:39:21 · 1270 阅读 · 0 评论 -
使用npm私有源nexus 或者 verdaccio 的方法
1. 首先搭建npm的私有源, 比如使用Nexus, https://www.sonatype.com/nexus-repository-oss2. 下载nodejs,然后把npm路径加到环境变量里, https://nodejs.org/en/3. 使用命令来更改私有源, 并注册账号npm set registry http://10.6.110.103:34873npm a...原创 2020-04-09 14:37:27 · 1870 阅读 · 0 评论 -
docker push到harbor私有仓库出现的相关问题及解决办法
目录0. 我们打开harbor的镜像仓库, 可以看到有推送仓库的命令, 包含了具体地址1. 但是我在执行push命令报错了, Get https://10.6.119.106/v2/: dial tcp 10.6.119.106:443: connect: connection refused2. 看了说明需要在docker的配置文件中添加"insecure-registries...原创 2020-04-08 14:37:06 · 11669 阅读 · 0 评论 -
离线安装k8s的node
目录1.从k8s的github上下载最新版本的安装包。https://github.com/kubernetes/kubernetes/releases2.通过winscp把windows上的下载的安装包copy到centos虚拟机上3.更改各虚拟机的hostname, 比如一个为k8s-node1:hostnamectl set-hostname k8s-node14.假设etc...原创 2020-04-03 10:22:34 · 578 阅读 · 0 评论 -
在linux中离线安装k8s的master, 包括kube-apiserver, kube-controller-manager, kube-scheduler
1.首先建立3个centos7.6的虚拟机。比如用流行的VirtualBox2.从k8s的github上下载最新版本的安装包。https://github.com/kubernetes/kubernetes/releases3.通过winscp把windows上的下载的安装包copy到centos虚拟机上4.更改各虚拟机的hostname, 比如一个为k8s-master:hostna...原创 2020-04-03 10:18:50 · 1730 阅读 · 0 评论 -
Windows 10 中WSL 内部目录对应的本地目录
如windows 10 的wsl的目录C:\Users\你的用户名\appdata\local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs 2. 也可以在windows 的资源管理器中敲入 \\wsl$, 如果进入后发现目录为空, 请多次点击文件夹的菜单项”...原创 2020-04-03 10:15:04 · 20272 阅读 · 0 评论 -
Docker镜像的复制转移
有些时候因为我们的目标机器无法联网, 我们需要在一台上网机上下载好的docker image ,然后复制到另外的机器并离线安装。1.首先需要联网的机器可以连接Docker 仓库, 此仓库用于下载镜像docker pull xxxx2.把此镜像保存到当前目录docker save xxxx > xxxx.tar3.把此文件复制到目标机器上,在目标机器上加载...原创 2020-04-03 10:13:11 · 2389 阅读 · 0 评论 -
在linux上离线安装harbor的docker 私有仓库
1. 下载,https://github.com/goharbor/harbor/releases2. copy到目标linux上解压3. copy解压后的目录到/usr/local/harbor.sudo cp harbor/* /usr/local/harbor4.直接安装, ./usr/local/harbor/install.sh5. 如果遇...原创 2020-04-03 10:11:53 · 8395 阅读 · 2 评论 -
docker pull命令出现failed to register layer: rename C:\ProgramData\Docker\image\lcow\layerdb\tmp\write-s
今天在机器上从docker hub上拉取image时, 下载完成后报错, 如下:latest: Pulling from kaldiasr/kaldie79bb959ec00: Extracting [==================================================>]45.34MB/45.34MBb85bd7c06daa: Down...原创 2020-04-03 10:10:20 · 1794 阅读 · 0 评论 -
centos中离线安装docker 和docker compose
目录linux安装docker, 参考 https://docs.docker.com/install/linux/docker-ce/binaries/#install-static-binarieslinux离线安装docker-compose,参考 https://docs.docker.com/compose/install/linux安装docker, 参考 https...原创 2020-03-28 15:07:48 · 683 阅读 · 0 评论 -
centos中如何把进程以service自启动
1.linux的服务可以通过systemctl来启动/停止, 一般.service这样的配置文件来实现一个进程包装为服务。2. .service文件一般放在/usr/lib/systemd/system目录,也可能在/etc/systemd/system目录3..service文件定义了一个服务,分为[Unit],[Service],[Install]三个小节, 看看参考https:...原创 2020-03-28 14:58:35 · 801 阅读 · 0 评论 -
cenos 离线安装k8s集群的步骤及遇到问题的调试方法
放大看原图原创 2020-03-24 11:32:01 · 689 阅读 · 0 评论 -
各厂商放疗设备的参数对照表及说明
目录1.厂商某些放疗设备型号的对照表1.1 能量有6MV、10MV等。 小于等于6MV的叫低能机,高于6MV的叫中高能机。能提供几档能量的机器就叫几光子,比如上图的Halcyon是单光子,Edge是二光子,TrueBeam是四光子1.2 射野的面积也是越大越好, 从30*30cm 发展到40*40cm1.3 放疗用的射线种类有多种。有光子(x射线、γ射线)、电子、质子、重离子等...原创 2020-03-05 15:13:45 · 5093 阅读 · 1 评论 -
windows 10 中安装Dokcer遇到的问题及解决方案。
目录1. 关于WSL的安装办法1.1 因为我的windows store 无法访问,只能根据下面的网站手动安装:1.2 当下载完成后, 就可以在powershell里用下面的命令安装appx文件1.3 安装完成后则系统会出现ubuntu的程序入口2. Docker for windows启动失败的解决办法:2.1 Docker for windows 启动失败2.2 ...原创 2020-03-05 15:05:05 · 2043 阅读 · 0 评论 -
放疗过程的思维导图
最近开始做RT放疗相关的项目, 整理了一份放疗背景的思维导图。放疗过程的思维导图原创 2020-02-26 10:06:47 · 1207 阅读 · 0 评论 -
DDD的基本概念介绍
DDD的基本概念澄清目录什么是DDDUbiquitous language (通用语言)Layered architecture(分层架构)Entity(实体)Value Ojbect(值对象)Service(服务)Module(模块)Aggregate(聚合)Factory(工厂)Repository(仓库)Specfication(规格)Bo...原创 2020-01-10 15:06:17 · 5509 阅读 · 0 评论 -
Server端常用技术介绍
2019年做了一个有意义的事情就是给出了一个完整的把单体工作站改为C/S架构的技术改造方案。现在把其中涉及到的通用非业务概念摘出来。目录1. C/S拓扑图2. 单体、2层C/S、3层C/S3. 会话介绍4.JWT介绍5. 远程过程调用(RPC)6. 服务器的多进程多线程开发技术7.缓存介绍8.单体数据库更改C/S面临的最大问题是高并...原创 2020-01-10 14:38:59 · 716 阅读 · 0 评论 -
.net core 工程的版本设置
我们从github或者别的地方下载到的.net core工程打开后,经常报错unable to locate the .net core sdk处理流程一般是;1.打开csproj,看看工程设置是什么版本,比如:<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><Out...原创 2020-01-10 14:00:57 · 1575 阅读 · 0 评论 -
C# 中 非托管类的总结
我们知道C#中的using可以释放非托管资源,前提是继承自IDisposable接口。总结下常见的有哪些,不确定的大家可以直接类继承关系去确认是否来自IDisposable接口Reader结尾的,比如XmlReader、StreamReader、StringReader、TextWriter等Writer结尾的,比如XmlWriter、XmlTextWriter、T...原创 2020-01-10 14:00:12 · 567 阅读 · 1 评论 -
EF使用时报错‘Format of the initialization string does not conform to specification starting at index 0.'
原因是初始化EF的DbContext对象时,没有传递正确的Connection String。原创 2020-01-10 13:58:19 · 9943 阅读 · 0 评论 -
WPF TreeView 后台C#选中指定的Item, 需要遍历
private TreeViewItem FindTreeViewItem(ItemsControl container, object item) { if (null == container || null == item) { return null; } i原创 2013-07-10 15:40:32 · 5809 阅读 · 0 评论 -
WPF DelegateCommand CanExecute
private DelegateCommand searchCommand; public DelegateCommand SearchCommand { get { if (null == searchCommand) { se原创 2013-07-10 15:40:45 · 2021 阅读 · 0 评论 -
JsonCpp的使用
1. arrayValue 和 vector的转换// Json::Value root; vector m_vctProcedureUID; for(std::vectortstring>::iterator iter = m_原创 2013-07-10 15:41:26 · 726 阅读 · 0 评论 -
boost::function 通过boost::bind调用类成员函数
1. 首先引用boost::function和boost::bind的头文件和库;#include "boost/bind.hpp"#include "boost/function.hpp" 2. 声明自己的function模板typedef boost::functionvoid(ICommandContextEx*)> CMDHANDLER;3. 写出自己类及成员函数clas原创 2013-07-10 15:41:48 · 7576 阅读 · 0 评论 -
TFS 备注
1,更改任何文件, 先checkout, 再继续更改。2. 更新sln时, 一定要更新include文件3. 每次提交代码放到shelf上, 自己本地建立2个workspace, 来进行codereview, 完成后让龙海进行测试。 一定要告诉龙海影响了哪些功能, 需要不需要进行完整的回归测试。4. 解决bug时, 应该关联changeset。Template when solve a DIM b原创 2013-07-10 15:41:53 · 831 阅读 · 0 评论 -
如何得到WPF中控件绑定的EventTrigger
System.Windows.Interactivity.Interaction.GetTriggers(sender as DependencyObject)[0].Actions原创 2013-07-10 15:42:14 · 2172 阅读 · 0 评论 -
更改当前输入法
private void SetEnglishInputLanguage() { _inputLanguageBackup = System.Windows.Forms.InputLanguage.CurrentInputLanguage; System.Windows.Forms.InputLanguage.CurrentInput原创 2013-07-10 15:42:20 · 794 阅读 · 0 评论 -
输入框只能输入英文
TextBox txtTest;System.Windows.Input.InputMethod.SetIsInputMethodEnabled(txtTest, false);原创 2013-07-10 15:42:22 · 1074 阅读 · 0 评论 -
ASP.Net实现用户权限管理
一、 ASP.Net提供对于权限安全提供的技术Authentication(验证) MembershipProvider (用保存的信息验证用户是 谁)Authorization(授权) RoleProvider (实现用户和角色的映射,允许用户 可以做什么 )二、 Membership Service介绍Membership公开了大部分的Membership原创 2013-07-10 15:42:25 · 3162 阅读 · 0 评论 -
如何使用代码美化器Uncrustify (How to use code beautifier Uncrustify)
1.下载NodePad++,2.选择菜单Plugins/Plugin Manager/Show Plugin Manager3.勾选UniversalIndentGUI,点击Install4.下载uncrustify5.集成uncrustify到Visual Studio里:1)选择Tools/External Tools...2) 点击Add,记得勾选Use Output window原创 2013-07-10 15:43:24 · 4537 阅读 · 0 评论 -
TreeView滚动TreeViewItem
今天帮忙修了一个bug, 在拖动TreeViewItem时,需要滚动TreeView向前翻页,或向后翻页。思路:1.找到TreeView控件里的ItemsControl2.找到ItemsControl里的ScrollViewer3.判断当前每个Item的高度4.通过GetCursorPos获取屏幕绝对坐标5.通过ItemsControl的PointFromScreen把屏幕原创 2013-07-10 15:43:54 · 1218 阅读 · 0 评论