The key to successfully building scalable applications is to achieve a decoupled or very loosely coupled design. Loosely coupled applications are more flexible and easier to maintain. They are also easier to test during development. You
can mock up lightweight mock implementations of objects that have strong concrete dependencies; such as database connections, network connections, and rich user interface components.

Dependency injection is a prime technique for building loosely coupled applications. It provides ways to handle the dependencies between objects.

MvcUnity uses the Unity dependency injection container (http://www.codeplex.com/unity) to easily decouple your models and repositories allowing you to always: "Program to an interface, not an implementation".