【问题标题】:WPF, Silverlight or WinForms? [closed]WPF、Silverlight 还是 WinForms? [关闭]
【发布时间】:2010-07-30 03:36:41
【问题描述】:

我工作的公司有一个现有的产品,它是一个 Delphi 32 位 Windows 应用程序。

该应用程序有一个类似 UI 的电子表格,需要非常快速的数据网格/表格视图和高级图表(加上常用的按钮/下拉/菜单/工具栏控件)。

我们还有一个 .net 3.5 ASP.NET 应用程序,它反映了 windows 应用程序中的大部分业务逻辑。

我们想在.net中重新编写delphi应用程序,这样我们就可以拥有一套业务逻辑代码。

如果可能,我们希望有一个应用程序(这就是我们关注 Silverlight 的原因)。

从 WPF 到 Silverlight 的过程中我们会失去什么?我们应该不使用,而是使用 WinForms 吗?还是我们应该进一步增强 ASP.NET/AJAX 应用程序?

【问题讨论】:

  • 变量太多,无法明确回答。影响决定的因素是:它是否需要通过 Internet 获得可用性(这可能会排除 WPF)?它是否需要丰富的 UI(这可能会排除 ASP.NET?)您是否有时间和资源来添加整个 UI 层(这可能会排除 WPF 和 Silverlight)? ASP.NET 的分层和分层是否足以将其业务逻辑用于 WPF/Silverlight?
  • Internet :不。它确实需要通过 WCF 连接到服务器。 UI:是的,非常丰富 ASP.NET:是的,业务逻辑在它自己的程序集中,带有一个干净的 API。

标签: asp.net wpf winforms silverlight


【解决方案1】:

WPF 目前更加灵活,但 WPF 和 Silverlight 正在慢慢合并。如果您希望能够在浏览器中访问应用程序,请使用 Silverlight,否则使用 WPF。

图表可能有点问题,具体取决于它的复杂程度。到目前为止,还没有很多可用于 WPF 或 silverlight 的图表包。 ChartFX 不错,但不支持 MACD 等高级财务,winforms 版本中有一个财务包。

另一个考虑因素是此应用程序是供内部使用还是外部使用?如果它是外部的,我会说远离silverlight,因为采用还没有完全实现。如果它是内部的并且您可以控制标准,那么肯定会使用 silverlight 与 asp.net MVC。

【讨论】:

    【解决方案2】:

    如果您没有绑定到现有的 Winform 应用程序,并且您计划进行大量设计工作,那么 WPF 或 Silverlight 应该在您的优先级列表中更高。今天 WinForms 的主要好处是它们更加成熟并且拥有更多的 3rd 方组件,但是 XAML 变得越来越流行并在应用程序 GUI 设计方面打开了新的大门。

    Silverlight 和 WPF 之间的选择主要取决于您的分发方法和应用程序要求。 Silverlight 应用程序通常通过网页访问,虽然有一些离线访问它们的方法,但它们确实在轻量级情况下效果最佳。 WPF 应用程序在“完全信任”模式下运行,并且具有许多即使在 Silverlight 脱机应用程序中也不可用的功能。如果您谈论的是简单的数据输入或业务线应用程序,Silverlight 应该可以满足您的需求,但如果您需要访问外部资源(硬盘驱动器、本地数据库、USB 设备等),那么您可能会被 WPF 应用程序卡住.我相信 WPF 应用程序可以使用 Click-Once 部署,这可以让您在保留对底层硬件的完全访问权限的同时享受 Web 部署应用程序的好处。

    【讨论】:

      【解决方案3】:

      WPF vs Silverlight

      我会选择 WPF,即使您在 WinForms 中有一些花哨的控件等,您也可以始终将其托管在 WPF 中。

      需要非常快速的数据网格/表格的 UI

      WPF 使用 DirectX 并且 Redering 更快。此外,您还有另一种方法 - XBAP。

      另一方面,ASP.NET/AJAX 更加多平台。

      WPF = 快速渲染,ASP.NET/AJAX = 多平台。

      Silverlight 还没有那么成熟。

      【讨论】:

        【解决方案4】:

        也请仔细阅读此参考

        Choosing between WPF and Silverlight

        【讨论】:

          【解决方案5】:

          Silverlight 在很大程度上是 WPF 的一个子集(这过于简单化了,但大体上仍然存在)。坦率地说,在 WPF 上使用它并不会损失很多——事实上,两者之间的 XAML 差异足以让制作一个 Silverlight 解决方案变得更容易。

          无论如何,我会说两者都比 WinForms 更好,后者完全抛弃了 Web 界面。此外,Silverlight/WPF 具有通常更好的渲染引擎,并允许更轻松地分离显示和业务逻辑。

          【讨论】:

            猜你喜欢
            • 2011-03-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-11-20
            • 2011-06-27
            • 2011-01-28
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多