Language agnostic Web框架API

Language agnostic Web框架API,language-agnostic,web-applications,web-frameworks,wt,Language Agnostic,Web Applications,Web Frameworks,Wt,我不是一名Web开发人员,我对Web应用程序框架了解不多 然而,最近我进入了一个新的领域。这是一个用C++编写的Web框架(这就是为什么我会参与其中),但给我留下印象最深的是它基于的想法。 它的API不同于我所听说过的任何web框架(CppCMS、Yii、Django、Pylons、Zope、Drupals、Java servlet、Struts……):为任何用户会话创建一个新的应用程序对象,并且在会话过期之前它一直保持活动状态(只有在此时应用程序对象才会被销毁)。此应用程序对象的工作方式类似于

我不是一名Web开发人员,我对Web应用程序框架了解不多

然而,最近我进入了一个新的领域。这是一个用C++编写的Web框架(这就是为什么我会参与其中),但给我留下印象最深的是它基于的想法。

它的API不同于我所听说过的任何web框架(CppCMS、Yii、Django、Pylons、Zope、Drupals、Java servlet、Struts……):为任何用户会话创建一个新的应用程序对象,并且在会话过期之前它一直保持活动状态(只有在此时应用程序对象才会被销毁)。此应用程序对象的工作方式类似于桌面窗口:您将小部件(表单、链接、标签等小部件)放入其中;当用户点击一个链接时(当HTTP服务器收到一个新的GET/POST请求时),一个函数被调用到与用户会话紧密相连的对象上(以一种很好的信号/插槽方式),它可以删除/添加/更改小部件,从而更改用户将看到的页面

正如我所说,我对web框架不是很熟练,我几乎只开发桌面应用程序;也许正是因为这个原因,我认为Wt背后的范例是伟大的


我想知道与其他框架API相比,此框架API的优点和缺点是什么,以及是否有基于相同概念的其他框架(也使用其他语言);它的目标是使web开发看起来像桌面应用程序开发一样。

我认为这通常是个坏主意

Web应用程序与GUI应用程序非常不同,原因有很多:

99%的网络是关于内容的,而不是关于迭代。 你上网是为了获取或共享内容,而不是为了进行实时交互 比如画画、使用电子表格或其他任何东西。 Web是内容驱动的,而不是“事件驱动”的交互式应用程序

这对您如何创建大多数web应用程序有很大影响—您带来了信息 而不是与用户交互

服务器和客户端编程非常不同 有一些web GUI应用程序,如电子邮件、聊天客户端,但性能良好 它们要求客户端和客户端之间有很好的分离 在高质量Java脚本和所使用的高质量服务器端后端中 通过AJAX进行内容检索

像Wt或(其他已知框架)一样隐藏这种分离会导致糟糕的结果 从长远来看,软件和解决方案带来的问题比解决方案更多

因为在服务器端和客户端作业之间应该有非常清晰的分离 因为有些需要实时响应,有些则不需要

当你试图一次解决所有这些问题时,等待问题的出现。注意,有两个客户端服务器 GUI解决方案(以X-Server为例),但与他们为此设计的web不同 更像IPC,而不是客户机-服务器孤岛

大多数时候,web是无状态的。 或者更准确地说,州政府通常保存相当少量的数据

创建即时会话对象是一个好主意,直到您需要。。。 当然,从长远来看,如果扩大保存状态,那么这个模型就不那么好了 这不是Wt的“强制”模型,而是符合特定概念的一般概念 有些则不然

底线 如果你想设计一个好的GUI类web应用程序。开始学习JavaScript,并使用适合GUI驱动设计的良好GUI JavaScript框架。然后使用一些交互RPC模型(如Json RPC、XML-RPC和其他RPC)将它们与一些服务器端API结合起来 AJAX工具

对于高度交互的应用程序,这是正确处理问题的方法

如果您的应用程序更面向内容,那么大多数服务器端web 框架做得很好——专注于服务器端,使用其优秀的工具 为了这份工作

一体化解决方案?它就是不起作用


披露:我是Wt的开发人员,我认为Wt走错了方向。

Wt是一个非常好的框架,适用于其预期的应用范围

Wt非常适合:

  • 与会话紧密耦合的web应用程序,即。
    • 仅允许登录的用户访问(登录页除外)
    • 显示大量依赖于用户的内容(因此不适用于wiki)
    • 严重依赖国家
  • 需要有大量控件/按钮和用户输入的web应用程序
例如,我计划编写一个浏览器MMORPG。所有页面都将有一个与用户绑定的状态,并且会有很多按钮Wt非常适合于此。我曾经是RubyonRails的开发人员,在这种应用程序中切换到Wt是一个伟大的时刻。使用试图强制执行纯REST的传统框架来设计表单是非常麻烦的

Wt对于某些进程上的控制接口来说也是完美的。例如,允许您的客户配置其adword campain等的界面

当然,在控制和分离方面,使用Wt并不完美,但当您只需要“经典”功能(按钮、编辑器等)时,它可以实现极快的开发

因此,根据经验,如果您试图将桌面应用程序放到web上(这是一个好主意,不需要在客户的机器上部署和更新),Wt是一个很好的选择


也可以,如果你与现有的C++代码库接口,WT有优势。

我不是下级选民,但是ASP.NET方法与WT的方法有很大的不同,而且它被认为是在被采纳时表现不好。这并不是Asp.Net的一个强大的方面。
:-)
虽然你的一些观点是正确的,但你缺乏对不同类型应用的视角。看我的答案。我认为你把Wt描述为“通常是个坏主意”是不公平的。它非常适合某些类型的web应用程序。