我应该使用哪种技术堆栈:WPF、Silverlight 5还是Web应用程序

我应该使用哪种技术堆栈:WPF、Silverlight 5还是Web应用程序,wpf,web-applications,silverlight-5.0,Wpf,Web Applications,Silverlight 5.0,我有一个项目即将完成,我的任务是做一些研发工作,找出哪种技术最适合我。以下是应用程序当前状态的一些背景信息: 网络应用;只有内部用户才能访问 web应用程序将打印到本地打印机(Zebra),打印作业通过回发服务器发送到打印机 新版本在功能上与旧版本类似,但引入了一些新功能: 添加一台新的台式打印机。我们将打印出一些额外的文件,除了Zebra打印机生成的标签外,我们还将生成两个新文档 应用程序必须支持托盘打印。例如,一个文档必须从纸盘1打印,另一个文档必须从纸盘2打印 有没有人建议我走哪条

我有一个项目即将完成,我的任务是做一些研发工作,找出哪种技术最适合我。以下是应用程序当前状态的一些背景信息:

  • 网络应用;只有内部用户才能访问
  • web应用程序将打印到本地打印机(Zebra),打印作业通过回发服务器发送到打印机
新版本在功能上与旧版本类似,但引入了一些新功能:

  • 添加一台新的台式打印机。我们将打印出一些额外的文件,除了Zebra打印机生成的标签外,我们还将生成两个新文档
  • 应用程序必须支持托盘打印。例如,一个文档必须从纸盘1打印,另一个文档必须从纸盘2打印
有没有人建议我走哪条路:

  • 作为web应用程序保留
  • 转换为WPF
  • 转换为Silverlight 5
目前,我倾向于WPF,因为它似乎有更好的打印支持。Silverlight似乎并不适合,因为我们可以控制平台,它需要与一些硬件(打印机)集成。将其保留为web应用程序仍在讨论中,但我不完全确定它是否最适合托盘打印要求。(这一切都需要在后台进行,我们不希望用户必须选择打印配置。请按照扫描条形码->在斑马打印机上打印标签、从纸盘1打印产品文档、从纸盘2打印装箱单的思路思考)

到目前为止,我几乎所有的经验都是在web应用程序方面的,所以我对WPF/Silverlight的所有内容都比较陌生


有谁能证实我的上述假设,或者指出我犯了一些错误的地方吗?

我建议将您的应用程序保持为web,以便将来与平板电脑和非windows设备集成会更容易


您可以创建一个容器WPF应用程序,并在WPF应用程序中承载一个web浏览器控件,这样您就可以使用
window.external
接口编写自定义JavaScript桥,并轻松访问本机组件。WPF将比silverlight更好,因为您将完全控制本机API

将打印机API公开为Web服务,然后使用您认为最容易构建UI的前端。您可能希望服务器抽象打印机接口并公开您自己的打印机API,这将为您提供最大的灵活性。这将是功能添加还是完全返工?您需要将其从web应用程序中转换出来,有什么特别的原因吗?通过减少代码重用和学习曲线,WPF或SL将是更多的工作。我看不出有任何理由不支持webforms的托盘特定打印。本地网络上的Silverlight 5可以使用P/Invoke在机器上执行任何操作。只是说说而已。