我知道一群真正喜欢ASP.NET MVC 2在第一版中做出的改进的人。我刚刚开始迁移我们的MVC 1项目,到目前为止,该区域已完全清理了我们在大规模应用中遇到的子文件夹。当我更深入地研究所做的所有改进和变化时,我仍然不断思考自己的男人,如果他们在此版本中有X,那将是很好的。例如,如果他们内置了某种依赖注入,而不必使用第三方解决方案,我会喜欢它。

我真正的问题是,ASP.NET MVC 2在野外发行,团队已经实施了哪些功能/希望他们能为ASP.NET MVC 3实施?

编辑

看起来依赖项注入是为ASP.NET MVC 3的首次预览发布所内置的!我喜欢到目前为止添加的功能。 ASP.NET 3预览一个已经出来了!

有帮助吗?

解决方案

我认为MVC 3的改进不会太戏剧性,但更稳定和逐渐。

ASP.NET MVC 3路线图 有一个快照,介绍了团队在下一个版本中显然正在考虑实施的内容,并且一些要点非常有趣。

我认为我从该清单中的最爱可能是:

  • 更多的Ajax帮助者:这将使框架更符合Webforms世界,该框架已经拥有所有这些帮助者,并且在某种程度上是对某些人占用该平台的障碍。
  • 更多的依赖注入内容 - 对于那些想要的人来说,这很棒。 :)
  • 改进的缓存支持对我来说是最大的胜利。将该构建在框架中将是一个很大的好处,并可能节省一些良好的性能。
  • 其他验证属性也不会错过。虽然该设施非常适合添加它们,但库的库是电子邮件和属性等库,等等。

其他提示

我想完全删除 全部 魔术弦。

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

  1. 使用HTML标签属性,火花样的条件和循环。
  2. 更新:可见的项目属性,以切换视图的编译时间验证。
  3. 可以验证/验证我的路线是否正确的东西。
  4. 会员提供的解决方案,该解决方案使用INT代替GUID进行标识,并允许将配置文件字段映射到自定义表,而不是通用但默认缓慢的表格。
  5. 基于Lambda的帮助者避免魔术字符串(目前在MVCFUTURES中)
  6. T4MVC模板以自动产生强烈键入的助手
  7. 项目向导或模板以获取已经设置为IOC和类似问题的模板,最好使用选择对话框,以选择用于IOC,单元测试等的框架。
  8. 附加属性(过滤器和验证)。

嗯,这就是我现在能想到的:)

工具(T4模板)创建用于单元测试的欧克对象非常酷。对框架中某些对象进行测试是不必要的复杂,并且具有代码类别的能力将非常有益。

我想:

工具

  • 使用AJAX的替代清单视图 例如使用JQGrid(实施排序,分页,搜索)
  • 增强CRUD页面 检测实体框架类的实体关系,并使用基于字段类型的另一组组件,例如动态数据所做的:)

由于ASP.NET MVC 3仅是.NET 4,因此我想在异步控制器和所有其他新的异步/多线程函数周围看到一些.NET 4带来的东西。

我想看到对诸如Ironruby之类的东西的内置支持

MEF支持会很好。

我想看看一种新的处理路由方式,以使开发人员休息服务变得更加容易。目前,我有这样的路线:

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
                );

这也将使它更具发现。

我想要自动脚手架索引视图的帮助者。也许是类似的 IndexDisplay(), IndexDisplayFor(), , 和 IndexDisplayForModel().

我想在任何给定型号上进行自动生成伙伴课程。

我还使用简单功能,例如大多数没有助手的东西,例如HTML-Helper I Thing,即在ASP.NET MVC 3中开发的事物是将来学习MVC 3的更好方法。

我想看到的两件事是在视图,过滤器等中直接的依赖注入,并且(我知道这据说这是在剃须刀视图引擎的路上) ASP.NET管道(可能包括Doctype验证和/或某种类型的JavaScript编译/验证)。

这是其他一些想法:

  • 能够包装UI组件(视图,模板,视图等)以跨多个项目重复使用,这将是很高兴的。我猜这是目前的可能性,但是我只是不需要足够的时间就可以自己弄清楚。
  • 这个想法 无控制器的动作 我吸引了我,尤其是从SRP的角度来看。
  • 更好地支持后重新计算(P/R/G)模式...似乎应该对这种非常重要的模式有内在的支持。

更多的控件和助手真的很不错,尤其是(Ajax)网格。

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

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

有人开心吗? :>

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top