sfe*_*982 5 .net c# windows-phone-7
当Windows Phone 7唯一可用的语言是C#时,为什么Windows Phone 7不能完全支持C#规范?好吧,我可以理解缺乏"动态"支持,但为什么不支持反协方差?为什么我们不熟悉的第三方库以及我们在与Phone 7不兼容的服务器 - 桌面项目中使用?如果我们仍然在这里,有一个中间的IL代码有什么意义?
请记住,它在Compact Framework CLR上运行 - 它没有桌面CLR的所有功能.
编辑:经过一些拖网,我发现Compact Framework不支持泛型差异(或者至少在2005年没有支持,我怀疑它没有实现,因为直到很少使用最近):
不支持方差修饰符.虽然方差/协方差是整个ECMA规范中泛型的一部分,并且是针对完整的.NET CLR实现的,但它不用于基类库或C#和VB.
好的,所以它并不"完全支持"C#4(绝对最新版本),但您知道任何不支持的C#3语言功能吗?
在库方面,您正在处理一个大致基于Silverlight 3但具有一些Silverlight 4位的框架,并且已经删除了"桌面"Silverlight的各个方面.(编辑:根据评论中的链接,它应该包含Silverlight 3的所有 API.我不确定这是否准确......)换句话说,它是它自己的野兽,真的.即使IL本身可以是便携式的,但在删除各种API时很难保证兼容性.但是,在许多情况下,您可以重建库以定位WP7.我同意必须这样做很烦人,但它比没有可用的更好.
编辑:我声称它使用CF CLR的引用:
我可以使用哪些技术和工具来为Windows Phone 7系列编程?
您目前可以使用基于Compact Framework的Silverlight和XNA的托管语言C#.我可以使用Windows窗体吗?
不,Windows Phone 7系列附带的Compact Framework版本不支持Windows窗体.
(然后)
我可以在Silverlight中使用XNA库调用吗?
Silverlight和XNA在Compact Framework中共享一个公共代码库.如果调用不是基于GUI的,则在大多数情况下,它可以在Silverlight和XNA之间共享.
一个CF团队成员的博客文章:
对于从Windows桌面访问Windows Phone 7(WP7)的开发人员,让我首先澄清一下WP7上运行的运行时(CLR)与桌面上运行的运行时(CLR)不同.WP7运行时称为.NET Compact Framework(NETCF),它的工作方式与"桌面CLR"不同.
Windows Phone 7不完全支持您习惯使用的所有.NET Framework功能,因为它是基于Silverlight构建的.
Silverlight被设计为不支持全套功能,因为它意味着轻量级运行时(而不是要求每个用户下载整个.NET Framework来运行Silverlight应用程序).
归档时间: |
|
查看次数: |
835 次 |
最近记录: |