I have an ASP.NET MVC project with a Data layer (NHibernate and Repository pattern) a Service Layer and a Web (MVC) layer.
At the moment, for each Controller in the Web layer I have a matching service class in the Service Layer. This works fine, although there is some duplication of interface and logic between the service classes (more than one class needs a GetThingById() method) and my Home Controller uses multiple services (or there would be a huge amount of duplication in a dedicated Home controller).
Is there a better way to structure this?