我应该考虑使用哪些 .Net 工具来构建应用程序来提供对实时系统的监控?
我想构建某种接口来监控我们的实时路由/交换系统。我想提供大量的视觉反馈,以便能够直观地监控其状态。我们的系统和客户端并不位于同一地点,因此它们需要通过 TCP/IP 进行连接。
我希望能够为任意数量的监控客户端提供服务(尽管可能只有大约 4-6 个客户端)。我想过使用 SilverLight,但似乎需要一两个技巧才能让 SilverLight 连接回在不同端口上运行的应用程序。
我还考虑过使用 HTML5 canvas 和 websockets。另一种选择是仅使用普通的 Window 窗体(也许还有 WPF)创建客户端。但这意味着要监控应用程序,必须先下载客户端。我更喜欢像网络应用程序一样易于访问的东西?
有哪些更常见的应用程序堆栈可以实现此目的?我应该注意什么?
编辑:
只是补充一下:这只是一个内部工具。但我们在几个地点设有办事处。
I want to build some sort of interface that will monitor our real time routing/switching system. I would like to give a lot of visual feedback to be able to monitor its status visually. Our system and clients are not co-located so they would need to connect via TCP/IP.
I would like to be able to service any number of monitoring clients (although this will probably only ever be about 4-6 clients). I thought of using SilverLight but there appears to be one or two tricks involved in getting SilverLight to connect back to an application running on a different port.
I have also thought of using HTML5 canvas and websockets. Another alternative is to just create the clients using normal Window Forms and perhaps WPF. But this means that to monitor the application the client will have to be downloaded before. I would prefer something that is as easily accessible as web app?
What are some of the more common application stacks to achieve this? What should I watch out for?
EDIT:
Just to add: This will be an internal tool only. But we have offices in a couple of locations.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这个方向的任何选择都可能是主观的和有争议的,当然有人可以建议任何可能的 Web 框架或语言...
我会考虑,但是由于您的 .NET 和 C# 标签、ASP.NET MVC 3,所以基本上是基于 Web 的插件 -更少(没有 Silverlight)HTML 5 解决方案。
考虑一下 StackOverflow 以相同的方式(MVC、ASP.NET、SQL Server...)完成,并且性能优于众所周知。
从 TCP 获取底层事件的方式,从 TCP 获取和提供数据的方式,这是前端的另一回事,如果流量如此之高并且您想要获取和存储,我可能会编写一个 Windows 服务无论任何活动的客户端连接,数据都可以。
还有大量适用于 MVC、MS Chart Control 的实时图表控件。 DevExpress、ExtJS 集成的...
any choice in this direction could be subjective and arguable, surely somebody could suggest any possible web framework or language...
I would consider, however because of your .NET and C# tags, ASP.NET MVC 3, so basically web based plugin-less ( NO Silverlight ) HTML 5 solution.
Consider that StackOverflow is done in same way (MVC, ASP.NET, SQL Server... ) and outperforms as we all know.
the way you grab the underlying events from TCP, so the way you capture and provide the data from TCP, it's another thing from the front end, I would probably write a Windows Service if the traffic is so high and you want to grab and store data anything regardless any active client connection.
There are plenty of real time charting controls out there also for MVC, MS Chart Control. DevExpress, ExtJS integrated ones...
“实时”和浏览器困扰着我。
我确实会选择 WPF 或 WinForms。使用 ClickOnce-Deployment,您可以让用户轻松完成此操作,并且只需重新部署新版本并让用户重新启动应用程序即可推出新版本。
在我的公司,这工作得很好,我们没有任何问题。唯一的问题是,app.config 有点难以找到并保持当前/有效(重新部署),但在您的情况下,这不会针对每个客户端进行更改(或者我猜是这样)。
"real time" and Browser is bothering me.
I would indeed go WPF or WinForms. Using the ClickOnce-Deployment you can make this a no-pain for the user and you can roll-out new versions just by redeploying them and having the user restart the application.
In my company this works really fine and we have no problems whatsoever. The only problem with this is, that the app.config is somewhat hard to find and keep current/valid (redeploy) but in your case this won't change per client (or so I guess).
我同意@Davide - 我会选择一个能够实时获取所有路由/交换数据的WebService。您将有一个 Web 应用程序,并且在客户端您将有 JQuery/AJAX 从 WebService 组件获取实时数据。
I agree with @Davide - I would go for a WebService that will obtain all routing/switching data in realtime. You will have a web application and on the client side you will have JQuery/AJAX fetching realtime data from the WebService component.
我见过很酷的 Web Orb 演示,它做了与您想要的类似的事情。 http://www.themidnightcoders.com/
I've seen cool demo's of Web Orb doing something similar to what you want. http://www.themidnightcoders.com/
如果您是从头开始,最好查看 WCF (Windows Communication Foundation )。它很棒,因为它可以以多种方式公开您的功能,只需修改一个配置文件。
如果您需要 Windows 客户端应用程序,可以将其托管在 Windows 服务中,或者只是将其作为侧面程序集包含在内。对于 Web 应用程序,您可以在各种格式(JSON、XML)、通道(HTTP、TCP)和协议(SOAP、ODP)之间进行选择。
如果我做对了,将会有一个服务器端应用程序,它将从设备收集信息并将其作为服务公开给客户端。在这种情况下,WCF 应用程序可能托管在服务器计算机上的 Windows 服务或 IIS 中,并通过一个或多个端点(HTTP、TCP)公开数据。
我不知道将 SilverLight 应用程序连接到服务时存在问题,但我宁愿选择 HTML5/JavaScript 组合,以便更轻松地部署并与更广泛的设备兼容(无需插件)。 ASP.NET MVC 应该是 Web 应用程序的最佳选择。
If you are starting from scratch, it would be good to check out WCF (Windows Communication Foundation). It's great because it can expose your functionality in many ways, using nothing more than modifying a config file.
If you want a Windows client app, you can host it in a Windows Service, or simply include it as a side assembly. For web apps, you can choose between various formats (JSON, XML), channels (HTTP, TCP) and protocols (SOAP, ODP).
If I got it right, there will be a server-side application which will collect information from the devices and expose it to clients as a service. In that case, a WCF application might be hosted in a Windows Service or IIS on a server machine, and expose the data though one or more endpoints (HTTP, TCP).
I am not aware of problems in connecting a SilverLight app to a service, but I would rather go for a HTML5/JavaScript combo instead, for easier deploying and compatibility with a wider range of devices (no plugins needed). ASP.NET MVC should be the best choice for the web app.