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等。