I'll will make ERP software for managing data for business activities. The solution must have two big parts: a WPF application for all the clients and an ASP MVC Web API application for all the client.
The API application manage all the public data that is equal for all the clients and store it into a SQL server database on the Azure cloud. The clients could access this data by an API to the web service.
The WPF application manage all the private data and store it also on a SQL server database on the server of the client. But here is there a problem. Not all clients has an own server. In this situation the database must also run on a cloud service like Azure.
99% of the users use only the WPF application and not the web service. The desktop app access API's from the web service. For both databases (on client and server) I'll use Entity framework 6 with code first migrations.
The question is what code design pattern (like MVVM or MVC) can I use for my ERP software that hasn't duplicate code and with a service layer for manage the direction of the data, to the web service or to the client's server farm or if the last case is not possible to the client's server farm on Azure.