我有一个商业创意,其中一个组成部分涉及一个可以下载的客户端。由数千名用户通过网页安装。
申请必须:
监控用户桌面上的互联网使用情况,监控以下区域:
制作此用法的报告(采用CSV
或其他易于导出的格式)
鉴于这些要求,您会推荐哪种技术实施,以及您会推荐哪种平台/语言架构?关键方面是功能性和广泛定义的对用户的低影响。 ETA或成本不太重要。
答案 0 :(得分:3)
听起来像C#会满足您的需求,只要它仅限于Windows客户端。
答案 1 :(得分:2)
去年,我建造了类似的东西。我用过C#。最初它利用了一些3.5框架,但由于安装大小的限制,我不得不将其扩展回2.0框架。它目前正在监控大约13,000台机器。收集并发送回报告服务器每分钟大约3MB的数据。
客户端计算机的范围从Pentium 4机箱到运行XP的256MB RAM到双核2GB机器。
我构建的应用程序不会被最终用户触及,因此它作为Windows服务和IE浏览器帮助程序对象插件的组合运行。 BHO必须准确捕获浏览器中发生的事情。
唯一真正的挑战是让它在XP和Vista(所有服务包级别)以及IE 6和7中运行.XP和Vista具有不同的安全含义需要考虑; IE 6和7也有不同的访问模型。
最后,我们因处理Firefox或其他浏览器而受到惩罚,因为客户并不关心它。
<强>更新强>
Firefox仅支持javascript,c ++和xul代码扩展;使用c#将是一个完整的PITA。我可能会尝试javascript,如果它能做我需要的只是因为它更容易。
就Chrome而言,他们最近才开始支持扩展程序(March 19,2009)。您必须更改快捷方式启动属性才能运行它们。所以,我可能会跳过浏览器,直到它成熟一点。我想在明年将为插件的构建方式做出很多改变。
关于每分钟的数据量,这是一个总值。每个客户只需每15分钟左右登记一次;或者在断开连接时重新连接到网络。因此,个人流量非常低,对用户体验没有影响。
<强>防火墙强>
防火墙对我们来说无关紧要的原因是数据通过端口80使用Web服务传输回报告服务器。如果80被阻止,那么它们无论如何都无法浏览,因此没有什么可以收集......就带宽而言,限制你收集的内容并将其广播回来。具有长描述性属性/值名称的XML不是您的朋友。
答案 2 :(得分:1)
Qt和C ++适用于跨平台客户端 - 尤其是如果他们需要以一种无法用垃圾收集的语言(即基本上所有其他语言;-)解决的方式“节省内存”。
答案 3 :(得分:0)
我们需要更多信息:
是时候发展问题吗?使用C#,您可以快速开发这样的应用程序;但它不一定具有与C ++相同的低级性能。您可以用C ++(内存密集型位)和C#中的其他部分开发某些部分,但是您的客户端必须安装.NET框架;更不用说他们可以很容易地对C#部件进行逆向工程。
有一个项目三角形,我们需要知道哪两个对您最重要: