SlideShare a Scribd company logo
1 of 44
УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ
АРХИТЕКТУРЫ
в мире SharePoint
Автор
 SharePoint Engineer
 Belarus SharePoint User Group Lead.
архитектура
Сдвиг фокуса
«Лучше день потерять, а
потом за пять минут долететь»
© Гриф
План
 Разработка архитектуры
 Коммуникация
 Внедрение
 Контроль
 Повторное использование
Да будет свет!
Разработка архитектуры
Разработка архитектуры
 Общие принципы
 Separation of concerns
 Single Responsibility principle
 Principle of Least Knowledge
 Don’t repeat yourself (DRY)
 Minimize upfront design
Разработка архитектуры
 Положительные особенности SharePoint
 Authentication
 Authorization
 Communication
 Deployment
 Performance
 Data AccessAPI
Разработка архитектуры
Разработка архитектуры
 Разделение на слои
 Минимум 1 слой (SharePoint Layer)
 Максимум N слоев
 В среднем – 5
1 SharePoint Layer
 Web Parts
 Features
 Receivers
 Timer Jobs
 Elements Definitions
 Workflows*
1 SharePoint Layer
 “Presentation Layer”
 User Controls
 Application Pages
 Альтернатива – самостоятельный слой
1 SharePoint Layer
 Он есть всегда
 Может состоять из нескольких
независимых проектов
 Создается c помощьюVS templates
 Содержит единицы развертывания WSP
2 Domain Logic Layer
 Бизнес-требования, переведенные в код
2 Domain Logic Layer
 Создается по мере необходимости
 Обычная .NET сборка
 Главный субъект модульного тестирования
3 Data Access Layer
 Repository
 Row Data Gateway
 Table Data Gateway
 Active Record
 Service Locator
3 Data Access Layer
 Создается по мере необходимости
 Обычная .NET сборка
 Особенно полезна при работе с
разнородными источниками данных
 Может включать логику ListThrottling
4 Domain Entities
 SPMetal как основа
 Создается сразу
 Определения и свойства
 Нет методов
 Расширена за счет Partial Class
4 Domain Entities
 Вынесена отдельно
 Автогенерация
 Нет логики
Но
 Может стать ядром Domain Logic Layer
 Расширить Partial Class методами
5 Common Services Layer
 2 типа общих сервисов
 Хелперы
 Shared ServicesApplications
5 Common Services Layer
 2 типа общих сервисов
 Хелперы
 Shared ServicesApplications (DAL)
5 Common Services Layer
 Constants
 GUIDs
 Custom Exceptions
 Extension Methods
Архитектуру – в массы
Коммуникация
Коммуникация
 Заказчик (business people)
 Руководитель проекта (ПМ)
 Аналитик
 Команда разработчиков
Коммуникация
 Заказчик (business people)
 «продажа» архитектурных решений
 Совместно с BusinessAnalyst
 Обычно с высоты >10 км над уровнем моря
 Диаграммы компонентов + слоев достаточно
 Слайды
Коммуникация
 Аналитик (business analyst)
 Объяснение узких мест (риски)
 Четкая постановка альтернатив (или/или)
 Диаграмма компонентов
 Диаграмма вариантов использования
 Диаграмма активностей
Коммуникация
 Команда разработчиков (+ ПМ)
 Объяснение основных принципов
 Reference Implementation
 Architecture Guidance
Коммуникация
 Команда разработчиков (+ ПМ)
 Убедиться, что идеи поняты правильно
 Убедиться, что идеи приняты и будут
исполняться
 Учесть обратную связь в Architecture Guidance
Коммуникация
 Команда разработчиков (+ ПМ)
 Убедиться, что идеи поняты правильно
 Убедиться, что идеи приняты и будут
исполняться
 Учесть обратную связь в Architecture Guidance
Оживление франкенштейна.
Внедрение
Внедрение
 ArchitectureGuidance Document
 Допущения
 Ограничения
 Особенности платформы
 Основные паттерны
Внедрение
 Deployment Guidance Document
 Обычно – глава в Architecture Guidance
 Развертывание
 Резервное копирование
 Восстановление
 Upgrade
Внедрение
 Общие рекомендации
 Review + update
 Reference Implementations
