InfoQ

新闻

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

作者 Robert Bazinet 译者 朱永光 发布于 2007年8月23日 下午7时54分

社区
.NET
主题
Web框架
标签
MVC

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
太棒了 发表人 he wei 发表于 2007年8月26日 上午5时42分
  1. 返回顶部

    太棒了

    2007年8月26日 上午5时42分 发表人 he wei

    刚试用了一下 太棒了 great

深度内容

模块化Java:声明式模块化

本文是模块化Java系列文章的第4篇,介绍的是声明式模块化。文中描述了组件如何以声明的方式来定义并组织在一起,而无需让代码依赖于OSGI API。

Ian Robinson和Jim Webber谈论基于Web的整合

本采访是在伦敦举行的QCon2009上记录的,Ian Robinson和Jim Webber探讨了如何将Web作为整合平台以及REST在理论上和实践中的好处。

项目管理修炼之道(精选版)

项目管理对于项目成败至关重要,但实践中每个项目都有自己的独特性,没有现成的解决方案可以套用。书中从应对实际风险的角度出发,讲述了从项目启动、项目规划到项目结束的整个管理流程,展示了作者的思考过程。本迷你书从原书中精选出5个章节。

那是鸟,还是飞机?不,那是超人!

在这个演讲中,Fred将会揭示敏捷的一些外在因素,并会重点关注敏捷获得成功的内在原因。从案例研究和真实的项目经验来看,Fred认为:工具、管理体系都不能让你变得敏捷。敏捷的成功,植根于士气高涨、充分授权的工作者身上,他们能够以不同以往的方式思考问题。

访谈和书摘:Eben Hewitt的新书《Java SOA Cookbook》

Java SOA Cookbook

Eben Hewitt的新书《Java SOA Cookbook》从Java实现的角度讨论了面向服务架构。Eben在书中讨论了SOA基础、工具、最佳实践和SOA治理等主题。

Mark Richard的《Java消息服务》第二版

Mark Richards的新书《Java消息服务》第二版覆盖了JMS的许多主题, 包括发布和订阅模式以及点对点模式,消息过滤和事务等。InfoQ与Mark谈论了跟他的新作。

模块化Java:动态模块化

本文是“模块化Java”系列文章的第三篇,讨论动态模块化,内容涉及如何解析bundle类、bundle如何变化、以及bundle之间如何通信。

让测试也敏捷起来

对于测试组织来说,敏捷方法带来的快速迭代却让测试本身变得困难起来:缺乏“足够详细的文档”,缺乏“仔细设计用例的时间”等等。在本演讲中,段念将与大家探讨如何在敏捷过程中进行测试。