我需要建立一个双向通信的网站和应用程序。我将使用ASP.NET构建网站,并使用C#构建应用程序。
我将自己托管该网站,它将与该应用程序在同一台计算机上运行。
我不知道在两者之间发送数据的最佳技术是什么。 C#应用程序需要一直运行。我应该构建一个C#控制台应用程序,然后隐藏控制台窗口吗?或者其他类型的应用程序会更合适吗?
我一直在寻找Web并发现了几个不同的建议,包括套接字,消息队列,远程处理和WCF。一些指示将非常感激 - 我是所有这一切的新手。
谢谢。
EDIT 将使用请求 - 响应模式,Web App始终是实例化请求的模式。这就是双向沟通的意思。
Web应用程序将向后端应用程序发送请求,后端应用程序将执行一些处理,然后将响应发送回Web应用程序。 JSON将用于来回发送数据。
我将使用SQL Server Express 2008 R2,后端应用程序将是唯一与数据库通信的应用程序。 Web应用程序主要关注表示层。
后端应用程序将具有在启动应用程序时实例化的内存中对象(从数据库加载数据),然后持久保存到数据库(在执行期间和关闭之前)。 C#Console应用程序是否适用于此类事情?
答案 0 :(得分:4)
您在评论中描述的是典型的三层应用程序。
只是说清楚。双向有很多含义,但在这种情况下常见的是前端调用后端和后端响应(请求 - 响应模式)。后端从不调用前端 - 使用ASP.NET应用程序很难实现这种通信。
ASP.NET基于每个请求工作。客户端调用您的ASP.NET应用程序,并且处理客户端请求=所有逻辑运行的地方。处理请求时,处理结束。因此,从后端调用ASP.NET应用程序不适合这种情况,除非您为后端处理公开一些特殊的Web服务,但即使在此之后它也不会与您的客户端请求处理相关联,而在ASP.NET中没有内部状态保持应用。
答案 1 :(得分:0)
WCF可能是一个选择。您可以使用WCF构建所需的连接。
另外,我建议你看看SignalR。该项目使您能够在Web应用程序和客户端应用程序之间建立持久连接。 (在这种情况下你的C#应用程序。)。用官方的话来说,SignalR是ASP.NET的异步信令库,可以帮助构建实时的多用户交互式Web应用程序。
答案 2 :(得分:0)
WCF可以工作,你可能也想看看消费/写一个网络服务,但取决于你是否想要同步或异步看起来更像是问题..