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

Дополнительные источники

Электронная версия списка используемых источников доступна по адресу http://www.microsoft.com/architectureguide.

Более подробно проектирование и реализация клиентских Веб-приложений рассматривается в статье «Design and Implementation Guidelines for Web Clients» по адресу http://msdn.microsoft.com/en-us/library/ms978605.aspx.

Проектированию распределенных Веб-приложений посвящена статья «Designing Distributed Applications» (Проектирование распределенных приложений) по адресу http://msdn.microsoft.com/en-us/library/aa292470(VS.71).aspx.

Вопросы производительности Веб-приложения подробно рассматриваются в статье

«Improving .NET Application Performance and Scalability» (Улучшение производительности и масштабируемости .NET-приложений) по адресу http://msdn.microsoft.com/en-us/library/ms998530.aspx.

Безопасности Веб-приложений посвящена статья «Improving Web Application Security: Threats and Countermeasures» (Повышение безопасности Веб-приложений:

угрозы и меры противодействия им) по адресу http://msdn.microsoft.com/enus/library/ms994921.aspx.

22

Проектирование насыщенных клиентских приложений

Обзор

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

Пользовательские интерфейсы насыщенных клиентов могут обеспечивать высокую производительность, интерактивность и насыщенное взаимодействие с пользователем для приложений, которые должны работать как самодостаточные приложения и в сценариях с подключением, без постоянного подключения и без подключения. Windows Forms, Windows Presentation Foundation (WPF) и Microsoft Office Business Application (OBA) – все это доступные среды и инструменты разработки, позволяющие разработчикам быстро и без труда создавать насыщенные клиентские приложения.

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

Рис. 33

Общее представление архитектуры типового насыщенного клиентского приложения

Типовое насыщенное клиентское приложения включает три слоя: слой представления, бизнесслой и слой доступа к данным. Слой представления, как правило, содержит компоненты UI и логики представления; бизнес-слой – компоненты бизнес-логики, бизнес-процесса и бизнессущностей; и слой доступа к данным – компоненты доступа к данным и агентов сервисов. Многослойному дизайну посвящена глава 5, «Рекомендации по проектированию многослойных приложений». Более подробно компоненты каждого слоя рассматриваются в главе 10, «Рекомендации по проектированию компонентов».

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

И наоборот, насыщенные клиентские приложения могут быть очень сложными приложениями, которые осуществляют большую часть обработки самостоятельно и взаимодействуют с другими сервисами и хранилищами данных для получения или отправки данных. Примером такого приложения является ПО на базе Microsoft Excel®, которое выполняет сложные задачи локально, сохраняет состояние и данные локально и взаимодействует с удаленными серверами только для извлечения и обновления связанных

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

Общие принципы проектирования

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

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

Выбирайте соответствующую технологию, исходя из требований, предъявляемых к приложению. К таким технологиям относятся Windows Forms, WPF, XAML Browser Applications (XBAP) и OBA.

Разделяйте логику представления и реализацию интерфейса. Используйте такие шаблоны проектирования, как Presentation Model и Supervising Presenter (или

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

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

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

Применяйте разделение функциональных областей во всех слоях. Например,

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

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

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

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

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