【问题标题】:Some advices about conception of an application needed关于需要的应用程序概念的一些建议
【发布时间】:2013-10-31 02:50:47
【问题描述】:

我要写一个 wpf 应用程序,我想我需要一些建议。我有一个提供一些记录的数据库。这些记录显示在 ListView 中。用户可以插入、删除或修改记录。这些操作中的每一个都调用一个类的适当方法,该类提供在我的数据库上工作的方法。如果对数据库的操作成功,我会触发一个事件。此事件被显示用户所做更改的 ui 捕获。如果对数据库的操作失败,则会显示一条消息。

数据库由线程中运行的方法观察。此方法每分钟检查一次数据库中的数据是否已更改(例如,由也使用这些数据的其他用户更改)。如果检测到更改,还会触发包含更改记录的事件。

在 ui 类中,我正在处理存储在 DataTable 中的本地数据。

有没有比我的方法更好的方法来构建该应用程序?我认为我的方法不太好......

【问题讨论】:

  • 有一些工具可以解决这个问题msdn.microsoft.com/en-us/library/vstudio/…
  • 感谢您的回答。我正在使用不支持查询通知 afaik 的 MySql。目前我正在使用一种轮询机制,在给定的时间距离内查询新数据。不知道SQL server里面有这样的东西,所以还是很有指导意义的。

标签: wpf database user-interface communication concept


【解决方案1】:

坦率地说,我认为设计没有任何问题,我只建议考虑引入 Entity Framework 来进行一些数据库访问。

除此之外,如果您将编辑器和此数据库更改检查器结合使用,请先设计数据库检查器,然后使用编辑器处理数据库检查器可能报告的任何可能的更改或锁定。将管道安装到现有系统将是一场噩梦。如果您预先构建它,它是非常易于管理的。

坚持使用 MVVM 系统,并确保您拥有一个可供 UI 访问的 VM 以及线程检查器。放入允许在 Xaml 中打开/关闭样式和控件的布尔标志。

即使它不是 Silverlight 项目,也要以异步方式设计所有数据访问,并具有锁定共享数据的能力。如果您预先设计多线程,从长远来看,它会有所回报。我在我的博客文章Xaml: ViewModel Main Page Instantiation and Loading Strategy for Easier Binding 中展示了这种异步操作和 MVVM 的基本方式,作为基本参考。

考虑将 C# 接口用于您正在处理的主要操作和数据。这将使您能够独立测试它们并在需要时提供依赖注入,以使您的类在长期内可测试和可重用。

终于用最新版的.Net了。不要在不必要的时候使用旧版本。

【讨论】:

  • 非常感谢您的回答。我在设计这样的应用程序方面没有太多经验,需要确认。
猜你喜欢
  • 2020-12-11
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 2013-04-12
相关资源
最近更新 更多