+
Кто не все – того накажем.
Контроль
Контроль
 Peer Code Review
 Architecture Review
Контроль
 Сделать Reviews частью процесса
 Проводить их XP-style
 Используйте инструменты (MSVS2010U)
 Обновляйте проектную документацию
 Заводите «технические истории»
 Проводите разбор с командой
Берегите природу.
Повторное использование
Повторное использование
 Общий код
 Общий компонент
 Managed Metadata Service Application
 Workflow Activities
Повторное использование
 Reference Implementation
 Guidance Documents
 Patterns
А что у вас есть против оборотней?
Заключение
Заключение
Не бывает одинаковых проектов, но бывают
очень похожие
Заключение
Архитектура – это здорово. Но лучше
успешный проект с плохой архитектурой,
чем проваленный проект с хорошей.
СПАСИБО!
blog: http://vspug.com/sharepointby
twitter: @sharepointby
web: http://sharepoint.by
profile: http://linkedin.com/in/ivanpadabed

More Related Content

What's hot

Как внедрить ALM/ Упр. командами разработки по (agile (scrum))
Как внедрить ALM/ Упр. командами разработки по (agile (scrum))Как внедрить ALM/ Упр. командами разработки по (agile (scrum))
Как внедрить ALM/ Упр. командами разработки по (agile (scrum))Andrey Zakhodyaychenko
 
Проектирование админок для #uidesignersmeetup
Проектирование админок для  #uidesignersmeetupПроектирование админок для  #uidesignersmeetup
Проектирование админок для #uidesignersmeetupUIDesign Group
 
Системная архитектура вместо требований
Системная архитектура вместо требованийСистемная архитектура вместо требований
Системная архитектура вместо требованийМихаил Заборов
 
Разработка автоматизированной системы компоновки проектной документации и обу...
Разработка автоматизированной системы компоновки проектной документации и обу...Разработка автоматизированной системы компоновки проектной документации и обу...
Разработка автоматизированной системы компоновки проектной документации и обу...Andrew Chuprina
 
Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Dima Dzuba
 
Xp программирование (41)
Xp программирование (41)Xp программирование (41)
Xp программирование (41)romachka_pole
 

What's hot (7)

Как внедрить ALM/ Упр. командами разработки по (agile (scrum))
Как внедрить ALM/ Упр. командами разработки по (agile (scrum))Как внедрить ALM/ Упр. командами разработки по (agile (scrum))
Как внедрить ALM/ Упр. командами разработки по (agile (scrum))
 
UX Refactoring
UX Refactoring UX Refactoring
UX Refactoring
 
Проектирование админок для #uidesignersmeetup
Проектирование админок для  #uidesignersmeetupПроектирование админок для  #uidesignersmeetup
Проектирование админок для #uidesignersmeetup
 
Системная архитектура вместо требований
Системная архитектура вместо требованийСистемная архитектура вместо требований
Системная архитектура вместо требований
 
Разработка автоматизированной системы компоновки проектной документации и обу...
Разработка автоматизированной системы компоновки проектной документации и обу...Разработка автоматизированной системы компоновки проектной документации и обу...
Разработка автоматизированной системы компоновки проектной документации и обу...
 
Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12
 
Xp программирование (41)
Xp программирование (41)Xp программирование (41)
Xp программирование (41)
 

Similar to Architecture Lifecycle Management In The Share Point World

2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проектеОмские ИТ-субботники
 
Архитектура в Agile проекте
Архитектура в Agile проектеАрхитектура в Agile проекте
Архитектура в Agile проектеLuxoftTraining
 
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...Nikita Filippov
 
«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...
«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...
«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...Andrew Shapiro
 
Архимейт по-русски
Архимейт по-русскиАрхимейт по-русски
Архимейт по-русскиAnatoly Levenchuk
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]Alex V. Petrov
 
Req Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требованийReq Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требованийAlexander Kalouguine
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summaryAnton Zhukov
 
Системная инженерия в России и мире
Системная инженерия в России и миреСистемная инженерия в России и мире
Системная инженерия в России и миреAnatoly Levenchuk
 
