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%不动的问题.这该怎么办呢?下面,小编就告诉大家解决该 ...
随机推荐
- [[UIScreen mainScreen] bounds] 返回的屏幕尺寸不对
在使用cocos2d-iphone 2.0生成项目的时候,用5s测试时全屏中上下一直有黑条,发现[[UIScreen mainScreen] bounds]返回的屏幕尺寸不是320*568的,而是32 ...
- Java String,StringBuffer和StringBuilder的区别
[可变与不可变] String是字符串常量,不可变. StringBuffer和StringBuilder是字符串变量,可变. [执行速度方面] StringBuilder > StringBu ...
- 一个暂时无法理解的bug
BUG bug的存在是不可避免的 一个静态变量,改成绝对地址之后可以生成静态页面.但是主页有一个用了静态变量的超链接就不能用, 最后我加了一个相对地址的静态变量,可以解决这个问题.
- Ext开场表单布局设计
var form = new Ext.form.FormPanel({ labelAlign: 'right', labelWidth: 60, buttonAlign: 'center', titl ...
- Centos 7下搭建WordPress
1,首先安装MySQL. http://www.cnblogs.com/zyh120/p/6066983.html 2,继续安装httpd,php,php-mysql这3个服务. [root@loca ...
- sharepoint 网站创建
打开开始菜单,右键sharepoint管理中心以管理员身份打开 打开管理web应用程序菜单,并新建web应用程序 新建web应用程序配置,大多数采用默认配置. 建议自定义端口号,URL的端口号和设置的 ...
- http状态码全解
1**(信息类):表示接收到请求并且继续处理 100--客户必须继续发出请求 101--客户要求服务器根据请求转换HTTP协议版本 2**(响应成功):表示动作被成功接收.理解和接受 200--表明该 ...
- codeIgniter怎么实现对input type=text对话框blur事件的监听以及传值?
如题,这个问题怎么解决? 用JS和前端框架习惯了,现在学后端框架,感觉各种坑...
- Mysql --分区表的管理与维护
改变一个表的分区方案只需使用alter table 加 partition_options 子句就可以了.和创建分区表时的create table语句很像 创建表 CREATE TABLE trb3 ...
- windows10 technical preview 无法激活