我是一家制造公司的软件工程师实习生,他们希望我为公司开发一个应用程序。他们倾向于Web应用程序,但我想知道桌面应用程序是否更适合这项工作。因此,我一直在谷歌上搜索并查看stackoverflow,以了解桌面应用程序和Web应用程序之间的优缺点。以下基本上是我发现的:
快速免责声明,我有C#和WPF的背景,所以我有点偏颇,因为我开发桌面应用程序会更容易。我没有网络经验,因此在该领域我没有什么可以真正谈论的,这就是为什么我希望更多地了解这个应用程序是否更适合作为Web应用程序或桌面应用程序。我完全乐于学习Php和Web开发以扩展我的能力。我已经开始(有点)研究使用Phra7和Laravel框架开发Web应用程序。
桌面应用程序的优点:
桌面应用程序的缺点:
网络应用程序的优点
Web应用程序的缺点
如果上述任何内容已过时(我发现的大多数帖子来自2011年或之前)或错误,请告知我们。此外,如果还有其他任何需要考虑的问题。
转到应用程序说明....
公司背景:我们每天都在构建和处理数十个不同的部件。对于每种类型的零件,在处理零件的X量之后,需要采集样品进行检查。因此,例如,部分Y每120分钟检查3次样品(因为机器通常在120分钟内完成处理X量)。然后将检查结果(测量数据)存储在数据库(MySQL数据库)中。
申请表的总摘要:
我希望我能够清楚地解释所有这些。还有一些需要注意的事项,根据我的理解,用户不需要远程访问。该应用程序几乎只能在公司网站上使用。此外,该公司想要一个网络应用程序的原因是因为运营商将使用平板电脑的应用程序和他们获得的平板电脑是原始的Android。但是,他们决定转而使用Windows Surface平板电脑,因此现在可以使用WPF应用程序。
说到这一切,我真的在寻找有经验的人推荐的路线。我还在上大学,请原谅我缺乏知识/经验。在决定Web应用程序和桌面应用程序之间,我还应该考虑什么?
以下是我在思考这个主题时看到的一些页面:
有更多的stackoverflow页面,但上面列出的页面几乎包含了其他页面所说的所有内容。
编辑:到目前为止,似乎网络应用程序正在取胜(根本不是我的想法,我真的很兴奋根据我所听到的内容开发一个网络应用程序)。是否有人宁愿做桌面应用程序?如果是这样,为什么?答案 0 :(得分:2)
我固有地反对网络应用。由于浏览器,他们很难做到正确,但他们通常不安全(尽管偶然)。平台糟透了(JavaScript和来自随机人/组织的bazillion库),#34;一切都是字符串"。我可以继续。
然而,无可否认,这是接触广大公众并允许不断更新的最佳平台。
在企业环境中,优势确实会消失,但并非完全消失。例如,通常可以通过存储所有.exe和amp;来实现更新。共享目录中的DLL。正如您所说,使用Windows平台可以更快,更便宜地构建更丰富的UI。
关于您的体系结构,在类似情况下对我有用的东西是拥有Windows前端,但也有无状态Web上的业务逻辑,数据访问(连接池)和处理的内容通过Web服务从UI访问的服务器(或两个)(您选择的协议 - 由于WCF和WSDL,我更喜欢SOAP,但很多人都赢了)。
这允许集中数据访问以及放置一次性批处理作业或计算然后可以共享的位置。它还有一个优点,如果你需要做一些非常密集的事情,并不是每台客户机都必须具备这种能力。
你的情况似乎适合这种模式,但没有很多内幕知识,它主要是意见,但可能需要考虑。
答案 1 :(得分:2)
听起来像聚集或类似的公司工作进程监控给我。
如果我必须构建这个应用程序,那么首先我会搜索并做一些研究,如果你想要的功能是可能的,并且很容易使用你将使用的编程语言进行开发
例如,如果我选择使用基于web的开发,那么:
开销较大(由于需要,应用程序往往会变慢 通过互联网传输数据。)
您可以使用内部网和良好规格的服务器计算机
需要处理不同的浏览器。 Javascript很可能需要 被调整为在一个网络平台(Chrome,Firefox等)上完美 对其他人来说并不完美。 (但是,这并不是那么大 交易)。
然后设置标准浏览器以便在您的工作场所工作
查看我们设计的所有零件的原理图(我们存储所有零件 原理图作为网络驱动器上的pdf,所以这只是拉动 从驱动器请求的特定pdf并将其显示在上面 申请)。
您可以使用pdf查看器插件(如pdfjs或类似的插件
将pdf上传到服务器并在浏览器中查看查看/更新公司所有机器的状态(哪些部分 他们正在努力,他们是在线/离线等)。某个用户 (Inspector)将使用此应用程序更新机器 状态/信息。然后另一个用户(运营商)将使用 申请查看状态
机器有ip吗? 我可以使用ping功能来确定机器在线或不在线以完成任务吗? 如果没有那么检查员检查机器的时间表是什么? 当然,检查员可以登录系统,然后使用Web应用程序手动更新机器状态
监控零件检查。因此,对于每台机器和部件都是如此 经过处理后,会有一个计时器让操作员用户知道何时 某些部分需要提交检查。部分 提交后,检查员将收到检查通知 部分,并让应用程序知道他们完成了 检查时,计时器将重新启动,让操作员知道什么时候 下次他们需要提交一份。
这听起来像调度机制以确保质量,您可以使用jquery制作计时器并使用ajax向操作员发送有关需要检查的特定部分的特定数据的通知
应用程序将计算统计数据(例如,Cpk 从检验结果中获得的零件测量值) 并显示统计数据和图表/图表。
这个取决于你的统计公式,你可以使用highchart插件来存储这个
确保您选择的编程语言能够完成您想要的任务之后的第二个是设计数据库结构引用Linus Torvalds:
祝你有个美好的一天,祝你好好决定,为了避免将来的发展问题给予一些好的思考