我无法确定我是否希望我的项目基于网络(如在网络应用中),基于桌面(桌面应用程序)或可以同步或连接到桌面应用程序的桌面应用程序云。
我不知道是否有其他人对此应用程序感兴趣,而且它只适用于我,所以我倾向于桌面应用程序。如果,由于某种原因,我完成它,释放它,人们真的喜欢它,我可能会看到它也同步到云(想想v2)。但是我不确定做出如此彻底的改变是多么困难,而且我不想最终得到一些无用的东西,因为我在开始这个项目之前做出了一个糟糕的选择。
对此有什么指导吗?任何经验法则或最佳做法?任何个人经历?
如果语言很重要,我只是因为我最熟悉它而考虑Java,并且很容易让我与我的朋友分享它进行测试,如果我遇到困难并需要其他人的帮助人
答案 0 :(得分:17)
我通常会问几个问题:
编辑:
答案 1 :(得分:4)
如果您作为网络应用发布,则无需将其移植。无论你去哪里,你都可以访问它。
答案 2 :(得分:4)
我主要基于GUI做出选择。如果GUI将变得复杂,并且(需要快速或将需要花费大量时间来处理它的方面),那么我将使用桌面。如果它很简单,并且将始终使用小数据集,那么我将使用Web。
我已经开发过一款作为网络应用制作的应用,显然它更适合桌面应用。这是一次巨大的失败。我不知道客户如何忍受它,因为我当然不会使用它。桌面版本(重新编写需要6个月的时间)将网络版本从水中吹走。
话虽这么说,我看到了一些不错的网络应用程序。
答案 3 :(得分:3)
我可以建议的是几个相关的因素。您如何确定因子的答案和权重取决于您和其他情况:
请注意,您的选择还可以包括Java WebStart应用程序,它可以减轻典型桌面应用程序的一些缺点。
答案 4 :(得分:3)
我会说大多数应用程序应该基于桌面。优点是更快,更流畅的应用程序。
如果Web应用程序有明显的好处,您应该只创建一个Web应用程序,例如从任何地方访问。 (如果你的应用需要这个。)
Web应用程序的缺点也可能是它依赖于开发人员,如果您退出支持它,所有用户(如果您有任何用户)将无法再使用它。此外,用户可能不愿意在线存储数据。
最终,这取决于您要编写的应用程序类型。即使您将其创建为桌面应用程序,您也可以稍后为Web重写它。无论如何,2.0版本的软件通常需要几乎完全重写。
答案 5 :(得分:1)
有时网络可以很好,有时候不是。我们正处于网络新浪潮中,但不要忘记一些事情:
但是web在部署和可移植性方面有很多优势。如果你的系统结构合理,你可以在以后使用MVC构建的东西制作两个或更改为一个。只需改变视觉效果就可以了。
答案 6 :(得分:1)
如果这是一个使用我的多个用户的应用程序,使用共享数据,你可能还是想要一台服务器。在那种情况下,我倾向于Web应用程序。 否则,您就会在桌面和服务器之间同步数据的复杂性。
答案 7 :(得分:1)
到目前为止,列表中没有两个重要问题:
回答第一个问题非常容易,但考虑到第二个问题可以为您节省一些麻烦。
答案 8 :(得分:0)
我的默认选择是使用Web解决方案,因为它更易于部署,而且通常是多平台的。我使用winforms应用程序的唯一时间是需要它的紧迫安全性,性能或功能问题。
答案 9 :(得分:-2)
以前你已经编写了一个桌面应用程序,因为工具更好,你可以更快地编写它。人们过去想要网络应用程序,但总是最终使用桌面。
如今情况有所不同,您可以快速轻松地编写网络服务,因此没有理由不去基于网络。
基于Web的优势在于灵活性,可扩展性和易部署性。它不像桌面应用程序那样具有响应能力,但如果你考虑一下你的设计,这不是一个问题。