我正在研究面向WP7和WP8的新业务应用程序的体系结构。对于WP7,我们将使用silverlight应用程序模型,并希望在迁移到WP8时准备重用代码(我们希望在WP8上使用其他特性)。
由于WP8也将支持xaml和C#,您是否有任何特殊的建议来组织应用程序结构,选择合适的方法。
概述以下建议:
发布于 2012-06-24 19:24:43
如何组织应用程序结构,选择合适的方法。
嗯,当使用Windows时,MVVM总是很受欢迎。任何良好的干净结构,遵循实心原则都会做得很好。
Windows 8将支持新的C# 5.0语言特性,因此如果您有大量异步代码,请考虑使用Windows 7的Windows任务并行库,因为返回任务的所有呼叫都将支持C# 5.0中的新await操作符。
Windows 8中最重要的更改是新的、性能更好的控件。如果您想用相同的代码库支持这两个平台,您希望尽可能地将您的UI代码与应用程序的其他部分分开。您很可能也希望分离UI逻辑,例如ViewModels。
考虑为您的业务逻辑至少拥有一个单独的程序集,用于处理数据查询操作和/或计算。
至于新特性,如C++开发/ WinRT互操作,这将通过单独的程序集来完成,您只能从Windows 8程序集中引用这些程序集;这意味着它不应该为当前的应用程序结构提供任何关注。
发布于 2013-01-02 23:06:12
目前的答案似乎没有详细说明实际的项目结构,所以我想我可以在这里分享一下我的答案:
下面你可以看到的是我的应用程序的结构,它有4个版本:(WP7,WP8)X(Pro,广告资助)
代码和输出文件夹(bin7,bin8,.)放在第一个子目录中。项目文件被放置在适当命名的子目录中。代码文件和资产被链接到单个项目中。“属性”文件夹中的文件对每个版本都是特殊的(其他GUID、名称、活瓷砖图标等)。这样,我必须点击一次F6和我的当前版本的所有XAP。(只需用一个小脚本来收集)
(FYI "Pro“版本是用#ifdef编译器标志实现的。)

发布于 2012-06-24 15:31:37
Silverlight是一个基于C#的框架,您在文章中将语言和框架混合在一起,唯一要考虑的是,WP7只支持C# 3.0特性、WP8可能是一个更高级的工作台,它包含DirectX和C# 4或更高版本,我们还不知道,但是WP8也提供了对C和C++的全面支持。
Silverlight不会从很长一段时间内收到重要的更新或新闻。如果你真的想针对这个2操作系统,我建议你使用共享的C# 3.0代码库,尽量避免使用Silverlight,而且考虑到WP7设备在更新和核心功能方面实际上已经死了,这可能是一个更好的选择;它们是基于Silverlight的设备,用于游戏XNA,但一些与硬件相关的功能非常低端,而且微软在很长一段时间内都不谈论Silverlight,而C/C++支持方面的这一新更新可能会改变开发者的游戏。
另外还有C# 5.0,WP7已经老了,可能几周后就老了,我也不知道你的项目的细节,但你可能需要计划几个月/几个星期来做支持和各种修复,我认为你可能应该有一个非常好的理由来启动一个针对WP7平台的C# 3.0项目,我不是把WP7作为操作系统来讨论,我正在讨论的是做您正在计划的事情的便利性,考虑到近期的未来,以及微软对一些项目缺乏支持和消息。
与微软的团队保持联系,他们谈论这方面的事情,https://twitter.com/#!/wpdev,看看你是否能得到一个更详细的图片。
最后,请记住,可能唯一值得考虑的共同之处是对C# 3.0语言的支持,框架可能会有所不同,或者更方便地采用新的框架,还有C/C++,您可以获得无限数量的新库。
https://stackoverflow.com/questions/11178496
复制相似问题