Категории
Войти
Поиск
Реклама
туры в ОАЭ, путевки в оаэПолезное:
Новые статьи
Опечатка?
Выделите текст и нажмите Shift+Enter.
И мы в ближайшее время ее исправим!
Счетчики
| Типовая конфигурация трехъярусного приложения |
|
Типовая конфигурация трехъярусного приложения с развитым клиентом показана. На ярусе представления выполняется код уровня представления и, возможно, ряд дополнительных библиотек, которые могут рассматриваться как дополнительные уровни на этом ярусе. Приложения с развитым клиентом часто располагают собственным кэшем для поддержки операций в автономном режиме. Уровни рабочей логики и доступа к данным обычно работают на сервере приложений промежуточного яруса, а хранилище данных реализовано на отдельном сервере баз данных как ярус данных. Для приложений с клиентом меньшего размера, использующих Web-службы для обмена между клиентом (ярус представления) и промежуточным ярусом, на сервере промежуточного яруса может размещаться Web-служба, играющая роль фасада для промежуточного яруса, через который клиент выполняет обмен. В более крупных приложениях функции могут распределяться между большим числом ярусов: ярус представления (клиент), ярус Web-сервера, промежуточный ярус рабочей логики и доступа к данным, ярус данных. С приходом механизмов автоматического развертывания и обновления, подобных ClickOnce, вы можете перейти к размещению уровне рабочей логики и доступа к данным на клиентской машине с целью более полного использования ее вычислительных ресурсов, отказавшись при этом от промежуточного сервера или по крайней мере разгрузив его. Наиболее значимым преимуществом технологии распределения приложения по нескольким ярусам является масштабируемость, т.е. возможность использования вычислительной мощности нескольких машин для выполнения одного приложения. Безопасность и устойчивость к сбоям тоже следует отнести к явным достоинствам этого подхода. Платить за удовольствие чаще всего приходится производительностью (как только вы выходите за рамки одного процесса, это обычно сразу приводит к значительным затратам) и сложностью. Все эти особенности учитываются грамотным архитектором во время принятия решения о распределении функций приложения между уровнями, процессами и ярусами. Необходимым условием для разбиения приложения на несколько ярусов является использование в нем нескольких уровней. Каждый уровень предоставляет точку развязки, в которой вы можете разбить приложение на ярусы, если это разумно. Итак, уровни связаны с логической разбивкой функций приложения, а ярусы представляют собой физические уровни, на которых приложение распределяется по разным машинам. Всегда необходимо стремиться к построению приложения по принципам многоуровневой модели с целью повышения функциональной независимости отдельных его компонентов и упрощения сопровождения. Такой подход обеспечивает возможность утилизации отдельных компонентов программного кода и расширяет диапазон доступных архитектурных решений. Многоуровневый подход при построении приложений Windows Forms с помощью .NET проявляется в первую очередь в том, что подобные приложения включают несколько проектов Visual Studio, содержащих программный код приложения. В приложение, конечно, входит проект Windows Forms, содержащий формы и средства их обслуживания (обработчики событий и т.д.). Иногда возникает необходимость использования нескольких дополнительных проектов библиотек классов, содержащих пользовательские элементы управления для Windows Forms - они могут применяться в нескольких различных проектах. Эти библиотеки тоже относятся к уровню представления. Далее, необходим по крайней мере один проект библиотеки классов для оформления классов уровня доступа к данным. Эти классы используются для получения в приложении данных с уровня данных и передачи модифицированных данных из приложения Windows Forms обратно на уровень данных для сохранения. Если уровень данных слишком сложен сам по себе, то можно попробовать разделить его на несколько проектов библиотек классов Visual Studio - по одному на каждую категорию используемых данных. Например, библиотека классов CustomersDataAccess может содержать весь необходимый программный код для доступа к таблицам Customers, Orders и Order details, а библиотека классов SupplyDataAccess - для доступа к таблицам Products, Suppliers и Shippers. Здесь у читателя может возникнуть вопрос: «А какое отношение имеет все это к привязке данных? » Следует с прискорбием отметить, что возможности Visual Studio могут поощрять разработчика к плохим проектным решениям. Простой пример ранее в этой главе продемонстрировал читателю, что в Visual Studio отлично реализована процедура построения приложений Windows Forms, когда информация из базы данных принимается непосредственно в проект Windows Forms, в проекте создается типизированный набор данных и связанные с ним адаптеры, а затем организуется привязка к данным с помощью получившихся источников. Однако следование этой схеме приводит к тому, что код доступа к данным помещается непосредственно в проект Windows Forms, что противоречит принципам многоуровневого подхода. Даже если вам продемонстрируют множество примеров, быстро и просто решающих задачу привязки к данным (я и сам буду это делать ради простоты образцов и концентрации внимания на привязке к данным, а не на общей архитектуре приложений), не следует полагаться на такой подход в реальных приложениях.
Newer news items:
Older news items:
|
