代码之家  ›  专栏  ›  技术社区  ›  Vorleak Chy

ASP.NET MVC与Castle Monorail

  •  27
  • Vorleak Chy  · 技术社区  · 16 年前

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

    • 有人能说出他们之间的利弊吗?
    • 哪个viewengine更适合覆盖主模板?
    4 回复  |  直到 12 年前
        1
  •  27
  •   Julian Birch    16 年前

    作为单轨铁路的倡导者,我不得不说您可能应该选择ASP.NET MVC。老实说,ASP.NET MVC将在三年内成为默认体系结构这一简单事实可能会改变它。一年前,这个方程式就不同了,因为与单轨铁路相比,默认的架构存在严重的生产力问题。

    如果你想谈谈技术的优缺点:

    • ASP.NET Ajax是一团乱麻(避免它),但他们现在有了jquery。实际上,jquery支持比任何其他环境都要好。当然,只有在集成了IDE和标准视图引擎的情况下才能完全实现这一点。
    • 有一些美学上的改进(例如,模型信息传递的方式比单轨铁路更清晰、更明显)。

    另外,不要随意拆卸标准视图引擎。你不必像对待ASP.NET那样对它抛出控件,你可以用非常类似于Brail的方式对它进行编码,只需使用C而不是boo。

    有些事情很难看 *为参数获取对象的方法数。祝你好运,找到他们所期望的文件。 *微软对接口抽象类的喜爱。他们有自己的理由,但我还是不喜欢。

    此外,在许多方面,单轨铁路仍然是更完整的平台。例如,在ASP.NET中没有验证或分页的抽象。此外,绑定到模型实际上没有任何帮助。与单轨交通工具相比,辅助工具的功能非常少。

    不过,总的来说,我认为ASP.NET MVC是一个赢家。

        2
  •  10
  •   Torkel    16 年前

    Monorail和ASP.NET MVC在本质上非常相似,您应该很好地使用它们中的任何一个。单轨铁路已经存在了更长的时间,因此具有更高的层次特征。

    ASP.NET MVC的主要优势在于它的路由引擎,公平地说,Monorail几乎有一个等价的路由引擎,通过一些修改,您可以使用带有Monorail的ASP.NET MVC路由引擎,因为路由引擎实际上不在ASP.NET MVC中,而是在System.Web.Routing中(在.NET 3.5 SP1中发布)。ASP.NET MVC和与Visual Studio的集成也是一个优势,并且在接近v1的RTM时可能会变得更好。

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

    webforms引擎具有intellisense,这是一个很大的优势,据我所知,所有可选的视图引擎都不具备。

        3
  •  7
  •   Sephiroth    16 年前

    除了微软的知名度和支持之外,ASP.NET MVC还缺少Monorail长期以来拥有的一些核心功能,如控制器组织(区域)、本地视图组件和过滤器,它们可以使用IOC来命名最重要的功能。

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

    我已经在单轨铁路工作了几年了,虽然MVC看起来很有前途,而且它的灵活性也很棒,但我仍然觉得它很糟糕,因为我尝试做的每一件事都证明它不存在,我要么插上一小块MVCContrib,另一块Sharparchitecture,自己建造,你就能看到它。单轨铁路是如此容易与工作(现在,就是)。

    我预计未来几个月情况会好转,因为一些提议的解决方案将开始与其他方案对立,并成为主流。嘿,多样性的选择是好的,但相信我,你不想在Java土地3年前,有这么多的网络框架,你可以建立你的网站使用一个为每一个不同的网页!

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

        4
  •  1
  •   jamisonLikeCode    14 年前
    1. 我认为MVC赢了。它的特性集非常相似,但将是两者中比较“流行”的(因此通常在整个开发社区中得到更广泛的支持、记录和扩展)。此外,新的可视引擎(Razor)。在我看来,集成开发环境的改进对我来说是一个重要因素,它提高了选择MVC而不是单轨铁路的价值。

    2. 我几乎使用了所有常见的视讯引擎,但最后还是自己动手了。( created an OpenSource Project 对于它)使用令人敬畏的StringTemplate模板引擎。在我看来,ST是一种真正的关注分离。结果,我发现自己写的应用程序更好,标签汤更少。我还扔了一个 quick intro and reference guide 如果你选择踢发动机上的轮胎。到目前为止,我已经在使用它的项目上获得了非常好的运气。也就是说,Razor(MVC 3)看起来相当不错。