Hi ksouthworth,
Even though countries and currencies may need to be displayed as lists they are still concerns within your domain and should be modelled as such. Even though I modelled the Country as a string property on the address, really it would have made more sense to model it as an entity or a value object, as over time it will have behaviour such as what couriers deliver to that country etc. Same with currency, at the moment in the Agathas solution I have a decimal property, but how do I know what the currency is and how on earth do I display it and format it? All of this should be behaviour within a currency value object - I think we touched on this in this post -
Why is Price a "string" type in the ViewModel instead of Decimal?.
Thinking back I should have added more value objects into the Agathas solution, but to keep the page count down and because of time I dumbed it down. Value objects for things such as Money, Currency, Price, Discount etc are very, very powerful when used in a domain model, they convey the concerns of the domain better than simple types.
But to get back to your question I use a repository for Countries and Currencies.
Cheers
Scott