领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Jonathan Allen 译者 侯伯薇 发布于 2011年9月20日
尽管我们可以使用.NET语言来调用Win32 API,但那样做会很困难。所以在过去的两年间微软一直在构建替代的方案,它就是实现了跨语言支持的Windows运行时,即WinRT。我们可以在C++和.NET中创建WinRT组件,并且可由二者以及JavaScript使用。
尽管COM在表面上是一种基于OOP的框架,但它与.NET之间有很大的区别。在WinRT出现之前,COM是基于接口而不是基于类的。这意味着其中缺少很多.NET开发者认为应该有的内容,像构造函数以及静态方法等。C++组件扩展解决了这个问题。
WinRT形式的COM使用的元数据格式和通用语言运行时(Common Language Runtime)相同。这些信息存储在表示结构的WINMD文件中,尽管没有实现,但在所有公有类中都会有。FXCop被用于检验这些文件所暴露的API是否遵循.NET Framework的设计指南。
.NET在最开始时就有“API设计委员会(API Design Board)”。受此启发,Windows运行时也会建立API设计委员会来对其进行管理。很多最初的成员都在.NET委员会中,并且很多指南都直接来自于.NET基本类库所遵循的原则。
Windows运行时会返回HRESULT,而不会抛出异常。对于众所周知的HRESULT值来说,会抛出相应的异常,而对于其他值就只能抛出COMException。
WinRT的IAsyncOperation接口现在使用新的async/await关键字,就像.NET的Task对象一样。
所有Windows运行时的集合接口都被映射到.NET框架的等价物上。在.NET 4.5中添加了IReadOnlyList和IReadOnlyDictionary,用来负责处理WinRT中的只读集合。
WinRT和.NET API在两个地方无法匹配。WinRT的stream无法直接与.NET的IO.Stream类兼容,但是可以调用名为AsStream的扩展方法来进行转换。WinRT还拥有名为IBuffer的接口,这在.NET中也无法简单地实现。在此也有一个扩展方法来进行IBuffer和比特数组之间的转换。
我们可以使用C#和VB来创建新的Windows运行时程序库,过程非常简单。为了把类暴露为Windows运行时组件,我们只需要把项目类型设置为“WINMD文件”,并确保遵循以下规则:
编译这些库之后,我们就可以在C++和JavaScript中调用它们,就像从.NET中调用一样简单。
警告
由于WinRT是基于COM构建的,所以你同样会有引用计数和mark-and-sweep垃圾回收器之间无法融合的问题。对于实现了析构函数释放非内存资源的对象来说,这是最常见的问题。我们可以考虑调用“Marshal.FinalReleaseComObject”来解决问题,但是那本身也存在问题。
COM风格的marshaling需要在.NET和本地组件之间调用。尽管这通常是无关紧要的,但是如果API非常不正式,那么就会出现问题。
内建的WinRT库(而不是XAML)是在Metro运行时环境之外提供的。然而,第三方的WinRT库并非如此。这是WinRT中激活框架(activation framework)的限制,而不是.NET的问题。
查看英文原文:C# and Visual Basic on the WinRT API
译者 侯伯薇 是InfoQ中文站架构社区编辑,有多年对日和国内项目开发经验,目前关注企业中技术与实际业务之间的融合和协作。
MS越来越乱了,无限的增加这些关键字
随需应变,与时俱进嘛!
关键字多说明可以处理的情况多,关键是要搞清楚每个关键字的应用环境(Context),
做到头脑清晰,当用则用!
夜空里的繁星乱不乱,天文学家却可以把一个个星座悉数讲给你听!
抱怨只会徒增烦恼,不如静下心来读读MSDN,阿弥陀佛 :)
怎么算是无谓增加?这个async太关键了。
哈,老赵谈定,人家说的是【无限】,不是【无谓】,
只是抱怨关键字太多,是你误会了。
确实,async是提高程序性能的关键:应用程序的响应速度对于微软而言是非常重要的。所有耗时超过50毫秒的操作系统级别的API调用将被公开为异步操作,正是为了向开发者传递这种价值观。
——摘录自WinRT:Win32的面向对象替代品
不如说是增加了很多语法糖.
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
论道WP第三篇专栏,以应用程序栏的使用为中心,包括了软键盘带来的问题、应用程序栏介绍、如何绑定应用程序栏的属性等几个方面的具体话题,为开发者顺利使用应用程序栏开发提供了具体指导。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
5 条回复
关注此讨论 回复