Опубликован: 25.05.2011 | Уровень: специалист | Доступ: платный
Лекция 9:

Microsoft® .NET Services

Лабораторная работа 3. Создание первого Windows Azure приложения

Целью лабораторной работы является практическое освоение создания приложений Windows Azure.

Аппаратура и программные инструменты, необходимые для лабораторной работы

  1. Настольный или портативный компьютер, поддерживающий виртуализацию, операционная система Microsoft Windows XP, Vista, Windows 7.
  2. Доступ к сети Интернет.
  3. Наличие аккаунта Windows Azure.

Продолжительность лабораторной работы

2 академических часа

Создание проекта в Visual Studio

  1. Откройте меню Пуск | Все программы| Microsoft Visual Studio 2010 | Microsoft Visual Studio 2010.
  2. В меню File выберите New и затем Project.
  3. В диалоговом окне New Project разверните узел Visual C# и в списке Installed Templates выберите Cloud.
  4. В списке Templates выберите Windows AzureCloud Service. Введите Name "GuestBook", имя solution "Begin". Затем выберите расположение внутри папки Ex1-BuildingYourFirstWindowsAzureApp. Убедитесь что опция Create directory for solution выбрана и нажмите OK чтобы создать проект.

    Создание нового проектаWindows Azure Cloud Service

    Создание нового проектаWindows Azure Cloud Service

  5. В диалоге New Cloud Service Project разверните узел Visual C# и выберите ASP.NET Web Role. Переместите выбранную роль в проект. Выберите роль в проекте, нажмите на изображение "карандаш" и введите имя GuestBook_WebRole. Нажмите OK для завершения.

    Добавление ролей в проект

    Добавление ролей в проект

  6. Обратите внимание на структуру проекта в Solution Explorer.

    Структура проекта в Solution Explorer

    Структура проекта в Solution Explorer

Создание модели данных для элементов в Table Storage

  1. В Solution Explorer нажмите правой кнопкой мыши по Begin, выберите Add | New Project.
  2. В диалоге Add New Project, разверните узел Visual C# в списке Installed Templates, выберите категорию Windows и выделите Class Library в списке шаблонов. Убедитесь что выбрат . NET Framework 3.5. Введите имя GuestBook_Data и нажмите OK.

    Создание библиотеки классов

    Создание библиотеки классов

  3. Удалите файл класса по умолчанию. Нажмите правой кнопкой по Class1.cs и выберите Delete. Нажмите OK.
  4. Добавьте ссылку на библиотеку .NET для ADO.NET в проект GuestBook_Data. В Solution Explorer нажмите правой кнопкой по проекту GuestBook_Data, выберите Add Reference, затем выберите закладку .NET, выделите компонент System.Data.Service.Client и нажмите OK.
  5. Выполните пункт 4, добавив ссылку библиотеку Microsoft.WindowsAzure.StorageClient


  6. Нажмите правой кнопкой мыши по GuestBook_Data в Solution Explorer, выберите Add, затем Class. В диалоге Add New Item введите имя GuestBookEntry.cs и нажмите Add.


  7. Откройте файл GuestBookEntry.cs, добавьте в начало файла using Microsoft.WindowsAzure.StorageClient ;
  8. Измените объявление класса GuestBookEntry
    public class GuestBookEntry : 
        Microsoft.WindowsAzure.StorageClient.TableServiceEntity 
     { 
     }
  9. Добавьте конструктор по умолчанию
    public GuestBookEntry() 
     {             
       PartitionKey = DateTime.UtcNow.ToString("MMddyyyy"); 
      
       // Row key allows sorting, so we make sure the rows come back in time order. 
       RowKey = string.Format("{0:10}_{1}", DateTime.MaxValue.Ticks - DateTime.Now.Ticks, Guid.NewGuid()); 
     }
  10. Добавьте свойства
    public string Message { get; set; } 
     public string GuestName { get; set; } 
     public string PhotoUrl { get; set; } 
     public string ThumbnailUrl { get; set; }
  11. Сохраните файл GuestBookEntry.cs.
  12. Нажмите правой кнопкой мыши по GuestBook_Data в Solution Explorer, выберите Add, затем Class. В диалоге Add New Item введите имя GuestBookDataContext.cs и нажмите Add.
  13. Откройте файл GuestBookDataContext.cs, добавьте в начало файла
    using Microsoft.WindowsAzure; 
     using Microsoft.WindowsAzure.StorageClient;
  14. Измените объявление класса GuestBookDataContext и добавьте конструктор
    public class GuestBookDataContext : TableServiceContext 
     { 
       public GuestBookDataContext(string baseAddress, StorageCredentials credentials) 
         : base(baseAddress, credentials) 
       { } 
     }
  15. Добавьте свойство
    public class GuestBookDataContext : TableServiceContext 
     { 
       ... 
       public IQueryable<GuestBookEntry> GuestBookEntry 
       { 
         get 
         { 
           return this.CreateQuery<GuestBookEntry>("GuestBookEntry"); 
         } 
       } 
     }
  16. Нажмите правой кнопкой мыши по GuestBook_Data в Solution Explorer, выберите Add, затем Class. В диалоге Add New Item введите имя GuestBookDataContext.cs и нажмите Add.
  17. Откройте файл GuestBookEntryDataSource.cs, добавьте в начало файла
    using Microsoft.WindowsAzure; 
     using Microsoft.WindowsAzure.StorageClient;
  18. Далее измените класс
    public class GuestBookEntryDataSource 
     { 
       private static CloudStorageAccount storageAccount; 
       private GuestBookDataContext context; 
     }
  19. Добавьте конструктор
    public class GuestBookEntryDataSource 
     { 
       private static CloudStorageAccount storageAccount; 
       private GuestBookDataContext context; 
      
       static GuestBookEntryDataSource() 
       { 
         storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString"); 
      
         CloudTableClient.CreateTablesFromModel( 
             typeof(GuestBookDataContext), 
             storageAccount.TableEndpoint.AbsoluteUri, 
             storageAccount.Credentials); 
       } 
     }
  20. Добавьте конструктор для класса GuestBookDataEntrySource
    public GuestBookEntryDataSource() 
     { 
       this.context = new GuestBookDataContext(storageAccount.TableEndpoint.AbsoluteUri, storageAccount.Credentials); 
       this.context.RetryPolicy = RetryPolicies.Retry(3, TimeSpan.FromSeconds(1)); 
     }
  21. Добавьте методы
    public IEnumerable<GuestBookEntry> Select() 
     { 
       var results = from g in this.context.GuestBookEntry 
                     where g.PartitionKey == DateTime.UtcNow.ToString("MMddyyyy") 
                     select g; 
       return results; 
     } 
      
     public void UpdateImageThumbnail(string partitionKey, string rowKey, string thumbUrl) 
     { 
       var results = from g in this.context.GuestBookEntry 
                     where g.PartitionKey == partitionKey && g.RowKey == rowKey 
                     select g; 
      
       var entry = results.FirstOrDefault<GuestBookEntry>(); 
       entry.ThumbnailUrl = thumbUrl; 
       this.context.UpdateObject(entry); 
       this.context.SaveChanges(); 
     }
  22. Сохраните файл GuestBookEntryDataSource.cs
Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Елена Сапегова
Елена Сапегова

для получения диплома нужно ли кроме теоретической части еще и практическую делать? написание самого диплома требуется?

Вадим Жук
Вадим Жук
Беларусь, г.бобруйск
Владимир Гляделов
Владимир Гляделов
Россия, Набережные Челны