我正在为Windows Phone启动一个项目,我之前从未为Windows Phone或.Net开发过。
当我在Visual Studio Community 2013中创建一个新项目时,我可以为Windows Runtime或Silverlight创建它。
我想跟TDD一起使用某种模拟框架,但我知道WinRT有问题。
这个决定有多重要?每个人的含义是什么? 可以在WinRT中使用模拟机制吗?
由于
答案 0 :(得分:2)
简短的回答是坚持使用通用app和winrt。这是Windows开发的未来。您将获得更好的代码重用,并且框架从最初设计为完全异步。 Silverlight更多是传统的做事方式,我怀疑随着时间的推移,它的使用会越来越少。 TDD也不是问题。
这个决定有多重要? 在这个时候,除了通用应用程序之外,我不会想到任何东西,我真的不会看到它们无限期地支持Silverlight。 WinRT的一大好处是它的设计主要是异步友好。这对于移动开发来说是一个很大的优势,并且可以保持UI响应。
每个人的含义是什么? Silverlight是遗留的,并没有内置的基于异步的组件.WinRT是为异步而设计的,是一个构建在Win32之上的框架。
可以在WinRT中使用模拟机制吗? 但是,在添加测试之前,我总是专注于学习一般的开发框架。随着你在语言中变得更加舒适,看看如何使事情变得可测试。
希望有所帮助。
答案 1 :(得分:0)
我同意Spencer关于WinRT的回答是Windows开发的未来发展方向。
基本上你应该去Windows Store(基于WinRT),除非以下问题成为你的应用程序的阻碍或高度关注:
有一些功能只有Silverlight支持,如"规则的少数例外"第https://msdn.microsoft.com/en-us/library/windows/apps/hh452743.aspx节。我认为未来的WinRT SDK版本将至少解决其中一些缺失的功能,但在微软宣布之前没有什么是明确的。
关于模拟,工具集更受限制,没有非WinRT但有解决方案。 What is the mocking framework of choice in Unit Test Library for Windows Store Applications?解释了这些限制。
我个人正在使用http://www.nuget.org/packages/WP-Fx.EasyMoq/1.1.1(文档:http://wp7fx.codeplex.com/wikipage?title=WP-Fx.EasyMoq&referringTitle=Documentation),这符合我团队的需求。
https://stackoverflow.com/a/12556114/3998132通过将可测试代码重构为非特定于WinRT的解释来解释另一种方法。
总的来说,有一些模拟解决方案,但解决方案并不像非WinRT世界那样在开发方面表现得如此活跃。我希望这会在不久的将来发生变化。