检测UI
我们如何检测UI?在过去,我读过人们已经对他们的用户界面进行了检测,但是我没有发现有关如何检测UI的示例或者提示。
通过检测,我的意思是收集有关系统使用和性能的数据。有关检测的MSDN文章为http://msdn.microsoft.com/zh-cn/library/x5952w0c.aspx。我想捕获用户单击的按钮,他们使用的键盘快捷键,他们使用的搜索词等等。
- 我们如何检测UI?
- 我们以何种格式存储仪器?
- 我们如何处理检测到的数据?
- 我们如何使用这种检测逻辑来保持UI代码的整洁?
具体来说,我正在WPF中实现我的UI,因此与检测基于Web的应用程序相比,这将带来更多挑战。 (即,需要将检测到的数据传输回中心位置等)。就是说,我觉得这项技术可以通过诸如添加属性之类的概念提供一种更容易实现的仪器实现。
- 我们是否已检测到WPF应用程序?我们对如何实现这一目标有任何建议吗?
编辑:以下博客文章提出了一个有趣的解决方案:像素内博客:WPF应用程序上的UI审核技术
解决方案
回答
我尚未使用WPF进行开发。但是我认为它与大多数其他应用程序相同,因为我们希望保持UI代码尽可能的轻便。可以在其中使用许多设计模式,例如显而易见的。 MVC和Fa?ade。我个人总是尝试使在UI层和BL层之间移动的对象尽可能地轻,如果可以的话,将它们保持为基元。
然后,这可以帮助我专注于改进UI层,而不必担心一旦我将(原始)数据放回去时会发生任何事情。
我希望我能正确理解问题,很抱歉,我无法在WPF中提供更多的上下文帮助。
回答
我们可以考虑使用log4net。它是一个健壮的日志记录框架,存在于单个DLL中。它还以"非苛刻"类型模式完成,因此,如果正在进行关键进程,则直到更多资源释放后它才会记录下来。
我们可以轻松地设置一堆INFO级别的记录器并跟踪所需的所有用户交互,并且不会因为文件崩溃而将错误发送给我们自己。然后,我们还可以记录所有的ERROR和FATAL代码以分隔可轻松邮寄给我们进行处理的文件。
回答
如果使用WPF命令,则每个自定义命令都可以记录执行的操作。我们也可以记录命令启动的方式。
回答
也许WPF的Microsoft UI自动化可以?它是用于自动化UI的框架,也许可以用来为我们记录内容...
我们使用自动化框架在WPF中自动测试我们的UI。
回答
以下博客文章提供了许多有关WPF应用程序检测的好主意:
WPF应用程序上的UI审核技术。
回答
免责声明:我在销售该产品的公司工作,不仅是我,而且我是该特定产品的开发人员:)。
如果我们对提供此功能的商业产品感兴趣,那么可以使用Runtime Intelligence(Dotfuscator的功能性附件),它将使用情况跟踪功能注入.NET应用程序。我们不仅提供跟踪功能的实际实现,还提供数据收集,处理和报告功能。
最近,我也在此位置发布了关于此主题的软件商业论坛的讨论:http://discuss.joelonsoftware.com/default.asp?biz.5.680205.26.
有关我们内容的高级概述,请参见:http://www.preemptive.com/runtime-intelligence-services.html。
另外,我目前正在编写一些技术性更强的文档,因为我们意识到这绝对是可以改进的领域,请让我知道在完成后是否有人希望收到通知。