I’m working my way into MVC at the moment, but on my ‘To learn at some point’ list, I also have WCF.
I just wonder if WCF is something that should/could be used in an MVC Application or not? The Background is that I want a Desktop Application (.NET 3.5, WPF) interact with my MVC Web Site, and I wonder what the best way to transfer data between the two is. Should I just use special Views/have the controllers return JSON or XML (using the ContentResult)?
And maybe even more important, for the other way round, could I just call special controllers? Not sure how Authorization would work in such a context. I can either use Windows Authentication or (if the Site is running forms authentication) have the user store his/her credentials in the application, but I would then essentially create a HTTP Client in my Application. So while MVC => Application seems really easy, Application => MVC does seem to be somewhat tricky and a possible use for WCF?
I’m not trying to brute-force WCF in this, but I just wonder if there is indeed a good use case for WCF in an MVC application.
WCF services might make sense in this situation, but don’t create services that align with your UI, create services that align with the business processes. ie. you won’t have a service that returns the view data for each page, you will have a service that exposes logical operations. Then, your site can call the same services that the windows client calls, but you don’t have to couple the design of the windows client to the design of the web site.
Instead of this:
Windows Client -> Services -> Web Site
It should be:
Windows Client -> Services
Web Site -> Services