How should I organize my c# solution?

主宰稳场 提交于 2020-01-04 05:21:15

问题


I have three projects in my C# 4 solution.

  • MooDB: Has my domain objects in, NHibernate mappings, presentation classes.
  • Data: Has my data access layer classes (using NHibernate)
  • Test: Has my test classes

Here's a screenshot:

I've noticed that I've got app.config and hibernate.cfg.xml in my Test project. This does seem right. I don't have an app.config in my Data project which is a problem because I want to use log4net in my Data project but I can't configure it if there's no app.config there.

What's the best way to set up my solution? Should there be an app.config for each project or for the solution as a whole? Do I need one for my Test project? Have I organized it according to "best practise"?


回答1:


I usually see config files at the highest layer; which is usually the UI or Test.

This makes sense (to me at least), because the application is directing the data layer to which repository it should be fetching the data from. Your test layer is probably going to go to a different place than your production application; so having config in the Data project wouldn't make much sense to me... it's the top layer that's "configuring" the bottom layers.




回答2:


If you want a single place to make config changes, you can config files in your main project and use post-build events to copy the resulting output files to the bin folders of your other executable projects.

You need to consider whether the configuration that you use in your main application is the same as the one you want to use in your unit tests though. If not, then separate config files are absolutely ok.



来源:https://stackoverflow.com/questions/8853519/how-should-i-organize-my-c-sharp-solution

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!