Having few spare minutes at the airport waiting for the plane AND downloading Windows 8 Developer Preview I thought why not investigate how my Media Center Status Application is actually structured in terms of assembly dependency.
Visual Studio 2010 provides nice way do do that. Just select Architecture –> Generate Dependency Graph and select what kind of graph you wish to generate. Below you see Dependency Chard by Assembly of my application with nice arrows leading from an assembly to another indicating how assemblies are related to each other. You can dig deeper in your assemblies by clicking the small arrows on top right of each assembly.
What I learned of my tool immediately is that I should maybe consider moving Amazon functionality to own assembly. At least that’s how I’ve done with Facebook and Twitter, so it would be more coherent to do the same with Amazon code. However, my idea is to make external web site functionality to function as plugins, and Facebook and Twitter behave the same in that regard (=getting status or updating status to/from these services).
Amazon is used differently, as the application only queries Amazon for additional media details, such as CD or DVD cover art. There are other services that could be used for querying cover art and other information in addition to Amazon, so conclusion is that separating Amazon code into own assembly might be right way to go so possible future plugin developers could add support for other media information services as well.