使用什么UI技术?

时间:2010-09-14 09:27:37

标签: .net user-interface

好的..我很抱歉再次提出一个经常被问到的问题,但我很困惑!

首先是我的要求。

  1. 在Windows XP / 7上开发/部署。
  2. 易于使用且视觉上吸引力不太精通技术的用户。
  3. 定期报告非营利组织的数据。
  4. 将.NET作为首选后端,因为我已经花了一年时间学习c#和框架。
  5. 现在我的问题。

    1. 网上有太多相互矛盾的意见。有些人说WinForms已经死了,而WPF是可行的方式。
    2. 当我读到这篇文章时,我几乎已经决定了WPF:http://www.riagenic.com/archives/363。他说WPF已经死了!
    3. 我应该放弃桌面技术和网络技术的重点吗?它肯定会更容易部署,但即使完全信任,我也不会失去桌面技术所具有的操作系​​统相关优势吗?

6 个答案:

答案 0 :(得分:11)

嗯,棘手的问题 - 主要是因为有很多可用的选项:

  • Windows窗体
  • WPF
  • Silverlight的
  • HTML5 / Asp.Net

与任何告诉你“X已经死亡”的人相反,所有4种技术都活着并且很好。更多的是所有这些技术不同,没有一个简单的规定的“使用X”答案,任何人都可以给出,因为每种技术都适用于不同的情况。 选择使用哪一项完全取决于您的具体要求。

我将逐一完成您的要求:

<强> 1。在Windows XP / 7上开发/部署。

上述任何/所有内容均适用于Windows XP / 7.

<强> 2。对于不太精通技术的用户而言,易于使用且具有视觉吸引力。

完全可以使用上述任何一种方法来生成易于使用且视觉上吸引人的界面,但值得注意的是,这些技术彼此之间存在很大差异 - HTML5应用程序将具有非常不同的外观和感觉(不一定更好或更差),例如Windows Forms应用程序。

在不了解更多有关具体要求的情况下,目前很难说更多,但是你肯定不应仅仅根据可用性和外观来消除任何选择,因为其他因素(包括一般抛光)会有很多影响更大。

第3。定期报告非营利组织的数据

如果您对报告的显示方式有任何具体要求,那么您可能需要查看可用于上述每种技术的报告/图表库。

尽管在所有4个中都有各种显示报告+图表的选项,但您可能会发现某些选择很突出。

<强> 4。将.NET作为首选后端。

以上所有都是.Net技术。

接下来,让我们看一下您应该考虑的其他一些注意事项(按优先顺序排列)

您是否已熟悉其中一项或多项技术?

如果您已经有开发基于Web的应用程序的经验(例如),那么除非其他要求排除基于Web的应用程序,否则您可能希望支持基于Web的解决方案。

在基于网络和基于Windows的界面之间做出决定。

在此阶段,您应该选择基于Web和基于Windows的界面。

我总是选择支持基于Windows的应用程序(即WPF或Windows窗体),除非有令人信服的理由支持基于Web的应用程序,因为您在UI需要如何处理的方面受到的限制要少得多。 Windows应用程序。

了解每种技术的优点

此时你应该参加2场比赛 - WPF vs Windows Forms和HTML5 vs Silverlight。除非您有以前的经验,否则您需要查看每项技术的个别优点(包括部署问题 - WPF和Silverlight都需要在客户端上安装.Net 3.0或更高版本)才能做出明智的决定 - 这可能是看一些简单的原型设计是个好点。

如果选择在HTML5和Silverlight之间,那么恐怕我无法提供帮助,因为我对Silverlight的体验有限,但是如果您选择在WPF和Windows Forms之间,那么我的建议是选择Windows Forms,除非您有一个在Windows窗体中难以实现的要求,并且在WPF中很容易实现。

WPF在某些方面很棒(例如显示高度自定义的网格或华丽的动画),但是如果你不需要任何这些东西,那么Windows Forms更简单,更成熟,(IMO)更容易理解。虽然Windows窗体应用程序可能没有花哨的图形,但最终确定应用程序是否真正具有吸引力且易于使用的抛光,并且根据我的经验,Windows窗体应用程序更容易擦亮。

答案 1 :(得分:3)

我建议从WinForms开始,
感觉“更接近”开发ASP.NET,控制台应用程序等; 至少根据我的经验(在某种程度上你的情况)。

WinForms将(据我所知)“永远不会”完全被吓到。

<小时/> 加了:

为了满足您的特定要求,WinForms和WPF唯一可以大不相同的一个,
是“2.易于使用,在视觉上吸引不太精通技术的用户。”

从严格的ASP.NET到C#背景,我两个都玩到了这一点 我有一些基本的(和可编译的;-)应用程序利用其中任何一个。

我的祖母不敢触摸WPF,基本的WinForms很有吸引力 “不那么精通技术”最重要的是他们熟悉并因此“安全(可预测)使用”。

甚至还添加了一些......: 关于为浏览器中运行的任何东西放弃桌面技术,需要在两者中都有完整的体验。在易开发性方面,基本上方便各方面;除非你有一个 只能由浏览器中托管的应用程序解决的特定情况,我真的不推荐它。

我的两分钱: ASP.NET使WinForms的过渡变得容易;然后ASP.NET + WinForms + HTML / JS /等使WPF非常容易访问。我可能会在这里蝙蝠,但对我而言,存在明确的.NET知识路径......

答案 2 :(得分:2)

WPF现在在这里,它现在正常工作并且“死”或者它不会匆忙消失(Visual Studio是用WPF构建的,因为表达式,禁止微软以某种方式失去ScottGu我的意见是你可以指望它被支持 - 对开发者来说还有一段时间了。)

正确构建您的应用程序,最后“WPF”位基本上只是应用程序之上的表示层,因此您将有适应未来变化的空间。

在技能方面...... WPF可能已经或可能没有死亡,但Silverlight肯定有一些优势,而且技能基本可以转移(而且XAML非常相似)。

答案 3 :(得分:1)

问问自己是否需要Webapp中无法提供的任何内容?

从你的描述中听起来你可以不使用winforms或wpf,而只使用带有WebForms的ASP.NET。

答案 4 :(得分:1)

  

部署肯定会更容易,但即使完全信任,我也不会失去与桌面技术相关的操作系统相关优势吗?

鉴于完全信任,您甚至可以拥有.NET控件,添加到网页并在浏览器内运行(仅限IE),可以访问O / S(例如通过PInvoke)。

答案 5 :(得分:1)

Winforms比WPF更加用户友好,只是没有视觉上的吸引力,所以你需要决定什么对你更重要,而不是其他人对UI未来的看法。 基于Web的应用程序占有一席之地,而且它主要是您希望多台计算机都可以访问相同的UI和存储数据,而无需在客户端计算机上安装任何内容。对于时间管理应用程序和计划应用程序等等,这对企业内部网很有用。 如果您正在寻找将运行它的计算机个性化的东西,那么您肯定需要使用winforms或wpf的桌面应用程序。如果这将用于公司计算机,您可能更喜欢winforms只是为了最小的资源使用。