Quantcast
Channel: TechNet Blogs
Viewing all articles
Browse latest Browse all 17778

Введение в разработку и тестирование приложений в Облаке

$
0
0

В начале июня 2013 на конференции TechEd (Северная Америка) член технического совета Microsoft и ведущий специалист компании по разработке направления ALM Брайан Харри анонсировал Visual Studio 2013 и Team Foundation Server 2013 совместно с .Net Framework 4.5.1. Несколько недель спустя на конференции Build 2013 в Сан-Франциско было объявлено о доступности предварительных версий этих продуктов. Помимо многочисленных улучшений среды разработки, возможностей создания приложений для любых устройств на базе Windows, в том числе в системе Windows 8.1, веб-приложений и служб для локальных и облачных сред с использованием новых дополнений к Visual Studio и ASP.NET, которые упрощают веб-разработку для различных браузеров и устройств, гибкого управления портфелями проектов, взаимодействия в режиме реального времени, а также упрощения доступа к нужной информации прямо из редактора кода, Visual Studio 2013 является законченным инструментом для разработки, диагностики и отладки приложений в Облаке.

Данная статья является первой в цикле, который позволит начинающим разработчикам получить представление о создании с нуля приложений для WindowsAzureи их развертывании при помощи Visual Studio 2013 Preview, тестировании и управлении в облачных средах. Для работы нам потребуется, собственно, Visual Studio 2013 Preview и подписка на WindowsAzure. Установить бесплатно предварительную версию Visual Studio 2013 Preview можно с центра загрузки Microsoft. Там доступно несколько редакций, нам потребуется редакция Ultimate. После установки можно видеть шаблон проекта для создания приложений в Облаке.

 

image001

Рис.1

 

Изначально этот шаблон пустой. Он требует установки WindowsAzureSDK2.1для VS2013, который также может работать с VS2012 и 2010 SP1. При открытии нового проекта этого типа установка начнется автоматически. Как и другие дополнительные инструменты, как, например, SQLServerDataTools, по умолчанию установка происходит через WebPlatformInstaller. Логично предположить, что машина разработчика, на которой будет происходить создание облачных приложений, имеет выход в Интернет. Однако известны ситуации, когда разработка и тестирование производится локально, а размещение в Облаке осуществляется с нескольких выделенных машин в подразделении. В этом случае на локальную машину следует установить  Windows Azure SDK «вручную» в соответствии с инструкцией (см.раздел InstallInstructions). Системные пререквизиты указаны там же в разделе SystemRequirements. Скачать по отдельности WindowsAzureAuthoringTools-x64.msi, WindowsAzureEmulator-x64.exe, WindowsAzureTools.vs120.exeи другие компоненты можно здесь.    

После установки Windows Azure SDK надпись Get Windows Azure SDK в шаблоне проекта (Рис.1) сменяется на WindowsAzureCloudService. В создаваемое приложение добавим ASP.NETвеб-роль:

 

image002

Рис.2

 

а в нее – веб-форму по умолчанию:

 

image003

Рис.3

 

Для рассмотрения дальнейшего процесса локального тестирования приложения и его размещения в Облаке нужно создать простейший пользовательский код, который можно позаимствовать, например, здесь:

 

image004

Рис.4

 

По умолчанию запуск осуществляется в локальном эмуляторе WindowsAzure, установленном в составе WindowsAzureSDK. Если в системе включен User Access Control, будет выдано сообщение

 

image005

Рис.5

 

Чтобы запустить VisualStudioс административными привилегиями, зайдите в каталог, где она установлена. В Windows 8 найдите на стартовом экране иконку VisualStudio, щелкните по ней правой кнопкой и в нижней строке меню выберите Runasadministrator.

 

image006

Рис.6

 

Либо кликните по пункту меню Openfilelocation, в обозревателе войдите в свойства ярлыка VisualStudio 2013 Preview, нажмите на кнопку Advancedи отметьте галку Runasadministrator:

 

image007

Рис.7

 

Перезапустите VisualStudio, откройте снова ранее созданное приложение и стартуйте его.

 

image008

Рис.8

 

Кликните на кнопку Button. В обработчике события нажатия на эту кнопку сработает ранее добавленное туда создание блоба в AzureStorageи строка кода для отладки

var storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"));

var blobClient = storageAccount.CreateCloudBlobClient();

var blobContainer = blobClient.GetContainerReference("testblob");

blobContainer.CreateIfNotExists();

var blob = blobContainer.GetBlockBlobReference(Guid.NewGuid().ToString());

