使用什么UI技术?

vir*_*mic 7 .net user-interface

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

首先我的要求.

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

现在我的问题.

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

Jus*_*tin 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的应用程序.

决定基于Web的界面和基于Windows的界面.

在此阶段,您应该在基于Web的界面和基于Windows的界面之间进行选择.

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

看看每种技术的优点

此时你应该参加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窗体应用程序更容易抛光.


Mur*_*rph 2

WPF 现在就在这里,它现在可以工作,无论“死”与否,它都不会很快消失(Visual Studio 是用 WPF 构建的,Expression 也是如此,除非微软以某种方式失去 ScottGu,我的观点是你可以指望对于开发人员来说,它已经得到支持一段时间了)。

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

就技能而言……WPF 可能会消亡,也可能不会消亡,但 silverlight 确实有一些优势,而且技能基本上可以转移(XAML 非常相似)。