asp.net mvc的版本更新很快,每个版本都在前一个版本的基础上,进行性能的优化和功能的完善和提升。
以下,便是我对比了下两个版本,发现最基本的差异。(更新补充中。。)
一、关于配置类Global.asax的不同
为了较少配置类的杂乱代码,asp.net mvc 4 中 将Global.asax文件中的内容单独到 App_Start 下的几个配置文件中去。
在asp.net mvc 3 中:
public static void RegisterGlobalFilters(GlobalFilterCollection filters){ filters.Add(new HandleErrorAttribute());} //设置路由public static void RegisterRoutes(RouteCollection routes){ routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{id}", // 路由匹配格式,默认URL new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 默认参数 );}protected void Application_Start(){ AreaRegistration.RegisterAllAreas(); // Use LocalDB for Entity Framework by default Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True"); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); BootstrapSupport.BootstrapBundleConfig.RegisterBundles(System.Web.Optimization.BundleTable.Bundles); BootstrapMvcSample.ExampleLayoutsRouteConfig.RegisterRoutes(RouteTable.Routes);}
在asp.net mvc 4中:
protected void Application_Start(){ AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles);}
其中,使用到的config文件单独在了App_Start文件夹中。
WebApiConfig.cs: 用于注册Web API路由和配置设置。FilterConfig.cs: 用来注册全局MVC过滤。(默认HandleErrorAttribute是已注册的)RouteConfig.cs: 有关MVC路由的配置BundleConfig.cs: 有关用于捆绑和缩小的注册捆,默认的css和js等。