Giraffe:在Web开发中使用F#和ASP.NET Core

栏目: ASP.NET · 发布时间: 7年前

内容简介:Giraffe的语法类似于另一种广为使用的Web框架Suave。两者间相似性为我们提出了一个问题:两种框架是否应该合二为一,或是应该遵循同一套API。Giraffe的创立者正如人们经常提及的,Giraffe的根本出发点在于提供与ASP.NET Core的紧密集成,这是Giraffw和Suave间的一个主要差异所在。我们注意到,在使用功能性.NET开发构建功能性ASP.NET Core Web应用上存在着利基空间。Giraffe的推出正是力图填补这一空缺。它在ASP.NET Core之上构建了一个轻量级功能

Giraffe 是一种用于构建Web应用的微型F# Web框架。它基于ASP.NET Core,为Web框架提供了F# API。Giraffe支持开发人员在使用F#构建Web应用的同时,还可以访问ASP.NET Core及其生态系统所提供的特性。

Giraffe的语法类似于另一种广为使用的Web框架Suave。两者间相似性为我们提出了一个问题:两种框架是否应该合二为一,或是应该遵循同一套API。Giraffe的创立者 阐述了他认为合并不能产生增值的理由

正如人们经常提及的,Giraffe的根本出发点在于提供与ASP.NET Core的紧密集成,这是Giraffw和Suave间的一个主要差异所在。我们注意到,在使用功能性.NET开发构建功能性ASP.NET Core Web应用上存在着利基空间。Giraffe的推出正是力图填补这一空缺。它在ASP.NET Core之上构建了一个轻量级功能层,同时依然保持DI、HttpRequest、HttpResponse、Config等ASP.NET Core构建块可用。这使得F#开发人员可以使用已有的(或是即将推出的)许多ASP.NET Core生态系统。

Giraffe的主要构件是HttpHandler。HttpHandler提供了一种函数流水线,它类似于通过IApplicationBuilder组合使用ASP.NET Core。一个Handler可以通过调用随后的Handler,继续流水线的处理。例如:

type HttpHandler = HttpFunc -> HttpContext -> HttpFuncResult

Giraffe使用了组合(Combinator)方法。开发人员可以通过将HttpHandlers组合在一起创建更高层级的抽象,最终创建一个应用。例如:

let webApp =
choose [
route “/foo >=> text Foo
route “/bar >=> text Bar
]
type Startup() =
member __.Configure (app : IApplicationBuilder)
                    (env : IHostingEnvironment)
                    (loggerFactory : ILoggerFactory) =
    app.UseGiraffe webApp

Giraffe中使用的是.NET的 Task 对象,而非异步(async)工作流。这两种实现是不同的,需要做相互转化。Giraffe通过最小化这种转化,降低了开销。

let personHandler =
    fun (next : HttpFunc) (ctx : HttpContext) ->
        task {
            let! person = ctx.BindModel<Person>()
            return! json person next ctx
        }

例子应用 提供在GitHub上。

查看英文原文: ASP.NET Core and F# with Giraffe


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

王牌创业者:风口游戏

王牌创业者:风口游戏

澈言 / 百花洲文艺出版社 / 2018-2 / 48.00

《王牌创业者:风口游戏》是一部围绕互联网创业展开的商战小说:故事的主人公莫飞是“毕业即创业”的当代年轻创业者的典型代表,他大学在校时就凭借创业项目拿到了天使融资,创业几年后,当产品估值越做越大时,他却忽然遭遇创业伙伴及投资人的联手陷害,失去了自己一手建立的公司。 此时, 莫飞的女友林姿参加了一场声势浩大的创业比赛,并一举夺魁,直进决赛。可在决赛中,突如其来的一场新闻事件让她名誉扫地。最终,为......一起来看看 《王牌创业者:风口游戏》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具