Начало Работы С Набором Инструментов Windows Azure Для Ios

Я очень рад представить уже доступный Windows Azure Toolkit для iOS! Первый выпуск Windows Azure Toolkit для iOS упрощает и удобен доступ к хранилищу Windows Azure из приложений iOS. То же, что и для Набор инструментов Windows Azure для Windows Phone 7 мы будем добавлять в набор инструментов новые функции, такие как push-уведомления, служба контроля доступа и т. д.



Начало работы с набором инструментов Windows Azure для iOS



Начало работы с набором инструментов Windows Azure для iOS



Начало работы с набором инструментов Windows Azure для iOS

Вы можете скачать набор инструментов и весь исходный код на github: Есть два способа использования набора инструментов.

Его можно использовать для прямого доступа к хранилищу Windows Azure или, альтернативно, через прокси-службу.

Код прокси-службы такой же, как тот, который используется в наборе инструментов Windows Azure для Windows Phone 7, и устраняет необходимость хранить учетные записи хранения Azure локально на устройстве.

Этот выпуск Windows Azure Toolkit для iOS является важной вехой и укрепляет мою веру в то, что Windows Azure — отличное место для запуска служб для мобильных приложений.



Развертывание служб Windows Azure

Если вам необходимо быстро настроить и запустить мобильную службу в Windows Azure, обратите внимание на Cloud Ready Package for Devices (который можно найти в файлах для скачивания).

https://github.com/microsoft-dpe/watoolkitios-lib ) Пакет Cloud Ready Package for Devices предназначен для упрощения создания мобильных приложений, использующих возможности служб, работающих в Windows Azure. Вместо того, чтобы открывать Visual Studio и компилировать решение со службами, которые вы хотите использовать, мы предоставляем вам готовые файлы Windows Azure CSPKG и CSCFG — все, что вам нужно сделать, это обновить файл конфигурации, указав свои учетные данные.

В этом видео вы можете увидеть, насколько легко развернуть пакет в Windows Azure независимо от вашей операционной системы (например, Windows 7 или OSX) и целевого устройства (например, Windows Phone 7, iOS или Android).

Подробнее о Windows Azure Toolkit для Windows Phone 7 и Windows Azure Toolkit для iOS можно прочитать в блоге автора: Уэйд Вегнер .



Распаковка zip-файла библиотеки v1.0.0

Скомпилированную библиотеку для работы с репозиторием можно скачать с github (можно найти в загрузках).

https://github.com/microsoft-dpe/watoolkitios-lib ).

После распаковки будет несколько папок:

  • /4.3-device — бинарная библиотека для iOS 4.3 (устройство)
  • /4.3-simulator — бинарная библиотека для iOS 4.3 (эмулятор)
  • /include — заголовочные файлы библиотеки.



Создание вашего первого проекта с использованием инструментария

Если вы не знакомы с XCode, ниже приведено краткое руководство о том, как создать и запустить свой первый проект. Запустите XCode и создайте новый проект:

Начало работы с набором инструментов Windows Azure для iOS

Выбирать Приложение на основе представлений и нажмите Следующий .

Укажите название проекта и компанию.

В этом пошаговом руководстве мы назовем это «Первый ЛазурныйПроект» .

Модульный тест не включай его.



Начало работы с набором инструментов Windows Azure для iOS

Выберите папку, в которую сохраните проект, и снимите флажок.

хранилище исходного кода .

Когда проект откроется, щелкните правой кнопкой мыши Рамки и выберите Добавить файлы в.



Начало работы с набором инструментов Windows Azure для iOS

Найти библиотеку libwatoolkitios.a в папке скачанного пакета (для эмулятора или устройства) и добавьте его в папку Рамки .



Начало работы с набором инструментов Windows Azure для iOS

Теперь щелкните самый верхний проект (FirstAzureProject) в левом столбце.

Нажмите на цели.

Нажмите на заголовок Настройки сборки в третьем столбце.

Проверьте, что выбрано Все для отображения всех настроек.

В поле поиска введите поиск по заголовку и найди настройку Пути поиска заголовков :

Начало работы с набором инструментов Windows Azure для iOS

Дважды щелкните по строке (с правой стороны) и нажмите на кнопку + Нижний левый.



Начало работы с набором инструментов Windows Azure для iOS

Добавьте путь к папке, содержащей заголовочные файлы (одна из папок, которая создается при распаковке скачанного архива).

Например, «~/Desktop/v1.0.0/include», если архив был разархивирован на рабочий стол.

Не забудьте заключить путь в кавычки, если он содержит пробелы.



Начало работы с набором инструментов Windows Azure для iOS

Теперь нажмите на закладку Этапы сборки и разверните раздел Связывание двоичных файлов с библиотеками :

Начало работы с набором инструментов Windows Azure для iOS

Нажмите на кнопку + внизу слева и прокрутите список вниз, пока не найдете библиотеку libxml2.2.7.3.dylib .

Добавьте эту библиотеку в свой проект.

Проверим, что все работает

Теперь, когда все необходимые ссылки добавлены, давайте проверим возможность вызова функций библиотеки.

Для этого дважды щелкните файл [ProjectName]AppDelegate.m (например, FirstAzureProjectAppDelegate.m) и добавьте в класс импорт следующих файлов заголовков:

  
  
  
  
  
  
  
  
  
  
  
  
  
   

#import "AuthenticationCredential.h" #import "CloudStorageClient.h"

