Web frameworks 存在哪些新一代web应用程序框架?他们如何超越RoR、Django等。?
目前,最流行的web应用程序框架包括,以及各种PHP框架,如和。然而,我一直在阅读一些“下一代”web应用程序框架,它们声称以不同的方式进行web开发 也许最著名的例子是基于Smalltalk语言构建的框架。在其页面中,它列出了4个关键功能:Web frameworks 存在哪些新一代web应用程序框架?他们如何超越RoR、Django等。?,web-frameworks,Web Frameworks,目前,最流行的web应用程序框架包括,以及各种PHP框架,如和。然而,我一直在阅读一些“下一代”web应用程序框架,它们声称以不同的方式进行web开发 也许最著名的例子是基于Smalltalk语言构建的框架。在其页面中,它列出了4个关键功能: 编程HTML生成 基于回调的请求处理 嵌入式组件 模式会话管理 我正在开发一个相当复杂的模拟web应用程序,它需要类似于桌面应用程序的功能,比如复杂的交互表单、任务流程、大量的图表和视觉效果、UI灵活性和可重用性(大量的小部件),Seaside的功能2、3
提前感谢您的经验和见解 坦率地说,只要你在每次用户界面交互中来回往返于服务器,你就永远不会有“桌面式”的体验。我基本上放弃了服务器端框架。我的web应用程序是javascript和web服务,在这些应用程序中,我尽量减少服务器端代码的数量。剩下的很少,我将其包装到Zend框架中,但数据持久性和验证层实际上并不需要那么多代码 我使用的是javascript代码,但是有很多javascript框架都很好(,,…)
所有真正丰富的交互最终都是javascript,因此,如果您要选择一个平台,请选择一个与javascript集成得非常好的平台。显然javascript工具包在这方面有优势。我收集到的GWT很神奇,因为它不是javascript,但您可以假装它是javascript,而不会遇到问题。Quake II的javascript端口是一个GWT项目,这说明了一些问题。相当于Smalltalk的Seaside框架的python是一个功能强大的系统,尽管目前文档在深度/广度上不一致,而且我在网上找不到很多开发人员的故事/经验。同样有趣的是,它用于支持连续性。是的,基于haskell语言的框架。Seaside对我们来说非常有用。我们在Pharo上开发,并将其部署在带有Gemstone OODB的VPS上,目前我们的开发速度大约是我以前的公司在ASP.NET MVC中的五倍 没有数据库代码、生成的html(没有模板)和javascript(Scriptaculous/jQuery/RaphaelJs)的组合效果非常好 第一点非常重要。我从未见过一个足够干燥的基于模板的系统(尽管可能有一个基于lisp的系统) 我也玩过卡布奇诺的早期版本,如果你有cocoa/nextstep的背景就好了,但它(在第一次公开发行后的几个月)对我们来说还不够完善。是一个用Haskell编写的web框架,类似Seaside,但没有连续性问题(持久性和可伸缩性问题) web开发的主要问题是HTTP的无状态性质,这迫使一个事件处理编程模型,其中充满了不安全的变量标识符和这里或那里引用的事件处理程序。大多数情况下,状态是以动态类型数据的哈希表的形式出现的,因为事件处理程序不共享变量范围 基于continuation的框架,如ocsigen(ocaml)和seaside(smalltalk)很好地处理了back按钮,它们将状态保持在正常变量中,并且可以通过阅读代码来理解导航。而且他们在一定程度上都很安静。但是这些框架是不可伸缩的,并且由于固有的延续性问题而存在持久性问题 web应用程序的另一个问题是HTML的无类型性,它可能会产生不匹配和运行时错误 在MFlow中,不仅每个页面,而且整个导航在编译时都是安全的,并且不会出现上述问题。它具有基于延续的框架的良好特性,但它是可伸缩的,因为它使用日志记录和回溯而不是延续。它使用标准的Haskell web库:WAI、Formlet、stm、blaze html。它有一个可插拔的独立组件系统 这是一个有三页的完整应用程序。在一个循环中,它要求两个数字并显示总和。你可以随意按后退按钮。在配置文件、页面和源代码中,您不必在这里和那里放置神奇的标识符:
module Main where
import MFlow.Wai.Blaze.Html.All
main= do
addMessageFlows [("sum", transient . runFlow $ sumIt )]
wait $ run 8081 waiMessageFlow
sumIt= do
setHeader $ html . body
n1 <- ask $ p << "give me the first number" ++> getInt Nothing
n2 <- ask $ p << "give me the second number" ++> getInt Nothing
ask $ p << ("the result is " ++ show (n1 + n2)) ++> wlink () << p << "click here"
modulemain其中
导入MFlow.Wai.Blaze.Html.All
main=do
addMessageFlows[(“sum”,transient.runFlow$sumIt)]
等待$run 8081消息流
sumIt=do
setHeader$html。身体
我相信n1是真正的下一代web框架。顾名思义,它正在杀死恐龙
为什么是下一代?让我列出它的一些特性,摘自它的
电线上的数据。Meteor不通过网络发送HTML。服务器发送数据并让客户端呈现数据
一种语言。Meteor允许您用JavaScript编写应用程序的客户端和服务器部分
数据库无处不在。您可以使用相同的方法从客户端或服务器访问数据库
延迟补偿。在客户机上,Meteor预取数据并模拟模型,使其看起来像服务器方法调用立即返回