Promesh.NET:一个.NET 的 MVC Web 框架

  • Robert Bazinet
  • 朱永光

2007 年 8 月 23 日

话题:.NETWeb框架语言 & 开发

Philippe Leybaert 最近发布了一个名为 ProMesh.NET 的 Model-View-Controller (MVC) 框架,用于创建.NET 2.0 Web 应用程序。这个框架在开源许可下发布在Codeplex上。MVC 框架随着 Ruby on Rails 以及 Castle Project 和 MonoRails 的流行,最近获得了大家的欢迎。

ProMesh.NET 中包含了如下特性:

  • 基于控制器易于实现 MVC 模式
  • 灵活的基于模板的绘制引擎 (使用纯 html 文件)
  • 提供非常强大的集成测试框架以在你的网页上运行单元测试
  • 很容易地把参数和其他客户数据映射到键入的方法参数和类成员上
  • 灵活和易于使用的表单生成功能和 Postback 处理
  • 集成的日志和配置管理
  • 和 CoolStorage.NET ORM 函数库可选的集成
  • 针对性能特别优化

Philippe 也慷慨地发布了一个使用这个框架非常好的练习。InfoQ 有机会采访了 Philippe 关于 ProMesh.NET 项目的一些事情:

ProMesh.NET 是一个针对.NET 2.0 的 MVC Web 应用开发框架。它是控制器驱动的,意思是框架通过调用控制器对象从而绘制视图。视图引擎是内置的,并使用标准的嵌入着“视图逻辑”的 HTML 文件。它没有以任何方式使用 ASP.NET 的页面模型,但以由.NET Framework 提供的 HTTP Handler 和 HTTP Module 来驱动。

但问到 ProMesh.NET 已经开发了多久时:

项目实际上开始于一个非常简单的内部使用的 ASP 框架,其可以回溯到 1999 年。在 2002 年,它被移植到.NET 下,但是存在一些功能的限制。经过几年的发展,它已经成为一个专门运行于.NET 2.0 之上的完整 MVC 框架了。在内部项目使用几年后,我感觉已经到了把它公开的时候了。我是一个坚定的开源软件信仰者,所以我决定把它作为开源软件来发布。

关于创建 ProMesh.NET 的目的:

这实在没有一个“决定”之类的东西。它就这样很自然的开发出来了。我严格地采用了“分离关注”这个原则,这就是为什么我为 ASP 写了一个小巧的 MVC 框架,然后逐步发展为 ProMesh.NET。当 ASP.NET 第一次出现的时候,我仔细地研究过,但我发现那不是我想要的,所以我继续开发 ProMesh.NET。

在谈到现在谁在使用 ProMesh.NET 的时候,Phillip 说到:

ProMesh.NET 只在上个星期以开源的方式发布,所以我只知道一些我个人参与的项目在使用。这些项目包括了一些高流量的站点,比如:www.cartoonbase.comwww.mobileweb.bewww.lunch.bewww.autosport.be。另外还有www.register.euwww.telito.com,这两个网站依旧运行在针对 ASP 的“老”的 MVC 框架下。

对于使用 ProMesh.NET 有什么好处:

ProMesh.NET 提供给开发人员一个以 MVC 框架为中心的 Web 应用程序开发框架。它提供了非常简洁的方式来创建 Web 应用程序,而不会被 ASP.NET Web Form 的事件模式带来的问题给搅混。把视图和控制器逻辑完整的分离有利于标准 HTML 模板的使用,这让框架非常容易的使用,甚至于对于那些不熟悉 MVC 模式的人来说也是如此。

虽然开发人员不能使用 ASP.NET 控件,但框架支持创建复杂的自定义控件,所以我推测第三方开发人员也许不久将开始开发针对 ProMesh.NET 的控件。

最后,我们问 Philippe 他未来的开发计划是什么?:

我计划倾听一下开发人员使用这个框架的心得,人们需要增加什么特性,但我不想把它发展成一个“瑞士军刀”。目前在我心中的未来开发计划有:动态加载插件和控件、集成的 Ajax 框架(类似 AjaxPro)和内置的 Wiki 引擎。

因为 ProMesh.NET 现在是开源的,我鼓励开发人员参与到这个产品的开发工作中来。它已经托管在 CodePlex 上,所以这让开发人员更容易参与进来。

最后但并非最不重要:文档需要被完善,所以未来这点将一直具有很高的优先级。一个 Wiki 站点不久将被创建,以鼓励其他人参与到书写文档的工作中来。

随着 Ruby on Rails 的成功和流行,在 Web 上实现 MVC 框架越来越受到重视。ASP.NET 社区(在开发 Web 应用程序的技术上)很少有其他方法的选择,直到最近类似 ProMesh.NET 这样的 Web 开发框架的出现。这个框架也给开发人员创建自定义控件的能力,以便生成丰富的 Web 前端界面。

查看英文原文:Promesh.NET - an MVC Web Framework for .NET
.NETWeb框架语言 & 开发