Общий пример приложения Windows Server AppFabric
Данный пример приложения состоит из клиентского приложения поддержки продаж и приложения-службы поддержки продаж. Пример приложения рассчитан на использование с другими примерами Windows Server AppFabric в качестве типичного приложения для демонстрации функций AppFabric, представленных в примерах.
Приложение-служба поддержки продаж моделирует простой рабочий процесс обработки заказов, в котором могут использоваться преимущества встроенной поддержки сохраняемости и отслеживания, предоставляемые AppFabric. Приложение-служба предоставляет клиентским приложениям каталог товаров и затем имитирует процесс обработки заказов, размещенных каждым клиентом.
Примечание
Примеры предназначены только для образовательных целей. Они не предназначены для использования в рабочей среде и не тестировались в ней. Корпорация Майкрософт не предоставляет техническую поддержку для этих примеров.
Пакет примеров для AppFabric, который содержит пример приложения, можно загрузить по ссылке https://go.microsoft.com/fwlink/?LinkId=169336.
Предварительные условия
Данное учебное приложение ориентировано на читателей, которые обладают следующими знаниями или навыками:
Базовое знание служб IIS.
Базовое знание приложений Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF).
Базовое знание Windows PowerShell.
Базовое знание Microsoft SQL Server.
Расположение и файлы примера приложения
Имя файла | Описание |
---|---|
OrderApplication.sln |
Файл решения для двух проектов |
SaleClient |
Папка с файлами проекта клиента поддержки продаж |
App.config, OrderManager.cs, Program.cs, SaleClient.csproj, SaleClientForm.cs, SaleClientForm.Designer.cs, SaleClientForm.resx, AssemblyInfo.cs, Resources.Designer.cs, Resources.resx, Settings.Designer.cs, Settings.settings |
Файлы проекта клиента поддержки продаж |
OrderApplication |
Папка с файлами проекта службы поддержки продаж |
CancelOrder.cs, CatalogInitializer.cs, CatalogTypes.cs, ProcessNewOrder.cs, SaleService.csproj, SaleService.xamlx, SaleServiceTracking.tp, ShippingProcessor.cs, web.config, AssemblyInfo.cs |
Файлы проекта службы поддержки продаж |
Настройка примера приложения
Запустите Visual Studio 2010 с правами администратора и откройте файл <примеры>\SampleApplication\OrderApplication\OrderApplication.sln, где <примеры> — это путь установки примеров AppFabric. В ответ на предложение создать виртуальный каталог нажмите кнопку Да.
Примечание
Данные действия демонстрируют развертывание и построение приложения обработки заказов Order Application с помощью Visual Studio 2010 и настройку пула приложений по умолчанию для использования со службой продаж.
В меню Построение выберите команду Построить решение. В окне выходных данных, что построение проектов было выполнено без ошибок.
Запустите диспетчер IIS, нажав кнопку Пуск и выбрав пункты Все программы, Windows Server AppFabric и Диспетчер IIS.
Разверните узел сервера в расположенном слева дереве, а затем щелкните элемент Пулы приложений.
Щелкните правой кнопкой мыши элемент DefaultAppPool в списке пулов приложений и выберите пункт Дополнительные параметры.
Для параметра Версия .NET Framework выберите в раскрывающемся списке значение 4.0 и нажмите кнопку ОК.
Выполнение примера
Запустите клиентское приложение: <примеры>\SampleApplication\ OrderApplication\SaleClient\bin\Debug\SaleClient.exe.
Приложение формы отправляет в службу продаж запрос на получение текущего ежедневно обновляемого торгового каталога. В зависимости от состояния выполнения службы на это может потребоваться примерно десять секунд.
Обратите внимание на сведения о сроке действия полученного каталога. Они означают, что срок действия каталога истекает примерно через три минуты, если заказ не будет размещен. Измените значение параметра Order Quantity ("Размер заказа") для мониторов с диагональю 24 дюйма на 2 и нажмите клавишу TAB, чтобы обновить форму заказа. В поле Billing Total ("Всего к оплате") теперь должно быть значение $531.98. Если срок действия каталога истек, можно нажать кнопку Get New Catalog ("Получить новый каталог"), чтобы запросить новый каталог.
В течение трех минут с момента получения торгового каталога (срок его действия истекает через три минуты) необходимо нажать кнопку Place Order ("Разместить заказ") и убедиться в том, что статус заказа изменился на Order Received ("Заказ получен"). Для фиксации изменения статуса в рабочем процессе служит переменная StatusText. Для отслеживания этой переменной можно настроить профиль отслеживания приложения. Приложение клиента поддержки продаж будет производить опрос рабочего процесса и в течение одной минуты сообщит о том, что заказ был выполнен. Еще через минуту заказ будет отправлен. Пока заказ не отправлен, его можно отменить в любой момент, нажав кнопку Cancel Order ("Отменить заказ"). Однако данный заказ отменять не следует.
Щелкните правой кнопкой мыши выбранное значение в текстовом поле Order Id ("Код заказа") и выберите команду Copy ("Копировать"), чтобы скопировать код заказа в буфер обмена.
Закройте клиентское приложение. Если размещенный рабочий процесс не требует выполнения каких-либо действий, рабочий процесс можно сохранить для обеспечения масштабируемости. В этом примере скопированный код заказа используется для сопоставления материализованных экземпляров рабочего процесса с клиентскими запросами.
Запустите новый экземпляр клиентского приложения <samples>\SampleApplication \OrderApplication\SaleClient\bin\Debug\SaleClient.exe.
Щелкните правой кнопкой мыши в текстовом поле Order Id и выберите команду Paste ("Вставить"), чтобы вставить код заказа из буфера обмена в текстовое поле Order Id в нижней части формы.
Нажмите кнопку Recall PO ("Вызвать заказ на покупку"). При этом произойдет повторный вызов заказа и отобразится его текущий статус. Рабочий процесс моделирует внутреннюю обработку заказа с задержками. По истечение примерно двух минут параметр Order Status пройдет через следующие состояния: Order Received, Order Filled, Order Shipped. Можно настроить узел с помощью настраиваемого профиля отслеживания так, чтобы изменения статуса заказа отслеживались в целях отчетности. Пока заказ выполняется, запустите новый экземпляр клиентского приложения поддержки продаж, чтобы отменить заказ.
Переместите клиентское приложение поддержки продаж с размещенным заказом в правую часть экрана.
Запустите новый экземпляр клиентского приложения <samples>\SampleApplication \OrderApplication\SaleClient\bin\Debug\SaleClient.exe.
Нажмите кнопку Get Sale Catalog, чтобы получить новый каталог. В зависимости от состояния выполнения службы на это может потребоваться примерно десять секунд.
Когда торговый каталог загрузится в форму, измените значение параметра Order Quantity для позиции "Четырехъядерный процессор 2.8 ГГц" на 20 и нажмите клавишу TAB, чтобы обновить форму заказа. В поле Billing Total ("Всего к оплате") теперь должно быть значение $6119,80.
Нажмите кнопку Place Order до истечения срока действия нового каталога и убедитесь в том, что статус заказа изменился на Order Received.
Сразу же нажмите кнопку Cancel Order до того, как заказ будет отправлен, и убедитесь в том, что статус заказа изменился на Order Canceled.
Удаление развернутого веб-приложения службы продаж
Запустите диспетчер IIS, нажав кнопку Пуск и выбрав пункты Все программы, Windows Server AppFabric и Диспетчер IIS.
Разверните узел сервера в расположенном слева дереве,. Разверните узлы Сайты и Веб-сайт по умолчанию.
Щелкните узел OrderApplication и нажмите клавишу Remove ("Удалить").
Нажмите кнопку Да, чтобы подтвердить удаление выбранного приложения.
Демонстрации
Приложение службы продаж было построено с помощью шаблона приложения службы рабочих процессов WCF в Microsoft Visual Studio 2010. Каталог, предоставляемый службой, смоделирован по распродаже в газете или на веб-сайте. Заказ должен быть размещен в течение ограниченного срока. После того как торговый каталог будет запрошен клиентским приложением на основе форм, пользователь должен разместить заказ в течение трех минут, прежде чем срок действия каталога истечет.
Когда пользователь размещает заказ, служба продаж предоставляет код заказа. Этот код заказа используется для сопоставления материализованных экземпляров рабочего процесса с клиентскими запросами. Благодаря такому сопоставлению возможна повторная активация рабочего процесса посредством клиентского запроса для проверки статуса заказа или его отмены, если он не был отправлен. После того как заказ будет размещен в службе продаж, его статус изменится с "Order Received" на "Order Filled" в течение примерно трех минут. В течение еще примерно трех минут статус заказа изменяется на "Order Shipped".
Для включения отслеживания переменных «StatusText» и «PurchaseTotal» в рабочем процессе можно использовать пример профиля отслеживания (SaleServiceTracking.tp). Это позволяет настроить для службы отслеживание информации, связанной с этими переменными, в различных точках рабочего процесса. Профиль отслеживания, предоставленный в этом примере, позволяет отслеживать следующие данные:
Каталоги с истекшим сроком действия
Отмененные заказы
Выполненные заказы
Оправленные заказы ReplaceThisText
Общая сумма покупок по отправленным заказам
После того как данные отслеживания будут зафиксированы в базе данных отслеживания, на основании этих данных можно сформировать отчет о статусе. Эти данные отслеживания предназначены для использования в других примерах.
2011-12-05