我应该在Silverlight或WPF中启动基于浏览器的新C#程序吗?

时间:2011-07-14 21:35:46

标签: wpf silverlight

我应该在Silverlight或WPF中启动基于浏览器的新C#程序吗?它将基于浏览器,但它将仅在我们的组织内使用,如果这有任何区别,我的程序将需要与Windows文件共享对话。

到目前为止,我只完成了Windows Form Apps和基本的ASP.NET应用程序。如果Silverlight被删除,我不想在不久的将来重写它。

对于Windows表单程序员来说,为了便于学习和面向未来,您会推荐什么?

由于 史蒂夫

2 个答案:

答案 0 :(得分:7)

没有未来的证明。当然不是技术。

我认为不会在不久的将来“放弃”。 WPF和Silverlight都有一个陡峭的学习曲线(XAML,MVVM设计模式,以及从Procedural模式转变为Declarative模式)。如果你学习了一个,你基本上也在学习另一个。

那说,这取决于你的需要。我的想法通常是:

  • 如果是网站,请使用ASP .NET / HTML
  • 如果是简单的Web应用程序,请使用ASP .NET / HTML
  • 如果它是不需要提升系统权限的LOB(业务线)应用程序,请使用Silverlight
  • 如果它是需要完全系统访问权限和提升权限的LOB应用程序,请使用WPF

很多Silverlight头痛(功能限制)你可以遇到WPF没有...所以除非你需要跨平台和轻量级对你来说非常重要,我通常倾向于WPF。也就是说,Silverlight的每个版本在功能上更接近WPF。

我应该添加警告 - 我讨厌基于Web的LOB应用程序。我从来没有见过一个不是hacky或者没有受到该技术产生的可用性问题的人。不,HTML5无法解决这些技术限制和问题。如果我正在开发LOB应用程序,我宁愿把时间花在使用具有竞争力的功能集的最商务友好的应用程序上,而不是专注于使它在不同的浏览器中显示,麻烦跨域安全问题,以及维护一个javascript代码库。

答案 1 :(得分:-1)

如果您在Silverlight中编写应用程序,那么它必须在浏览器中运行,除非您将其设置为Out-of-Browser应用程序。如果您在WPF中编写它,它可以像桌面应用程序一样运行,但您必须将其部署在需要运行它的每个人的计算机上。

如果您不确定Silverlight,请尝试使用Flash。