作为一个开发者,我们免不了要做很多重复的事情。我们不只在重复别人造轮子,也在重复自我浪费时间——我们应该有一种罪恶感。庆幸的是很多人在帮助我们尽可能的减少这种重复,他们提出或总结了很多的宝贵的思想,开发了很多的有用的开发辅助工具。比如设计模式、类库、O/RM,代码生成器,以及更具体的CMS(Content Management System)等等。设计模式让我们在设计思想得到一定程度的解放,在设计方向上给予指引。这就像乘法口诀表,不用我们算个简单的3721还需要掰手指头;类库如.Net的BCL(Base Class Library)、FCL(Framework Class Library)等,以官方发布的形式将一些常用的功能进行了封装。当然,还有公司的类库或自己的私房类库;O/RM让我们在领域模型和关系数据库的映射上提高开发效率。据统计如果不使用O/RM,在映射方面需要花去总体开发时间的30%-40%;代码生成器则是将有规律的集中的重复的工作交给程序来处理;CMS在应用的层次上减少了重复工作,比如Wordpress,DotNetNuke等。

Xoohoo又试图解决哪些方面的问题呢?

Xoohoo基于ASP.NET MVC(以下简称MVC)3的框架,其前身是微软的开源项目Oxite。遗憾的是后者停止了开发目前还停留在MVC 1。庆幸的微软提供了另一个开源项目Orchard供我们选择,二十四画生对Orchard颇有研究。不管是Oxite还是Orchard,他们从一开始就试图给用户提供一个可用的产品(Blog,但不仅限于此),并提供了超强的扩展性。

Xoohoo的目的不是要给您一个现成的产品,而是一个轻量开发框架,旨在能为您减少那么一点点重复的工作。如果您开发一个新的基于MVC的项目,希望您能试试。

您首先可以将之看作是一个类库,对MVC 3进行了扩充。它借鉴并使用了一些优秀博文或开源项目的代码。由于资料比较零散,不再列出,在此一并表示感谢;其次将之作为一个小框架,在此基础您可以开发自己的模块(插件),并能进行无缝整合。如果愿意,您还可以将某些模块拿出来分享。

将Xoohoo作为一个类库,我相信您总等找到您所需要的。

1、ActionFilter

Xoohoo内置了若干的AtionFilter,包括TimerActionFilter、CompressActionFilter、ErrorExceptionFilter以及各种的AuthorizationFilter。

TimerActionFilter能计算Action的执行时间:

Xoohoo系列(一):概述

CompressActionFilter能对输出进行压缩(gzip,deflate)。
ErrorExceptionFilter类似于MVC内置的HandleErrorAttribute,配合Xoohoo内置的日志模块,可以进行日志记录;配合Xoohoo的皮肤模块,错误提示View还可以换肤。
各种的AuthorizationFilter提供了非常灵活的授权(权限)认证,以后会有专门的篇幅加以介绍。

2、ActionInvoker

XoohooControllerActionInvoker重写了MVC内置的ControllerActionInvokerCreateActionResult等方法,使其支持AJAX请求,以及更灵活的Action返回值类型。

比如有Action:

public ActionResult List()
   2: {
return View(new List<Article>());
   4: }

相关文章:

  • 2021-06-25
  • 2021-08-14
  • 2022-12-23
  • 2021-07-07
  • 2021-12-03
  • 2021-05-18
  • 2021-06-08
猜你喜欢
  • 2021-05-20
  • 2021-07-24
  • 2021-08-11
  • 2021-07-08
  • 2021-09-17
  • 2021-09-05
相关资源
相似解决方案