One of the best things about using a compiled language over a scripting language is that you get compile-time checks that prevent run-time errors later. ASP.NET MVC uses a hybrid approach by default. Views are compiled at run-time, but controllers, models, and other classes are pre-compiled. MVC also allows you to create strongly-typed views, but since those views aren't compiled until run-time, you don’t always get warned about changes to your models (like property name changes) or other errors in your view until it's running. There’s a simple way to change this.