随笔分类 - 其他
摘要:最近这几天在帮 "柠檬" 看她的APM系统要如何收集.Net运行时的各种事件, 这些事件包括线程开始, JIT执行, GC触发等等. .Net在windows上(NetFramework, CoreCLR)通过ETW(Event Tracing for Windows), 在linux上(CoreC
阅读全文
摘要:这是今天帮 "柠檬" 分析一个 "AsyncLocal相关的问题" 时发现的. 试想这个代码输出的值是多少? 答案是123. 为什么修改了 的值却无效呢? 这要从AsyncLocal的运作机制说起. 首先这是 "AsyncLocal的源代码" : 获取和设置值用的是 和`ExecutionConte
阅读全文
摘要:因为在X86上long会被分割为两个int进行操作, 那么Interlocked.Increment的实现成为了一个问题。 在一番搜索后未发现有现成的文章解释这个问题,于是我就动手分析了。 这篇是笔记,不会做过多的解释。 首先重现环境是 .Net Core 2.0 Windows (x86) Bin
阅读全文
摘要:对于在Linux上开发.Net Core的程序员来说, 似乎都缺少一个好的IDE. Windows上有Visual Studio, Mac上有Visual Studio for Mac, 难道Linux只有Visual Studio Code了吗? Linux上有两个最好的编辑器: VIM和Emac
阅读全文
摘要:微软在去年发布了Bash On Windows, 这项技术允许在Windows上运行Linux程序, 我相信已经有很多文章解释过Bash On Windows的原理, 而今天的这篇文章将会讲解如何自己实现一个简单的原生Linux程序运行器, 这个运行器在用户层实现, 原理和Bash On Windo
阅读全文
摘要:随着大规模的项目越来越多,许多项目都引入了依赖注入框架,其中最流行的有Castle Windsor, Autofac和Unity Container。 微软在最新版的Asp.Net Core中自带了依赖注入的功能,有兴趣可以 "查看这里" 。 关于什么是依赖注入容器网上已经有很多的文章介绍,这里我将
阅读全文
摘要:DotLiquid是一个在.Net Framework上运行的模板引擎,采用Ruby的Liquid语法,这个语法广泛的用在Ruby on rails和Django等网页框架中。 DotLiquid相比于Mvc默认模板引擎Razor的好处有: 因为不需要编译到程序集再载入 首次渲染速度很快 不会导致内
阅读全文
摘要:在开发涉及到数据库的程序时,常会遇到一开始设计的结构不能满足需求需要再添加新字段或新表的情况,这时就需要进行数据库迁移。 实现数据库迁移有很多种办法,从手动管理各个版本的ddl脚本,到实现自己的migrator,或是使用Entity Framework提供的Code First迁移功能。 Entit
阅读全文
摘要:"ZKWeb网站框架" 是一个自主开发的网页框架,实现了动态插件和自动编译功能。 ZKWeb把一个文件夹当成是一个插件,无需使用csproj或xproj等形式的项目文件管理,并且支持修改插件代码后自动重新编译加载。 下面将说明ZKWeb如何实现这个功能,您也可以参考下面的代码和流程在自己的项目中实现
阅读全文