gpt4 book ai didi

c# - WPF/.NET 数据访问模型 - 资源推荐

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:09 25 4
gpt4 key购买 nike

我们正处于将相当大的“遗留”3 层客户端-服务器应用程序转移/更新到新版本的早期设计/准备阶段。我们正在考虑在 Winforms 上做 WPF,因为这似乎是微软插入 future 发展的方向,我们希望最大限度地延长应用程序的生命周期/跨度。也就是说,在重写期间,我们希望对我们的数据访问/表示模型进行尽可能多的更改,以尽可能多地提高性能。

我一直在沿着这条思路进行一些研究,但我发现绝大多数讨论 WPF 的资源都只关注简单的数据跟踪应用程序或关注非常基础的 UI 设计/控件。甚至讨论数据表示的少数项目在深度上也相当初级。

  • 是否有任何与大型企业级业务应用程序相关的书籍/文章/推荐阅读/其他推荐资源?
  • 有任何应该/可以避免的“陷阱”吗?
  • 尽量减少水下时间的一般建议

最佳答案

近 2 年来,我一直在开发大型企业级 WPF 应用程序。与任何 UI 开发一样,了解适合您所使用的特定技术的最佳 UI 设计模式非常重要。根据我使用 WPF 的经验,模型- View - View 模型设计模式是最流行的。一旦理解了 WPF 的数据绑定(bind)能力,就很容易理解为什么像 M-V-VM 这样的模式被如此接受。即使您没有逐字逐句地遵循 M-V-VM 模式(或其变体),也要理解该模式解决的大局解决方案。基本上,将您的 UI/XAML 文件(View)保存在一个单独的文件中,并将所有代码隐藏/逻辑(ViewModel)保存在另一个文件中。 View 只是对 ViewModel 中的变化使用react。

保持 ViewModel 独立,您将获得几个好处。

  • 很容易为 ViewModel 对象创建自动化测试,因为其中没有图形组件。它只是一个具有方法/属性的对象。

  • 更容易在开发人员之间拆分工作(例如,一个开发人员构建 View,而另一个开发人员构建 ViewModel)。

  • 在 ViewModel 中使用多线程要容易得多,因为它从不直接与 UI 控件交互。如果您曾尝试在后台线程上更新文本框,您就会明白我的意思。

根据我的经验,以下是 WPF 与 Window Forms 的一些优缺点:

优点:

  • 为最终用户提供更好的 UI 外观和体验。 WPF 允许您最终控制任何 UI 元素的外观。 (例如,每行包含一个图片/按钮/文本的列表框)。

  • 数据绑定(bind)很棒。在 XAML 文件中绑定(bind)您的 UI 控件以指向您的 ViewModel 类的特定属性,然后一切正常。 UI 只是响应 ViewModel 的任何属性更改。彻底分离!如果您希望多个窗口/用户控件同时显示相同的信息并自动保持同步,您将真正看到这样做的好处。

  • 我在 MSDN 上读到的所有内容都是,Microsoft 将更多的资源投入到 WPF 中,而不是投入到旧的 Window Forms 中。

缺点:

  • 学习曲线大。如果之前没有 WPF 经验的开发人员需要几个月的时间才能制作出稍微复杂的 UI,请不要感到惊讶。这是一项全新的技术,会有一个学习曲线。

  • Microsoft 尚未开发一些常见的用户控件(例如屏蔽文本框、数据网格)。但是,Visual Studio 2010 确实带有数据网格并且运行良好。此外,市场上有很多第 3 方控件。

我能想到的最好的资源:

  • “Pro WPF in C# 2008”- 这本书很棒。它有 1000 多页。它几乎涵盖了 WPF 的所有领域。像引用书一样使用它。举例简单易懂,开门见山。

  • Josh Smith 关于模型- View - View 模型模式的文章的链接:http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090016

    正如我之前提到的,不要过于关注某人的 M-V-VM 模式版本。更重要的是,了解 WPF 如何让您轻松创建 ModelView 并让 View 自动响应更改。

祝你好运!如果您能够克服该死的学习曲线,您就不会后悔 WPF。

关于c# - WPF/.NET 数据访问模型 - 资源推荐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2554449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com