【问题标题】:Silverlight, WPF or Windows Forms?Silverlight、WPF 还是 Windows 窗体?
【发布时间】:2010-10-04 13:40:24
【问题描述】:
我需要为 Windows 创建一个桌面应用程序,但我对选择哪种技术存在疑问。事实上,应用程序必须与本地资源进行交互:
- 与 SQL 通信(需要支持 SQLite 和 MSSQL - 本地和远程,并且喜欢使用 NHibernate;甚至可能使用 Castle 的 ActiveRecord)
- 与通过蓝牙、以太网、USB 和串行 (COM) 端口连接的设备进行交互。我需要从通过不同协议连接的传感器读取字节流。
我最好选择 Silverlight 4,并允许应用程序在具有完全信任的桌面上运行。但我预见到关于这两个要求的问题。 SL4 有什么解决方案,如果没有,我应该选择什么替代方案?我不限于 WPF 或 WinForms,但由于它应该在 .NET 上运行,我或多或少地受限于这 3 个选项(或者我是吗?)
【问题讨论】:
标签:
wpf
winforms
silverlight
silverlight-4.0
【解决方案1】:
使用 Silverlight 应用程序,您将无法在不创建服务的情况下连接到 SQL 源 + 您将无法轻松(或根本没有?)访问本地资源,例如 COM 端口。如果您的应用是基于 Intranet 的,我会选择 WPF 并单击一次部署。
【解决方案2】:
在您了解了如何使用 WPF/Sliverlight 控件、模板和数据绑定之后,您将永远不想再接触 WinForms - WPF/SL 不仅为您提供了更丰富的 UI 可能性,它们只是让您更容易,更不容易出错创建应用程序(尤其是数据绑定)。
看起来您需要相对较低级别的硬件访问权限,即使使用 SL 可以,但使用完整的 .net 会更容易
所以,我会选择 WPF
请记住 WPF/SL 有一个学习曲线,如果您从未建立 WPF 项目预算,请花一些时间来学习该平台。
【解决方案3】:
WPF 将是您的首选武器。
就 API 而言,WPF 基本上是 Silverlight 的超集。此外,您可以完全控制并完全访问本地资源。
如果您使用 .NET 4.0,您可能会喜欢 Entity Framework,作为 NHibernate 的替代品。并不是说它在任何方面都超过了 NHibernate,而是它完美地集成并随包一起提供。
但是,正如 Nir 所说,WPF 有一个学习曲线。