Browse by Tags
All Tags »
VS 2010 (RSS)
我们先来看一个在Outlook上运行.NET插件的一个情景。暂时机器上面安装的是CLR v1.1,Outlook上运行了一个Addin,在v1.1上编写和测试完毕,运行良好。之后,用户在机器上面安装v2.0。因为Outlook采取的方式是总是启动最新的.NET Framework(这也是有原因的,因为Outlook希望能够运行所有的版本的.NET Addin),Outlook自动会运行CLR v2.0(包括.NET Framework v2.0,v3.0, v3.5)。因为v2.0和v1.1之间并不是100%兼容,v1.1上编写的Addin在v2.0的CLR将有可能无法正确执行。也就是说,安装了一个新版本的.NET
Read More...
什么是契约 我们先来看一个很简单的例子: Void WordList.Insert(string word) 这个函数负责将word以升序插入到WordList中的单词列表中,word不可以为NULL。 上面这些说明文字都是用来描述此函数的行为的。当使用该函数的调用者看到这些说明文字的时候,便知道函数应该如何调用以及在不同情况下的函数行为,换言之,上面这段说明文字简单的描述了函数调用者和被调用者的一种约定,这种约定也被称之为契约(Contracts)。契约一般来讲可以分成三类,包括: 1. Precondition:函数调用之前需要满足何种条件:比如,参数word不可以为NULL
Read More...
在最新一期的.NET 4.0新特性系列课程中,我和我的同事将给大家介绍Beta1中的一些新特性,具体信息如下: .NET 4.0中的新特性系列课程(3):.NET 4.0 Beta1 Interop 新特性介绍 (Level 200) 讲 师: 张羿、朱永泰 课程简介: .NET 4.0 Beta1在Interop,也就是互操作功能上有了较大的改进,主要是能够帮助开发者更自由的自定义互操作的行为,以及查找互操作中出现的错误。这次讲座我们主要介绍4个新特性:NOPIA、Customization
Read More...
.NET Framework v4.0和VisualStudio 2010 Beta1已经出来有阵子了,估计有些喜欢尝鲜的朋友已经下载试用了。这一次发布包含了大量的新功能。我们上海CLR开发团队会编写一系列的文章介绍Interop的相关新功能。我来给大家简单介绍一下Stub Method Redirection功能。这个功能是CLR上海开发团队设计、开发并测试的新功能之一,这一次我们上海CLR小组共开发了下面几个功能 1. Managed TlbImp (Rewrite) 2. Stub Method
Read More...
微软上海VS TeamArch小组的中文Blog上面最近开始了一个系列文章,主要翻译Cameron Skinner的一系列介绍Visual Studio Team System 2010 Architecture CTP的一些新功能的Blog,目前有下面两篇: VSTS 2010 Architecture 第一章:Modeling Project Visual Studio Team System 2010 Architecture- 前言 建议对VS 2010 Architecture CTP有兴趣的朋友可以关注一下。
Read More...
上次我们谈到了.NET 4.0中为什么要引入Type Equivalency这样一个新功能,这次我们来看一个比较简单的一个程序: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Office.Interop.Excel; namespace NOPIAExcelDemo { class Program { static void Main( string
Read More...
http://www.microsoft.com/downloads/details.aspx?FamilyID=922b4655-93d0-4476-bda4-94cf5f8d4814&DisplayLang=en 有11个文件,比较大,并且需要使用Virtual PC加载。 在.NET 4.0 CTP中CLR Interop的新功能是Type Equvalency,又称为No PIA,欢迎试用并提出您的宝贵意见。关于详细的使用方法我会在后面的Blog中详细讲述。 CTP提交Feedback的地方是:
Read More...
刚才刚看完Anders的PDC Talk,感觉C# 4.0的变化不是很大,但是很多改动都方便了用户的使用,有些甚至当初Anders本来不愿意加入的功能最后由于用户的呼声最后还是加进去了(如Optional Parameters),可见Anders对用户的意见还是非常重视的。稍微总结一下,C# 4.0中有下面这些功能: 1. dynamic/IDynamicObject 这个改进使得C#向动态语言又进了一步,虽然C#并不会变成类似Perl/Python之类的动态语言(因为Anders认为静态语言所支持的一些特性比如Intellisense,类型检查等等是相当有用的),但是这并不代表C#不应该对动态特性提供更好的支持。从我们Interop的角度来看,dynamic比较类似COM中的IDispatch,也就是动态的根据提供的函数/属性名字动态选择匹配的动作并执行之,只不过这个接口现在变成了IDynamicObject。写法也很类似VB6。
Read More...