2013-10-30 113 views
0

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

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

在UI级的我与存储在一个DataTable本地数据的工作。

有没有比我的方法更好的方法来构建应用程序?我觉得我的做法是没有那么好......

+0

这里有一些工具http://msdn.microsoft.com/en-us/library/vstudio/t9x04ed2(v=vs.100).aspx – Paparazzi

+0

感谢您的答案。我使用不支持查询通知afaik的MySql。目前,我正在使用轮询机制来查询给定时间距离内的新数据。我不知道在SQL服务器中有这样的东西,所以它仍然非常有启发性。 – ooorndtski

回答

0

坦白说,我看不出什么毛病,因为它是设计,我只想建议,在实体框架,也许将做一些数据库访问应该考虑。

除此之外,如果你正在结合编辑和该数据库变化检测器,首先设计数据库检查,然后解决任何可能改变编辑或停工数据库检查可能会报告。在现有系统中加入管道将是一场噩梦;如果你在前期构建它,它是非常易于管理的。

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

即使它不是一个Silverlight项目,设计所有数据访问异步的方式与锁定共享数据的能力。如果您使用多线程进行设计,它将长期得到回报。作为基本参考,我在我的博客文章Xaml: ViewModel Main Page Instantiation and Loading Strategy for Easier Binding上展示了这种异步操作和MVVM的基本方式。

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

最后使用最新版本的.Net。当你不需要使用旧版本时,不要束缚自己。

+0

非常感谢您的回答。我没有太多的设计应用程序的经验,需要确认。 – ooorndtski