MVC'de Model, sadece bir DTO veya bir dizi Yönetici / Hizmet değil, uygulamanızın modellediği kavramları temsil etmeyi amaçlamaktadır. Bunu, alanın tamamı veya eyalet ve davranışlar da dahil olmak üzere iş mantığı olarak düşünebilirsiniz. Şimdi, kontrolörün amacının biraz daha net hale geldiğini bildiğimiz göz önüne alındığında. İşi sadece komutları Model'e ve sonucu tekrar görünümlere çevirmektir. Bu genellikle farklı ancak MVC'deki Model ile karıştırılan ViewModels şeklinde yapılır.
Eğer iyi tanımlanmış bir Modeliniz yoksa, o zaman mantığın çoğunun Kontrolörlerin kendisinde olduğu noktaya gelmiş olabilirsiniz. Bu noktada, denetleyicilerinizin boyutunu azaltmaya başlamak için bu mantığı yönetici veya hizmet nesnelerine geri çekmeye başlayabilirsiniz. Bu hizmetler genellikle DTO / Entity benzeri nesneler üzerinde geri döner ve çalışır. Ardından denetleyici, bu hizmetler ve Görünüm Modelleri arasındaki eşleme katmanı haline gelir. Eşlemeyle ilgili birkaç ipucu için bu makaleye göz atın Arkadaşlar, arkadaşlarınızın AutoMapper kullanmasına izin vermez .
Sorularınıza gelince, ilki uygulamalarınıza çok bağlıdır. Mantık denetleyicilerinizden kaldırıldıktan sonra daha belirgin hale gelmesi gereken yol boyunca yeniden düzenleme yapmanız gerekecektir. Testlere gelince, hizmetlerin içinde örnek teşkil eden problemler yoktur, ancak testlerin zor olduğunu düşünüyorsanız, muhtemelen sadece her biri tek bir sorumlulukla hizmeti daha küçük parçalara bölmeniz gerekir.