Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
course_(Windows&Web).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.68 Mб
Скачать

Краткие итоги

В данной теме были рассмотрены рекомендации к организации проектов, позволяющих разделять Silverlight и WPF код, разобраны особенности архитектуры таких приложений, а также описаны наиболее часто встречающиеся проблемы и способы их решения. Написание кроссплатформенного WPF/Silverlight приложения, безусловно, требует больших усилий, чем раздельная разработка, однако отсутствие необходимости поддерживать 2 различные версии приложения позволяет существенно упростить дальнейшую доработку и сопровождение.

Набор для практики

Вопросы:

  1. Подходы к решению вопроса о разработке Silverlight/WPF приложений с максимальным разделением общего кода. Плюсы и минусы каждого.

  2. Создание ссылок в Visual Studio

  3. Директивы препроцессора

  4. Способы решения проблем недостающего функционала

Тесты

Задача 1.

Вариант 1 Задачи 1.

Какой критерий позволяет определить, что код используется только в сборке Silverlight?

+ Ответ 1. директива препроцессора #if SILVERLIGHT;

Ответ 2. статическое свойство Application.IsSilverlight;

Ответ 3. статического метода Assembly.IsSilverlight();

Ответ 4. в текущей версии .NET нет такой возможности

Вариант 2 Задачи 1.

Какой критерий позволяет определить, что код не используется в сборке Silverlight?

+ Ответ 1. директива препроцессора #if !SILVERLIGHT;

Ответ 2. статическое свойство Application.IsSilverlight возвращает false;

Ответ 3. отсутствие статического метода Assembly.IsSilverlight();

Ответ 4. в текущей версии .NET нет такой возможности

Вариант 3 Задачи 1.

Когда между Silverlight и WPF версиями кода достаточно мало отличий, можно воспользоваться директивами препроцессора, чтобы включить тот или иной блок кода в зависимости от того, в каком проекте компилируется данный файл. Для удобства шаблон проекта Silverlight определяет константу для такой директивы. Напишите её название.

Ответ 1. SILVERLIGHT

Задача 2.

Вариант 1 Задачи 2.

Какой код вызовет ошибку компиляции в Silverlight сборке:

Ответ 1. var brush = new SolidColorBrush(Colors.Gray);

+ Ответ 2. var brush = Brushes.Gray;

Ответ 3. var brush = new SolidColorBrush{ Color = Colors.Gray};

Ответ 4. доступен любой вариант инициализации

Вариант 2 Задачи 2.

Какой вариант инициализации объекта brush доступен в WPF сборке:

+ Ответ 1. var brush = new SolidColorBrush(Colors.Gray);

+ Ответ 2. var brush = Brushes.Gray;

+ Ответ 3. var brush = new SolidColorBrush{ Color = Colors.Gray};

Ответ 4. var brush = Gray;

Вариант 3 Задачи 2.

Класс Brushes отсутствует в Silverlight. При написании WPF/Silverlight совместимого кода следует использовать класс - …

Ответ 1. Colors

Задача 3.

Вариант 1 Задачи 3.

Какие свойства недопустимо определять в Silverlight сборках:

Ответ 1. свойства зависимостей для чтения и записи

Ответ 2. свойства только для чтения

+ Ответ 3. свойства зависимостей только для чтения

Ответ 4. доступно определение всех перечисленных свойств

Вариант 2 Задачи 3.

Какие свойства допустимо определять в Silverlight сборках:

+ Ответ 1. свойства зависимостей для чтения и записи

+ Ответ 2. свойства только для чтения

Ответ 3. свойства зависимостей только для чтения

+ Ответ 4. свойства зависимостей только для записи

Вариант 3 Задачи 3.

При определении в Silverlight сборках свойств зависимостей недопустимо определять их как свойства только для …

Ответ 1. чтения

Задача 4.

Вариант 1 Задачи 4.

Выберите верное утверждение:

Ответ 1. возможности платформы Silverlight шире, чем у платформы WPF

+ Ответ 2. возможности платформы WPF шире, чем у платформы Silverlight

Ответ 3. возможности платформ WPF и Silverlight идентичны

Ответ 4. платформ WPF и Silverlight не имеют общих сборок

Вариант 2 Задачи 4.

Выберите неверные утверждения:

+ Ответ 1. возможности платформы Silverlight шире, чем у платформы WPF

Ответ 2. возможности платформы WPF шире, чем у платформы Silverlight

+ Ответ 3. возможности платформ WPF и Silverlight идентичны

Ответ 4. платформ WPF и Silverlight не имеют общих сборок

Вариант 3 Задачи 4.

Количество ключевых сборок, которые портируемы между Silverlight и .Net. в .NET 4

Ответ 1. 5

Задача 5.

Вариант 1 Задачи 5.

Какой из вариантов действий наиболее предпочтителен при небольших различиях в реализации функционала в WPF и Silverlight:

+ Ответ 1. использовать директивы препроцессора

Ответ 2. использовать partial файлы

Ответ 3. вести независимые файлы в обоих проектах

Ответ 4. все варианты несут одинаковые временные трудозатраты

Вариант 2 Задачи 5.

Какие варианты действий допустимы при различиях в реализации функционала в WPF и Silverlight:

+ Ответ 1. использовать директивы препроцессора

+ Ответ 2. использовать partial файлы

+ Ответ 3. вести независимые файлы в обоих проектах

Ответ 4. отказаться от несовместимого функционала

Вариант 3 Задачи 5.

В языке C# возможно разбиение определения класса, структуры или интерфейса между двумя или больше исходными файлами. Каждый исходный файл содержит свою часть определения класса и все такие части собираются во время компиляции. Для такого разбития класса используется модификатор …

Ответ 1. partial

Литература

  1. Sharing Code Between Silverlight and WPF http://msdn.microsoft.com/en-us/library/ff921109(v=pandp.40).aspx

  2. Notes from DevReach http://devblog.ailon.org/devblog/

Лекция 11. Реализация паттерна MVVM с использованием IoC-контейнера, как метод избавления от зависимости между компонентами системы.

Краткая аннотация лекции: в лекции рассматривается реализация MVVM шаблона с применением инверсии зависимостей и аспектно-ориентированного программирования для максимальной инкапсуляции слоев приложения.

Цель лекции: показать читателям на примере фрагментов кода организацию многослойного кроссплатформенного Silverlight/WPF MVVM приложения при помощи IoC контейнера, а также разобрать пример использования Managed Extensibility Framework для разрешения зависимостей между компонентами системы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]