Клиентская библиотека хранилища Windows Azure позволяет выполнять операции с хранилищем Windows Azure из Windows Phone. Используя Windows Azure Storage Client, вы можете
- Выполнять операции над таблицей
- Выполнять операции в очереди
- Выполнять операции на 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. Если вы внимательно посмотрите на этот файл, вы увидите, что есть три раздела .
- Настройка подключения к локальному хранилищу фабричной разработки или эмулятору хранилища Windows Azure.
- Настройка подключения к веб-роли Windows Azure, содержащей прокси-серверы хранилища Windows Azure
- Чтобы настроить подключение к 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>
По событию нажатия кнопки сначала необходимо разрешить таблицу клиент, как показано ниже. Установите имя таблицы.
После разрешения Table client вам необходимо создать таблицу, как показано ниже,
После создания таблицы необходимо разрешить контекст, чтобы добавить строки в таблицу.
Вы можете очень сильно изменить вышеупомянутый код, получая значение, которое будет вставлено от пользователя. В этом случае я жестко кодирую долину. При соединении всех кодов у вас должен быть код ниже.
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/