Language agnostic Web框架API
我不是一名Web开发人员,我对Web应用程序框架了解不多 然而,最近我进入了一个新的领域。这是一个用C++编写的Web框架(这就是为什么我会参与其中),但给我留下印象最深的是它基于的想法。 它的API不同于我所听说过的任何web框架(CppCMS、Yii、Django、Pylons、Zope、Drupals、Java servlet、Struts……):为任何用户会话创建一个新的应用程序对象,并且在会话过期之前它一直保持活动状态(只有在此时应用程序对象才会被销毁)。此应用程序对象的工作方式类似于桌面窗口:您将小部件(表单、链接、标签等小部件)放入其中;当用户点击一个链接时(当HTTP服务器收到一个新的GET/POST请求时),一个函数被调用到与用户会话紧密相连的对象上(以一种很好的信号/插槽方式),它可以删除/添加/更改小部件,从而更改用户将看到的页面 正如我所说,我对web框架不是很熟练,我几乎只开发桌面应用程序;也许正是因为这个原因,我认为Wt背后的范例是伟大的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……):为任何用户会话创建一个新的应用程序对象,并且在会话过期之前它一直保持活动状态(只有在此时应用程序对象才会被销毁)。此应用程序对象的工作方式类似于
我想知道与其他框架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应用程序
也可以,如果你与现有的C++代码库接口,WT有优势。
我不是下级选民,但是ASP.NET方法与WT的方法有很大的不同,而且它被认为是在被采纳时表现不好。这并不是Asp.Net的一个强大的方面。:-)
虽然你的一些观点是正确的,但你缺乏对不同类型应用的视角。看我的答案。我认为你把Wt描述为“通常是个坏主意”是不公平的。它非常适合某些类型的web应用程序。