[英]Asp.Net MVC vs Castle MonoRail
我在使用Asp.Net构建应用程序方面有一些经验,但现在MVC框架变得更受欢迎。 我想尝试使用Asp.Net MVC或Castle MonoRail构建新的多语言Web应用程序,但我不知道哪一个对我有好处。 我不喜欢Web表单视图引擎,但我喜欢Asp.Net MVC中的路由功能。
作为单轨列车的倡导者,我必须说你应该选择ASP.NET MVC。 说实话,ASP.NET MVC将在三年内成为默认架构的简单事实应该可以解决它。 这个等式与一年前不同,仅仅是因为与MonoRail相比,默认架构存在严重的生产力问题。
如果您想谈谈技术优势和劣势:
另外,不要忽视标准视图引擎。 你不必像使用ASP.NET那样抛出控件,你可以用与Brail非常相似的方式编写它,只使用C#而不是Boo。
有些事情只是简单丑陋*为参数提取对象的方法数量。 祝你找到他们期望的文件,祝你好运。 *微软对接口抽象类的喜爱。 他们有他们的理由,但我仍然不喜欢它。
此外,在许多方面,MonoRail仍然是更完整的平台。 例如,ASP.NET中没有验证或分页的抽象。 此外,绑定到模型并没有任何帮助。 与Monorail等效物相比,助手的功能非常少。
总的来说,我认为ASP.NET MVC是一个胜利者。
MonoRail和ASP.NET MVC基本上非常相似,你应该很好地使用其中任何一个。 MonoRail已存在更长时间,因此具有更高级别的功能。
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时,它可能会变得更好。
MvcContrib项目包含一些很棒的视图引擎,如Spark,NHaml和Brail。 没有人可以被认为是“最好的”,个人最喜欢的是Spark。 有关spark的更多信息: http : //dev.dejardin.org/documentation/syntax
WebForms引擎具有intellisense,这是我所知道的所有替代视图引擎都缺乏的一个很大的优势。
除了微软的普及和支持之外,ASP.NET MVC仍然缺乏Monorail长期以来的一些核心功能,如控制器组织(区域),本地ViewComponents和过滤器,可以使用IoC来命名最重要的。
我有一些使用所有这些功能的大型应用程序,我很难将它们移植到ASP.NET MVC。
我已经和Monorail合作了好几年了,虽然MVC看起来很有前途,而且它的灵活性非常棒,但我仍然觉得很难,我尝试做的其他事情都证明它不存在而且我必须插一点MvcContrib是另一块SharpArchitecture,我自己制作,你得到了图片。 单轨列车更容易使用(现在,就是这样)。
我预计未来几个月情况会好转,因为一些提出的解决方案将开始对抗其他解决方案并变得更加主流。 嘿,选择的多样性是好的但是相信我,你不想在3年前的Java-land中有这么多的web框架,你可以用每个不同的页面建立你的网站!
与此同时,为了以防万一,我将继续将我的MR应用程序缓慢移植到MVC。
我认为MVC赢得了胜利。 它的功能集非常相似,但它将成为两者中更“流行”的(因此通常在整个开发社区中得到更广泛的支持,记录和扩展)。 此外,在我看来,新的ViewEngine(Razor)和IDE改进因素对我来说,并提升了选择MVC而非单轨列车的价值。
我已经使用了几乎所有常见的ViewEngines,但是使用了令人敬畏的StringTemplate模板引擎,我自己开始使用它(为它创建了一个OpenSource项目 )。 ST是一个真正的关注点,IMO。 因此,我发现自己编写了更好的应用程序,标签汤少了很多。 如果您选择在发动机上踢轮胎,我还会推出快速介绍和参考指南 。 到目前为止我使用它已经部署的项目上运气不错。 话虽这么说,Razor(MVC 3)看起来非常令人印象深刻。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.