我正在研究开发服务器应用程序的最佳方法,该应用程序为管理/报告提供了一个ASP.NET MVC前端。
服务器应用程序(服务?)还需要提供TCP侦听器以及与COM端口上的设备进行通信。
我能想到的最明显的方法是拥有一个ASP.NET MVC Web应用程序,并拥有一个使用Web调用/服务与Web应用程序通信的Windows服务。我想那时我会使用tcp listener或remoting与服务进行交谈?
唯一的另一种方法是在服务中实际托管一个Web服务器组件,而不是使用似乎有点过头的IIS。
有没有人对此/推荐有任何经验?
它有点开放,但希望我已经解释了基础知识。
TIA
萨姆
答案 0 :(得分:2)
我可能会尝试再解决一些问题。
启动一个核心项目,其中包含您的所有业务逻辑(不知道用户如何与之交互); DDD领域模型的想法。
然后,创建两个使用该核心项目的项目,一个是您的MVC应用程序,另一个是基于WCF或ServiceStack的服务,可以处理您的TCP内容。
使用正常手段在他们之间分享状态;进程间通信,共享数据库等
答案 1 :(得分:1)
听起来我觉得你正在寻找非常接近Windows Communication Foundation的东西。您对IIS主机,ASP.NET通信和TCP通信的要求。 MSDN简要概述了WCF up here。还有一篇关于运输协议的文章here。
有一些好处 - 如果有点旧 - WCF在Stack Overflow上提问。我自己刚开始钻研这个世界,我不得不承认起初它是令人生畏的。初学者指南(在上面的第一个超链接下找到)有一些稍微陈旧但非常有用的关于WCF的教程视频。
我会说,尽管看起来令人生畏或困难,但为了您的目的而使用现有的已建立的技术肯定比尝试为这样的事情编写自己的自制解决方案更好。
答案 2 :(得分:1)
我开始ServiceStack,因为我需要high-performance web services framework选项来宣传the correct way to develop web services。
可以使用 HttpListener 选项在任何ASP.NET主机或自托管之上运行ServiceStack。有关Console App或Windows Service主机的示例项目,请参阅Starter Templates。虽然即使在IIS下,ServiceStack也非常快,并且在 sub< 1ms 响应时间内执行hello world服务时会产生很少的开销。
ServiceStack还附带.NET's fastest text serializers和无数high-performance caching providers,因此您可以转义XML配置绑定的ASP.NET会话和缓存提供程序模型。
由于ServiceStack鼓励使用基于消息的干净开发模型,因此相同的Web服务可以利用Redis MQ Host允许使用Redis作为代理在HTTP上下文之外调用它 - 使用无代码更改需要即可。