我要写一个wpf-application,我想我需要一些建议。我有一个提供一些记录的数据库。这些记录显示在ListView中。用户可以插入,删除或修改记录。这些操作中的每一个都调用类的适当方法,该方法提供了在我的数据库上工作的方法。如果对数据库的操作成功,则触发事件。该事件由ui捕获,显示用户所做的更改。如果数据库上的操作失败,则会显示一条消息。
通过线程中运行的方法观察数据库。该方法每分钟检查一次数据是否在数据库中发生了变化(例如,同样使用这些数据的其他用户)。如果检测到更改,则还会触发包含已更改记录的事件。
在ui-class中我使用存储在DataTable中的本地数据。
有没有比我的方法更好的方法来构建该应用程序?我认为我的方法不太好......
答案 0 :(得分:0)
坦率地说,我没有看到设计有什么问题,我只建议可能会考虑引入Entity Framework来做一些数据库访问。
除此之外,如果要组合编辑器和此数据库更改检查程序,请首先设计数据库检查程序,然后使编辑器检查数据库检查程序可能报告的任何可能的更改或锁定。将管道安装到现有系统将是一场噩梦;如果你在前期构建它是非常易于管理的。
坚持使用MVVM系统并确保您拥有一个可以访问UI的VM以及线程检查程序。放入布尔标志,允许样式和控件在Xaml中打开/关闭。
即使它不是Silverlight项目,也可以异步方式设计所有数据访问,并能够锁定共享数据。如果您预先设计多线程,那么从长远来看它将获得回报。我在博客文章Xaml: ViewModel Main Page Instantiation and Loading Strategy for Easier Binding上展示了这种异步操作和MVVM的基本方法作为基本参考。
考虑将C#接口用于您正在处理的主要操作和数据。这将使您能够独立测试它们,并在需要时提供依赖注入,以使您的类可以在长期内进行测试和重用。
最后使用最新版本的.Net。当你不需要时,不要使用旧版本来束缚自己。