Como posso construir um 'diagrama de árvore de dependência' da minha solução .NET
-
09-06-2019 - |
Pergunta
Posso ver facilmente quais projetos e DLLs um único projeto faz referência em um projeto do Visual Studio .NET.
Existe algum aplicativo ou uso de reflexão que possa criar uma árvore de dependências completa que eu possa usar para traçar um gráfico gráfico de dependências?
Solução
Além do NDepend, você também pode experimentar este complemento para Refletor para mostrar o gráfico de dependência de montagem.
Outras dicas
NDepend vem com um gráfico de dependência interativo acoplado a uma matriz de dependência.Você pode baixe e use a edição de avaliação gratuita do NDepend por um tempo.
Mais sobre o gráfico de dependência NDepend
Mais sobre a Matriz de Dependência NDepend:
Isenção de responsabilidade:Faço parte da equipe de ferramentas
Eu precisava de algo semelhante, mas não queria pagar (ou instalar) uma ferramenta para fazer isso.EU criou um script rápido do PowerShell que passa pelas referências do projeto e os cospe em um yuml.me formato amigável em vez disso:
Function Get-ProjectReferences ($rootFolder)
{
$projectFiles = Get-ChildItem $rootFolder -Filter *.csproj -Recurse
$ns = @{ defaultNamespace = "http://schemas.microsoft.com/developer/msbuild/2003" }
$projectFiles | ForEach-Object {
$projectFile = $_ | Select-Object -ExpandProperty FullName
$projectName = $_ | Select-Object -ExpandProperty BaseName
$projectXml = [xml](Get-Content $projectFile)
$projectReferences = $projectXml | Select-Xml '//defaultNamespace:ProjectReference/defaultNamespace:Name' -Namespace $ns | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty "#text"
$projectReferences | ForEach-Object {
"[" + $projectName + "] -> [" + $_ + "]"
}
}
}
Get-ProjectReferences "C:\Users\DanTup\Documents\MyProject" | Out-File "C:\Users\DanTup\Documents\MyProject\References.txt"
Você pode criar um gráfico de dependência de projetos e assemblies no Visual Studio 2010 Ultimate usando o Architecture Explorer para procurar sua solução, selecionar projetos e os relacionamentos que deseja visualizar e, em seguida, criar um gráfico de dependência a partir de sua seleção.
Para obter mais informações, consulte os seguintes tópicos:
Como:Gerar documentos gráficos a partir do código: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource
Como:Encontre código usando o Architecture Explorer: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx
Baixar RC: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a.
Ferramentas de modelagem e descoberta de arquitetura do Visual Studio 2010 fórum: http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads
Estrutura101 pode fazer isso.Você pode navegar em um modelo por assembly e/ou namespace e clicar em qualquer dependência em qualquer nível fornece todas as referências em nível de código que causam a dependência.A versão .NET está em beta, mas está disponível para outras linguagens há anos, por isso está muito madura.Aqui está um exemplo de captura de tela.texto alternativo http://www.headwaysoftware.com/images/assemblies.jpg