Статьи

Клиентская библиотека хранилища Windows Azure для Windows Phone: часть 1

Клиентская библиотека хранилища Windows Azure позволяет выполнять операции с хранилищем Windows Azure из Windows Phone. Используя Windows Azure Storage Client, вы можете

  1. Выполнять операции над таблицей
  2. Выполнять операции в очереди
  3. Выполнять операции на BLOB

Если вы не используете клиентскую библиотеку хранилища Windows Azure, для работы с хранилищем Windows Azure может потребоваться создание службы WCF. Windows Phone выполнит вызов службы, а служба будет использовать библиотеку хранилища Windows Azure для выполнения операций с хранилищем Azure. Однако, используя клиент хранилища Windows Azure для Windows Phone, вы можете напрямую выполнять операции с хранилищем Windows Azure.

Вы можете получить клиентскую библиотеку Windows Azure Storage и установить ее с помощью NuGet. Узнайте больше о NuGet здесь . После того, как вы установили NuGet, создайте приложение для Windows Phone 7.1, выбрав целевую версию Windows Phone 7.1.

образ

После успешного создания проекта перейдите в Инструменты, затем в Диспетчер пакетов библиотеки, вы получите опцию для консоли диспетчера пакетов. Идите вперед и выберите эту опцию.

образ

В нижней части Visual Studio вы получите Консоль управления пакетами. Идите вперед и установите пакет Phone.Storage в проект.

Вы можете установить пакет с помощью команды ниже

PM> Install-Package Phone.Storage

образ

После успешной установки пакета Phone.Storage у вас должны быть ниже ссылки и файл в обозревателе решений.

образ

StorageInitializer.cs — очень важный класс. В этом классе вы можете указать, хотите ли вы выполнять операции с локальным хранилищем среды разработки или с хранилищем Azure. Если вы внимательно посмотрите на этот файл, вы увидите, что есть три раздела .

  1. Настройка подключения к локальному хранилищу фабричной разработки или эмулятору хранилища Windows Azure.
  2. Настройка подключения к веб-роли Windows Azure, содержащей прокси-серверы хранилища Windows Azure
  3. Чтобы настроить подключение к Windows Azure Storage напрямую.

Все настройки закомментированы, кроме работы с хранилищем Windows Azure Emulator. Если вы хотите работать с Windows Azure Storage напрямую, вы можете сделать это, комментируя третий раздел файла и предоставляя Имя учетной записи и Ключ учетной записи. Ниже находится некомментированный раздел в файле StorageInitalizer.cs. Вам необходимо указать имя и ключ учетной записи Windows Azure Storage.

образ

Теперь позвольте нам сказать, что вы хотите создать таблицу с именем Student . Для этого добавьте класс с именем Student. Класс сущности ученика наследует класс TableServiceEntity .

 

using Microsoft.WindowsAzure.Samples.Phone.Storage;


namespace PhoneApp9
{
public class Student :TableServiceEntity
{
public string Name { get; set; }
public string RollNumber { get; set; }
public string Grade { get; set; }
}
}

 

Далее, в качестве дизайна страницы, я поместил кнопку и, при нажатии кнопки, будет создана таблица ученика, если она не существует, и будет добавлена ​​одна строка.

Дизайн страницы, как показано ниже,

 

<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>

<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>

<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button x:Name="btnCreateTable" Height="100" Content="Create Table" Margin="46,254,128,254" Click="btnCreateTable_Click" />
</Grid>
</Grid>
 

 

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

clip_image002

После разрешения Table client вам необходимо создать таблицу, как показано ниже,

clip_image003

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

clip_image005

Вы можете очень сильно изменить вышеупомянутый код, получая значение, которое будет вставлено от пользователя. В этом случае я жестко кодирую долину. При соединении всех кодов у вас должен быть код ниже.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using Microsoft.WindowsAzure.Samples.Phone.Storage;

namespace PhoneApp9
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}

private void btnCreateTable_Click(object sender, RoutedEventArgs e)
{
var tableClient = CloudStorageContext.
Current.Resolver.
CreateCloudTableClient();

var tableName = "Student";

tableClient.CreateTableIfNotExist(
tableName,
p =>
{
var context = CloudStorageContext.
Current.
Resolver.
CreateTableServiceContext();
var sampleData = new Student
{  Grade = "A",
Name="DJ",
RollNumber="1",
PartitionKey="s2",
RowKey="s"
};

context.AddObject(tableName, sampleData);

context.BeginSaveChanges(
asyncResult =>
{
var response = context.EndSaveChanges(asyncResult);

},
null);
});

}
}
}

После того, как вы запустите событие нажатия кнопки, вы сможете добавить строку в таблицу. Надеюсь этот пост полезен. Спасибо за чтение.

 Источник: http://debugmode.net/2012/01/09/windows-azure-storage-client-library-for-windows-phone-part-1/