C# 用于分布式桌面和web应用程序的Azure服务

C# 用于分布式桌面和web应用程序的Azure服务,c#,azure,cloud,C#,Azure,Cloud,我正试图找出使用哪种Azure服务来创建分布式应用程序。该应用程序包括 在Azure中获取、操作和存储数据的桌面(Windows)应用程序 存储数据并进行后台处理的后端 一个web前端,允许我查看数据并在后端触发后台处理 任何数量的桌面应用程序实例都可以连接到后端并访问相同的数据 桌面应用程序和web应用程序将向后端发送和接收数据。每条消息的最大容量可达100 MB(图像等) 蔚蓝的宇宙有点让人不知所措,我正试图找出如何设置它 我最初的想法是让桌面应用程序通过WCF与Azure云服务通信。云

我正试图找出使用哪种Azure服务来创建分布式应用程序。该应用程序包括

  • 在Azure中获取、操作和存储数据的桌面(Windows)应用程序
  • 存储数据并进行后台处理的后端
  • 一个web前端,允许我查看数据并在后端触发后台处理
  • 任何数量的桌面应用程序实例都可以连接到后端并访问相同的数据
桌面应用程序和web应用程序将向后端发送和接收数据。每条消息的最大容量可达100 MB(图像等)

蔚蓝的宇宙有点让人不知所措,我正试图找出如何设置它

我最初的想法是让桌面应用程序通过WCF与Azure云服务通信。云服务是使用WCF web角色设置的。一个单独的web应用程序(web角色?)正在与同一个WCF web角色通信

WCF角色还将启动工作者角色,以执行更繁重、耗时的处理


欢迎提出任何想法和见解!:)

对于WCF服务和web前端,您可以同时使用Azure云服务或应用程序服务-这主要取决于您是否需要在计算机上安装某些第三方组件(Azure云服务允许您这样做)

对于后台处理,请使用应用程序服务中的Web作业或云服务中的工作者角色。您还应该使用一些队列(我喜欢更多的服务总线,而不是来自存储帐户的Azure队列)。您的工作者角色或Web作业应监视此队列,当您向其发送一些消息时,应触发一些后台处理。后台处理也可以在WCF进程本身中完成,但使用工作者角色或Web作业可以提供更多可用性

对于存储blob(如图像),一定要使用Microsoft存储(blob),对于其他数据,可以使用Sql数据库或一些非常新的东西:DocumentDB。Sql数据库使用更简单,更容易将数据迁移到其他服务器等,但成本更高


当然,你也可以在虚拟机上这样做,但我想这不是你想要的:)

对于WCF服务和web前端,你可以同时使用Azure云服务或应用程序服务-这主要取决于你是否需要在机器上安装一些第三方组件(Azure云服务允许你这样做)

对于后台处理,请使用应用程序服务中的Web作业或云服务中的工作者角色。您还应该使用一些队列(我喜欢更多的服务总线,而不是来自存储帐户的Azure队列)。您的工作者角色或Web作业应监视此队列,当您向其发送一些消息时,应触发一些后台处理。后台处理也可以在WCF进程本身中完成,但使用工作者角色或Web作业可以提供更多可用性

对于存储blob(如图像),一定要使用Microsoft存储(blob),对于其他数据,可以使用Sql数据库或一些非常新的东西:DocumentDB。Sql数据库使用更简单,更容易将数据迁移到其他服务器等,但成本更高


当然,你也可以在虚拟机上这样做,但我想这不是你想要的:)

谢谢!WCF是桌面应用程序和我的云服务之间通信的方式,还是我应该使用另一种技术?您必须选择WCF或WebApi。WebApi的配置更简单,但WCF功能更强大。这是一组观点。你的答案到处都是:你已经锁定了云服务和应用服务(忘记了虚拟机);您已经将web作业或工作者角色作为后台处理(忽略在已经运行的web/wcf角色实例中执行相同操作的能力);您已经告诉op一定要使用blob作为图像,然后告诉op SQL数据库“使用起来更简单”(我可以很容易地对此进行辩论,但这不是问题所在)。你对定价的评论毫无意义。@DavidMakogon请提供更好的服务,以用于他的案例,而不是批评。@Jotto我认为这个问题没有任何问题。我觉得这很合适。谢谢!WCF是桌面应用程序和我的云服务之间通信的方式,还是我应该使用另一种技术?您必须选择WCF或WebApi。WebApi的配置更简单,但WCF功能更强大。这是一组观点。你的答案到处都是:你已经锁定了云服务和应用服务(忘记了虚拟机);您已经将web作业或工作者角色作为后台处理(忽略在已经运行的web/wcf角色实例中执行相同操作的能力);您已经告诉op一定要使用blob作为图像,然后告诉op SQL数据库“使用起来更简单”(我可以很容易地对此进行辩论,但这不是问题所在)。你对定价的评论毫无意义。@DavidMakogon请提供更好的服务,以用于他的案例,而不是批评。@Jotto我认为这个问题没有任何问题。这对我来说似乎很合适。这是一个非常广泛和征求意见的过程。实现这一点的方法有很多。这是一次非常棒的讨论,但并不是StackOverflow的话题。这是一次非常广泛的讨论,也是一次征求意见的活动。实现这一点的方法有很多。这是一次很好的讨论,但不是针对StackOverflow的讨论。