I frequently come to programmers to ask a question about design. My current one is asking whether it's better to include an API in a .NET MVC project or whether it should be an external project.

However as I write it I can't help thinking it's purely down to opinion and so will likely be closed.

Sample question:

We're currently designing a new application which we anticipate will grow to a fair size. We're using .NET MVC and will need to implement an API (most likely WCF). Historically we've kept our APIs in a subfolder of the main UI project however we're worried about the extra routing issues may create.

Is it a good idea to keep the API in a separate solution in an MVC application?

How do you ask a design question which isn't opinion based?

  • Ask about a real problem you are facing. What does "better" mean for the project you're building? What are your actual constraints?
    – yannis
    Commented Jul 24, 2014 at 12:07
  • @YannisRizos I've edited the question with the question I was going to ask. I feel it's too open ended but should give an example
    – Liath
    Commented Jul 24, 2014 at 12:10

1 Answer 1


I feel the best way to answer such questions is present the problem you are facing in making a design decision and state the answer that you feel is best. Then try and ask about potential pitfalls and things to pay attention to, cons, with the decided approach.

This has the benefit of being answerable and not asking for "which is better". The answerer being an expert in the subject matter should be able to identify the problems with his/her preferred approach and if it is not his/her preferred approach then it is even easier to think about what is wrong with this approach.

If you have a question about design that you would like to ask and you feel it can be improved and are having trouble thinking of a way, then you can always flag for a moderator and we can try to improve the question for you or put it on hold giving the community the chance to improve the question.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .