翻译自: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代码

 

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

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类的重复了么?重复的话用的时候就得选择,选择一般都是随便做的,这样就不能很好的分享代码,因为你可能选择了不同的函数。

 

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

 

下图是量化的图表

 

.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.

 

 

  

相关文章:

  • 2022-12-23
  • 2021-11-19
  • 2022-01-19
  • 2022-12-23
  • 2021-07-26
  • 2022-12-23
  • 2022-12-23
  • 2021-06-13
猜你喜欢
  • 2021-06-02
  • 2021-12-15
  • 2022-12-23
  • 2021-06-01
  • 2021-12-28
  • 2022-01-03
  • 2022-12-23
相关资源
相似解决方案