Many of my enterprise applications contain an architexture of multiple c# solutions as I describe below.
I have one class library that contains classes and interfaces to represent information. For example, one class represents a user and contains appropriate properties. Similar to structs. Any of my other projects can reference this project for global understanding of the objects transferred between them. There is little or no logic in this project. I call this my "Repository."
I have a seperate solution that handles access to persistence. It is pretty much just wrappers around calls to gather data from persistence sources (Databases, Websites, Files, etc). The sets of information it receives is formatted into the class(es) of my "Repository". There is little or no logic in this project. I call this my "Persistence Access" or "Data Access." This solution also includes mostly integration tests and maybe a couple unit tests.
I have a seperate solution that has organized classes and methods for logic. Whenever a customer application (webservice, wpf, web, android) needs a logical output determined by the business requirements of my company, a method is logically organized into one or more of these classes. This project makes calls to my "Persistence Access" and can receive and output either in the form of generic types/collections, or in the form of one of my "Repository" types. This project contains multiple classes and almost all of the enterprise application's logic according to business requirements. I call this my "Business Logic." This solution also includes mostly unit tests, and maybe a couple integration tests.
I have an asp.net web application project. My web application has javascript, css, aspx, codebehind files, and some other basics that naturally come along with these things (some ashx). If a page requires logic or data in order to determine what is displayed on the page, the Code Behind file calls the "Business Logic" to make those determinations. The only thing the asp.net aspx objects do are format that information. I call each of these pages "views" or "ViewModels." This application contains very few tests as it's mostly just aspx, xhtml, css, and a couple protected event handlers in codebehind. (Maybe some tests on ashx file(s).)
My Confusion is This: In ASP.Net Web Development Terms, I like to say I'm using a Model-View-Controller architecture. But I am NOT using the Microsoft MVC Web Application because I want to seperate my business logic completely out of the website.
So is it correct to say I use MVC? I HAVE Created MS MVC Web Apps before, but for complex projects that may have more than one use for the business logic (which is most of them), I use this architecture I have described. Or, am I using some other pre-named architecture? I want to know the architectural pattern name as it pertains to Web Development. So MVVM doesn't immediately sound pertinent to me per se.