#47 Add new C4PlantUmlWriter with C4-PlantUML support#52
#47 Add new C4PlantUmlWriter with C4-PlantUML support#52simonbrowndotje merged 6 commits intostructurizr:masterfrom
Conversation
- Add new C4PlantUmlWriter with C4-PlantUML support (issue structurizr#47) - ModelItem returns a list of all tags via GetAllTag() - RelationshipView support an additional list of tags which can be used in the diagram via ViewTags. RelationshipView.GetAllTag() returns a merged list of ViewTags and all Relationship tags - Update relationship descriptions and technology in BigBankPlc example - Update PlantUMLWriterTests and C4PlantUmlWriterTests that the expected text can be (simpler) reused as UML definition
simonbrowndotje
left a comment
There was a problem hiding this comment.
Hi, thanks very much for adding this. It all looks good except for the addition of the "view tags" property on the RelationshipView class. Having a separate list of tags for relationship views is going to potentially confuse people, as the Structurizr service doesn't support this concept. Is there another way to do this without changing the RelationshipView class?
|
Hi Simon, the "view tags" are a view specific extension like x and y in "ElementView". In my case I use it and add directions like up/down/left/right but it could be generic enough to add other view related information too. And I (re-)used "tags" that I could even defined a common layout directly in the model and reuse it in all views (like person is on top of view). |
|
Thanks, I understand. This is primarily a client library for the Structurizr service though, and I don't really want any changes to the core classes - having tags on the RelationshipView class is going to potentially confuse people who are using the Structurizr service, which doesn't support this concept. |
|
I've added a |
|
Hi Simon, |
|
Thanks. I'm not sure what you mean by, "In your current model you store only health check urls and no "productive" url/endpoint. Can you suggest a property which should be displayed?" ... could you elaborate? |
|
In my branch https://github.com/kirchsth/C4-PlantUML I have a hypothetical sample with tenants, and both are children of the same node (and in your case both would have a different health check url). |
|
Yes, I think you're correct on both counts...
|
|
Following your current pattern with the FailoverTag, then your solution could look like: |
|
It's really up to you, and it can be visualised however you like, there are no "rules" here. For the Structurizr service, the colour of the container instance is changed based upon the health check passing (e.g. https://structurizr.com/share/38000/health) ... but I don't think many people use this feature to be honest. It's also worth noting that this is a dynamic diagram, not a static image. |
|
I agree, it is a static diagram. I used the "different health check urls" only to demonstrate that there could be different instances in one node and a user cannot distinguish between the 2 instances (except the different displayed relationships which have different descriptions) |
- RelationshipView.GetAllTag() support removed - C4PlantUmlWriter supports Relationship and RelationshipView.Property[Direction] (can be set via .SetDirection()) - C4PlantUmlWriter supports Component and Container.Property[IsDatabase] (can be set via .SetIsDatabase())
- Node and Container in deployment diagrams - Interact2 in dynamic diagrams (Interact are relations with the automatically increased index; Interact2 uses Interact layout with explicit order)
…file error MSB5010: No file format header found)
|
Hi Simon, |
|
@simonbrowndotje: do I have to make something special that state "Changes requested" is changed? |
|
Thanks very much ... I'm travelling at the moment, but this is on my todo list for next week when I get back home. |
PlantUMLWriterwith support for C4-PlantUML? #47)RelationshipView.GetAllTag() returns a merged list of ViewTags and all Relationship tags