我无法决定是否要将我的项目设置为基于Web的(如在Web应用程序中),基于桌面的(桌面应用程序)或可以同步或连接到云的桌面应用程序.
我不知道是否有其他人会对这个应用程序感兴趣,而且它只适用于我,所以我倾向于桌面应用程序.如果,由于某种原因,我完成它,释放它,人们真的喜欢它,我可能会看到它也同步到云(想想v2).但是我不确定做出如此彻底的改变是多么困难,而且我不想最终得到一些没用的东西,因为我在开始这个项目之前做出了一个糟糕的选择.
对此有什么指导吗?任何经验法则或最佳做法?任何个人经历?
如果语言很重要,我只是因为我最熟悉它而考虑Java,并且很容易让我与朋友分享它以进行测试,如果我遇到困难并需要其他人的帮助.
我一般会问几个问题:
它甚至可以在网上完成吗?我不久前做的事情涉及图像编辑组件,并且必须是一个Web应用程序.这项工作涉及很多痛苦,桌面应用程序将是一个更好的方法.
我是否需要从任何地方访问它?是的,你可以将它加载到拇指驱动器上,但在这种情况下,网络更加可行.
会有多个用户吗?这可能是两种方式,但"长尾"的东西通常意味着网络.
你想用什么技术?最新最好的基于WPF的用户界面?桌面(是啊是的,银光,让我们不去那儿好吗?).大脑死了傻瓜容易管理Django或其他人?网页.
如果它是一个Web应用程序,您是否需要担心SQL注入,XSS等常见的攻击媒介?桌面应用程序也有自己的问题,但往往曝光率较低.
资源密集程度如何?10个用户会破坏Web服务器的性能吗?
在桌面上进行版本控制可能会很麻烦,而使用Web应用程序时,每个人都使用相同的版本.这可能会让你感到困惑,看看新Facebook用户的推迟.
编辑:
成本也是一个因素.具有数据库后端的Web应用程序通常表示Web服务器.如果您想坚持使用Microsoft Stack,那么您需要SQL Server的许可证才能获得高价.开源更便宜,但在所有情况下可能都不是一个选择."服务"桌面应用程序通常更便宜.