Version 4 was a leap in capabilities and the first version to use an model-view-controller architecture by using the
ASP.Net MVC framework. This architecture clearly separates the data access, business logic, and display code. The
inclusion of the Entity framework also allowed for code-first data access. That means that the objects designed in
code created the database, not the other way around. However, when designing version 4, I decided to go back to the
single application design. Since the frameworks consisted of many megabytes of libraries, this move saved a lot of
space. It also made it possible to guarantee that each sub-app had access to the latest functionality. Unfortunately,
this design was a bad idea. It meant that every time a core function was updated, all sub-apps had to be recompiled
and manually tested to verify nothing was broken. This version allowed for mixed authentication, both built-in and
against Active Directory. While this version did not enforce a single database, it did tend to nudge for it, since
in order to separate the databases of sub-apps it would mean loss of continuity for user management.