Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF/.NET数据访问模型-资源建议_C#_.net_Sql_Wpf_Data Access Layer - Fatal编程技术网

C# WPF/.NET数据访问模型-资源建议

C# WPF/.NET数据访问模型-资源建议,c#,.net,sql,wpf,data-access-layer,C#,.net,Sql,Wpf,Data Access Layer,我们正处于早期设计/准备阶段,将一个相当大的“遗留”3层客户端服务器应用程序转移/更新到新版本。我们正在考虑在Winforms上实现WPF,因为这似乎是微软推动未来发展的方向,我们希望最大限度地延长应用程序的生命周期。也就是说,在重写过程中,我们希望对数据访问/表示模型进行尽可能多的更改,以尽可能提前提高性能 我一直在沿着这个思路做一些研究,但我发现讨论WPF的绝大多数资源只关注简单的数据跟踪应用程序,或者关注最基本的UI设计/控件。甚至讨论数据表示的几个项目在深度上都是相当基本的 是否有任何

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

我一直在沿着这个思路做一些研究,但我发现讨论WPF的绝大多数资源只关注简单的数据跟踪应用程序,或者关注最基本的UI设计/控件。甚至讨论数据表示的几个项目在深度上都是相当基本的

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

考虑使用MVVM模式。

考虑使用MVVM模式。

VS2010团队在切换到WPF的过程中保持了一个关于获得良好性能的博客


他们有一个系列,提供了一些建议(特别是建议)。

VS2010团队在切换到WPF的过程中保持了一个关于获得良好性能的博客


他们提供了一系列建议(特别是建议)。

我开发大型企业范围的WPF应用程序已经将近两年了。与任何UI开发一样,了解您正在使用的特定技术的最佳UI设计模式非常重要。根据我使用WPF的经验,模型视图模型设计模式是最流行的。一旦您了解了WPF的数据绑定能力,就很容易理解为什么像M-V-VM这样的模式会被如此接受。即使您没有逐字逐句地遵循M-V-VM模式(或其变体),也要理解该模式所解决的总体解决方案。基本上,将UI/XAML文件(视图)保存在单独的文件中,将所有代码隐藏在/logic(ViewModel)中保存在另一个文件中。视图仅对ViewModel中的更改作出反应

保持ViewModel的独立性,将有几个好处

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

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

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

根据我的经验,以下是WPF与窗口窗体的一些优缺点:

优点:

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

  • 数据绑定是惊人的。绑定XAML文件中的UI控件以指向ViewModel类上的特定属性,一切正常。UI只响应ViewModel的任何属性更改。完全分离!如果您希望多个窗口/用户控件同时显示相同的信息并自动保持同步,您将真正看到这一点的好处

  • 我在MSDN上读到的所有信息都是,微软在WPF中投入的资源要比在旧的窗口表单中投入的资源多得多

缺点:

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

  • 一些常见的用户控件尚未由Microsoft开发(例如,屏蔽文本框、数据网格)。然而,VisualStudio2010确实附带了一个数据网格,并且运行良好。此外,市场上有大量的第三方控制

我能想到的最好的资源是:

  • “C#2008中的职业WPF”-这本书太棒了。超过1000页。它几乎覆盖了WPF的所有区域。像参考书一样使用它。这是直截了当的简单易懂的例子

  • 链接到Josh Smith关于模型视图模型模式的文章:

    正如我前面提到的,不要太在意别人版本的M-V-VM模式。更重要的是,了解WPF如何允许您轻松创建模型视图,并使视图自动响应更改


祝你好运!如果你能通过这个该死的学习曲线,你就不会后悔WPF了。

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

保持ViewModel的独立性,将有几个好处

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

  • 更容易在开发人员之间分割工作(例如,一个开发人员构建