Я очень рад представить уже доступный Windows Azure Toolkit для iOS! Первый выпуск Windows Azure Toolkit для iOS упрощает и удобен доступ к хранилищу Windows Azure из приложений iOS. То же, что и для Набор инструментов Windows Azure для Windows Phone 7 мы будем добавлять в набор инструментов новые функции, такие как push-уведомления, служба контроля доступа и т. д.
|
|
|
- Источник: https://github.com/microsoft-dpe/watoolkitios-lib
- Пример приложения: https://github.com/microsoft-dpe/watoolkitios-samples
- Документация: https://github.com/microsoft-dpe/watoolkitios-doc
Его можно использовать для прямого доступа к хранилищу 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 и создайте новый проект:Выбирать Приложение на основе представлений и нажмите Следующий .
Укажите название проекта и компанию.
В этом пошаговом руководстве мы назовем это «Первый ЛазурныйПроект» .
Модульный тест не включай его.
Выберите папку, в которую сохраните проект, и снимите флажок.
хранилище исходного кода .
Когда проект откроется, щелкните правой кнопкой мыши Рамки и выберите Добавить файлы в.
Найти библиотеку libwatoolkitios.a в папке скачанного пакета (для эмулятора или устройства) и добавьте его в папку Рамки .
Теперь щелкните самый верхний проект (FirstAzureProject) в левом столбце.
Нажмите на цели.
Нажмите на заголовок Настройки сборки в третьем столбце.
Проверьте, что выбрано Все для отображения всех настроек.
В поле поиска введите поиск по заголовку и найди настройку Пути поиска заголовков :
Дважды щелкните по строке (с правой стороны) и нажмите на кнопку + Нижний левый.
Добавьте путь к папке, содержащей заголовочные файлы (одна из папок, которая создается при распаковке скачанного архива).
Например, «~/Desktop/v1.0.0/include», если архив был разархивирован на рабочий стол.
Не забудьте заключить путь в кавычки, если он содержит пробелы.
Теперь нажмите на закладку Этапы сборки и разверните раздел Связывание двоичных файлов с библиотеками :
Нажмите на кнопку + внизу слева и прокрутите список вниз, пока не найдете библиотеку 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]);
}
}];
Что еще можно сделать?
Если вас интересует, что еще можно сделать с помощью инструментария, рекомендую посмотреть пример приложения — проекта.Проект демонстрирует все возможности инструментария, включая создание, загрузку и извлечение записей из хранилища таблиц и BLOB-объектов.
Теги: #iOS #разработка iOS #azure #toolkit
-
Революция Компакт-Дисков И Графика
19 Oct, 24 -
Лацертиды
19 Oct, 24 -
Имя Нового Домена Active Directory
19 Oct, 24