выгоды, учитывая требования и ограничения, налагаемые бизнесом сегодня, при этом
заглядывая в будущее для обеспечения максимальной прибыли через масштабируемость,
гибкость и обслуживание. Знание архитектурных принципов и шаблонов позволяет
разработчику и архитектору решения понимать и учитывать в процессе проектирования
важные аспекты, которые могут иметь огромное влияние на успех решения в целом.
Вооруженные этим знанием они могут принимать более осознанные решения, лучше
соотносить противоречащие и дополняющие друг друга требования и ограничения и создавать
решения, которые не просто отвечают всем бизнес-целям, но при этом обеспечивают
экономическую эффективность, масштабируемость, гибкость, а также удобство и простоту
обслуживания.
Как можно заметить, я обращаюсь и к разработчикам, и к архитекторам решений. Я глубоко
уверен, что и тем, и другим чрезвычайно важно иметь твердое понимание шаблонов и
принципов, обозначенных в этом руководстве. Мне могут возразить, что детали реализации не
так важны, как общий дизайн. Из своего опыта утверждаю, что это далеко не так. Мелкие
решения имеют свойство накапливаться со временем. Детали реализации могут иметь очень
большое влияние на архитектуру решения в целом, его масштабируемость, удобство
обслуживания и гибкость. Поэтому понимание основополагающих принципов и
разработчиками, и архитекторами имеет жизненно важное значение. Кроме того, общее
знание приводит к тому, что разработчики и архитекторы начинают лучше понимать друг
друга, что также имеет огромный положительный эффект.
Цель этого руководства – предоставить обзор архитектуры приложений, принципов и
шаблонов проектирования, что поможет делать правильный выбор и создавать более
успешные решения. Руководство структурировано таким образом, чтобы его можно
использовать и как учебник, и как справочник. Первая часть руководства посвящена общим
вопросам построения архитектуры и принципам проектирования и применима к любому типу
решения. Во второй части основное внимание направлено на общие типы приложений (такие
как Веб-приложения, насыщенные клиентские приложения или мобильные приложения), для
каждого из них описывается типовая архитектура и рассматриваются основные вопросы
проектирования. Приводимые здесь решения, безусловно, не будут полностью
соответствовать реальным задачам, но могут использоваться как базовые архитектуры. Данное
руководство содержит советы относительно того, как определять основные элементы
архитектуры, чтобы иметь возможность дорабатывать их со временем.
Повсеместно в руководстве особое внимание уделяется разработке решений на платформе
Microsoft с применением .NET Framework. В него включены ссылки на статьи и ресурсы, в
которых подробно рассматриваются соответствующие технологии и инструменты. Однако, как
вы увидите, базовые принципы и шаблоны применимы ко всем платформам. Следует
отметить, что данное руководство не является полным и исчерпывающим справочником по
каждому аспекту архитектуры и дизайна приложений, оно представляет лишь практический
обзор наиболее важных тем и дает ссылки на более подробные руководства или материалы, в
которых соответствующие вопросы проработаны более детально.
В области архитектуры и дизайна приложений постоянно происходят изменения, она не стоит
на месте. Основные принципы, на которых строились успешные решения в прошлом, будут
хорошо служить и в обозримом будущем, но мы также должны быть готовыми к тому, что