Asp.net mvc ASP.NET MVC替代方案?

Asp.net mvc ASP.NET MVC替代方案?,asp.net-mvc,open-source,webforms,Asp.net Mvc,Open Source,Webforms,所以,我已经花了足够多的时间使用ASP.NETWebForms,我知道我几乎宁愿回去使用经典的ASP,也不愿使用它们。但在ASP.NETMVC变得更成熟之前,我对它的发展犹豫不决。有开源的替代方案吗 我要寻找的主要东西是一些易于学习和获得原型并运行的东西。如果有什么帮助的话,我的主要偏好是python的“混搭”方法(比如说web.py/SQLAlchemy/which templating engine适合我当时的喜好)。一个有趣的选择是,尽管我还没有完全测试过它。另一个我没有经验的选择是。就我

所以,我已经花了足够多的时间使用ASP.NETWebForms,我知道我几乎宁愿回去使用经典的ASP,也不愿使用它们。但在ASP.NETMVC变得更成熟之前,我对它的发展犹豫不决。有开源的替代方案吗


我要寻找的主要东西是一些易于学习和获得原型并运行的东西。如果有什么帮助的话,我的主要偏好是python的“混搭”方法(比如说web.py/SQLAlchemy/which templating engine适合我当时的喜好)。

一个有趣的选择是,尽管我还没有完全测试过它。

另一个我没有经验的选择是。就我个人而言,我正在转向ASP.NET MVC。

就我个人而言,我已经通过CastleProject尝试了ASP.NET MVC和MonoRail。虽然我很喜欢其他CastleProject库,但我发现我更喜欢ASP.NET MVC实现模型,而不是CastleProject MonoRail模型。现在ASP.NETMVC已经发布,他们将在发布中包括jQuery,我真的很兴奋。最终,我认为这取决于您使用的其他库。如果您使用NHibernate、ActiveRecord和Castle Windsor,那么您可能会喜欢MonoRail库。如果您不使用这些库中的任何一个,或者更喜欢Microsoft企业库(目前是我工作的公司标准),那么您可能会发现ASP.NET MVC更适合您的需要。随着斯科特·古思里本人对ASP.NETMVC的关注,我怀疑它是否会很快消失。事实上,越来越多的人使用它并签署它的赞誉,它就越有可能成为事实标准。

过去18个月来,我们的小企业在线商店一直使用RC2。它取代了7年前的经典ASP页面灾难。MonoRail RC2对我们来说运行良好,平均每天提供约14000个页面请求。它使我能够非常快速地开发这个网站,而且是免费的,并且很好地支持。为此,我感谢单轨车队

我刚用了单轨钻头。我选择了iBATIS.NET而不是ActiveRecord,因为我必须编写创造性的SQL来保持与一个7年前的数据库的兼容性。所以我不能代表其他一些城堡图书馆说话

单轨的一些优点包括:

  • 很容易进入其中并修改内容。例如,默认的路由实现在重新路由时没有保留查询字符串(我需要这样做是为了保留与旧的URL格式的向后兼容性,这些旧的URL格式由现在已经不存在的经典ASP站点使用,用于SEO原因),并且它不支持为该场景发出HTTP 301永久重定向头。所以我实现了MonoRail接口,将它插入我的配置文件,然后我就离开了
  • 它仍然是ASP.NET,因此您仍然可以使用表单身份验证、完全令人敬畏的功能和缓存
  • 惊喜相对较少。在使用它一年多之后,我没有太多的日子在MonoRail上被诅咒过。这是一个很好的试金石测试。一些帮助器类(FormHelper)的行为可能有点奇怪,向导框架非常奇怪,参数绑定有时会让您陷入循环,但这种情况并不经常发生
  • 选择视图引擎(模板)。我之所以把它放在这里,是因为大多数人似乎认为这里的选择是一件好事,尽管我通常认为它不是
然而,单轨并非没有问题:

  • 缺乏发展方向。RC2和RC3之间的变化数量超过荒谬;许多受保护的虚拟方法消失了,许多助手发生了变化(当视图引擎不是静态类型时,这是一件大事),甚至单元测试控制器和视图的机制也发生了变化。出于这个原因,我们可能会永远停留在RC2上。现在ASP.NET MVC已经推出,MonoRail背后的社区将保持多健康还不清楚(尽管ayende和hammett一如既往地热情和积极)
  • NVelocity是MonoRail的“事实”视图引擎(至少在我们开始开发的时候),是一种很有前途的模板语言,具有不健康的实现和维护前景。(它能工作吗?很好。但是作为Java版本的CTRL+C CTRL+V端口,不要阅读该库的源代码,因为你的眼睛会流血。)
  • NVelocity和RC2附带了一个极其严重的线程错误,多个用户同时访问该站点时可能会得到为其他用户提供的页面。它在最新版本中得到了修复(由于Castle项目的发布性质,很难升级到),我们设法解决了这个问题。但这是一个非常令人不安和意想不到的问题,在微软的框架中是不太可能遇到的。警告买主
MonoRail在2007年6月为我们提供了一个极好的机会,它为我们提供了一种将Microsoft堆栈上的现有站点迁移到.NET平台的方法,避免了WebForms(这对于intranet站点很好,但在我看来,当您需要在面向公众的Web站点上对HTML输出进行细粒度控制时就不是那么好了)。(好吧,真正的原因是我看不起WebForms回发模式。)ASP.NETMVC在当时甚至不是微软眼中的一点光芒


现在,ASP.NET MVC确实存在,并且鉴于微软将其定位为WebFras的替代品,我知道我个人会强烈地考虑它的未来项目。MonoRail是一个伟大的项目,它为我们提供了很好的服务,我很感谢开源社区提供了它,但我很喜欢它,认为它是一个被大量使用的、陈旧的工具,可以放在我工作台的一个较低的抽屉里。如果没有它,ASP.NET MVC可能今天就不存在。

ASP.NET MVC应该开始被更多人接受,因为它正在迅速成熟。现在它是beta版,应该是nea版