摘要:因为在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 阅读全文
摘要:1.9.0更新的内容有 更新项目工具 更好的支持Linux 添加工具函数 Exception.ToDetailedString (获取例外的详细信息) Exception.ToSummaryString (获取例外的简略信息) Expression.ReplaceNode (替换表达式中的节点, 一 阅读全文
摘要:NullReferenceException可能是.Net程序员遇到最多的例外了, 这个例外发生的如此频繁, 以至于人们付出了巨大的努力来使用各种特性和约束试图防止它发生, 但时至今日它仍然让很多程序员头痛, 今天我将讲解这个令人头痛的例外是如何发生的. 可以导致NullReferenceExcep 阅读全文
摘要:微软在去年发布了Bash On Windows, 这项技术允许在Windows上运行Linux程序, 我相信已经有很多文章解释过Bash On Windows的原理, 而今天的这篇文章将会讲解如何自己实现一个简单的原生Linux程序运行器, 这个运行器在用户层实现, 原理和Bash On Windo 阅读全文
摘要:这是一套基于ZKWeb网页框架和Angular 4.0编写的开源管理后台Demo,实现了前后端分离和模块化开发, 地址是: https://github.com/zkweb framework/ZKWeb.MVVMDemo ,开源协议是MIT,你可以随意的修改并用于个人或商业用途 我之前已经公开了一 阅读全文
摘要:1.8.0更新的内容有 破坏性更新 更新ZKWeb.System.Drawing到3.0.0 请修改源代码中的 到`System.DrawingCore` 现在已经不再需要使用 选项,因为使用这个选项也不能完全防止冲突 一般更新 添加IActionParameterProvider 可以自定义获取a 阅读全文
摘要:1.7.0更新的内容有 更新项目格式到新的csproj 更新项目模板 打开新创建的Asp.Net Core项目将需要VS 2017,Asp.Net和Owin项目仍可以用VS 2015 补上插件模板的Plugin类上的[SingletonReuse] 添加工具类 添加用于获取本机IP的NetworkU 阅读全文
摘要:在上一篇中我分析了CoreCLR中GC的内部处理, 在这一篇我将使用LLDB实际跟踪CoreCLR中GC,关于如何使用LLDB调试CoreCLR的介绍可以看: 微软官方的文档, "地址" 我在第3篇中的介绍, "地址" LLDB官方的入门文档, "地址" 源代码 本篇跟踪程序的源代码如下: 准备调试 阅读全文
摘要:在这篇中我将讲述GC Collector内部的实现, 这是CoreCLR中除了JIT以外最复杂部分,下面一些概念目前尚未有公开的文档和书籍讲到。 为了分析这部分我花了一个多月的时间,期间也多次向CoreCLR的开发组提问过,我有信心以下内容都是比较准确的,但如果你发现了错误或者有疑问的地方请指出来, 阅读全文