Pull to refresh

Архитектурные инструменты в Visual Studio 2010

Reading time 3 min
Views 23K
Original author: Somasegar


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

Новые архитектурные инструменты в Visual Studio Team System 2010 помогут вам понять имеющееся приложение, спроектировать необходимую вам новую функциональность и проверить что ваша реализация соответствует вашему дизайну.


Определение того, что вы имеете


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

Вы можете получить визуальное представление вашего решения по сборке, пространству имен, классу или настраиваемому фильтру в виде документа в формате Directed Graph Markup Language (DGML), используя инструмент Generate Dependency Graph:



Как показано ниже, созданный на основании решения DGML-документ может быть представлен в нескольких вариантах: Dependency Matrix, Force Directed Layout или Top to Bottom layout. Каждое вариант предлагет свое собственное представление структуры проекта.



Это высокоуровневое представление и прекрасная возможность оценить общее представление архитектуры своего приложения. Но представление о зависимостях для области изменений, которые вам необходимо произвести поможет сделать за 15 минут то, на что мог потребоваться час. Например, возможность визуализировать взаимоотношения класса Cart с другими классами, позволяет получить очень простой способ внести изменения в механизм корзины:



Другой полезный способ понять как работает ваше приложение — это возможность визуализировать последовательность вызовов, которые происходят в ключевых частях вашего приложения. Функция Generate Sequence Diagram, доступная через редактор кода, предоставляет вам возможность взглянуть на вызовы методов, которые производит ваше приложение. Ниже вы можете посмотреть на изображение последовательности вызовов, которую производит метод Add для корзины.



Дизайн нового функционала


Теперь, когда вы более полно представляете себе как работает ваше существующее приложение, вы сможете более эффективно разработать новый функционал. Сотрудничество команды при разработке дизайна требует общение друг с другом в стандартном виде. Диаграммы Unified Modeling Language (UML) позволят вам выразить ваш дизайн приложения в понятном для других виде. Например, вы можете построить диаграммы UML Component и UML Class которые описывают существующие элементы структуры вашего дизайна, а затем добавить в диаграммы новые элементы, чтобы проиллюстрировать и задокументировать ваши изменения. Ниже представлен вариант такой Component-диаграммы:



Class-диаграмма может выглядеть так:



Диаграмма Use Case представленная ниже позволяет команде лучше понять функции и прийти к решению о добавлении функций в приложение:



Работая с диаграммами UML, вы можете создавать или связывать элементы в дизайнере с элементами в системе Work Item Tracking сервера Team Foundation Server (TFS):



Обеспечение валидации приложений


Со временем, качество кода в проекте может деградировать, если исправление багов и добавление функций не производится в соответствии с архитектурой. Это тот случай когда могут помочь инструменты Layer designer и Layer validation. Layer designer позволяет вам определять логические уровни и валидные способы сообщений между уровнями в проекте. Когда вы ассоциируете сборки, пространства имен и классы со слоями в дизайнере Layer diagram, вы можете валидировать существующий или новый код на базе ограничений уровня. Например, на этой диаграмме уровня, коду с уровня представления допускается иметь связи с кодом на уровне бизнес-логики. В тоже время, так как здесь не представлена связь между уровнем представления и доступа к ресурсам (Resource Access), то любой код, который пытается получить такую зависимость должен привести к ошибки во время компиляции.



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

Мы рассмотрели некоторые архитектурыне инструменты Visual Studio Visual Studio Team System 2010. Вы можете получить больше информации о них или других функциях в блоге Cameron Skinner.

Progg it
Tags:
Hubs:
+32
Comments 20
Comments Comments 20

Articles