我应该使用Prism来开发简单的桌面应用程序吗?C#

5

我想转向WPF应用程序,并将我的win-form应用程序转换为WPF。

目前需要学习太多关于WPF的知识才能创建出漂亮的应用程序......

我找到了Prism: http://msdn.microsoft.com/en-us/library/gg406140.aspx

我相信这可以是一种捷径,只需添加我的业务逻辑即可获得WPF的酷炫功能。

  1. 你推荐初学者使用Prism吗?
  2. 如果我在WPF方面更有经验后,是否可以删除Prism并构建自己的UI?

    • 如果您有其他创建支持多个视图和导航的桌面应用程序的想法,请告诉我

谢谢。


也许不是Prism,但像Unity或Ninject这样的DI库会是个好主意。我认为不需要MVVM库,因为自己实现基础功能很简单。 - sourcenouveau
1
你两个问题的答案都是否定的。这个库适用于 UI 端有超过 10 个开发人员的大型应用程序。使用简单的 MVVM。至于你的应用程序 - 我会像 VS2010 中一样使用带有关闭按钮的选项卡。如果要导航到视图,请打开一个新选项卡。如果要离开视图,请关闭选项卡。每个选项卡可以拥有不同的视图,不依赖于其他选项卡。 - vortexwolf
@ vorrtex:我觉得选项卡非常方便,但是我认为对于普通用户来说它们相当复杂。我想为用户设计一个简单的界面,将导航逻辑交给我处理:用户不需要知道其他选项卡上有更多信息。 - Asaf
选项卡并不复杂。以网络浏览器为例,我敢打赌任何用户都能理解其他选项卡具有附加信息。这种界面是最现代化的,已经取代了多窗口界面和 MDI。 - vortexwolf
3个回答

17
不,Prism是一个大的层,位于WPF(或Silverlight)之上。它不会使学习WPF变得更容易,也不会消除学习WPF工作原理的必要性。Prism是一个非常强大的抽象层,可以加速创建/维护大型企业应用程序,但它的学习曲线比WPF的学习曲线还要陡峭。如果您只是构建一个简单的应用程序,请在纯WPF中构建它。您在此过程中学到的内容将有助于以后使用Prism构建各种东西。要真正有效地使用Prism,您需要熟悉许多更复杂的WPF开发方面,例如绑定、XAML和MVVM设计模式。从小项目中孤立地学习这些内容,然后您就有更好的机会在未来的大型项目中有效地使用Prism。

@Levy:我真正需要的是类似mdi表单的东西...一个主表单,根据父级导航替换页面。我读到mdi是一种不好的做法,应该使用mvvm。正如你所看到的,我对mvvm也很陌生。所以你能给我提供一个启动项目吗?它比prism简单,但有mdi的外观和感觉。 - Asaf
3
在了解基本的WPF之前学习Prism就像在你知道如何建造狗屋之前建造豪宅。 - Phil
1
@Asaf 我建议您编辑您的问题(或提出新问题),明确表示您想从Windows Forms MDI转移到WPF,并了解学习WPF的最佳方法。 - Phil

5
Robert Levy提供的答案非常完美,我想补充一点,当你从Windows Forms转到WPF时,尽量避免使用在Windows Forms中可以使用的相同模式。在开始实现之前,尝试学习如何使用WPF完成任务。
您可以在此处找到非常好的资源来学习MVVM模式。

1

正如其他答案所建议的那样,Prism不会捷径WPF学习。Prism更多地涉及将应用程序分成模块,并独立开发每个模块。

以下是我的建议:

  • 不要试图学习所有的WPF。您可以使用相对较少的WPF编写出色的业务应用程序。

  • 学习MVVM模式。MVVM广泛用于将UI关注点与应用程序的后端关注点分离。

  • 学习Prism。它对于除了微不足道的应用程序外都很有用。它很好地降低了WPF应用程序的复杂性,并减少了应用程序各部分之间的耦合。一旦您掌握了它,它确实使应用程序更易于维护和开发。

有关所有这些主题的文章可以在CodeProject(包括我的文章)和其他地方找到,以帮助您入门。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接