Аналитик и Тестировщик в одном лице – путь к качеству
Аналитик и Тестировщик в одном лице – путь к качествуАналитик и Тестировщик в одном лице – путь к качеству
Аналитик и Тестировщик в одном лице – путь к качествуSQALab
 
MSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureSergey Baranov
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovMaxim Tsepkov
 
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахКак совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахDanil Dintsis, Ph. D., PgMP
 
Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Andrey Bibichev
 

Similar to Architecture Lifecycle Management In The Share Point World (20)

2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
 
Архитектура в Agile проекте
Архитектура в Agile проектеАрхитектура в Agile проекте
Архитектура в Agile проекте
 
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...
 
«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...
«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...
«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...
 
Архимейт по-русски
Архимейт по-русскиАрхимейт по-русски
Архимейт по-русски
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
 
Req Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требованийReq Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требований
 
Обзор и архитектура MS Team System
Обзор и архитектура MS Team SystemОбзор и архитектура MS Team System
Обзор и архитектура MS Team System
 
Quality assurance
Quality assuranceQuality assurance
Quality assurance
 
СУП
СУПСУП
СУП
 
Sef2009
Sef2009Sef2009
Sef2009
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
 
Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)
 
Системная инженерия в России и мире
Системная инженерия в России и миреСистемная инженерия в России и мире
Системная инженерия в России и мире
 
Аналитик и Тестировщик в одном лице – путь к качеству
Аналитик и Тестировщик в одном лице – путь к качествуАналитик и Тестировщик в одном лице – путь к качеству
Аналитик и Тестировщик в одном лице – путь к качеству
 
MSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on Architecture
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkov
 
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахКак совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
 
Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)
 
DDD Workshop
DDD WorkshopDDD Workshop
DDD Workshop
 

More from Ivan Padabed

Enterprise Architecture workshop on Strategy Execution
Enterprise Architecture workshop on Strategy ExecutionEnterprise Architecture workshop on Strategy Execution
Enterprise Architecture workshop on Strategy ExecutionIvan Padabed
 
System Thinking basics
System Thinking basicsSystem Thinking basics
System Thinking basicsIvan Padabed
 
S2s Development For Developer
S2s Development For DeveloperS2s Development For Developer
S2s Development For DeveloperIvan Padabed
 
Sp Conf Ru Managed Metadata
Sp Conf Ru Managed MetadataSp Conf Ru Managed Metadata
Sp Conf Ru Managed MetadataIvan Padabed
 
Sharepoint issues (SEF.BY 2010)
Sharepoint issues (SEF.BY 2010)Sharepoint issues (SEF.BY 2010)
Sharepoint issues (SEF.BY 2010)Ivan Padabed
 
SP2010 for ASP.NET dev Ru
SP2010 for ASP.NET dev RuSP2010 for ASP.NET dev Ru
SP2010 for ASP.NET dev RuIvan Padabed
 
введение в SharePoint
введение в SharePointвведение в SharePoint
введение в SharePointIvan Padabed
 

More from Ivan Padabed (8)

Enterprise Architecture workshop on Strategy Execution
Enterprise Architecture workshop on Strategy ExecutionEnterprise Architecture workshop on Strategy Execution
Enterprise Architecture workshop on Strategy Execution
 
System Thinking basics
System Thinking basicsSystem Thinking basics
System Thinking basics
 
S2s Development For Developer
S2s Development For DeveloperS2s Development For Developer
S2s Development For Developer
 
Sp Devcamp By
Sp Devcamp BySp Devcamp By
Sp Devcamp By
 
Sp Conf Ru Managed Metadata
Sp Conf Ru Managed MetadataSp Conf Ru Managed Metadata
Sp Conf Ru Managed Metadata
 
Sharepoint issues (SEF.BY 2010)
Sharepoint issues (SEF.BY 2010)Sharepoint issues (SEF.BY 2010)
Sharepoint issues (SEF.BY 2010)
 
SP2010 for ASP.NET dev Ru
SP2010 for ASP.NET dev RuSP2010 for ASP.NET dev Ru
SP2010 for ASP.NET dev Ru
 
введение в SharePoint
введение в SharePointвведение в SharePoint
введение в SharePoint
 

Architecture Lifecycle Management In The Share Point World