We have a business layer in a separate project that does CRUD, reporting, caching, and some extra logic. We aren't going to be using EF, or something similar. Currently we've defined c# classes as MVC Models, and our controllers call the business layer to populate the Models, which are currently defined in the usual place in our MVC app. These C# models get serialized as JSON, and we use the mapping plugin to make KO ViewModels.
Since everything we do in the browser is c#/JSON based using knockout, we aren't using MVC models in the traditional MVC way - everything gets posted as JSON and serialized to c#, so we don't use MVC model binding, validation, etc. We're considering moving these models into our business layer to simplify things and allow us to test the business layer independently from the web app. It also opens up the possibility of using the business layer in other web apps.
So we'll be left with an MVC project that has controllers and views, but no models - controllers will call into the business layer to get their models, which will be in a different namespace. We're nervous about departing from the normal MVC structure, but a KO/javascript based client is fundamentally different from a DOM based client that MVC was originally built around, so maybe it makes sense..
Does this sound like a viable way to go? Is there a better approach?