我在使用Asp.Net构建应用程序方面有一些经验,但现在MVC框架变得更受欢迎.我想尝试使用Asp.Net MVC或Castle MonoRail构建新的多语言Web应用程序,但我不知道哪一个对我有好处.我不喜欢Web表单视图引擎,但我喜欢Asp.Net MVC中的路由功能.
任何人都可以讲述这些之间的利弊吗?
哪个ViewEngine更适合覆盖主模板?
Julian Birch.. 27
作为单轨列车的倡导者,我必须说你应该选择ASP.NET MVC.说实话,ASP.NET MVC将在三年内成为默认架构的简单事实应该可以解决它.这个等式与一年前不同,仅仅是因为与MonoRail相比,默认架构存在严重的生产力问题.
如果您想谈谈技术优势和劣势:
ASP.NET AJAX是一个混乱(避免它),但他们现在有了jQuery.实际上,jQuery支持比任何其他环境都要好.当然,只有IDE与标准视图引擎集成才能完全实现这一点.
有一些美学上的改进(例如,传递模型信息的方式比单轨更清晰,更明显).
另外,不要忽视标准视图引擎.你不必像使用ASP.NET那样抛出控件,你可以用与Brail非常相似的方式编写它,只使用C#而不是Boo.
有些事情只是简单丑陋*为参数提取对象的方法数量.祝你找到他们期望的文件,祝你好运.*微软对接口抽象类的喜爱.他们有他们的理由,但我仍然不喜欢它.
此外,在许多方面,MonoRail仍然是更完整的平台.例如,ASP.NET中没有验证或分页的抽象.此外,绑定到模型并没有任何帮助.与Monorail等效物相比,助手的功能非常少.
总的来说,我认为ASP.NET MVC是一个胜利者.
作为单轨列车的倡导者,我必须说你应该选择ASP.NET MVC.说实话,ASP.NET MVC将在三年内成为默认架构的简单事实应该可以解决它.这个等式与一年前不同,仅仅是因为与MonoRail相比,默认架构存在严重的生产力问题.
如果您想谈谈技术优势和劣势:
ASP.NET AJAX是一个混乱(避免它),但他们现在有了jQuery.实际上,jQuery支持比任何其他环境都要好.当然,只有IDE与标准视图引擎集成才能完全实现这一点.
有一些美学上的改进(例如,传递模型信息的方式比单轨更清晰,更明显).
另外,不要忽视标准视图引擎.你不必像使用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.