<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[张羿的CSDN专栏]]></title><description><![CDATA[正在开发.NET Native]]></description><link>https://blog.csdn.net/ATField</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; ATField]]></copyright><item><title><![CDATA[.NET直接编译成本地代码：.NET Native架构简介]]></title><link>https://blog.csdn.net/ATField/article/details/23449089</link><guid>https://blog.csdn.net/ATField/article/details/23449089</guid><author>ATField</author><pubDate>Fri, 11 Apr 2014 15:48:50 +0800</pubDate><description><![CDATA[这篇Blog好久没有更新了。最近一直在忙.NET Native相关的事情（主要是MCG)，但是又因为保密的原因不能在Blog中提到。上个星期Build终于发布（可惜没有去成，team名额太少），我也终于可以谈下.NET Native的一些东西了，呵呵。


如果大家还没有看到之前的发布信息，可以去下面几个网址看看：


http://msdn.microsoft.com/en-US/v]]></description><category></category></item><item><title><![CDATA[.NET 4.0新功能：Mscoree.dll + Mscoreei.dll=更少的Reboot （上）]]></title><link>https://blog.csdn.net/ATField/article/details/4516281</link><guid>https://blog.csdn.net/ATField/article/details/4516281</guid><author>ATField</author><pubDate>Thu, 03 Sep 2009 17:13:00 +0800</pubDate><description><![CDATA[一次Reboot=975年  在开始本文之前先做一个小调查：有多少朋友喜欢Reboot？答案A：我喜欢，每天都要Reboot N次。答案B：我不喜欢，最好一个星期都不要Reboot。如果没有意外的话，相信大部分人都可以归到B那一类，毕竟很少人会愿意中断自己所做的事情，把正在编辑的文章、代码等等一一存盘，然后重新启动，等待几分钟，再重新打开文档、代码编辑的。  不过，很遗憾的是，新版本的.NET的安]]></description><category></category></item><item><title><![CDATA[如果一个程序跑10000次只失败一次，你会怎么调试？]]></title><link>https://blog.csdn.net/ATField/article/details/4493003</link><guid>https://blog.csdn.net/ATField/article/details/4493003</guid><author>ATField</author><pubDate>Fri, 28 Aug 2009 13:10:00 +0800</pubDate><description><![CDATA[CLR小组中存在着大量的回归测试，这些回归测试会定期执行来发现CLR中的Bug，Developer在Checkin之前，也需要执行这些测试的一部分（大概是10小时左右，如果全部跑的话估计要好几天）。这些测试对于保证CLR的质量是至关重要的。有时候，这些测试会偶尔失败，比如跑100次失败大概一到两次，有些极端的例子甚至是10000次才失败一次。像这种问题通常是很难调试的。在前面调试Bug的神兵利器：]]></description><category></category></item><item><title><![CDATA[.NET 4.0新功能介绍：In Process Side By Side]]></title><link>https://blog.csdn.net/ATField/article/details/4482883</link><guid>https://blog.csdn.net/ATField/article/details/4482883</guid><author>ATField</author><pubDate>Tue, 25 Aug 2009 13:50:00 +0800</pubDate><description><![CDATA[我们先来看一个在Outlook上运行.NET插件的一个情景。暂时机器上面安装的是CLR v1.1，Outlook上运行了一个Addin，在v1.1上编写和测试完毕，运行良好。之后，用户在机器上面安装v2.0。因为Outlook采取的方式是总是启动最新的.NET Framework（这也是有原因的，因为Outlook希望能够运行所有的版本的.NET Addin），Outlook自动会运行CLR v2]]></description><category></category></item><item><title><![CDATA[.NET 4.0中的新功能介绍：契约式设计 (Design By Contracts)]]></title><link>https://blog.csdn.net/ATField/article/details/4465227</link><guid>https://blog.csdn.net/ATField/article/details/4465227</guid><author>ATField</author><pubDate>Thu, 20 Aug 2009 09:57:00 +0800</pubDate><description><![CDATA[什么是契约  我们先来看一个很简单的例子：  Void WordList.Insert(string word)  这个函数负责将word以升序插入到WordList中的单词列表中，word不可以为NULL。  上面这些说明文字都是用来描述此函数的行为的。当使用该函数的调用者看到这些说明文字的时候，便知道函数应该如何调用以及在不同情况下的函数行为，换言之，上面这段说明文字简单的描述了函数调用者和被]]></description><category></category></item><item><title><![CDATA[MSDN Webcast预告：.NET 4.0中的新特性系列课程(3)：.NET 4.0 Beta1 Interop 新特性介绍 (Level 200)]]></title><link>https://blog.csdn.net/ATField/article/details/4277171</link><guid>https://blog.csdn.net/ATField/article/details/4277171</guid><author>ATField</author><pubDate>Wed, 17 Jun 2009 17:33:00 +0800</pubDate><description><![CDATA[在最新一期的.NET 4.0新特性系列课程中，我和我的同事将给大家介绍Beta1中的一些新特性，具体信息如下：  .NET 4.0中的新特性系列课程(3)：.NET 4.0 Beta1 Interop 新特性介绍 (Level 200)  讲 师：张羿、朱永泰    课程简介：.NET 4.0 Beta1在Interop，也就是互操作功能上有了较大的改进，主要是能够帮助开发者更自由的自定义互操作的]]></description><category></category></item><item><title><![CDATA[CLR 4.0 Beta1新功能：Stub Method Redirection]]></title><link>https://blog.csdn.net/ATField/article/details/4276177</link><guid>https://blog.csdn.net/ATField/article/details/4276177</guid><author>ATField</author><pubDate>Wed, 17 Jun 2009 13:28:00 +0800</pubDate><description><![CDATA[.NET Framework v4.0和VisualStudio 2010 Beta1已经出来有阵子了，估计有些喜欢尝鲜的朋友已经下载试用了。这一次发布包含了大量的新功能。我们上海CLR开发团队会编写一系列的文章介绍Interop的相关新功能。我来给大家简单介绍一下Stub Method Redirection功能。这个功能是CLR上海开发团队设计、开发并测试的新功能之一，这一次我们上海CLR小组]]></description><category></category></item><item><title><![CDATA[MSDN中文网络广播预告：公共语言运行库(CLR)开发系列课程(6)：.NET中间语言(IL)入门 (Level 200)]]></title><link>https://blog.csdn.net/ATField/article/details/4202281</link><guid>https://blog.csdn.net/ATField/article/details/4202281</guid><author>ATField</author><pubDate>Tue, 19 May 2009 21:22:00 +0800</pubDate><description><![CDATA[这个星期三也就是5月19日下午2点半开始我将为大家带来CLR开发课程系列之六。这一次我打算讲一些.NET比较本质的内容：Metadata和IL代码。欢迎希望对.NET的运作机理和工作方式能够有进一步深入了解的朋友收听。本次讲座的具体信息如下：  公共语言运行库(CLR)开发系列课程(6)：.NET中间语言(IL)入门 (Level 200)  讲 师：张羿    课程简介：.NET本质上是一个执行]]></description><category></category></item><item><title><![CDATA[Visual Studio 2010 + .NET 4.0Beta1发布!]]></title><link>https://blog.csdn.net/ATField/article/details/4202048</link><guid>https://blog.csdn.net/ATField/article/details/4202048</guid><author>ATField</author><pubDate>Tue, 19 May 2009 19:21:00 +0800</pubDate><description><![CDATA[Visual Studio 2010和.NET 4.0的Beta1版本终于发布了！目前Beta1还只是对MSDN的订阅者开放，到美国时间20日星期三，也就是我们的21日星期四的时候，Visual Studio 2010 / .NET 4.0 Beta1将公开对外发布。这个版本是可以安装的Setup，而非上次的虚拟机镜像，因此对于大家的机器要求会放松一些。想要观看安装图片的朋友们可以点击这篇Blog]]></description><category></category></item><item><title><![CDATA[Visual Studio Team System 2010 Architecture系列文章]]></title><link>https://blog.csdn.net/ATField/article/details/4137628</link><guid>https://blog.csdn.net/ATField/article/details/4137628</guid><author>ATField</author><pubDate>Wed, 29 Apr 2009 19:47:00 +0800</pubDate><description><![CDATA[微软上海VS TeamArch小组的中文Blog上面最近开始了一个系列文章，主要翻译Cameron Skinner的一系列介绍Visual Studio Team System 2010 Architecture CTP的一些新功能的Blog，目前有下面两篇：  VSTS 2010 Architecture 第一章:Modeling Project  Visual Studio Team Syst]]></description><category></category></item><item><title><![CDATA[使用.NET/CLR的Stress Log功能寻找问题]]></title><link>https://blog.csdn.net/ATField/article/details/4077157</link><guid>https://blog.csdn.net/ATField/article/details/4077157</guid><author>ATField</author><pubDate>Wed, 15 Apr 2009 21:28:00 +0800</pubDate><description><![CDATA[不知道各位使用.NET开发的朋友是否有遇到过一些非常奇怪的问题而不知道如何下手呢？这个时侯CLR本身提供的StressLog功能就非常有用了。这个StressLog可以在很多时候把CLR所做的事情记录下来，比如，对于一个很简单的最后抛出异常的.NET程序Log大致如下：                        STRESS LOG:          facilitiesToLog = 0x]]></description><category></category></item><item><title><![CDATA[.NET 4.0新功能：Corrupted State Exceptions]]></title><link>https://blog.csdn.net/ATField/article/details/4037354</link><guid>https://blog.csdn.net/ATField/article/details/4037354</guid><author>ATField</author><pubDate>Mon, 30 Mar 2009 23:11:00 +0800</pubDate><description><![CDATA[在.NET 4.0中引入了一个新功能：Corrupted State Exceptions。听上去名字很神秘，实际上这个功能主要是限制对Exception的错误用法：捕获AccessViolationException/SEHException等可能会造成程序状态错误而无法正确继续的种种异常，具体可以参看CLR程序经理Andrew Pardoe的这篇MSDN文章：http://msdn.micro]]></description><category></category></item><item><title><![CDATA[调试Bug的神兵利器：通过WinDbg条件断点收集Log]]></title><link>https://blog.csdn.net/ATField/article/details/4037248</link><guid>https://blog.csdn.net/ATField/article/details/4037248</guid><author>ATField</author><pubDate>Mon, 30 Mar 2009 22:22:00 +0800</pubDate><description><![CDATA[前段时间花了几天一直在用WinDbg调试一个比较棘手的Bug。这个Bug是C# Team那边发现的，他们的Testcase跑大概10分钟左右会出一个在CLR内部的ASSERT。比较难调试的主要原因在于ASSERT表明一个全局的数据结构出现了问题，本来不应该用完的数组却已经用完了（因为按照设计，这个数组是边使用边清理的，是不会用完的）。初步想到的有下面几种方案来调试：  1. 设置数据断点  2. ]]></description><category></category></item><item><title><![CDATA[MSDN中文网络广播预告：.NET 4.0新特性系列课程(2)：契约式设计 (Level 200)]]></title><link>https://blog.csdn.net/ATField/article/details/3995972</link><guid>https://blog.csdn.net/ATField/article/details/3995972</guid><author>ATField</author><pubDate>Mon, 16 Mar 2009 22:31:00 +0800</pubDate><description><![CDATA[这次我将为大家讲解如何使用.NET 4.0中的契约式设计（也可以在.NET 2.0+中使用，需要额外下载安装包），欢迎有兴趣的朋友收听。  地址为：http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032406872&Culture=zh-CN  .NET 4.0中的新特性系列课程(2)：契约式设计 (Level 200)  讲]]></description><category></category></item><item><title><![CDATA[CodePlex上TlbImp新版本发布：基于规则的自定义功能]]></title><link>https://blog.csdn.net/ATField/article/details/3987889</link><guid>https://blog.csdn.net/ATField/article/details/3987889</guid><author>ATField</author><pubDate>Fri, 13 Mar 2009 15:53:00 +0800</pubDate><description><![CDATA[大家好。距离上次我们发布在CodePlex上的新版本TlbImp已经过了快半年了。在这半年的时间内，除了主要进行.NET 4.0相关的新功能开发之外，我们上海CLR小组也没有忘记进行TlbImp相关功能的继续开发，于今年3月9日再次发布了TlbImp的一个新版本：  http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?Re]]></description><category></category></item><item><title><![CDATA[预告：公共语言运行库(CLR)开发系列课程(4)：COM Interop进阶]]></title><link>https://blog.csdn.net/ATField/article/details/3897799</link><guid>https://blog.csdn.net/ATField/article/details/3897799</guid><author>ATField</author><pubDate>Mon, 16 Feb 2009 21:50:00 +0800</pubDate><description><![CDATA[这次我主要讲RCW的原理，生命周期，引用计数，套间，System.__ComObject，事件调用原理等内容。CCW由于时间限制就不涉及了，毕竟大家还是以使用RCW为主。  感兴趣的朋友可以在下面注册：  公共语言运行库(CLR)开发系列课程(4)：COM Interop进阶 (Level 300)  讲 师：张羿    课程简介：本次课程我们将介绍.NET调用COM组件上使用上的一些常见问题，特]]></description><category></category></item><item><title><![CDATA[System.Runtime.InteropServices.GetHRForException的陷阱]]></title><link>https://blog.csdn.net/ATField/article/details/3730010</link><guid>https://blog.csdn.net/ATField/article/details/3730010</guid><author>ATField</author><pubDate>Wed, 07 Jan 2009 23:10:00 +0800</pubDate><description><![CDATA[从字面上看，GetHRForException函数的作用很简单：得到Exception所对应的HRESULT的值。但是，GetHRForException还会做一件事情：设置当前线程的IErrorInfo使之指向该Exception（严格来说是获得Exception的CCW中的IErrorInfo接口指针）。如果对IErrorInfo不熟悉的朋友们可以把IErrorInfo看成COM版本的GetL]]></description><category></category></item><item><title><![CDATA[Vista上远程管理Hyper-V服务器]]></title><link>https://blog.csdn.net/ATField/article/details/3728212</link><guid>https://blog.csdn.net/ATField/article/details/3728212</guid><author>ATField</author><pubDate>Wed, 07 Jan 2009 17:18:00 +0800</pubDate><description><![CDATA[因为工作需要，我把自己的一台机器装上了Windows Server 2008并配置好了Hyper-V，用来Host我的一些虚拟机。但是我一般远程访问这台服务器，管理虚拟机起来不太方便，特别是在虚拟机上还没有安装好Integration Services更是如此。因此我经常用HyperV为Vista发布的一款MMC来远程管理我的虚拟机。这个MMC包含在Vista SP1 Managed Tools ]]></description><category></category></item><item><title><![CDATA[【预告】1月6日下午14：30 CLR开发系列课程(3)：COM Interop基础 (Level 300)]]></title><link>https://blog.csdn.net/ATField/article/details/3655938</link><guid>https://blog.csdn.net/ATField/article/details/3655938</guid><author>ATField</author><pubDate>Tue, 30 Dec 2008 21:30:00 +0800</pubDate><description><![CDATA[1月6日下午14：30我将在MSDN中文网络广播中主讲.NET中COM和COM Interop的相关基础知识。有兴趣的朋友可以通过下面的链接登记并收听此次网络广播：   公共语言运行库(CLR)开发系列课程(3)：COM Interop基础 (Level 300)  讲 师：张羿    课程简介：从本次课程开始，今后几次课程将围绕COM和COM Interop技术，展开对托管代码和非托管代码之间通]]></description><category></category></item><item><title><![CDATA[.NET组件的注册表中RuntimeVersion的作用]]></title><link>https://blog.csdn.net/ATField/article/details/3655669</link><guid>https://blog.csdn.net/ATField/article/details/3655669</guid><author>ATField</author><pubDate>Tue, 30 Dec 2008 21:17:00 +0800</pubDate><description><![CDATA[使用过COM来访问.NET组件的朋友们应该都会注意到在对应注册表中有一个RuntimeVersion的键值：    这个RuntimeVersion的命名很容易让人误认为RuntimeVersion是用来指定该.NET组件所应该运行的CLR的版本号。实际上，这个键值的意思和字面上不是特别一致。如果我们考虑一个情况：首先，进程中先创建一个.NET类型的实例，RuntimeVersion标记为1.1，]]></description><category></category></item></channel></rss>