-->

放在哪里的代码(主要)窗户的WPF应用程序?(Where to put code in (prima

2019-09-16 16:43发布

所以我打算写一个应用程序,它在很大程度上是一个没有窗户的应用。 将有用户交互的窗口,但只有在用户的请求。 否则,应用程序位于系统托盘并运行定时器,执行一些逻辑每分钟左右。 我的问题是这样的:据我所知,我会把所有的相关逻辑App.xaml.cs(启动定时器,执行在每个时间间隔的逻辑),但由于某种原因,这似乎是我错了。

该应用程序将有一个系统托盘图标,用户可以交互来获得信息,调整设置等,但在其他方面的应用只是坐在那里,做它做什么。 它是适当放的代码隐藏所有的代码为App.xaml中类? 我不知道为什么,但它好像我不应该,应该还有别的地方,但我真的不能想什么。

我从来没有写一个应用程序像在此之前,因此我的无知。 任何建议将不胜感激。 谢谢。

詹姆士

Answer 1:

即使大多数交互是通过窗户进行应用它通常是一个坏主意,把所有的代码后面的代码中。 这些相互作用常常在代码发起的事件处理器落后,但你可以把你的代码的类自己创建的。

这同样适用于不显示用户界面的大部分时间应用。 大部分的操作都会从App.xaml.cs启动,但是,这并不意味着所有的代码已经在那里居住。 您可以封装在自己的类定时器,可以揭开序幕其他代码为例子做的工作。 沿着职责的线把你的代码了,一个窗口类并UI的东西,域逻辑进入其他文件等,将使您创造更多维护的应用。



Answer 2:

这听起来并不像代码属于那里,顶多只是一个通话启动定时器。 什么听起来像一个完美的适合你的问题,是MV-VM (模型-视图-视图模型)模式。 当你noteded,它也会“感觉”更正确的,那么附加逻辑后面的代码。 使用MVVM您可以在稀疏UI分成一个视图,你的代码可以在模型和视图模型单独存在。

我会建议使用此工具 ,因为它也包含很好的概述文件和样本为你创建自己的解决方案,您可以消化。 洛朗比尼翁也发布了,你可以用它来上手MVVM入门工具包。

此外, 这里是一些好东西,让你开始在系统托盘实际上设置你的控制。



文章来源: Where to put code in (primarily) windowless WPF app?