6

一个新手问题。我已经完成了大量的 Java 开发(例如 GAE)和移动开发,例如 iOS 和 Android。我正在研究将 Windows Azure 作为我们的移动设备与之交互的服务器端服务的平台。我不得不承认我很难理解它。其中一部分是首字母缩写词重载。有没有什么好的指示如何将各种首字母缩略词粘合在一起?

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

4

3 回答 3

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 服务与您的服务进行通信。

这有意义吗?

无耻之加:我已经在我的博客上写过这些流行语和诸如此类的东西,欢迎您查看

于 2011-08-09T10:48:56.113 回答
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!");
}
于 2011-08-08T21:05:39.803 回答
0

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

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

工作者角色有点像 Windows 服务。

例如,您将通过 Web 服务接收一些数据,然后进行一些计算,然后存储结果。在这种情况下,您将拥有一个具有 Web 服务的 Web 角色,该 Web 服务将接收数据。它将数据存储在队列中。工作者角色的程序将监视队列,获取任何新数据,进行计算并将结果存储在表中。

于 2011-08-08T21:25:46.137 回答