1

我最近开始研究使用 Web 应用程序框架的想法,该框架提供了一种更统一的方式来处理客户端和服务器端编程,并且我发现了一个名为 Ocsigen 的项目。Ocsigen 似乎与我正在寻找的内容非常相似,但我发现它有一些令人困惑的地方,例如它使用函数式编程语言而不是命令式编程语言。只是出于好奇,还有其他类似于 ocsigen 的框架吗?(也许使用一种更传统的命令式编程语言。)

4

2 回答 2

2

... 一个 Web 应用程序框架,它提供了一种更统一的方式来处理客户端和服务器端编程

在极端情况下,您正在寻找的是“无层 Web 框架”或“多层 Web 框架”或“同构 Web 框架”(即完全模糊服务器端代码和客户端代码之间界限的框架)。

处理服务器端和客户端的完全无层的 Web 框架(即,您永远不必为整个 Web 应用程序编写一行 JavaScript):

如果您更喜欢 JavaScript,请参阅:使用 Javascript 的无层 Web 框架?

此外,您可能对这些感兴趣(其中大部分是研究项目,很少有人接受):

替代抽象

您可能已经注意到,像 Ocsigen 这样的无层框架并不流行,也没有得到很好的支持。根据您的用例,您可能希望研究支持更好的抽象:

基于组件的 Web 框架

基于组件的框架通常与传统的基于动作(请求)的框架形成对比。使用这些基于组件的框架,页面是由独立的组件(例如日期选择器组件、视频播放器组件、登录表单组件等)构建的,并且这些组件可以封装 Javascript。这样,在实际使用组件时,您就不必考虑 Javascript。

在基于组件的框架中,客户端和服务器之间的界限不一定是模糊的,但我在这里提到它们是因为如果您希望抽象出 Javascript,它们可能是一个不错的选择。

基于组件的 Java 框架已经存在了近 20 年,并且得到了相当多的采用。其中有:

客户端框架

下面列出的是仅用于客户端的非 JavaScript 框架/工具。这些为仅使用一种语言编写整个 Web 应用程序打开了大门(尽管服务器端和客户端之间的集成不如使用完全无层框架时那么好):

  • GWT (Java) - 谷歌使用它。
  • 味噌(哈斯克尔)
  • ReasonML(带有 Reason 语法的 OCaml)
  • 加上任何将非 JavaScript 语言编译成 JavaScript 的东西。
于 2018-04-02T00:47:08.503 回答
1

你应该看看opa,它也是一种函数式语言,但它使用更传统的语法。

于 2013-01-17T16:31:52.930 回答