如何选择适用于绿地Windows UWP应用程序的技术?

时间:2015-07-10 21:17:32

标签: windows-store-apps winrt-xaml win-universal-app

这个问题非常普遍。这是上下文;开发人员可以使用广泛的技术创建面向通用Windows平台(在Windows 10上)的Windows应用程序:

  1. XAML / .Net
  2. XAML / C ++
  3. HTML / JavaScript
  4. DirectX / .Net
  5. DirectX / C ++
  6. 这些奇特的方法:

    1. Cordova / PhoneGap
    2. 托管网络应用
    3. 编译的Objective-C
    4. 已编译的Android Java(仅限电话)
    5. Unity / MonoGame
    6. 开发人员如何选择?

2 个答案:

答案 0 :(得分:6)

当然,答案是"它取决于"。要考虑的第一个变量是您正在考虑的应用程序类型。如果你想写一个游戏,那么选择并不是很明显。这是因为有些逻辑应用程序不依赖精心设计的用户界面和沉浸式游戏。

逻辑游戏

因为XAML和HTML是构建简单UI的更简单的平台,所以您最好选择以下内容:

  1. XAML / .Net
  2. XAML / C ++
  3. HTML / JavaScript
  4. 在这三者之间进行选择是技术偏好的问题。但值得注意的是,我们现在从XAML开始,并在必要时转到HTML。我的意思是,新的Windows应用程序应该将XAML视为他们的起始技术,如果有必要,请选择其他应用程序。

    您可能选择HTML的一个原因是,您已经创建了几个要重复使用的HTML资产。但是,当然,您还可以将XAML WebView控件嵌入到XAML应用程序中,并使用这些HTML资源而无需完整的Web应用程序。为此,XAML仍然是最可行的选择。

    沉浸式游戏

    由于HTML和DirectX对第三方公司和社区的游戏进行了大量投资,因此最合理的选择是:

    1. DirectX / .Net
    2. DirectX / C ++
    3. Cordova / PhoneGap
    4. 托管网络应用
    5. Unity / MonoGame
    6. 值得提醒你的是,这篇文章是关于" greenfield"应用程序,但即使如此,上述技术也是Windows应用商店中99%游戏的首选技术。

        

      下一类应用通常称为生产力应用。它们基本上有两个子类别:消费者和商业。消费者应用程序是公开的,而商业应用程序通常是内部的业务应用程序。

      消费者应用

      除了向用户提供完全保真的本机体验之外,公共应用几乎没有任何技术要求。对于这些应用,您可以选择以下内容:

      1. XAML / .Net
      2. XAML / C ++
      3. HTML / JavaScript
      4. Cordova / PhoneGap
      5. 托管网络应用
      6. 包含Cordova的原因是因为它基本上是HTML选项,具有跨平台的额外好处。如果要求跨平台,那么它是一个很好的选择。我应该指出,Xamarin也可以使.Net应用程序成为跨平台的。

        有时跨平台不在列表的顶部。有时,它确实是一个绿色的Windows应用程序。 当您处于典型的起点时,您需要从XAML / .Net开始。为什么?有几个原因。

        首先,XAML正在成为Windows的高级UI平台。 Windows 10操作系统的许多新方面都是用XAML编写的(如Start,File Explorer等)。此外,Office现在也是一个XAML应用程序。

        第二,大​​量样本和社区支持都在XAML / .Net中。这意味着,无论您的团队的主要技术专长如何,由于XAML的受欢迎程度,持续的支持应该逐渐增加。

        第三次,。Net(如C#)是您可以选择的最合理,最强大和最简单的编程语言之一。它可以轻松支持从小到大的项目。此外,使用.Net Native,.Net语言可编译为金属,并在Windows 10上以接近C ++级别执行。

        商业/业务线

        商业应用是一项大问题,需要一些严肃的投资。为什么?因为它们旨在经营企业。它们需要经过测试,可扩展和高性能。他们需要整合和敏捷。所有这些有时都是消费者应用程序的一部分,但由于企业可以根据其基础设施生存或死亡,因此LOB应用程序是一项更为严肃的投资。

          

        对于商业应用,请选择XAML / C#。

        这就是原因。

        由于您首先编写的是Windows 10应用程序,因此我可以假设您的业务基于Microsoft或Microsoft友好。这意味着您的开发团队可能已经掌握了提供优秀XAML / .Net应用程序所需的基本技能。

        此外,由于我们的组件供应商(如Infragistics)发布了第三方控件,您将看到用XAML编写的面向企业的控件?为什么?因为许多这些控件已经为WPF发布,并且随着需求的增加将被移植到WinRT。

        此外,Visual Studio以全面且经过验证的方式管理,构建,测试和分析.Net项目。您正在使用Microsoft UI平台编写,并使用Microsoft开发平台自动执行此操作。大多数公司喜欢尽可能少的活动部件,这是纯粹的。

        此外,许多公司已经对其LOB系统进行了大量投资,并且在Windows应用程序中进行了大量有价值的投资。 Windows应用程序是否取代了他们的LOB?可能不是。它补充或补充现有系统吗?很可能,是的。

        <强>结论

        那么什么时候应该使用C ++?让我和你分享一个秘密。几乎所有与Windows 10一起发布的第一方Microsoft MSN应用程序都是用XAML / C ++编写的。这是因为跨设备性能对我们的应用至关重要。这是否意味着您的应用程序应该用C ++编写?在大多数情况下,没有。

        如果我的团队是一个网络团队并且我们没有XAML或.Net经验怎么办?首先,这不太可能。但是,让我们继续吧。我们是开发人员,为之奋斗。技术并不关心我们。而且,虽然语言各不相同,但它们在概念上是相同的。当您在性能和影响方面进一步了解日历时,学习像XAML和.Net这样的高端技术是值得的。

        现实是,有些人可能不同意。而且其他人说的话在某些方面可能是正确的。一般来说,这里的基本答案是,我们如何为面向通用Windows平台的新Windows 10应用程序开始向绿地开发人员提供指导。这不是一条诫命,只是指导。

          

        如果您希望了解有关使用XAML和C#进行Windows 10应用程序开发的更多信息,请查看有关Microsoft Virtual Academy的免费三天课程。 https://channel9.msdn.com/Series/A-Developers-Guide-to-Windows-10

        最后,这里有一些您不应忘记的功能:

        1. 跨屏幕的尺寸适应性
        2. 跨设备的功能适应性
        3. 使用Application Insights进行分析
        4. 使用.Net Logging API记录
        5. 测试&amp;自动构建在TFS / VSO上
        6. 本地化为其他语言
        7. 支持自动化/辅助功能
        8. 使用商店进行部署,升级和许可
        9. 祝你好运!

答案 1 :(得分:0)

是的,这取决于,但作为一般答案我会说 C#,Visual studio,Xamarin(传统非形式)与PCL代码共享,MVVMCross和特定平台/ UI&#34; UWP / XAML项目。