我有一些使用 Asp.Net 构建应用程序的经验,但现在 MVC 框架变得更流行。我想尝试使用 Asp.Net MVC 或 Castle MonoRail 构建新的多语言 Web 应用程序,但我不知道哪一个对我有好处。我不喜欢 Web 表单视图引擎,但我喜欢 Asp.Net MVC 中的路由功能。

  • 谁能说说它们之间的优缺点吗?
  • 哪个 ViewEngine 更适合覆盖主模板?
有帮助吗?

解决方案

作为单轨铁路的拥护者,我不得不说您可能应该选择 ASP.NET MVC。老实说,ASP.NET MVC 将在三年内成为默认架构这一简单事实可能会改变它。这个等式在一年前有所不同,仅仅是因为与 MonoRail 相比,默认架构存在严重的生产力问题。

如果要说技术优缺点:

  • ASP.NET AJAX 是一团糟(避免它),但他们现在有了 jQuery。事实上,jQuery 支持比任何其他环境都要好。当然,只有通过 IDE 与标准视图引擎的集成才能完全实现这一点。
  • 有一些美观的改进(例如,模型信息的传递方式比单轨铁路更干净、更明显)。

另外,不要立即放弃标准视图引擎。您不必像使用 ASP.NET 那样向其添加控件,您可以使用与 Brail 非常相似的方式对其进行编码,仅使用 C# 而不是 Boo。

有些事情简直是丑陋的 * 将对象作为参数的方法数。祝你好运,找到他们所期望的文档。* 微软更喜欢抽象类而不是接口。他们有他们的理由,但我还是不喜欢。

此外,从很多方面来说,MonoRail 仍然是更完整的平台。例如,ASP.NET 中没有验证或分页的抽象。此外,对于绑定到模型实际上没有任何帮助。与单轨列车相比,这些助手的功能非常少。

但总的来说,我认为 ASP.NET MVC 是赢家。

其他提示

MonoRail 和 ASP.NET MVC 从根本上来说非常相似,您应该可以很好地使用其中任何一种。MonoRail 存在的时间要长得多,因此具有更多更高级别的功能。

ASP.NET MVC 的主要优势是它的路由引擎,公平地说,MonoRail 几乎有一个等效的路由引擎,并且经过一些修改,您可以将 ASP.NET MVC 路由引擎与 MonoRail 一起使用,因为路由引擎并不是真正在 ASP 中.NET MVC,但在 System.Web.Routing 中(在 .NET 3.5 SP1 中发布)。ASP.NET MVC 以及与 Visual Studio 的集成也是一个优点,并且随着我们接近 v1 的 RTM,它可能会变得更好。

MvcContrib 项目包含一些很棒的视图引擎,例如 Spark、NHaml 和 Brail。没有人可以被认为是“最好的”,个人最喜欢的是 Spark。有关火花的更多信息: http://dev.dejardin.org/documentation/syntax

WebForms 引擎具有智能感知功能,据我所知,这是所有替代视图引擎所缺乏的一个巨大优势。

除了 Microsoft 的受欢迎程度和支持之外,ASP.NET MVC 仍然缺乏 Monorail 长期以来所拥有的一些核心功能,例如控制器组织(区域)、本机 ViewComponents 和可以使用 IoC 来命名最重要的过滤器。

我有一些使用所有这些功能的大型应用程序,但我很难将它们移植到 ASP.NET MVC。

我已经使用单轨铁路几年了,虽然 MVC 看起来很有前途,而且它的灵活性很棒,但我仍然觉得很尴尬,对于我尝试做的所有其他事情,事实证明它不存在,我必须插入一点MvcContrib 的一部分,SharpArchitecture 的另一部分,我自己构建它,你就明白了。单轨铁路更容易使用(就是现在)。

我预计未来几个月情况会变得更好,因为一些提议的解决方案将开始与其他解决方案相抗衡并变得更加主流。嘿,选择的多样性固然很好,但请相信我,您不会想回到 3 年前的 Java 世界,那里有如此多的 Web 框架,您可以为每个不同的页面使用一个框架来构建您的网站!

与此同时,为了以防万一,我会慢慢地将我的 MR 应用程序移植到 MVC。

  1. 我认为 MVC 轻而易举地获胜。它的功能集非常相似,但将是两者中更“流行”的一个(因此通常在整个开发社区中得到更广泛的支持、记录和扩展)。此外,新的 ViewEngine (Razor)..在我看来,IDE 的改进对我来说是一个因素,并且提高了选择 MVC 而不是单轨的价值。

  2. 我已经使用了几乎所有常见的 ViewEngine,但最终还是推出了我自己的(创建了一个开源项目 为此)利用很棒的 StringTemplate 模板引擎。在我看来,ST 是真正的关注点分离。结果,我发现自己编写了更好的应用程序,并且标签汤少得多。我还抛出了一个 快速介绍和参考指南 如果您选择踢引擎上的轮胎。到目前为止,我使用它部署的项目非常幸运。话虽这么说,Razor (MVC 3) 看起来相当令人印象深刻。

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