back to home
The file system
Our system is built using Microsoft ASP.NET MVC technology. Each system is backed with a SQL Server database. The file system has the following key folders:
- /central - where we store all the base functionality. This can all be inherited and overridden on a per customer basis since there is almost always a mirror folder off the root.
- /central/controllers - where all the centralized controllers are stored. A controller is where most of the database queries and logic happens. Controllers pass off their info to the view where the information is rendered We have many centralized controllers that are sort of "modules" that can be part of your system. They are functionalities like: pages, news, classifieds, events and more
- /central/framework - Core functionalities used to do things like query the database and more. Probably not anything you’ll need to override or interact with. Mostly you’ll find yourself making or overriding controllers and/or views.
- /central/views - this is where all the central view are stored. The views can’t be elegantly inherited. If you need to override a view, you need to make your own copy. Let’s say a request comes in for /pages/detail/1. Here’s what happens
- First, the application looks in /controllers to find a /pages controller. Most of “your” controllers simply do a straight inheritance from the central controller. But often times there are properties that a customer has overridden to make the functionality work for them.
- Once the controller does its work, the system tries to find a view and it looks
- first in your /views/folder. If it doesn’t find it then it looks in
- /central/views/folder. This is if you haven’t overridden the central view. If it doesn’t find it here then it looks in
- /central/views/shared for a more generic view
- /controllers - This is where “your” controllers live. Most of the time, they do a straight inherit from /central but you can override functions and properties here.
- /views - This is where “your” views live. Unfortunately, views can’t elegantly be overridden. Meaning, it’s quite clean to override a central controller. You just inherit and then can change one property. Then, “we” at Brick River can change the central controller (say making some improvement) and “you” will get it too. The problem with views is that you have to copy in the view and then you “own” that whole view. If we come along and make a little tweak, you won’t get it.
- /content - This is where your images, CSS and other files are stored.