因此,我已经花了足够的时间使用 ASP.NET 网络表单,我知道我几乎宁愿回到使用经典 ASP 而不是使用它们。但在它变得更加成熟之前,我对转向 ASP.NET MVC 犹豫不决。有没有开源替代品?
我正在寻找的主要内容是易于学习并易于启动和运行原型的东西。如果有任何帮助,我的主要偏好是 python“混合和匹配”方法(比如 web.py/SQLAlchemy/任何适合我当时喜欢的模板引擎)。
因此,我已经花了足够的时间使用 ASP.NET 网络表单,我知道我几乎宁愿回到使用经典 ASP 而不是使用它们。但在它变得更加成熟之前,我对转向 ASP.NET MVC 犹豫不决。有没有开源替代品?
我正在寻找的主要内容是易于学习并易于启动和运行原型的东西。如果有任何帮助,我的主要偏好是 python“混合和匹配”方法(比如 web.py/SQLAlchemy/任何适合我当时喜欢的模板引擎)。
在过去的 18 个月里,我们在小型企业的在线商店中使用了MonoRail RC2。它取代了 7 年前的经典 ASP 页面灾难。MonoRail RC2 对我们来说效果很好,平均每天处理约 14,000 个页面请求。它使我能够非常快速地开发该网站,而且是免费的,并且运行良好。为此,我感谢 MonoRail 团队。
我刚刚使用了 MonoRail 位。我选择了 iBATIS.NET 而不是 ActiveRecord,因为我必须编写创造性的 SQL 来保持与 7 年历史的数据库的兼容性。所以我不能代表其他一些城堡图书馆。
MonoRail 的一些优点包括:
然而,MonoRail 也不是没有问题:
MonoRail 在 2007 年 6 月为我们提供了一个极好的机会,它为我们提供了一种将 Microsoft 堆栈上的现有站点迁移到 .NET 平台的方法,从而避免了 WebForms(这对于 Intranet 站点非常有用,但在您需要时就不那么好了在我看来,对面向公众的网站上的 HTML 输出进行细粒度控制)。(好吧,真正的原因是我只是鄙视 WebForms 回发模型。) ASP.NET MVC 在那个时候甚至在微软眼中都没有。
然而,既然 ASP.NET MVC 确实存在,并且鉴于 Microsoft 将其定位为 WebForms 的替代品,我知道我个人将强烈考虑将其用于任何未来的项目。MonoRail 是一个很棒的项目,它为我们提供了很好的服务,我很感谢开源社区的贡献,但我很喜欢它作为一个被大量使用、磨损的工具,它被淘汰到我工作台的较低抽屉里。没有它,今天的 ASP.NET MVC 可能就不存在了。
我个人尝试过 CastleProject 的 ASP.NET MVC 和 MonoRail。虽然我真的很喜欢其他 CastleProject 库,但我发现我更喜欢 ASP.NET MVC 实现模型而不是 CastleProject MonoRail 模型。现在 ASP.NET MVC 已经发布,他们将在发布中包含 jQuery,我真的很兴奋。最终,我认为这取决于您使用的其他库。如果您使用 NHibernate、ActiveRecord 和 Castle Windsor,那么您可能会喜欢 MonoRail 库。如果您不使用任何这些库,或者更喜欢 Microsoft Enterprise Libraries(目前是我工作的公司标准),那么您可能会发现 ASP.NET MVC 更适合您的需求。由于 Scott Guthrie 本人对 ASP.NET MVC 的关注,我怀疑它会很快消失。实际上,
我没有经验的另一种选择是ProMesh。就个人而言,我转向 ASP.NET MVC。
一个看起来很有趣的替代方案是MonoRail ,尽管我还没有完全测试过它。
ASP.NET MVC 应该开始变得越来越被接受,因为它正在快速成熟。现在它是测试版,并且据说功能几乎已完成,人们采用它的速度将继续增长,而且可能会更快。随着 RTM/RTW 版本承诺在不久的将来发布,现在是开始采用它的最佳时机,这样您就可以开始使用它了。
如果您在 ASP.NET MVC 中看到了特定的缺点,您绝对应该让 Microsoft 知道它。 Scott Guthrie非常乐于接受反馈,并且MVC Contrib项目既愿意接受建议,又通过他们的库提供了大量的增强功能。