I am using MVC4 RC and I read that MVC4 uses JSON.NET as the default JSON Serializer/DeSerializer.
I am not using Web Api and just using default MVC controllers.
When I break on Application_Start and browse through ValueProvidersFactories, I still find JSONValueProviderFactory, which internally uses JavaScriptSerializer.
?ValueProviderFactories.Factories
Count = 6[0]: {System.Web.Mvc.ChildActionValueProviderFactory}
[1]: {System.Web.Mvc.FormValueProviderFactory}
[2]: {System.Web.Mvc.JsonValueProviderFactory} <–
[3]: {System.Web.Mvc.RouteDataValueProviderFactory}
[4]: {System.Web.Mvc.QueryStringValueProviderFactory}
[5]: {System.Web.Mvc.HttpFileCollectionValueProviderFactory}
So to use JSON.NET, do I still need to create my own ValueProviderFactory (as done here) Or I am missing something in the whole picture?
No, you are not missing anything. You debugged and understood perfectly fine the whole picture. If you want to use JSON.NET with standard ASP.NET MVC controllers (not Web API) you have to roll your own Json value provider factory.