目前在Azure移动服务中开发后端系统的“最佳”方式是什么?
具体来说,有哪些工具可用?从我所看到的,大多数示例只是进入管理门户并手动在脚本窗口中添加几行。这比仅使用记事本更糟糕,并且没有版本控制的任何概念...
有没有办法在VS 2012中创建一个包含将在Azure Mobile服务中运行的所有Node.js代码的项目?有没有办法在模仿移动服务的本地开发环境中完全运行该代码?
我需要服务器端代码的复杂性比我能够找到的大多数移动服务示例或文档中显示的复杂程度要高。
我有一个网站和一个需要进行身份验证的Win 8商店应用程序,并从后端数据库访问相对复杂的数据结构。现在推出的解决方案似乎都包含移动服务,它使用简单的REST来对抗原始表,但所有示例都太简单而无法使用。
有人能指出我使用移动服务的“真实”样本,以及使用Visual Studio中的工具开发和测试此类系统的“成熟”方式吗?
感谢。
答案 0 :(得分:4)
为什么除了管理门户之外别无其他选择。对于C#/ .NET开发人员来说,使用console.log()调试回到Notepad样式编程似乎很尴尬。
我希望看到的是一些Node.js入口点,您可以连接到常规C#程序集,它可以满足请求(如在ASP.NET MVC或Web API中),可以使用完整的.NET Framework
我可以看到的可能的架构是:
Azure上托管的ASP.NET MVC ---用逻辑将处理过的数据写入---> Azure SQL DB< ---从--- Azure移动服务中读取----桥接到--->移动设备
或者
Azure上的云工作者角色----运算/处理----> Azure SQL DB< ----读/写原始数据---- Azure移动服务----桥接到--->移动设备
您可以将移动服务工具用于移动设备设施,使用有限代码调度和推送通知,并在托管.NET环境中执行大部分编码。
答案 1 :(得分:4)
自撰写本文以及回复的答案以来,AMS(Azure移动服务)以及Azure已经取得了巨大进步。
其中一些东西仍然适用。如果您有大量不在Azure云门户中编写的node.js,您将需要在线复制并粘贴到门户网站,自定义api调用部分甚至可能是用于CRUD操作的sql后端表。
C#开发人员的希望是它现在处于预览模式,你可以跳过node.js并在没有node.js的情况下很快构建所有内容......有些错误可以解决,但在6个月内这将是公平的固体。
我有问题和问题,一个名叫Carlos carlosfigueira的人非常有帮助。 Azure Mobile Services - Getting more user information
答案 2 :(得分:3)
Josh在此处介绍了单元测试服务器脚本:http://www.thejoyofcode.com/Unit_testing_Mobile_Services_scripts_Day_7_.aspx
在本教程中,他使用Mocha testing framework用于JS(id TDD模式),并通过一个示例来测试加密特定属性(文本)值的INSERT脚本和解密它的读取脚本(值在SQL db中静态加密)。
您还可以找到链接和教程here的汇总。
答案 3 :(得分:1)
我建议您使用Windows Azure Mobile解决方案构建此解决方案,特别是它现在支持Node JS NPM,这意味着您可以使用Node JS NPM在Windows Azure上创建所需的API,并且可以使用它来使用它WAMS很容易。看看以下链接,它将帮助您了解我想说的更多内容。
对于客户端,我还建议您使用SignalR构建它,这是专为实时应用程序需要从服务器端进行大量事务的情况而设计的。
您还可以在以下链接中找到有关如何将这两者集成的详细信息:http://hhaggan.wordpress.com/2013/07/12/signalr-node-js/
我希望这些可以帮到你,如果你还需要其他任何东西,请告诉我。
答案 4 :(得分:1)
为了在本地运行,移动服务在azure网站上具有相同的Kudu环境,因此您可以浏览到https://your_service_name.scm.azure-mobile.net如果从顶部导航导航到调试控制台,您可以下载站点中运行的所有内容/ wwwroot文件夹。
您可以在本地运行此nodejs项目(仅在需要SQL Server npm包时在Windows上)。您的代码位于App_Data / config / scripts中。如果用当前的本地git工作副本替换下载的内容,则可以在本地开发和调试,然后照常推送更改。
答案 5 :(得分:0)
我使用的工具:
步骤:
这个程序允许我快速开发和eclipse告诉我常见的JS错误。但它有明显的缺点:
答案 6 :(得分:0)
我刚做了一篇关于在本地运行Azure移动服务的博客文章:http://www.mikelanzetta.com/2014/09/running-azure-mobile-services-locally/ - 基本上它会询问API并启动快速,并允许您在本地运行mocha。它比从scm链接下拉完整的wwwroot更清晰,我发现使用我的本地运行程序作为git子模块使其易于使用(并且我很容易使用VSO来管理我的测试)。
无论如何,对于实际开发,我使用Git集成和WebStorm - 它会自动计算出我本地Gruntfile中的任务,并使其易于运行和测试。一旦它被部署,邮差是有帮助的。