【问题标题】:Help Desk ticket system: Windows app vs web app [closed]帮助台票证系统:Windows 应用程序与 Web 应用程序 [关闭]
【发布时间】:2011-03-16 16:25:33
【问题描述】:

我想在工作中创建一个小型帮助台工单控制系统,允许用户输入帮助请求工单;然后这些工单将分配给技术人员进行处理,技术人员在工作完成后将其标记为“已完成”。然后,请求用户将能够确认并“关闭”工单,以便帮助台主管可以根据工单详细信息跟踪响应时间和其他统计信息。没有什么太复杂的,使用 .NET 和 SQL Server。

我不确定我应该将其开发为 Web 应用程序还是 Windows 应用程序。该应用程序将在工厂车间使用,因此它必须在 LAN 中易于使用。但我们目前通过 Citrix 托管 Windows 应用程序列表,因此部署在这里并不是真正的问题。我真的没有从头开始创建 winapp 的经验(尽管我已经修改了很多),但感觉 Web 应用程序看起来并不“可靠”。

读者可以提供哪些建议来指导我为此目的决定更好的架构?

编辑 谢谢大家的想法!鉴于这是一个非常简单的应用程序,我可以选择任何一种方式。我决定使用 Web 应用程序,因为我们本地的 Citrix 设置仍有一些问题需要修复。

【问题讨论】:

  • 我会说这取决于你期望它工作或是什么样的......但从你所说的来看,它可能是网络或应用程序......甚至两者兼而有之......例如客户端的网络应用程序和员工的应用程序...我所说的取决于您计划在其上拥有的内容,以使其对桌面应用程序有价值。但总的来说,我想你可以通过这两种方式做几乎任何事情......我不认为它会变得不那么稳固或不同......
  • 如果可以,也可以考虑购买一个应用程序来执行此操作。原因是一个简单的帮助台可以在不到一周的时间内完成,它是未来可能出现的所有其他东西,比如报告和工作流程,它们可能会让你在工作中陷入困境。那里有成千上万的免费和商业选择,只要问姐妹网站上的人:serverfault.com/questions/107675/help-desk-software-suggestions
  • @tovare - 我也首先想到了这一点。实际上,这是我被分配到的一个项目,而不是什么好工具。关键是加快工厂车间制造机器的维护请求,他们想要一些非常非常简单的东西来发送通知,然后收集统计数据。我打赌拥有一个可靠的数据库模型,这样我就可以在此基础上构建和升级应用程序,而无需重新映射数据。

标签: c# asp.net winforms architecture


【解决方案1】:

如果您开发了一个 Web 应用程序,您可以将其弹出到您的本地 Intranet 上,您的用户可以使用他们在 Citrix 中的浏览器,或者通过他们终端上的浏览器。

但是,如果您的基础架构已经到位,那么 Windows 应用程序可能会更容易开发和部署。 Windows 应用程序的唯一限制是,如果您要离开 Citrix 环境,或者要扩展到想要在车间外部使用该系统,那么部署和维护您的安装会更加困难。

您可以将 Web 部署与 Windows 应用程序一起使用,这非常好,因为它会在您发布新版本时自行更新,但是这对用户来说有点麻烦,您不能保证用户会允许更新发生。因此,如果您有重要更新,用户实际上可以选择忽略它。

这就是 Web 应用程序获得奖励积分的地方。一个安装和一个访问点。如果您更新它,那么所有用户都会立即使用最新版本。

就我个人而言,我会使用 Web 应用程序,以备将来验证和易于访问。它比 Windows 应用程序稍微多一些工作,但回报通常超过 Web 应用程序所需的额外时间。

【讨论】:

  • 为什么 ClickOnce 发布没有“ForceUpdateOnUser”选项? :)
  • @Will - 我希望它不会,因为我编写了一个模块来确保应用程序始终运行最新版本。我只有一个 Windows 应用程序,这有点像维护噩梦。一些用户让他们的机器和应用程序一直处于打开状态。如果我有一个从数据库中擦除所有数据的错误,我必须打电话给公司,让他们关闭应用程序的所有实例,然后进行更新,否则他们可能会继续破坏这个地方。跨度>
  • ^^ 我从来没有遇到过这么严重的错误,这只是一个例子! :P
  • 我也不是,伙计——顺便问一下,你能回滚你已经提交的事务吗?不?哦,天哪... :) 您是否实现了“此应用程序意外崩溃,单击确定,它将重新启动,一切都会变得更好!”新版本发布时启动的功能? :)
【解决方案2】:

就个人而言,在这种情况下,我会选择 Windows 应用程序——因为听起来你没有任何令人信服的理由来调用 web 的复杂性(也许只有我认为 web => 额外的复杂性)。我相信你可以创建一个整洁的小 Windows 应用程序。创建同一事物的笨重网络版本所需时间的一半!

【讨论】:

    【解决方案3】:

    作为旁注:

    我真的很喜欢 Eclipse Mylyn 与 XML-RPC 集成的方式。查看此架构以获取灵感:

    http://www.eclipse.org/mylyn/

    如果您采用类似的策略,您可能会从一个简单的前端开始(可能是带有本机 GUI 的 C#,并在稍后与您的 Intranet 进行基于 Web 的集成,以您最快的方式进行)做)。

    在本质上,您可以采用 3 层方法:

    • 数据库。
    • 应用层实现 XML 通信协议(XML-RPC 非常简单)。
    • 一个前端,其中信息字段和工作流程步骤是“内省”的,而不是在客户端中硬编码。

    不过,希望对你有帮助。

    【讨论】:

      【解决方案4】:

      在编写此系统之前,我强烈建议您搜索 www.codeplex.com 并确保改编其他作品不是更好的选择。您可能会发现一些已经编写好的并满足您的需求,同时允许您挖掘、学习并准备好在他们想要一些尚未出现的新功能时进行修改。 (我相信如果用户相信开发者,所有项目都会成长。)

      如果您要编写自己的代码并且可以在有时间的情况下完成,我强烈建议您使用基于 Web 的 MVC,或者如果您想要桌面客户端则使用 WPF(使用 MVVM)。使用 MVVM 的 MVC 或 WPF 都有明确的学习曲线。但我相信回报会到来。我发现当业务逻辑和视觉行为之间有清晰的界限时,更改会更容易。

      【讨论】:

        【解决方案5】:

        编写一个 winform 应用程序,并通过 ClickOnce 分发它。这是最好的方法,IMO。

        【讨论】:

          【解决方案6】:

          不要急于做出这个决定。最后,Web vs Win 问题是关于用户可访问性的。满足您业务需求的大部分处理逻辑独立于接口。花您的前期时间构建正确的数据模型并确定您需要的必要处理/服务。一个设计良好的数据库和服务层将适用于 Web 和 Win 应用程序。随着您的“产品”不可避免地增长,这也将为您提供最佳的灵活性。如果您需要为您的用户提供更高级的用户处理能力,您可能非常需要为需要报告功能的经理提供一个 Web 界面和一个 WinForms 应用程序。这就是您最初的设计工作将获得回报的时候。

          【讨论】:

          • 谢谢,我正在考虑同一行。网络报告是不可避免的,所以这部分几乎是决定性的。想要这个的人只是想拥有一些非常简单的东西来跟踪服务请求,所以我最终可能会编写一个 Windows 应用程序来避免控制事件和演示格式的怪癖。
          猜你喜欢
          • 2013-05-01
          • 1970-01-01
          • 2016-02-17
          • 1970-01-01
          • 2013-08-01
          • 1970-01-01
          • 2012-01-04
          • 1970-01-01
          • 2010-11-24
          相关资源
          最近更新 更多