Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП / ООП / ры_приложений_полная_книга.pdf
Скачиваний:
500
Добавлен:
18.02.2017
Размер:
7.08 Mб
Скачать

выполнения на широком диапазоне устройств, работающих под управлением

Microsoft Windows Mobile.

Для создания подключенных приложений, поддерживающих широкий диапазон мобильных устройств или требующих Wireless Application Protocol (WAP)1, compact HTML (cHTML) либо подобные форматы формирования визуального представления, используйте ASP.NET для мобильных устройств.

Насыщенные клиентские приложения

Руководствуйтесь следующими рекомендациями при проектировании насыщенных клиентских приложений:

Для создания приложений с поддержкой насыщенных мультимедийных и графических возможностей используйте Windows Presentation Foundation (WPF).

Для создания приложений, загружаемых с Веб-сервера и выполняемых на клиенте

Windows, используйте XAML Browser Applications (XBAP)2.

Для создания приложений, предназначенных преимущественно для работы с документами или для формирования отчетов, применяйте технологию Microsoft Office Business Application (OBA)3.

При желании воспользоваться преимуществами широкого набора элементов управления сторонних производителей и инструментов быстрой разработки приложений применяйте Windows Forms. При проектировании составного приложения с использованием Windows Forms обратите внимание на предложение группы patterns & practices Smart Client Software Factory.

При построении приложения с использованием WPF рассмотрите следующие возможности:

Для составных приложений воспользуйтесь предлагаемым группой patterns & practices руководством Composite Client Application Guidance (Руководство по проектирования составных клиентских приложений).

В случаях, когда созданием представления занимаются дизайнеры, а не обычные разработчики, используйте шаблон Presentation Model (Model- View-ViewModel), который является разновидностью шаблона Model-View- Controller (MVC), специально приспособленной для платформ разработки UI. Чтобы предоставить дизайнерам больше возможностей, реализуйте шаблоны данных (DataTemplate) через пользовательские элементы управления. Также для организации связи между представлением (View) и

1Протокол беспроводного доступа (прим. переводчика).

2Приложения браузера XAML (прим. переводчика).

3Бизнес-приложения для Microsoft Office (прим. переводчика).

презентатором (Presenter) или моделью представления (View Model)

применяйте WPF Commands.

Насыщенные Интернет-приложения

При проектировании насыщенного Интернет-приложения (Rich Internet Application, RIA) руководствуйтесь следующими рекомендациями:

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

используйте Silverlight.

Если принято решение создавать приложение с использованием Silverlight, рассмотрите следующие аспекты:

Рассмотрите возможность применения шаблона Presentation Model (Model- View-ViewModel), как описывалось ранее в данной главе.

При проектировании приложения, для которого планируется длительный срок эксплуатации и изменения в его ходе, воспользуйтесь предлагаемым группой patterns & practices руководством Composite Client Application Guidance.

Веб-приложения

При проектировании Веб-приложения руководствуйтесь следующими рекомендациями:

Для создания приложений, доступ к которым будет осуществляться через Веббраузер или специальный агент пользователя, используйте ASP.NET.

Если принято решения создавать приложение с использованием ASP.NET, обратите внимание на следующие аспекты:

Используйте шаблоны страниц, чтобы упростить разработку и реализовать единообразный UI для всех страниц приложения.

Применение AJAX с ASP.NET Web Forms позволит повысить интерактивность и перенести больший объем обработки в фоновый режим с меньшим числом обновлений страниц.

Если требуется включить области насыщенного медиасодержимого и интерактивности, используйте элементы управления Silverlight с ASP.NET.

Повысить тестируемость приложения или реализовать более четкое разделение между пользовательским интерфейсом приложения и бизнеслогикой позволит использование ASP.NET MVC Framework. Эта инфраструктура поддерживает подход на базе model-view-controller к разработке Веб-приложений.

Предложения группы patterns & practices, Smart Client Software Factory и Composite Client Application Guidance, более подробно рассматриваются в разделе «Предложения patterns & practices» далее в этой главе.

Аспекты производительности

Для обеспечения максимальной производительности слоя представления руководствуйтесь следующими рекомендациями:

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

Взаимодействие между слоем представления и бизнес-слоем или слоем сервисов приложения должно быть асинхронным. Это устранит неблагоприятное влияние на удобство использования и время отклика приложения при возникновении большой задержки или обрывов связи.

Реализуйте кэширование данных, которые будут выводиться на экран пользователя, в слое представления. Например, можно кэшировать статистические данные, отображаемые в биржевых сводках.

Как правило, избегайте сохранения данных сеанса или кэширования данных отдельных пользователя. Это можно делать, только если число пользователей ограничено или объем данных относительно невелик. Однако для коротких сеансов, возможно, удобным будет подход с кэшированием данных каждого пользователя на короткий промежуток времени. Не забывайте о привязанности данных в Веб-фермах или фермах серверов приложений при хранении или кэшировании данных сеансов или данных отдельных пользователей.

При отображении данных всегда применяйте разделение данных на страницы. Не используйте запросы, которые могут возвращать неограниченное количество данных, и задавайте размер страницы, соответствующий отображаемому объему данных. Разбиение на страницы на стороне клиента должно применяться только в случае крайней необходимости.

