Слайд 2Автор
SharePoint Engineer
Belarus SharePoint User Group Lead.
Слайд 4Сдвиг фокуса
«Лучше день потерять, а потом за пять минут долететь» © Гриф
Слайд 5План
Разработка архитектуры
Коммуникация
Внедрение
Контроль
Повторное использование
Слайд 6Да будет свет!
Разработка архитектуры
Слайд 7Разработка архитектуры
Общие принципы
Separation of concerns
Single Responsibility principle
Principle of Least Knowledge
Don’t repeat yourself
(DRY)
Minimize upfront design
Слайд 8Разработка архитектуры
Положительные особенности SharePoint
Authentication
Authorization
Communication
Deployment
Performance
Data Access API
Слайд 10Разработка архитектуры
Разделение на слои
Минимум 1 слой (SharePoint Layer)
Максимум N слоев
В среднем –
5
Слайд 121 SharePoint Layer
Web Parts
Features
Receivers
Timer Jobs
Elements Definitions
Workflows*
Слайд 131 SharePoint Layer
“Presentation Layer”
User Controls
Application Pages
Альтернатива – самостоятельный слой
Слайд 141 SharePoint Layer
Он есть всегда
Может состоять из нескольких независимых проектов
Создается c помощью
VS templates
Содержит единицы развертывания WSP
Слайд 152 Domain Logic Layer
Бизнес-требования, переведенные в код
Слайд 162 Domain Logic Layer
Создается по мере необходимости
Обычная .NET сборка
Главный субъект модульного тестирования
Слайд 173 Data Access Layer
Repository
Row Data Gateway
Table Data Gateway
Active Record
Service Locator
Слайд 183 Data Access Layer
Создается по мере необходимости
Обычная .NET сборка
Особенно полезна при работе
с разнородными источниками данных
Может включать логику List Throttling
Слайд 194 Domain Entities
SPMetal как основа
Создается сразу
Определения и свойства
Нет методов
Расширена за счет Partial
Class
Слайд 204 Domain Entities
Вынесена отдельно
Автогенерация
Нет логики
Но
Может стать ядром Domain Logic Layer
Расширить Partial Class
методами
Слайд 215 Common Services Layer
2 типа общих сервисов
Хелперы
Shared Services Applications
Слайд 225 Common Services Layer
2 типа общих сервисов
Хелперы
Shared Services Applications (DAL)
Слайд 235 Common Services Layer
Constants
GUIDs
Custom Exceptions
Extension Methods
Слайд 24Архитектуру – в массы
Коммуникация
Слайд 25Коммуникация
Заказчик (business people)
Руководитель проекта (ПМ)
Аналитик
Команда разработчиков
Слайд 26Коммуникация
Заказчик (business people)
«продажа» архитектурных решений
Совместно с Business Analyst
Обычно с высоты >10 км
над уровнем моря
Диаграммы компонентов + слоев достаточно
Слайды
Слайд 27Коммуникация
Аналитик (business analyst)
Объяснение узких мест (риски)
Четкая постановка альтернатив (или/или)
Диаграмма компонентов
Диаграмма вариантов использования
Диаграмма
активностей
Слайд 28Коммуникация
Команда разработчиков (+ ПМ)
Объяснение основных принципов
Reference Implementation
Architecture Guidance
Слайд 29Коммуникация
Команда разработчиков (+ ПМ)
Убедиться, что идеи поняты правильно
Убедиться, что идеи приняты и
будут исполняться
Учесть обратную связь в Architecture Guidance
Слайд 30Коммуникация
Команда разработчиков (+ ПМ)
Убедиться, что идеи поняты правильно
Убедиться, что идеи приняты и
будут исполняться
Учесть обратную связь в Architecture Guidance
Слайд 31Оживление франкенштейна.
Внедрение
Слайд 32Внедрение
Architecture Guidance Document
Допущения
Ограничения
Особенности платформы
Основные паттерны
Слайд 33Внедрение
Deployment Guidance Document
Обычно – глава в Architecture Guidance
Развертывание
Резервное копирование
Восстановление
Upgrade
Слайд 34Внедрение
Общие рекомендации
Review + update
Reference Implementations
+
Слайд 35Кто не все – того накажем.
Контроль
Слайд 36Контроль
Peer Code Review
Architecture Review
Слайд 37Контроль
Сделать Reviews частью процесса
Проводить их XP-style
Используйте инструменты (MSVS2010U)
Обновляйте проектную документацию
Заводите «технические истории»
Проводите
разбор с командой
Слайд 38Берегите природу.
Повторное использование
Слайд 39Повторное использование
Общий код
Общий компонент
Managed Metadata Service Application
Workflow Activities
Слайд 40Повторное использование
Reference Implementation
Guidance Documents
Patterns
Слайд 41А что у вас есть против оборотней?
Заключение
Слайд 42Заключение
Не бывает одинаковых проектов, но бывают очень похожие
Слайд 43Заключение
Архитектура – это здорово. Но лучше успешный проект с плохой архитектурой, чем
проваленный проект с хорошей.