We have several applications with the requirement to separate the API from the UI to support Desktop, Mobile and web platforms. Generally you want to keep as much of your business logic in the API's and leave the UI's as "window dressing".
Here's an example project layout (simplified a bit):
ProjectA
- ProjectA.Api - Web Api project. Almost no business logic should go here. This should be used for surfacing your business layer.
- ProjectA.Business - Business logic class go in here: repositories, services, business models, etc.
- ProjectA.Data - Data access and Data Model classes go here.
- ProjectA.Web - A website written to access the API's mentioned above. We use Angular 1/2 and WebStorm to do most of the work, but it's still listed like this for consistency.
- ProjectA.iOS - iOS mobile app
- ProjectA.Win - Windows desktop app
- PRojectA.Etc - you can keep going, you get the idea.
Lately, my team has been using WebStorm for the UI stuff and Visual Studio for the backend stuff and the result has been fantastic. Separating the development environments helps keep you in a certain "head space" while you're working.