Оформление прототипа в отдельный проект
95Expression Blend --- SketchFlow --- Оформление прототипа в отдельный проект
Прорабатывая материал данного руководства, вы могли не раз убедиться в том, что при запуске в среде Expression Blend IDE прототипа приложения, созданного средствами SketchFlow, автоматически запускается и проигрыватель SketchFlow Player. Но что, если требуется предоставить прототип заказчику, у когорого отсутствует копия Expression Blend?
К счастью, имеется возможность создать по команде меню File --> Package SketchFlow Project автономный вариант данного проигрывателя, чтобы затем отправить его вместе с прототипом на просмотр заказчику:

После выбора упомянутой выше команды меню вам останется лишь указать место и имя автоматически формируемого проигрывателя. А поскольку у вас уже имеется прототип приложения, созданный средствами SketchFlow на платформе Silverlight, то с помощью данной команды будет в итоге сформирован следующий ряд файлов: файл разметки в формате HTML, файл двоичного кода в формате ХАР и файл веб-страницы в формате ASP.NET. Получив все эти файлы, заказчик может дважды щелкнуть на HTML-файле, чтобы просмотреть прототип в избранном браузере:

Если бы вы оформляли в отдельный пакет прототип приложения, созданный средствами SketchFlow на платформе WPF, то в конечном итоге получили бы исполняемый файл с расширением *.ехе.
Собрав и задокументировав все отзывы клиента, а затем видоизменив соответственно прототип своего приложения и утвердив его у заказчика, можете преобразовать прототип, созданный средствами SketchFlow, в реальный проект на платформе Silverlight или WPF.
С этой целью сохраните, прежде всего, копию текущего прототипа, выбрав команду меню File --> Save Copy of Project. Работая далее с копией текущего прототипа, имейте в виду, что в среде Expression Blend IDE отсутствует возможность автоматического преобразования прототипа в рабочий вариант приложения. Элементы базового кода, имеющие непосредственное отношение к прототипу, вам придется вычленять вручную. Ниже поясняется, как это делается, а более подробно процедура преобразования прототипов приложений на платформах Silverlight и WPF в рабочий вариант исходного кода описывается в руководстве пользователя Expression Blend.
Процесс преобразования прототипа приложения на платформе WPF несколько отличается от аналогичного процесса на платформе Silverlight. За дополнительными сведениями по данному вопросу обращайтесь к разделу "Преобразование в рабочий вариант проекта" (Convert into a production project) руководства пользователя Expression Blend.
Видоизменение файлов с расширением *.csproj
Первая стадия процесса преобразования прототипа в рабочий вариант приложения состоит в том, чтобы видоизменить в текущем решении файл проекта с расширением *.csproj, в котором содержатся ссылки на файлы разметки (App.xaml) и исходного кода (App.xaml.cs) приложения. В рассматриваемом здесь примере проекта таким файлом является OnlineStoreApp.csproj. Откройте этот файл в обычном текстовом редакторе, например в WordPad, и удалите из него приведенные ниже элементы разметки в коде XML:
<ExpressionBlendPrototypeEnabled>
True
</ExpressionBlendPrototypeEnabled>
<ExpressionBlendPrototypeHarness>
True
</ExpressionBlendPrototypeHarness>
После этого сохраните и закройте данный файл проекта. Затем откройте в текущем решении файл вспомогательного проекта с расширением csproj, в котором содержутся ссылки на экраны прототипа (в данном примере это файл проекта OnlineStoreAppScreens.csproj). Найдите и удалите те же самые строки разметки в коде XML, а затем сохраните видоизмененный файл проекта.
Обновление ссылок на сборки в корневом проекте
Внеся упомянутые выше изменения в текущее решение, вернитесь к среде Expression Blend IDE и перейдите па вкладку Projects, чтобы удалить сборку Microsoft.Expression.Prototyping.Runtime.dll:

Затем выберите команду Projects Add Reference из главного меню, чтобы добавить ссылку на сборку System.Windows.Controls.Navigation.dll из платформы Silverlight 4.0.
Аналогичным образом удалите ссылку па сборку Microsoft.Expression.prototyping.Runtime.dll и добавьте ссылку на сборку System.Windows.Controls.Navigation.dll во вспомогательном проекте (напомним, что в данном примере это файл OnlineStoreAppScreens.csproj).
Откройте для редактирования файл исходного кода приложения App.xaml.cs. В самом начале этого файла перед объявлением типа класса вы обнаружите приведеный ниже атрибут уровня сборки. Закомментируйте весь этот атрибут:
[assembly: Microsoft.Expression.Prototyping.Services.SketchFlowLibraries("OnlineStoreApp.Screens")]
На данной стадии проигрыватель SketchFlow Player уже не применяется в проекте. Так, если вы запустите свое приложение Silverlight на выполнение, оно будет загружено в окно браузера подобно типичному ХАР-файлу. Единственная правка, которая может вам еще понадобиться, заключается в замене стилей SketchFlow на ваши собственные, но это вам придется сделать самостоятельно