Завершите сборку.

Если сборка завершится успешно, значит, библиотека правильно добавлена в проект. Если это не удалось, рекомендуется вернуться и проверить настройку путей поиска заголовков.

Предполагая, что все собрано, в файле .

m добавьте после строк следующие объявления: синтезировать :

AuthenticationCredential *credential; CloudStorageClient *client;

Теперь добавьте следующий код после строки [self.window makeKeyAndVisible] метод DidFinishLaunchingWithOptions :

credential = [AuthenticationCredential credentialWithAzureServiceAccount:@"ACCOUNT_NAME" accessKey:@"ACCOUNT_KEY"]; client = [CloudStorageClient storageClientWithCredential:credential]; [client getBlobContainersWithBlock:^(NSArray* containers, NSError* error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i containers were found…",[containers count]); } }];

Проверьте, что вы заменили ИМЯ УЧЕТНОЙ ЗАПИСИ И АККАУНТ_КЛЮЧ ваше имя и ключ доступа к хранилищу Windows Azure, который можно получить на портале управления Windows Azure ( http://windows.azure.com ).

Создайте и запустите проект. В окне отладки вы должны увидеть что-то похожее на текст ниже:

2011-05-06 18:18:46.001 FirstAzureProject[27456:207] 2 containers were found…

Здесь написано, что аккаунт содержит 2 контейнера.

Это, конечно, зависит от того, сколько контейнеров BLOB вы создали в своей учетной записи Windows Axure.

Что еще можно сделать с помощью набора инструментов?

Просмотрите документацию класса, чтобы узнать больше об API, предоставляемом набором инструментов.

Ниже приведены некоторые дополнительные примеры.

Для класса [ProjectName]AppDelegate.m добавьте следующие файлы заголовков:

#import "AuthenticationCredential.h" #import "CloudStorageClient.h" #import "BlobContainer.h" #import "Blob.h" #import "TableEntity.h" #import "TableFetchRequest.h"

В методе DidFinishLaunchingWithOptions , после строки [self.window makeKeyAndVisible] попробуйте некоторые из следующих команд. Опять же, когда вы запустите проект, результат появится в окне отладчика.

Аутентификация с использованием имени и ключа учетной записи:

credential = [AuthenticationCredential credentialWithAzureServiceAccount:@"ACCOUNT_NAME" accessKey:@"ACCOUNT_KEY"];

Аутентификация с использованием прокси-службы из Windows Azure Toolkit для Windows Phone 7:

credential = [AuthenticationCredential authenticateCredentialWithProxyURL:[NSURL URLWithString:@"PROXY_URL"] user:@"USERNAME" password:@"PASSWORD" withBlock:^(NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"Successfully logged in"); } }];

Заменять PROXY_URL , ИМЯ ПОЛЬЗОВАТЕЛЯ И ПАРОЛЬ данные, необходимые для доступа к вашему прокси-сервису.

Создание нового клиента для доступа к хранилищу:

client = [CloudStorageClient storageClientWithCredential:credential];

Получение списка BLOB-контейнеров (через прокси-сервер не поддерживается):

// get all blob containers [client getBlobContainersWithBlock:^(NSArray *containers, NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i containers were found…",[containers count]); } }];

Получение всех BLOB-объектов контейнера (также не поддерживается через прокси):

// get all blobs within a container [client getBlobs:@"images" withBlock:^(NSArray *blobs, NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i blobs were found in the images container…",[blobs count]); } }];

Получить все таблицы из хранилища (работает как через прокси, так и напрямую):

// get all tables [client getTablesWithBlock:^(NSArray* tables, NSError* error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i tables found",[tables count]); } }];

Создаем таблицу (работает как через прокси, так и напрямую):

// create table [client createTableNamed:@"wadestable" withBlock:^(NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"Table created"); } }];

Удалить таблицу (работает как через прокси, так и напрямую):

//delete a table [client deleteTableNamed:@"wadestable" withBlock:^(NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"Table was deleted"); } }];

Получить записи из таблицы (работает как через прокси, так и напрямую):

// get entities for table developers TableFetchRequest* fetchRequest = [TableFetchRequest fetchRequestForTable:@"Developers"]; [client getEntities:fetchRequest withBlock:^(NSArray *entities, NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i entities found in the developer table",[entities count]); } }];

Получить записи из таблицы с помощью предикатов (работает как через прокси, так и напрямую):

// get entities for table developers with predicate request NSError* error = nil; NSPredicate* predicate = [NSPredicate predicateWithFormat:@"Name = 'Wade' || Name = 'Vittorio' || Name = 'Nathan'"]; TableFetchRequest* anotherFetchRequest = [TableFetchRequest fetchRequestForTable:@"Developers" predicate:predicate error:&error]; [client getEntities:anotherFetchRequest withBlock:^(NSArray *entities, NSError *error) { if (error) { NSLog(@"%@",[error localizedDescription]); } else { NSLog(@"%i entities returned by this request",[entities count]); } }];



Что еще можно сделать?

Если вас интересует, что еще можно сделать с помощью инструментария, рекомендую посмотреть пример приложения — проекта.

watoolkitios-образцы .

Проект демонстрирует все возможности инструментария, включая создание, загрузку и извлечение записей из хранилища таблиц и BLOB-объектов.

Теги: #iOS #разработка iOS #azure #toolkit

Вместе с данным постом часто просматривают: