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%不动的问题.这该怎么办呢?下面,小编就告诉大家解决该 ...
随机推荐
- OC基础语法之方法
看惯了c#的代码再去看Object-C的代码,总感觉有点懵逼,记录下OC的方法用法: 在OC中一个类中的方法有两种类型:实例方法(类似于非静态函数),类方法(类似非静态函数). 实例方法前用(-) ...
- ThinkPHP 3.2.3 文件上传时间目录问题
上传文件的代码如下 在上传文件的时候会默认生成时间目录, 但是有些时候,并不想生成时间目录,而是储存在我们自己定义的目录下,可以这样做: 只需要添加 $upload->autoSub = fal ...
- Redis与Memcached的区别
传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量 ...
- JavaScript语法结构
一:字符集 1.区分大小写 JavaScript是区分大小写的语言 所有的标识符(identifier)都必须采取一致的大小写形式 但是Html并不区分大小写(尽管Xhtml区分) 2.空格.换行符和 ...
- C#范型不会用,求助~
using Dapper; using Dapper.Contrib.Extensions; using System.Data.SqlClient; using System.Configurati ...
- Linux命令(ntp)
NTP时间同步 下载ntp软件包 root@rgw01:~# apt-get install ntp 调整ntp server时间 root@rgw01:~# date Mon Dec 1 17:02 ...
- 关于String中+与StringBuilder的问题
字符串连接可以通过两种方法实现,其中一种是在Java中提供的一个StringBuilder类(这个类只在J2SE5及以上版本提供,以前的版本使用StringBuffer类). 字符串是Java程序 ...
- 【IOS】Xcode7以上免证书真机调试
Xcode7之前,想要真机调试,必须花99刀购买开发者账号,而且步骤繁琐,需要下载证书.随着Xcode7的推出,大幅度的简化了真机调试的步骤,对ios开发工作者和正在学习ios开发的众多码农们,可以说 ...
- CAD2012安装错误
安装CAD2012总是会出现各种错误,不能安装,特别是.NET Framework Runtime 4.0安装错误. 单独安装dotNetFx40_Full_x86_x64.exe会提示更高级的版本已 ...
- Python 学习---------Day3
第七章 字符串单双引号字符串是一样的用转义序列代表特殊字节字符串抑制转义myfile=open(r'C:\new\text.dat','w')三重引号编写多行字符串块字符串更大的编码集std(u'sp ...