ASP.NET MVC 3 - 您希望看到哪些功能?

时间:2010-03-25 18:47:41

标签: asp.net-mvc asp.net-mvc-2 asp.net-mvc-3

我知道很多人真的很享受ASP.NET MVC 2在第一版中所做的改进。我刚刚开始迁移我们的MVC 1项目,到目前为止,已经完全清理了我们在大规模应用程序中的子文件夹混乱。当我深入了解所有改进和变化时,我仍然一直在想,如果他们在这个版本中有x,那将会很好。例如,如果他们内置了某种依赖注入而不必使用第三方解决方案,我会很喜欢它。

我真正的问题是ASP.NET MVC 2已经出现了,希望团队实现了什么功能,希望他们能够实现ASP.NET MVC 3?

修改

看起来像ASP.NET MVC 3的第一个预览版内置了依赖注入!我喜欢到目前为止添加的功能。 ASP.NET 3 preview one is out!

16 个答案:

答案 0 :(得分:10)

我认为MVC 3的改进不会过于戏剧化,但会更加稳定和渐进。

ASP.NET MVC 3 Roadmap概述了团队在下一个版本中实际看到的内容,其中一些内容非常有趣。

我认为我列表中的最爱可能是:

  • 更多AJAX助手:这将使框架更加符合Webforms世界,这个世界已经拥有所有这些帮助者,并且在某种程度上,它们成为了某些人占用平台的障碍。
  • 更多依赖注入的东西 - 对于那些想要它的人来说,这很棒。 :)
  • 改进的缓存支持对我来说是一个巨大的胜利。将其构建到框架中将是一个很大的好处,并可以带来一些不错的性能节省。
  • 其他ValidationAttributes也不会错过。虽然这个工具非常适合添加它们,但它们是常用的一个很好的库,例如Email和PropertiesMustMatch等。

答案 1 :(得分:9)

我希望完全删除所有魔术字符串。

答案 2 :(得分:6)

我真的希望他们添加以下内容:

  1. 使用html标记属性的Spark样式条件和循环。
  2. 更新:可见项目属性,用于切换视图的编译时验证。
  3. 验证/验证我的路线是否正确的东西。
  4. 使用int而不是Guid进行标识的成员资格提供程序解决方案,允许将配置文件字段映射到自定义表,而不是通用但缓慢的默认值。
  5. 基于Lambda的帮助器,以避免魔术字符串(目前在MvcFutures中)
  6. T4MVC模板,用于自动生成强类型助手
  7. 项目向导或模板,以获取已为IoC设置的模板和类似问题,最好使用选择对话框选择用于IoC的框架,单元测试等。
  8. 其他属性(过滤器和验证)。
  9. 嗯,这就是我现在能想到的全部内容:)

答案 3 :(得分:4)

为单元测试创​​建Moq对象的工具(T4模板)非常酷。对框架中的某些对象进行测试是不必要的复杂,并且能够对其中某些对象进行代码生成将非常有益。

答案 4 :(得分:4)

我想:

<强>工具

  • 使用ajax的替代列表视图,例如使用jqGrid(实现排序,分页,搜索)
  • CRUD页面的增强功能检测实体框架类的实体关系,并使用基于字段类型的另一组组件,例如就像动态数据那样:)

答案 5 :(得分:3)

由于ASP.net MVC 3仅为.net 4,我希望看到围绕异步控制器和.net 4带来的所有其他新的异步/多线程函数的一些东西。

答案 6 :(得分:2)

我希望看到像IronRuby

这样的内置支持

答案 7 :(得分:2)

MEF支持会很好。

答案 8 :(得分:2)

我希望看到一种处理路由的新方法,以便更容易开发REST服务。目前我有这样的路线:

context.MapRoute(null,
                 "api/posts",
                 new { controller = "Post", action = "Get" },
                 new { httpConstraint = new HttpMethodConstraint("GET") });


context.MapRoute(null,
                 "api/posts",
                 new { controller = "Post", action = "Insert" },
                 new { httpConstraint = new HttpMethodConstraint("POST") });


context.MapRoute(null,
                 "api/posts/{id}",
                 new { controller = "Post", action = "Update" },
                 new { httpConstraint = new HttpMethodConstraint("PUT") });


context.MapRoute(null,
                 "api/posts/{id}",
                 new { controller = "Post", action = "Delete" },
                 new { httpConstraint = new HttpMethodConstraint("DELETE") });

对于使用ASP.NET MVC的新人来说,创建匿名对象来处理路由是非常不直观的。我希望将其修改为类似的东西(因为我们使用的是C#4.0):

context.MapRoute("api/posts",
                 controller: "Post",
                 action: "Get",
                 httpMethodConstraint: HttpMethodConstraint.GET
                );

context.MapRoute("api/posts",
                 controller: "Post",
                 action: "Insert",
                 httpMethodConstraint: HttpMethodConstraint.POST
                );

context.MapRoute("api/posts/{id}",
                 controller: "Post",
                 action: "Update",
                 httpMethodConstraint: HttpMethodConstraint.PUT
                );

context.MapRoute("api/posts/{id}",
                 controller: "Post",
                 action: "Delete",
                 httpMethodConstraint: HttpMethodConstraint.DELETE
                );

这也会让它更容易被发现。

答案 9 :(得分:1)

我想帮助自动构建索引视图的助手。可能类似于IndexDisplay()IndexDisplayFor()IndexDisplayForModel()

答案 10 :(得分:1)

我想模仿在任何给定模型上自动生成好友类。

答案 11 :(得分:1)

我也使用像html-helper这样没有助手的大部分东西的简单功能在asp.net MVC 3的开发是未来学习MVC 3的更好的方法。

答案 12 :(得分:1)

我最希望看到的两件事是在视图,过滤器等中直接依赖注入,并且(我知道这应该是Razor视图引擎的方式)是能够测试我的视图与ASP.Net管道隔离(可能包括doctype验证和/或某种类型的JavaScript编译/验证)。

以下是其他一些想法:

  • 能够打包UI组件(视图,模板,视图模型等)以便在多个项目中重用,这将是一件好事。我猜这是目前可能的某种方式,但我只是不需要它自己弄清楚它。
  • controllerless actions的想法引起了我的兴趣,特别是从SRP的角度来看。
  • 更好地支持Post-Redirect-Get(P / R / G)模式......似乎应该对这个非常重要的模式有内在的支持。

答案 13 :(得分:0)

答案 14 :(得分:0)

我希望看到区域组件支持(我的意思是许多具有不同区域的组件)+动态加载,类似于插件。

编辑: 我们今天有预览1:http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx

有人高兴吗?产品:&gt;

答案 15 :(得分:0)