Web services via class library - how to diagram?

We write a controller class library which our desktop and web UI shares (as they do fairly similar jobs). This controls communication to our web services, saving us having to write the same code for both apps.

The problem is, the application diagram tool doesn't support class libraries. So now I've diagrammed my software architecture, what happens when I put this controller class library into my source

Is the application diagram smart enough to handle this intermediary class between it and the web services Do all my applications get disconnected on the diagram, breaking the deployment checking functionality

Any ideas appreciated.




Answer this question

Web services via class library - how to diagram?

  • mikhey

    Hi Kerry,

    The designer that Bill's referring to won't be in version 1. We've documented the technique for reverse-engineering Web references in class libraries as endpoints on consumer applications by copying the appropriate config file entries from the class library to the consumer application's config file. Do you have access to info about this technique



  • raj416

    Nope, I never received anything from Esther and in fact I ended up dropping the diagrams from my solution. I found that overall they actually caused me more work than they were worth.

    For example when changing the namespace of an application or a web service half the diagram turned red (as of September ctp) and had me recreating the diagram or hacking the xml to fix it, then having to redo the ldd etc; very tedious. Didn't quite work seemlessly enough for me (why isn't there a refactor namespace ).

    However, we are still small enough not to need the diagrams as a formal architectural tool. I'll wait for version 2.0.


  • Graham D

    Hi Kerry,

    I apologize for the late reply, it seems my subscription wasn't working, so I wasn't notified there were additional posts to this thread.

    If you're still interested, here's pointers to the documentation about how to reference class libraries on application diagrams. An update is also planned for this topic for better readability:

    http://msdn2.microsoft.com/en-us/library/ms242487.aspx



  • Wesamsoftware

    Hi Kerry,

    There's a recent post by Bill Gibson, a senior program manager on VSTESA, that might answer your question:

    http://forums.microsoft.com/msdn/ShowPost.aspx PostID=85706

    If this isn't the info you're looking for, please let me know, and I'll find the right person to get the answer for you.

    Thanks!

  • Marie -devBiz

    Wow, quick reply :)

    No, I haven't seen that information yet. I can probably work it out, but any links you have handy would be gratefully appreciated.

    Thanks Esther

  • dslaby

    The September CTP did not have a good build of the designers. Therefore, please do not take the CTP build's quality to be indicative of the quality of the final release. The issues that you have highlighted do not occur in the released product.

    As for the issues with Class Libraries, the following TechNote is really useful in understanding why Class Libraries are not shown on the Application Diagram:
    http://msdn.microsoft.com/vstudio/teamsystem/reference/technotes/apps_designer/class_lib.aspx

    Bill Gibson has also written a TechNote that specifically targets the pattern that you have identified:
    http://msdn.microsoft.com/vstudio/teamsystem/reference/technotes/apps_designer/connect_apps.aspx

    For the next version of VSTS we are actively looking at providing a better modeling experience over Class Libraries.

    Thanks,

    Ali Pasha
    Program Manager | Visual Studio Team Edition for Software Architects


  • Hinemac

    Hi Esther,

    Yep that article is useful and I agree with Bill, I'm glad to see it's a hot topic too. He doesn't mention when the extra diagram will be implemented however (I'm currently using beta 2)

    Because the web references are on the application, I can see developers making WS calls directly from the app rather than the class library. I can get around this somewhat with training and code reviews, but it would be good if there was a "don't add web reference" type setting so only the configs are set up in the app.

    This would save any confusion, as I could add the web references manually to the class library until the new diagram comes along.


  • raibeart

    I'm having the same problem about modeling web service access through a class library. Since Patterns & Practices recommends using a Service Agent when talking with a Web Service, this seems like it would be a common occurrence. The Service Agent would be in a class library so many applications could use it.

    Did Esther or anyone else ever posts links/documentation on reverse-engineering Web references Not sure if that will answer my problem but it might help. However, going from code to diagram isn't really what I want. I want the diagram to help in the coding, not the other way around.

  • Web services via class library - how to diagram?