Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure vs WCF vs ASP.NET vs。。。它是如何结合在一起的?_Azure_Azure Worker Roles - Fatal编程技术网

Azure vs WCF vs ASP.NET vs。。。它是如何结合在一起的?

Azure vs WCF vs ASP.NET vs。。。它是如何结合在一起的?,azure,azure-worker-roles,Azure,Azure Worker Roles,一个新手问题。我做过很多Java开发(如GAE)和移动开发(如iOS和Android)。我正在调查Windows Azure作为我们的移动设备与之交互的服务器端服务平台。我得承认我很难理解它。部分原因是首字母缩略词过载。各种首字母缩略词是如何粘合在一起的,有什么好的指示吗 我已经完成了一些教程,但它们主要关注在Azure中创建网站。在我们的例子中,实际上没有任何网页,而是设备调用的服务(一些REST,一些其他)。也许要问一个特定的问题:工作者角色或web角色如何检索发送到我为其创建的端点的htt

一个新手问题。我做过很多Java开发(如GAE)和移动开发(如iOS和Android)。我正在调查Windows Azure作为我们的移动设备与之交互的服务器端服务平台。我得承认我很难理解它。部分原因是首字母缩略词过载。各种首字母缩略词是如何粘合在一起的,有什么好的指示吗


我已经完成了一些教程,但它们主要关注在Azure中创建网站。在我们的例子中,实际上没有任何网页,而是设备调用的服务(一些REST,一些其他)。也许要问一个特定的问题:工作者角色或web角色如何检索发送到我为其创建的端点的http post的内容?

我认为您看到的大部分是.NET的处理方式。(ASP.NET和WCF是.NET技术。)WindowsAzure是一个可以运行各种东西的平台(尽管大多数人使用它来运行.NET)。在Windows Azure web角色中,您的代码只在IIS(web服务器)下运行,您可以在其中运行ASP.NET、WCF、PHP等

我认为人们在Windows Azure中构建REST API的最常见方式是使用ASP.NET MVC 3或WCF构建REST服务,然后以web角色托管该服务。如何获取发布到端点的数据取决于使用哪种技术。在ASP.NET MVC 3下,您可以编写如下内容:

[HttpPost]
public ActionResult CreateMessage(string title, string body)
{
    // use title and body here... they'll be the parameters in the HTTP post
    return Content("Message created!");
}

可以使用Windows Cuffic Foundation(WCF)发布服务端点。这可以是SOAP或REST端点

此服务端点将托管在web角色上。您可以将web角色视为具有IIS的服务器

工作者角色有点像windows服务


以一个场景为例,您将通过web服务接收一些数据,然后进行一些计算,然后存储结果。在这种情况下,您将拥有一个web角色,其中包含一个接收数据的web服务。它将数据存储在队列中。工作者角色的程序将监视队列、提取任何新数据、进行计算并将结果存储在表中。

对此的回答应该相当简单。Azure,对你来说,是一个托管提供商。它可以帮助您根据需求(例如,下载和安装应用程序的移动客户端数量)扩展应用程序服务器

一点营销演讲:Azure降低了您自己的解决方案的拥有成本,因为它带走了您首先计算(猜测)所需硬件数量,然后建造/租用数据中心和/或硬件的初始投资。它还为您的应用程序提供了某种形式的中间件,如AppFabric,以便它们可以更好地在“云”中通信。您还可以在Azure上实现负载平衡、分布式托管(例如,欧洲数据中心、美国数据中心……)和故障保护机制(如果出现故障,则自动实例化实例),以及明显的,现收现付和使用的好处

从那以后,ASP.NET就是一个应用程序框架,特别是一个web应用程序框架。它可以帮助您使用八个或多个浏览器编写基于web的应用程序。对于您所说的,这对您来说应该没有多大用处(仅用于运行后端系统)。但是,如果您需要一个web应用程序,是的,ASP.NET可以完美地与Azure配合使用(显然)

最后,<强> WCF 或Windows通信基础,是另一个框架,用于编写和消费服务。这些服务可以是web服务,也可以是其他服务,例如基于TCP的服务,甚至基于MSMQ的服务。在我看来,这是暴露后端时应该考虑的问题。WCF使您能够轻松指定契约和实现,同时将服务的宿主和实例化留给IIS(IIS是Microsoft的web服务器,它也在Azure上运行)

现在,尝试回答您的问题: 我会在公共端点公开一个web角色,托管一个WCF服务。您的移动应用程序将从此处调用此公共端点(显然由地址和端口定义),并使用基于标准的web服务与您的服务进行通信

这有意义吗


无耻加:我写过这些流行语之类的东西

我的观点是:如果你是用Java开发的,你可能应该选择谷歌或亚马逊而不是Azure。Azure使开发基于云的应用变得非常容易,但只有当你进入Microsoft生态系统(即NET、WCF、ASP)时才可以。我不同意,你应该选择最能解决给定问题的技术。在这种情况下,最佳意味着最高效、最经济、最短的时间。考虑到Azure(&微软生态系统)所能做的,至少不看看它的好处和潜在用途是不负责任的。我更喜欢GAE,但该公司是一家微软商店,所以选择是预设的。谢谢!这有助于将一些片段放到上下文中。树木、森林等等。