Azure vs WCF vs ASP.NET vs ...它如何组合在一起?

onn*_*web 5 azure azure-worker-roles

一个新手问题.我已经做了很多Java开发(例如GAE)和移动开发,比如iOS和Android.我正在研究Windows Azure作为我们的移动设备与之交互的服务器端服务的平台.我不得不承认我很难理解它.部分原因是首字母缩略词 - 过载.有各种各样的首字母缩略词粘在一起有什么好的指针吗?

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

Anž*_*nik 7

答案应该相当容易.Azure,面向您,是托管服务提供商.它可以帮助您根据需求扩展应用程序服务器(例如,下载和安装应用程序的移动客户端数量).

一点点营销说明:Azure降低了您自己的解决方案的拥有成本,因为它首先消耗(猜测)您需要的硬件数量,然后建立/租用数据中心和/或硬件,从而消除了初始投资.它还为您的应用程序提供某种形式的中间件,如AppFabric,以便它们可以更好地在"云"中进行通信.您还可以在Azure,分布式托管(例如欧洲数据中心,美国数据中心......)上实现负载平衡,已经存在故障安全机制(如果有人失败则自动实例化实例化),显然,随时付费以及您使用的利益.

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

最后,WCFWindows Communication Foundation是另一个框架,这次是用于编写和使用服务.这些是Web服务或其他,例如基于TCP的服务,甚至是基于MSMQ的服务.在我看来,这是你应该看到的暴露你的后端.WCF使您能够轻松指定合同和实现,同时将服务托管和实例化留给IIS(IIS是Microsoft的Web服务器,也在Azure上运行).

现在,尝试回答您的问题:我将继续在公共端点上发布Web角色,托管WCF服务.您的移动应用程序将从那里调用此公共端点(显然由地址和端口定义),并使用基于标准的Web服务与您的服务进行通信.

这有意义吗?

无耻的加:我在博客上写过关于这些流行语和其他内容的文章,欢迎您查看.


use*_*559 5

我认为您所看到的大部分内容都是 .NET 的处理方式。(ASP.NET 和 WCF 是 .NET 技术。)Windows Azure 是一个可以运行各种事物的平台(尽管大多数人将它用于 .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!");
}
Run Code Online (Sandbox Code Playgroud)