65.9K
CodeProject 正在变化。 阅读更多。
Home

OpenRasta

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

3分钟阅读

viewsIcon

8247

OpenRasta 是一个开源的 .NET 框架,用于构建所有 Web 应用,从网站到 RESTful API。 为什么选择 OpenRasta?OpenRasta 依赖于三个

OpenRasta 是一个开源的 .NET 框架,用于构建所有 Web 应用,从网站到 RESTful API

为什么选择 OpenRasta?

OpenRasta 依赖于三个概念:资源 (Resources)处理程序 (Handlers)编解码器 (Codecs)

资源 (Resource) 是一种具有 URI 的类型。 当你在 OpenRasta 中配置你的 URI 时,你会将一个资源类型与它所属的 URI 关联起来。

当一个 HTTP 请求进入时,URI 会被匹配到一个资源处理程序(相当于 MVC 风格框架中的控制器)。 在 OpenRasta 中,处理程序是 ["POCO"] 类,它们只需要实现一个与相关 HTTP 方法名称匹配的方法,或者使用该 HTTP 方法的属性进行装饰。 为了实现资源的检索,一个简单的 public Customer Get() 形式的方法就是你入门所需要的。 该框架没有强加继承链。

该方法返回的对象(资源)将由编解码器渲染。 你可以在同一个 URI 上注册多个编解码器来渲染相同的资源(例如客户的数据),例如通过 WebForms 以 XMLJSONHTML 格式呈现。 客户端通过 HTTP 内容协商来决定使用哪个编解码器,这基于 HTTPAccept 标头,或者可选地,使用文件扩展名(通过使用 UriDecorators)。

由于这种非常简单的模型,添加新的 URI、新的资源和新的内容类型变得更加容易。 而且还有更多! 感谢最佳实践的运用,OpenRasta 是一个非常棒的框架。

通过分离资源处理和它们的渲染,在整个框架中强制执行关注点分离。 这意味着你的代码中更少的破坏,更松散的耦合,以及易于导航和阅读的代码。

松散耦合和 依赖注入 是该框架的核心,帮助你更快、更有效地实现你的架构。 想要访问请求数据吗? 只需在你的构造函数中添加 IRequest。 OpenRasta 附带一个 IoC 容器,并且也允许你使用你自己的。

已经遵循了开闭原则,允许你在不重写其代码或从源代码构建的情况下扩展和更改框架。 构建 ASP.NET 应用程序时,你必须启动 Reflector 多少次? 感谢它众多的扩展点,你不再需要了。

因为没有回发,所以没有奇怪的页面生命周期需要处理。 一切都变得更容易,你的代码变得更简洁、更简单。

感谢 OpenRasta 创新的编解码器模型,你无需使用两个不同的框架,一个用于你的网页,一个用于你的服务。 通过使用统一的 API,你可以减少你的团队在变得富有成效之前需要获取的时间和知识。

并且由于使用了接口,缺乏继承链以及对 IoC 容器的开箱即用支持,你的代码可以非常容易地进行测试。

ASP.NET 上构建应用程序中投入大量时间和金钱意味着你将无法轻易地将你的代码拿走并在不同的环境中运行它。 借助 OpenRasta 的托管支持,你可以在 ASP.NET 中开始编码,在内存中运行你的集成测试,并在 Windows 服务中托管你的代码*,所有这些都不需要更改你的代码。

OpenRasta 的其他优势

  • 通过直观的 API 支持 HTTP 功能
  • 清晰地分离资源处理和表示
  • 可扩展的编解码器支持,包括 JSONXML、WebForms、SharpView 和 SparkView。
  • 使用内容类型协商或文件扩展名,从相同的 URI 透明地提供 XMLJSON
  • 开箱即用支持编码符合 XHTML 1.1 的网站
  • 只需一个简单的调用方法即可创建指向任何资源的链接
  • 丰富的 URI 支持,适用于用户和搜索引擎友好的 URI
  • 围绕 IoC 容器构建,并支持使用你自己的容器
  • POCO 资源和 POCO 处理程序。 没有继承!
  • 可以托管在 ASP.NET、内存中或 http.sys 上。 没有任何对 ASP.NET 的依赖。
  • 它完全且绝对免费
© . All rights reserved.