博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于Metro style下可用的.net类库的一些概要说明

Posted on 2012-05-30 12:32  淡如水wp  阅读(1047)  评论(0编辑  收藏  举报

翻译自:http://blogs.msdn.com/b/dotnet/archive/2012/04/17/net-for-metro-style-apps.aspx

.net现在是微软几个平台的核心了,每个平台都有基于.net特定的子集,关于API覆盖面的制作已经融入了很多想法,很多人问到在metro下哪些.net类可用,下面CLR核心框架组的PM将会回答。

 

开发者预览版和客户预览版已经发布,很多开发人员开发win8的时候问到metro下可用的.NET类,这关系代码到移植到win8 metro的时候要重写多少代码,我们也扪心自问过这个问题。
后面会列出一个可用列表,这里主要讨论一些我们决定其可用的想法和原则,和一些.net类和metro类的关系。

 

设计目标:
  开始做这项工作之前,我们意识到让开发者更容易和技术实现上的两难,metro应用允许开发者通过所有win8设备提供一些强制的终端用户体验,为了达到目的,windows做了很多改变,有一些影响到了我们的设计。最大的变化是 windows runtime是一套新的接口,能被C#,C++,VB,调用,我们组的任务就是让.net开发人员自然而然地同时调用.net类和windows runtime类。windows runtime组从相反的方向做着相同的工作。以下几点是我们的目标:
  避免.net类和win runtime类中有重复的功能
  明确.net类的重点
  让.net开发人员感觉到很方便。
  方便移植C#、VB代码

 

.NET Framework profiles in context

Figure 1: .NET Framework profiles in context

 

设计配置

为了给metro设计一个新的类库,从现有的子集中削减并扩展一些类,上图是一个图表用来说明关系的。图中小点的圈是.net的配置,交叉点是共用的,可以认为metro应用也是一个.net类库的子集,并且和其他子集共享一些共通类。基于这个图,我们从完整的.net类库中为windows phone选择一些类,因为wp应用和metro应用很像。

 

选择类的过程
  为了达到之前讨论的目的,我们建立了一个严格的挑选流程,我们要确认每一个API符合以下要求:
  1,这个API在Metro中可用吗?答案并非显而易见,比如asp.net的api明显与Metro开发关系不大,但是控制台api可能有用(例如测试的时候)。当有疑虑的时候,我们先自问我们是否需要给出这些api,然后移除一些不会用到的api,例如在metro中用路径操作文件是不支持的,因为文件存取是另一个代理线程调用的。
  2,这个API过时了吗?包括不好用的,或者不符合指导规范的。
  3,这个API和.net类的重复了么?重复的话用的时候就得选择,选择一般都是随便做的,这样就不能很好的分享代码,因为你可能选择了不同的函数。

 

Feature areas supported by .NET for Metro style apps

 

下图是量化的图表

 

.NET for Metro style apps

Windows Phone 7.1

.NET Framework 4.5

Namespace

72

95

447

Type

1,246

1,788

14,936

Member

15,674

20,291

217,166

 

Table: API surface counts, by .NET Profile

关于考虑的流程,可以看这个文章 A .NET developer's view of Windows 8 app development

关于移植.net代码 Bringing existing managed code into Metro style apps,

.NET for Metro style apps overview

converting your existing .NET Framework code.