ASP.NET MVC is an open source web framework that provides separation of concerns, testability and extensibility. It uses routing to map URLs to controller actions and dependency injection to create controllers. Controllers execute actions that return view or other results. Filters provide cross-cutting concerns like authorization in a clean, reusable way.