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

我应该使用Prism开发简单的桌面应用程序吗?C#,c#,wpf,desktop-application,prism-4,C#,Wpf,Desktop Application,Prism 4,我想转到WPF应用程序,并将我的win form应用程序(转换为WPF) 目前有太多关于WPF的知识需要学习,以便获得好的应用程序 我发现棱镜: 我相信这是一条捷径,可以让我通过简单地添加业务逻辑来获得WPF的酷功能 您是否向WPF初学者推荐Prism 在我对WPF有了更多的经验之后,有可能删除Prism并构建我自己的UI吗 如果您对创建支持多视图和导航的桌面应用程序有其他想法,请告诉我 谢谢。不,棱镜是WPF(或Silverlight)顶部的一个大层。它不会使学习WPF变得更容易,也不会

我想转到WPF应用程序,并将我的win form应用程序(转换为WPF)

目前有太多关于WPF的知识需要学习,以便获得好的应用程序

我发现棱镜:

我相信这是一条捷径,可以让我通过简单地添加业务逻辑来获得WPF的酷功能

  • 您是否向WPF初学者推荐Prism
  • 在我对WPF有了更多的经验之后,有可能删除Prism并构建我自己的UI吗

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

  • 谢谢。

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

    Robert Levy提供的是完美的,我想补充一点,当你从Windows窗体移动到WPF时,尽量避免使用可以在Windows窗体中使用的相同模式。在开始实施之前,尝试学习如何使用WPF完成任务


    您可以找到非常好的资源来学习MVVM模式。

    正如其他答案所建议的,Prism不会简化WPF学习。Prism更多的是将应用程序划分为模块,并独立开发每个模块

    以下是我的建议:

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

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

    • 学习棱镜。它对所有应用程序都很有用,但不适用于琐碎的应用程序。它很好地降低了WPF应用程序的复杂性,并且减少了应用程序各部分之间的耦合。一旦你掌握了窍门,它确实让应用程序更容易维护和开发


    有一些关于CodeProject(包括我的)和其他地方的文章可以让您开始了解所有这些主题。

    也许不是Prism,但是像Unity或Ninject这样的DI库将是一个好主意。我不认为MVVM库是必要的,因为自己实现基本功能是很简单的。这两个问题的答案都是否定的。这个库适用于UI端开发人员超过10名的大型应用程序。使用简单的MVVM。你的应用程序呢?我会像VS2010一样使用带有关闭按钮的选项卡。如果要导航到视图,请打开一个新选项卡。如果要保留视图,请关闭选项卡。每个选项卡可以有不同的视图,而不依赖于其他选项卡。@vortex:我发现选项卡非常方便。然而,我认为对于简单的用户来说,它们是相当复杂的。我希望为用户提供一个简单的ui,将导航逻辑放在我的身上:用户不需要了解其他选项卡上有更多信息。选项卡一点也不复杂。让我们以Web浏览器为例,我敢打赌,任何用户都可以理解其他选项卡有附加信息。这个界面是最现代的,已经取代了多窗口界面和MDI。@Levy:我真正需要的是MDI表单之类的东西。。。根据父导航替换页面的主窗体。我读到mdi是一种糟糕的做法,应该使用mvvm。正如您所看到的,我也是mvvm的新手。因此,你能给我提供一个比prism简单但有mdi外观的启动项目吗?至少在基本了解WPF之前学习prism就像在你知道如何建造狗舍之前建造一座大厦。@Asaf我建议你编辑你的问题(或问一个新问题)指定要从Windows窗体MDI移动到WPF,以及学习WPF的最佳方式。