blob.UploadFromStream(newMemoryStream(Encoding.UTF8.GetBytes("Hello Windows Azure")));

System.Diagnostics.Trace.WriteLine("Added blob to Windows Azure Storage");

Скрипт 1

 

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

Кроме того в целях тестирования наша процедура Button1_Clickсодержит настройку монитора диагностики для передачи в другой блоб журналов с определенной периодичностью, в данном случае – каждые полминуты.

DiagnosticMonitorConfiguration diag = DiagnosticMonitor.GetDefaultInitialConfiguration();

diag.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(30);

DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", diag);

Скрипт 2

 

Остановим приложение из VSили закрыв окно браузера. Откройте ServerExplorer. Обратите внимание, что эмулятор WindowsAzureсодержит два блобовских контейнера в разделе Storage\Blobs. Первый – это созданный нами testblob (Скрипт 1). Второй – wad-control-container– контейнер, который создался для записи журналов при помощи монитора диагностики (Скрипт 2).

 

image009

Рис.9

 

Дважды кликнув по контейнеру testblob, можно видеть, что он содержит блобы с именами гуидов, созданные (Скрипт 1) всякий раз при запуске приложения и нажатию кнопки Buttonна веб-странице (Рис.8).

 

image010

Рис.10

 

Двойной клик по каждой из строчек открывает содержимое соответствующего блоба в окне, допустим, IE. Там лежит трассировочная строка HelloWindowsAzure.

Второй контейнер содержит журналы WindowsAzure, собранные при помощи монитора диагностики:

image011

Рис.11

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

image012

Рис.12

Убедившись в работоспособности приложения, перейдем к его размещению и запуске в Облаке. Предварительно для запуска веб-ролей в среде Windows Azure.понадобится создать облачную службу, для чего заходим на портал управления Windows Azure, нажимаем значок + в левом нижнем углу и в появившемся меню выбираем CloudService. Опция CustomCreateпозволяет сразу же опубликовать облачную службу, указав файл конфигурации (CSCFG), пакет (CSPKG) и сертификат. Поскольку мы собираемся публиковать приложение из проекта VisualStudio, нам будет достаточно опции QuickCreate. В этом случае нужно только придумать название службы и задать датацентр, в котором она будет работать. Датацентр, как правило, выбирается из соображений минимизации стоимости трафика, который в пределах одного и того же датацентра бесплатный. Например, если наше приложение будет работать с базой данных SQLAzure, созданной в датацентре NorthEurope, то и службу имеет смысл размещать там же.

image013

Рис.13

Наше приложение использует учетную запись хранения, которая до этого эмулировалась средствами WindowsAzureTools, установленными локально. Теперь ее потребуется создать в Облаке:

image014

Рис.14

Остается перенастроить проект в VisualStudiocэмулятора на использование «честных» облачных службы и учетной записи хранения. Для этого в обозревателе решений в проекте Windows Azure выбираем Свойства роли, которая обращается к службам хранилища, и идем на закладку Settings. Сейчас строка соединения настроена на локальный эмулятор: UseDevelopmentStorage=true.

image015

Рис.15

Требуется сослать ее в Azure. Самый простой способ это сделать, чтобы не вводить руками учетную запись и первичный ключ - кликнуть на многоточие справа и выбрать DownloadPublishSettings:

image016

Рис.16

Для текущей подписки будет скачан файл, позволяющий VisualStudioавтоматически получить вышеуказанные сведения. Он содержит сведения о сертификате, поэтому его следует сохранять в безопасное место. Этот файл мы указываем, нажав кнопку Import.

image017

Рис.17

Приложение готово к публикации. Ее можно осуществить с портала управления WindowsAzureпутем создания пакета служб и файла конфигурации службы, либо напрямую из VisualStudioпри помощи мастера публикации. Для его запуска из контекстного меню проекта WindowsAzureвыбираем пункт Publish.

 

image018

Рис.18

Приложение успешно публикуется.

image019

Рис.19

Если теперь запустить его в облаке, указав адрес службы, созданной на Рис.13

image020

Рис.20

диагностическая информация для целей тестирования (Рис.10-12) будет складываться в контейнер Рис.14 аналогично тому, как это происходило в случае эмулятора. Посмотреть собранную диагностику можно разными способами, в том числе через ServerExplorer, как это делалось на Рис.9. Однако теперь он будет указывать в Облако, т.к. мы изменили конфигурацию проекта и строку соединения (Рис.15-17).

image021 

Рис.21

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

 


Viewing all articles
Browse latest Browse all 17778

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>