ASP.NET MVC is a framework from Microsoft that uses the Model-View-Controller pattern to build dynamic web applications. It provides separation of concerns, testability, and full control over HTML and JavaScript. Key features include test-driven development, friendly URLs through routing, and no view state or server-based forms. The MVC pattern divides applications into separate modules for the model, the view, and the controller.