Разработка с помощью Azure Mobile Services?
Что представляет собой "лучший" способ разработки внутренней системы Azure Mobile Services?
В частности, какие инструменты доступны? Из того, что я видел, большинство примеров просто перейдите на портал управления и вручную добавьте несколько строк в окно script. Это хуже, чем использование "Блокнота" и не имеет понятия контроля версий...
Есть ли способ сделать проект в VS 2012, содержащий весь код Node.js, который будет запущен в службе Azure Mobile? Есть ли способ полностью запустить этот код в локальной среде разработки, которая имитирует мобильные службы?
Мне нужно иметь код на стороне сервера с гораздо большей степенью сложности, чем показано в большинстве примеров или документации Mobile Services, которые я смог найти.
У меня есть веб-сайт и приложение для Win 8 Store, которым необходимо пройти аутентификацию и получить доступ к относительно сложным структурам данных из базы данных. Решение, которое сейчас выдвигается, похоже, включает в себя мобильные службы в центре его, используя простой REST для необработанных таблиц, но все примеры слишком просты, чтобы быть полезными.
Может ли кто-нибудь указать мне на "реальный" образец использования мобильных сервисов и "зрелый" способ разработки и тестирования такой системы с помощью инструментов в Visual Studio?
Спасибо.
Ответы
Ответ 1
Почему у вас нет другого выбора, кроме того, что портал управления действительно находится вне меня. Для разработчика С#/.NET очень сложно вернуться к программированию в стиле Notepad с помощью отладки console.log().
Мне бы хотелось увидеть некоторые точки входа Node.js, которые вы могли бы подключить к обычной сборке С#, которая могла бы выполнить запрос (как в ASP.NET MVC или веб-API) с полной .NET Framework при ваше распоряжение.
В качестве возможной архитектуры я мог бы видеть:
ASP.NET MVC размещен на Azure
--- записывает обработанные данные с логикой в --- > Azure SQL DB < --- читается с --- Azure Mobile Services ---- bridge to --- > Мобильные устройства
или
Роль облачного рабочего на Azure ---- хруст/обработка ---- > Azure SQL DB < ---- чтение/запись необработанных данных ---- Azure Mobile Services ---- bridge to --- > Мобильные устройства
Вы можете использовать средство мобильных служб для объектов мобильных устройств, планировать и нажимать уведомления с ограниченным кодом и выполнять большую часть кодирования в управляемой среде .NET.
Ответ 2
AMS (Azure Mobile Services) вместе с Azure значительно продвинулась вперед, поскольку этот пост был написан, и ответ ответил.
Некоторые из этих вещей по-прежнему сохраняются. Если у вас есть тонна node.js, написанная не в облачном портале Azure, вы захотите скопировать и вставить в портал онлайн, пользовательские секции вызовов api и даже, возможно, sql файлы для операций CRUD.
Надежда для разработчиков С# заключается в том, что он работает в режиме предварительного просмотра, в котором вы можете пропустить node.js и построить все без node.js очень скоро... Некоторые ошибки для разработки, но через 6 месяцев это будет довольно солидно.
У меня были вопросы и проблемы, и парень по имени Карлос Карлосфигейра был очень полезен.
Azure Mobile Services - Получение дополнительной информации о пользователе
Ответ 3
Josh охватывает серверные скрипты для тестирования модулей: http://www.thejoyofcode.com/Unit_testing_Mobile_Services_scripts_Day_7_.aspx
В этом учебном пособии он использует схему тестирования мокки для JS (режим ID TDD) и просматривает пример тестирования INSERT script, который зашифровывает значение определенного свойства (текста) и прочитает script, который расшифровывает его (значение зашифровывается в покое в SQL db).
Вы также можете найти агрегацию ссылок и руководств здесь.
Ответ 4
Я бы предположил, что вы создаете это решение с использованием решений Windows Azure Mobile, особенно поддерживая Node JS NPM прямо сейчас, что означает, что вы можете создать API, который вы хотите использовать в Windows Azure, с помощью Node JS NPM и можете работать с ним с помощью 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/
Я надеюсь, что это поможет вам, сообщите мне, если вам нужно что-нибудь еще.
Ответ 5
Для локального использования мобильная служба имеет ту же среду Kudu, которая доступна на лазурных веб-сайтах, поэтому вы можете перейти на https://your_service_name.scm.azure-mobile.net Если вы перемещаетесь к консоли отладки с верхней навигационной системы, вы можете загрузить все, что запущено в папке сайта /wwwroot.
Вы можете запустить этот проект nodejs локально (на окнах, только если вам нужен пакет npm для SQL Server). Ваш код находится в App_Data/config/scripts. Если вы замените загруженный контент на текущую локальную рабочую копию git, вы можете развернуть и отладить локально, а затем вносить изменения, как обычно.
Ответ 6
Инструменты, которые я использую:
- Eclipse с окружением JS (или любой IDE узла).
- Git
- Почтальон
Шаги:
- Включить контроль источника для вашей мобильной службы azure.
- Потяните за свой локальный файл и создайте проект затмения с источником.
- Внесите изменения и нажмите.
- Тест с POSTman
Эта процедура позволяет мне быстро развиваться, и затмение говорит мне об общих ошибках JS. Но это имеет очевидный недостаток:
- Нет отладки (я использую console.log)
- В результате проекта появилось много коммитов (его трудно использовать git для правильного управления исходным кодом).
Ответ 7
Я только что опубликовал сообщение в блоге о запуске Azure Mobile Services локально: http://www.mikelanzetta.com/2014/09/running-azure-mobile-services-locally/ - в основном он запрашивает API и запускает экспресс, и позволяет запускать мокко самостоятельно. Это немного чище, чем вытащить весь wwwroot из ссылки scm, и я нашел, используя мой локальный бегун в качестве подмодуля git, с которым легко работать (и мне легко использовать VSO для управления моими тестами).
В любом случае, для реальной разработки я использую интеграцию git и WebStorm - она автоматически определяет задачи в моем локальном файле Grunt и упрощает ее запуск и тестирование. На этот раз Postman будет полезен.