使用Azure移动服务进行开发?

12

目前在Azure移动服务中,最好的开发后端系统的方式是什么?

具体来说,有哪些可用的工具?从我看到的大部分示例来看,大多数人只是进入管理门户并手动添加一些行到脚本窗口中。这比使用记事本还要糟糕,并且没有版本控制的概念...

是否有办法在VS 2012中创建一个包含所有Node.js代码的项目,该代码将在Azure移动服务上运行?是否有一种完全在本地开发环境中运行该代码以模拟Mobile Services的方法?

我需要具有比我能够找到的大多数Mobile Services示例或文档中显示的复杂性更高的服务器端代码。

我有一个网站和一个Win 8商店应用程序,需要对后端数据库进行身份验证并访问相对复杂的数据结构。目前推荐的解决方案似乎都包括Mobile Services作为中心,使用针对原始表格的简单REST,但所有示例都太简单了,不太有用。

有人能指向一个使用Mobile Services的“现实生活”样本,并使用Visual Studio中的工具开发和测试这样的系统的“成熟”方法吗?

谢谢。


在这里找到了一个不错的关于使用更复杂类型的讨论:http://blogs.msdn.com/b/carlosfigueira/archive/2012/09/11/supporting-complex-types-in-azure-mobile-services-clients-implementing-1-n-table-relationships.aspx - Glen Little
1
我暂时放弃在Azure移动上进行任何工作。等它更加成熟一些,我可能会再次考虑。 - Glen Little
Glen,我必须同意你的观点,他们竟然选择JavaScript来实现服务器端代码,这让我感到震惊。世界上有最好的开发工具和语言可供选择,他们居然选择了JavaScript!你在开玩笑吗? - Cameron
1
在正确的人的手中,JavaScript与其他任何企业级服务器端语言一样出色。您可能已经听说过许多这样的公司,它们全部都在使用基于JavaScript的“node.js”服务器框架:https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node。这并不一定是对Microsoft战略的认可;它只是对JavaScript作为服务器端语言的辩护。 - Holf
7个回答

4
AMS(Azure 移动服务)以及 Azure 在这篇文章和回答发布后有了巨大的进步。其中一些内容仍然适用。如果你有大量的未在 Azure 云门户中编写的 node.js 代码,你需要将其复制并粘贴到在线门户的自定义 API 调用部分,甚至可以为 CRUD 操作添加 SQL 后端表格。对于 C# 开发人员来说,希望的是它现在处于预览模式,不久之后就可以跳过 node.js 构建所有内容……还有一些 bug 需要解决,但在 6 个月内这将非常稳定。我有问题和问题,一个名叫 Carlos carlosfigueira 的家伙非常有帮助。Azure 移动服务 - 获取更多用户信息

我一直在使用C#后端工作,这是Web API的一种包装器。现在你可以本地开发和测试服务了。最近在Tech North America 2014上有一个很棒的演示,可以在这里看到:(http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DEV-B317#fbid=) - Blanthor

4
我不明白为什么没有其他选择除了管理门户。对于C#/.NET开发人员来说,使用console.log()进行调试似乎非常尴尬。
我希望看到一些Node.js入口点,您可以将其连接到常规的C#程序集,该程序集可以使用完整的.NET框架来满足请求(如ASP.NET MVC或Web API)。
可能的架构是在Azure上托管ASP.NET MVC --> 将处理数据和逻辑写入--> Azure SQL DB <-- 从 Azure移动服务读取 ----> 移动设备进行桥接。
或者
在Azure上的云工作角色 --- 处理中/加工数据---> Azure SQL DB <---- 读写原始数据 --- Azure Mobile Services ----桥接到 ---> 移动设备。
您可以使用移动服务设施来提供移动设备功能、计划和推送通知,并在托管的.NET环境中进行大部分编码。

这会更好!我的3个月Azure评估已经结束了...所以我将转向另一个托管平台,可能是AppHarbor。 - Glen Little

3

1
我建议您使用Windows Azure移动解决方案来构建此解决方案,特别是它目前支持Node JS NPM,这意味着您可以在Windows Azure上使用Node JS NPM创建所需的API,并可以轻松地使用WAMS与之交互。请参阅以下链接,它将帮助您更好地理解我的意思。

http://weblogs.asp.net/scottgu/archive/2013/06/14/windows-azure-major-updates-for-mobile-backend-development.aspx

我建议您使用SignalR来构建客户端,它专为实时应用程序设计,适用于像您这样需要大量服务器端事务的情况。

http://www.asp.net/signalr

您还可以在以下链接中找到有关如何集成它们两个的更多详细信息:http://hhaggan.wordpress.com/2013/07/12/signalr-node-js/

希望这些对您有所帮助,如果您需要其他任何帮助,请告诉我。


1

要在本地运行移动服务,与Azure网站相同,移动服务有Kudu环境可用,因此您可以浏览https://your_service_name.scm.azure-mobile.net。如果您从顶部导航转到调试控制台,则可以下载站点/ wwwroot文件夹中运行的所有内容。

您可以在本地运行此nodejs项目(仅适用于Windows,如果需要SQL Server npm包)。您的代码位于App_Data / config / scripts中。如果您使用当前本地git工作副本替换已下载的内容,则可以在本地开发和调试,然后像往常一样推送更改。


0

我刚刚在博客上发布了一篇关于在本地运行Azure移动服务的文章:http://www.mikelanzetta.com/2014/09/running-azure-mobile-services-locally/ - 基本上它会查询API并启动express,允许您在本地自己运行mocha。 它比从scm链接中拉取完整的wwwroot更加干净,而且我发现使用我的本地运行程序作为git子模块使得它易于处理(也方便我使用VSO管理我的测试)。

无论如何,对于实际开发,我使用Git集成和WebStorm - 它会自动找出我的本地Gruntfile中的任务,并使其易于运行和测试。 一旦部署完成,Postman很有帮助。


0

我使用的工具:

  1. Eclipse与JS环境(或任何Node.js IDE)。
  2. Git
  3. Postman

步骤:

  1. 将源代码控制启用到您的Azure移动服务中。
  2. 将其拉到本地并创建一个带有源代码的Eclipse项目。
  3. 进行更改并推送。
  4. 使用POSTman进行测试。

这个过程让我能够快速开发,而且Eclipse会告诉我常见的JS错误。但它也有明显的缺点:

  1. 没有调试功能(我使用console.log)
  2. 项目最终会有很多提交记录(很难使用Git进行适当的源代码控制)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接