0

背景

我有一个商业想法,其中一个组件涉及一个客户端,成千上万的用户将通过网页下载和安装该客户端。

申请要求

版本 1:

申请必须:

  • 监控用户桌面上的互联网使用情况,并监控以下区域:

    • 使用的浏览器,
    • 使用小时数
    • 访问的网站
    • 考虑到哪个浏览器选项卡是“活动的”
  • 生成此使用情况的报告(以CSV或其他易于导出的格式)

  • 它需要由用户轻松监控(例如,在 Windows 中,通过系统托盘中的图标允许用户暂停或停止程序)。
  • 通过自动更新轻松升级。
  • 在内存使用方面需要轻量级。
  • 需要方便快捷地安装,
    • 必须能够完全卸载。
  • 不会对浏览器或用户的系统性能体验产生不利影响
对于版本 2:
  • 能够呈现图形输出(饼图和条形图)
  • 多平台(版本 1 仅针对 Windows)
  • 集成在线组件

问题

鉴于这些要求,您会推荐什么技术实现,以及您会推荐什么平台/语言架构?关键方面是功能和对用户的广泛定义的低影响。ETA 或成本不太重要。

4

4 回答 4

3

听起来 C# 可以满足您的需求,只要它仅限于 Windows 客户端。

于 2009-04-30T14:33:31.723 回答
2

去年我建造了一些与此非常相似的东西。我用 C#。最初它利用了一些 3.5 框架,但由于安装大小的限制,我不得不将其缩回到 2.0 框架。它目前正在监控大约 13,000 台机器。每分钟收集大约 3MB 的数据并将其发送回报表服务器。

客户端机器的范围从具有 256MB RAM 的 Pentium 4 机器(在高达双核 2GB 机器上运行 XP)。

我构建的应用程序不会被最终用户触摸,因此它作为 Windows 服务和 IE 浏览器帮助对象插件的组合运行。BHO 对于准确捕捉浏览器中正在发生的事情是必要的。

唯一真正的挑战是让它在 XP 和 Vista(所有服务包级别)以及 IE 6 和 7 下工作。XP 和 Vista 有不同的安全隐患需要考虑;IE 6 和 7 也有不同的访问模式。

最后,我们决定与 Firefox 或其他浏览器打交道,因为客户根本不关心它。

更新

Firefox 仅支持 javascript、c++ 和 xul 代码扩展;使用 c# 将是一个完整的 PITA。如果它可以满足我的需要,我可能会尝试 javascript,因为它更容易。

至于 Chrome,他们最近才开始支持扩展( 2009 年3 月 19 日)。您必须更改快捷方式启动属性才能运行它们。所以,我可能会跳过那个浏览器,直到它成熟一点。我想在接下来的一年里,插件的构建方式将会发生很多变化。

关于每分钟的数据量,这是一个汇总值。每个单独的客户每十五分钟左右只检查一次;或在断开工作时重新连接到网络。因此,个人流量非常低,对用户体验没有影响。

防火墙

防火墙对我们来说真正无关紧要的原因是数据使用 Web 服务通过端口 80 传输回我们的报告服务器。如果 80 被阻止,那么他们无论如何都无法浏览,所以没有什么可收集的……至于带宽,限制你收集的内容并广播出去。具有长描述性属性/值名称的 XML 不是您的朋友。

于 2009-04-30T14:53:00.567 回答
1

Qt 和 C++ 非常适合跨平台客户端——尤其是。如果他们需要以某种方式“节省内存”,而垃圾收集语言(即基本上所有其他语言)通常没有解决方案。

于 2009-04-30T14:36:38.983 回答
0

我们需要更多信息:

是时候发展一个问题了吗?使用C#,您可以快速开发这样的应用程序;但它不一定具有与 C++ 相同的低级性能。您可以在 C++ 中开发某些部分(内存密集位),而在 C# 中开发其他部分,但是您的客户端必须安装 .NET 框架;更不用说他们可以很容易地对 C# 部分进行逆向工程。

有一个项目三角形,我们需要知道哪两个对您最重要:

替代文字

于 2009-04-30T14:45:55.453 回答