F#擅长构建高效,可扩展和强大的Web解决方案. Web编程基于接收单个HTTP请求并以结果进行回复为基础,这很好地映射了无状态的功能方法. 使用F#进行Web编程的优势包括:

云编程指南》包含有关使用F#进行可伸缩的云托管Web编程的更多详细信息.

要贡献本指南,请登录GitHub, 编辑此页面并发送拉取请求.


下面列出的资源是出于与F#编程语言相关的教育目的. 提及商业产品,过程或服务不应视为认可或推荐.


Web Frameworks


Suave

Suave是一个简单的Web开发F#库,提供轻量级的Web服务器和一组组合器来操纵路线流和任务组成.


Fable

Fable是一种F#到JS的编译器,旨在生成干净的标准代码,以使两种方式的互操作性最大化. 它与BabelWebpackReact Hot Loader等大多数JS开发管道集成在一起. Fable允许您开发node.js服务,使用Electron的桌面应用程序以及使用React native的移动应用程序.


ASP.NET Core

ASP.NET Core是一个现代的,跨平台的,高性能的开放源代码框架,用于构建现代的,基于云的,Internet连接的应用程序. 它在.NET Core上运行,并支持F#. 如果安装.NET Core SDK ,则可以通过dotnet new命令使用F#模板.


Giraffe

长颈鹿是用于构建富Web应用程序的F#微型Web框架. 它受到了很大的启发,类似于Suave ,但在设计时特别考虑了ASP.NET Core ,可以通过中间件将其插入ASP.NET Core管道.


WebSharper

WebSharper允许使用F#开发的客户端和服务器的端到端Web应用程序. 它包括TypeScript互操作性,移动Web应用程序,入门资料,模板等等.


Freya

Freya提供了一个基于OWIN的功能性Web堆栈. Freya的核心是用计算表达式包装OWIN环境字典,并提供带有透镜的对该字典的访问. 堆栈的其他层提供了基于HTTP和相关RFC的类型,用于连接Freya计算的管道抽象,路由器以及HTTP有限状态机的实现 (如在webmachine中找到的).


NancyFx

NancyFx是一个轻量级的,低礼仪的框架,用于在.NET和Mono上构建基于HTTP的微应用程序和微服务. F#模板可用.


Serving Requests with IHttpHandler

做到这一点很简单,并使用F#异步编程直接从代码中处理Web请求.


Serving Requests with Azure Functions

Azure Functions可以在无服务器体系结构中作为微服务托管和执行F#处理程序,


Pure F# Web API 2.0

Web API 2.0是Microsoft广泛使用的开源Web框架. 纯F#Web模板(Visual Studio,Web API 2.0) . 这些模板提供了用于通过Web API 2.0实现Web API的Pure F#项目. 一切都在F#中实现.

OWIN和Katana提供了一组灵活的组件,用于为基于.NET(OWIN)的Web应用程序构建和托管Open Web Interface. Web API可以使用Owin Web API包直接托管在Katana上.

有关将F#与Web API结合使用的一些资源:


SignalR

SignalR使用多种机制之一在Web服务器和客户端之间提供双向通信,从Web套接字开始,然后根据客户端和服务器的功能通过其他几种方法回退. 一个示例是Web应用程序服务器(F#) .


ServiceStack

ServiceStack是用于.NET和Mono上的简单,快速Web服务的框架.


ASP.NET Blazor

ASP.NET Blazor是一个Web框架,用于在WebAssembly上运行.NET,类似于React,Angular,Vue等.它使用Razor .cshtml文件定义组件和渲染,但可以与F#库一起使用.

Bolero只是将F#引入WebAssembly的另一种方法.

BlazorReduxBlazor提供了类似Redux的状态管理,并且与F#配合良好.

Trail提供了用于在Blazor中进行渲染的F#DSL,从而提供了完整的F#解决方案.



Web Testing Frameworks


Canopy for Client-side Testing

顶篷是一个基于硒的Web测试框架,用F#编写. 它的语法简洁明了. 您可以轻松地利用现有的.NET代码来帮助您进行测试.


Unit Testing Libraries

一些有助于Web单元测试的开源库包括:


Live Examples


TodoBackend

TodoBackend是一个项目,旨在成为"展示后端技术堆栈的共享示例." F#社区提供了一些示例,还有更多示例正在进行中:

请考虑直接向TodoBackend项目或通过TodoBackendFSharp项目进行贡献 .


Tutorials


Books

已经写了几本书,其中包括有关使用F#构建Web应用程序的信息:


Presentations

提供了一些演示文稿和教程,其中包括有关使用F#构建Web应用程序的信息:


Hosting

Common hosting options are:

此页面上列出的资源用于与F#编程语言相关的教育目的. F#软件基金会不认可或推荐任何特定的商业产品,过程或服务.

by  ICOPY.SITE