Duplicate
I've developed some ASP.NET MVC apps, and loving the framework. However, one thing I don't quite understand is why it's limited to web UIs. It seems like one of the reasons for a separation of the view and controller is to allow for multiple views to reuse the same controller logic. For example, I should be able to hang a WPF UI on the same controllers as the Web UI. I suspect, though, that I'm misunderstanding something fundamental about separation of concerns. Is there a reason ASP.NET MVC controllers are limited to use in web applications?
Update: I'm less interested in "is it possible to do MVC on the Desktop" - I know Prism, etc. allow this. However from a design standpoint, one of the "reasons" we want separation of concerns is for reusability. If we can't reuse the controllers, it feels like we're repeating ourselves when rewriting identical logic in a WPF app. The answers below do clarify this some for me though.