Пользуйтесь ViewState в ASP.NET аккуратно, поскольку это приводит к увеличению объема данных, участвующего в каждом обращении к серверу, и может негативно сказаться на производительности приложения. Где это необходимо, настройте страницы на использование сеансов только для чтения или выполнение вообще без сохранения сеансов.

Этапы проектирования слоя представления

Далее приводится рекомендуемый процесс проектирования слоя представления приложения. Данный подход гарантирует, что при проектировании архитектуры будут учтены все необходимые аспекты.

1.Выберите тип клиента. Выберите тип клиента, удовлетворяющий требованиям и соответствующий ограничениям инфраструктуры и развертывания организации. Например, если пользователи имеют мобильные устройства и будут подключаться к сети периодически, вероятно, мобильный клиент будет оптимальным выбором. Сведения, которые будут полезны при выборе соответствующего типа клиента, можно найти в главе 20, «Выбор типа приложения».

2.Выберите технологию для реализации слоя представления. Определитесь в общих чертах с функциональностью UI и слоя представления и выберите технологию UI, отвечающую этим требованиям и доступную для выбранного типа клиента. На данном этапе, если доступные технологии не подходят, возможно, необходимо пересмотреть выбранный тип клиента. Технологии, предлагаемые для каждого типа приложения, приведены в приложении В, «Матрица технологий слоя представления».

3.Спроектируйте пользовательский интерфейс. Определитесь с тем, должен ли UI

быть модульным, и примите решение о том, как будут реализовано разделение функциональности в слое представления. Рассмотрите возможность использования шаблонов раздельного представления, таких как Presentation Model, MVC и MVP. Следуйте рекомендациям, приведенным в разделах Композиция, Навигация, Взаимодействие с пользователем и Пользовательский интерфейс данной главы ранее, это гарантирует создание UI, отвечающего всем поставленным требованиям. Доступные типы компонентов рассматриваются в главе 11, «Проектирование компонентов представления».

4.Выберите стратегию валидации данных. Используйте методики проверки данных для защиты своей системы от не пользующегося доверием ввода. Также определите подходящую стратегию для обработки и протоколирования исключений. Реализация соответствующих стратегий проверки, обработки исключений и протоколирования рассматривается в главе 17, «Сквозная функциональность».

5.Выберите стратегию реализации бизнес-логики. Вынесите бизнес-логику, чтобы отделить ее от кода слоя представления. Это сделает приложение более удобным в обслуживании, поскольку позволит изменять бизнес-логику без влияния на слой представления. Выбор методики зависит от сложности приложения; приводим общие принципы выбора:

Валидация в UI. В простых приложениях, где бизнес-логика используется только для проверки пользовательского ввода, ее можно разместить в компонентах UI. При этом бизнес-логику, не касающуюся валидации, включать в компоненты UI нельзя.

Компоненты обработки бизнес-задач. Для более сложных приложений,

поддерживающих транзакции или включающих базовую бизнес-логику, которая выходит за рамки проверки UI, продумайте размещение бизнеслогики в отдельных компонентах, которые будут использоваться компонентами UI.

Модель предметной области. В сложных корпоративных приложениях, в которых бизнес-логика используется совместно многими приложениями, вынесите компоненты бизнес-слоя в отдельный логический уровень. Это позволит развертывать бизнес-слой физически на отдельном уровне, что обеспечит масштабируемость и повторное использование другими приложениями.

Управление бизнес-правилами. В приложениях, которые должны поддерживать сложную проверку, координирование процессов и логику предметной области, размещайте бизнес-логику в подсистеме управления бизнес-правилами, такой как Microsoft BizTalk® Server.

6.Определите стратегию связи с другими слоями. Если приложение включает несколько слоев, таких как слой доступа к данным и бизнес-слой, определите стратегию связи между слоем представления и остальными слоями. При наличии выделенного бизнес-слоя слой представления будет обмениваться данными с ним. Если бизнес-слоя нет, слой представления будет взаимодействовать непосредственно со слоем доступа к данным. Для доступа к другим слоям используйте следующие техники:

Прямые вызовы методов. Если слой, с которым происходит взаимодействие, физически располагается на одном уровне со слоем представления, можно выполнять прямые вызовы методов.

Веб-сервисы. Используйте интерфейс Веб-сервиса, если хотите разделить доступ к данным или бизнес-логику с другими приложения, если бизнесслой или слой доступа к данным развернут на другом уровне, или если важно реализовать разделение функциональности. Если бизнес-логика или логика доступа к данным будет использоваться слоем представления в рамках внутренней сети, используйте WCF-службу, работающую по протоколу TCP. Если бизнес-логика или логика доступа к данным будет использоваться слоем представления через Интернет, используйте WCFслужбу, работающую по протоколу HTTP. Если в бизнес-логике или логике доступа к данным предполагаются длительные вызовы, реализуйте асинхронную связь с помощью WCF и очереди сообщений.

Более подробно реализация соответствующих стратегий связи рассматривается в главе 18, «Взаимодействие и обмен сообщениями».

Соседние файлы в папке ООП