【问题标题】:What pattern to use使用什么模式
【发布时间】:2011-02-16 04:36:26
【问题描述】:

我们正在启动一个项目来重做我们的 ERP 软件。它将相当大,由几个模块组成。它将用于打开新项目、输入一些参数、选择零件和生成报价。它还将有一个自定义的 CRM 模块。在四个月内,我们的目标是为桌面开发这个,但稍后我们想把它移植到网络上。到目前为止,我们一直在使用带有 .NET4 和实体框架的 VB2010 WinForms 进行数据库访问。我们还使用 DevExpress 控件。

为了让我们的项目以后可以轻松移植到网络上,最好的技术/模式是什么?

我们简要了解了 LightSwitch,它似乎提供了部署到 Web 或桌面的选择,但 UI 似乎仅限于模板,并且与 DevExpress 控件不兼容。有没有沿着这些思路但更强大的东西 - 最好是让我们与 DevExpress 和实体一起工作的东西?

欢迎提出任何建议。

【问题讨论】:

    标签: .net design-patterns


    【解决方案1】:

    从根本上说,网络和桌面是非常不同的目标。 Web 应用程序通常是有状态系统的无状态视图并使用请求/响应架构,而桌面应用程序是有状态的并且通常是事件驱动的。

    话虽如此,如果 LightSwitch 对您的目的而言过于有限(不幸的是,这并不完全令人惊讶),那么您在 .NET 世界中的选择是 WinForms 和 WPF。

    一般来说,WPF 是一个更好的选择,因为它是事物发展的方向(一个声明性的用户界面,如果不是完全定义的话,大部分是在 XAML 中定义的)并且工具集与 Silverlight 非常相似,因此您将获得 1.75一个的价格。缺点是,与 WinForms 相比,它不够成熟(无论从正面还是负面的意义上来说)。

    话虽如此,DevExpress 是一个出色的桌面应用程序工具集,而且它们对 WPF 的支持(据我所知,因为我主要是一名 WinForms 开发人员)非常好。

    精简版:使用 WPF

    【讨论】:

    • 感谢您的回答。如果我们要选择 WPF,您是否推荐一种模式,以便在以后尽可能轻松地过渡到 ASP.NET MVC?换句话说,有没有像 MVC 这样的东西,但用于桌面开发? (让我知道我是否走在正确的轨道上,或者我们应该完全采取另一种方法)
    • @Lukasz:WPF 设计的架构称为 MVVM,它是 Microsoft 的标准。它类似于 MVC,但控制器本质上是数据绑定架构,您通过视图模型(MVVM 的 VM 部分)公开功能。 msdn.microsoft.com/en-us/magazine/dd419663.aspx
    • 谢谢亚当。看起来我们正在着手进行 WPF 和 Silverlight 的强化培训。希望学习曲线不会太陡峭,因为我们需要在几周内开始交付。 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2011-10-16
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多