Microsoft 参考源代码系统更新,有惊喜哦。
在以前,MS的参考源代码在单步调试时时好用时不好用,最后我找到了原因,那就是如果想用MS的参考源代码进行单步调试,那么你就得想尽办法把系统上的.NET FX降级到RTM版本(卸载各种相关补丁),今天我收到了MS的User Voice发来的邮件,告诉我参考源代码已经升级,不仅RTM版本可用,各个更新后的版本也可用(虽然仅仅针对.NET FX 4.5.1)。

OK,打开 http://blogs.msdn.com/b/dotnet/archive/2014/02/24/a-new-look-for-net-reference-source.aspx。
发现有在线浏览功能,和离线打包下载,下载回来的代码是有解决方案和项目文件的,也就是在VS里面直接能导航等。
在线浏览归功于 http://msdn.microsoft.com/en-US/roslyn ,微软的Roslyn项目,VS系列编译器的未来。
在线示例:http://referencesource-beta.microsoft.com/#mscorlib/system/environment.cs
我下了离线源代码:
http://referencesource-beta.microsoft.com/download.html
然后发现了许多我曾经有兴趣并想研究的代码(包含了部分C++代码):
DotNetReferenceSource.zip\Source\wpf\src\Shared\detours ,此目录包含了微软http://research.microsoft.com/en-us/projects/detours/项目的完整版本,版本号是Version 3.0 Build_306.注意MS上有社区版本,只支持X86,不支持AMD64,而这个是全的,支持X86 AMD64 IA64 ARM,以前在MS网站上卖的很贵的哦(刚才没找到卖的连接)。
DotNetReferenceSource.zip\Source\wpf\src\printing\cpp 此目录包含了WPF系统打印部分代码。
DotNetReferenceSource.zip\Source\wpf\src\host 此目录包含WPF的Hosting 系列代码,就是在浏览器里面加载xaml进行渲染的部分。这是我曾经关注的。
DotNetReferenceSource.zip\Source\wpf\src\Graphics\include 这个没代码,仅有相当于头文件的c#文件,但研究过WPF底层的朋友们会发现此处有很多结构体,正式WPF托管部分和Native引擎交互通信用的数据交换结构。
DotNetReferenceSource.zip\Source\wpf\src\Core\cpp\dwritewrapper C++代码,没细看
DotNetReferenceSource.zip\Source\wpf\src\Core\cpp\truetypesubsetter 这个就比较有料了,WPF字体模糊是什么原因估计这部分代码能让你明白,他是用来栅格化truetype字体的,wpf的字体不是gdi渲染出来的,有自己的渲染引擎,估计就是这个了。
DotNetReferenceSource.zip\Source\vb 这个目录是相对最完整的,包含了C++代码的VB源代码的编译器,你没看错,是编译器!而且不仅是编译器,还有很多好东西。

ok,Enjoy Yourself!
Microsoft 参考源代码系统更新,有惊喜哦。的更多相关文章
- 微软参考源代码 referencesource.microsoft.com
微软参考源代码 http://referencesource.microsoft.com/ referencesource 下载地址 https://github.com/Microsoft/refe ...
- Win7 & Win 8系统更新失败的解决
转自:Win 8系统更新失败的解决(原创) 这几天win 8又出了一大堆更新,而且是一更新完就要重启,重启之后照例要进入更新包的安装过程.不爽的是,屡屡在重启后出现"配置Windows更新失 ...
- 系统更新后vs2012无法打开方案资源管理器
系统更新后vs2012无法打开方案资源管理器 vs调试报错: 未找到与约束 ContractName Microsoft.VisualStudio.Language.Intellisense.IGly ...
- BeagleBone Black Industrial系统更新设置一贴通
前言 原创文章,转载引用务必注明链接.水平有限,欢迎指正. 本文使用markdown写成,为获得更好的阅读体验,推荐访问我的博客原文: http://www.omoikane.cn/2016/09/1 ...
- Microsoft Windows Server 系统基本配置
Microsoft Windows Server 系统基本配置 环境基本配置 桌面和显示属性 更新服务器名称 更新用户密码 创建密码重置盘 设置网络类型 TCP/IP设置 ping和ipconfig命 ...
- 怎么处理Win10系统更新提示代码0x80070057的错误?
在使用好系统重装助手重装了Win10系统后,由于每个用户的电脑配置不同,有些用户会在更新时出现0x80070057的错误代码.下面就教大家Win10系统更新出现0x80070057错误该怎么解决. W ...
- Win10系统更新提示错误0xc1900403的解决方法
Win10系统自从发布上线以来,一直有不断地进行更新,而每次更新也给我们用户带来了大大小小不同的惊喜.但是近来一些用户反应说Win10系统更新一直失败,并出现0xc1900403的错误代码提示. 对于 ...
- 如何解决Win10系统更新显示0x80080300代码的错误?
Win10系统自推出以来就不断的在完善更新,其越来越丰富的功能也吸引了越来越多的用户.好系统Win10系统:https://www.vkebao.com/os/index_2.html但最近有用户反映 ...
- win10系统更新补丁时进度条一直卡在0%不动的解决方案
为了能够让win10系统更加安全稳定,很多用户都会时不时为自己的电脑安装补丁.不过,部分用户在为win10系统更新补丁时,却会遇到进度条一直卡在0%不动的问题.这该怎么办呢?下面,小编就告诉大家解决该 ...
随机推荐
- 简单的通用TreeView(WPF)
工作中要为很多类创建TreeView, 很多时候仅仅是因为要显示字段不同, 就得Ctrl+C.Ctrl+V复制一份几乎相同的代码, 这难免让人生厌, 于是希望像泛型集合的扩展方法那样, 可以在使用的时 ...
- TCP协议学习记录 (二) Ping程序
简单的实现了一个ping程序,没有做icmp差错报文的检查. 支持自定义字节数,支持发包个数 #pragma pack(4) #define ECHO_REQUEST 8 #define DATASI ...
- Valid Parentheses 使用递归的解法
class Solution { public: bool isValid(string s) { ||s.size()%!=)return false; unordered_map<char, ...
- Oracle数据库导入导出命令总结 (详询请加qq:2085920154)
分类: Linux Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的 ...
- linux 定时清理session
php session 运营想让用户登陆网站就能永久保持登陆会话,感觉这是扯淡,因为视频播放1小时,所以我设置了两小时过期. 但是用户过多,导致session文件大量存储.产生上百万千万.服务器空间很 ...
- 韩服LOL
※◆☆★☆◆※欢迎使用韩服LOL辅助,如有疑问请联系作者QQ:82850696*2*测试版已停用*1*2014-8-27 14:05:59*哈密*E2873D0137C6D04F42E088AA46E ...
- JSON的一点:
目录一:把 JSON 文本转换为 JavaScript 对象二:JSON 实例 - 来自字符串的对象 一.把 JSON 文本转换为 JavaScript 对象JSON 最常见的用法之一,是从 web ...
- 二 Java利用等待/通知机制实现一个线程池
接着上一篇博客的 一Java线程的等待/通知模型 ,没有看过的建议先看一下.下面我们用等待通知机制来实现一个线程池 线程的任务就以打印一行文本来模拟耗时的任务.主要代码如下: 1 定义一个任务的接口 ...
- java中super的两种用法
通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自 ...
- flex中通过代码获取supermap的token
最近工作中需要使用代码来获取supermap服务启动安全访问限制以后的token值,经过一番尝试,最终成功获取到,记录下里,以供翻阅 //get token public function getTo ...