`
yimlin
  • 浏览: 139196 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Web框架比较

阅读更多
Blog好久没有更新了, 最近一直忙于一个新项目,在这个项目中尝试很多新的做法,准备收集一下放上blog来,这里先放一篇关于Web框架的,基本是老调重谈了. 该文写于4月,主要是为了和朋友讨论问题,有些地方可能不正确

 

Struts

JSF

Tapestry

ASP.NET

Architecture

跳转模型

MVC

跳转模型

Front Controller+组件化编程

页面模型

Page Controller+组件化编程

页面模型

Page Controller+组件化编程

Programming Model

业务逻辑:

Struts1中需要继承基类;Struts2是POJO的模型;

页面逻辑:

有很不同实现,可以是JSP,也可以是通过模版引擎渲染。

业务逻辑:

POJO的编程风格;

页面逻辑:

主要是JSP,也可以用HTML风格。

业务逻辑:

Taperstry4需要继承基类;但Taperstry5就是POJO风格;

页面逻辑:

普通的HTML。

业务逻辑:

需要继承基类;

页面逻辑:

类似JSP,但不同的是,该页面实际是业务逻辑类的子类。

Request Process

 

由官方定义的六个步骤组成;

取决于Engine Service。

由官方定义的15个步骤组成。

Navigation

Path和Action绑定,需要配置文件解析。

通过faces-config.xml配置文件完成。

URL是全局的,没有额外的配置文件;

除非显式跳转,所以行为都在本Page上。

而跳转分两种:

1. DirectLink写在页面上

2. 在代码逻辑中定义页面跳转逻辑。

同Tapestry类似。

Event handling

页面定义事件发起;两种方式参数传递方式:一种分离传递;另一种通过FacesContext。

页面定义事件发起;直接赋予参数,没有参数个数限制;除此外还有内置的生命周期相关的event

类似Swing的事件控制方式。

Component State

没有状态维护机制,每次request都从建组件。

提供组件状态的维护机制。

提供组件状态的维护机制。

Component Dev

基于JSP Tag的开发方式。

开发方式类似Page, 逻辑代码和页面分离,页面输出使用HTML。

开发方式类似Page;逻辑代码和页面分离;页面输出可以复用已有的组件

View

有很不同实现,可以是JSP,也可以是通过模版引擎渲染。

主要是JSP,也可以用HTML风格。

HTML

类似JSP页面。

Validation and Conversion

 

提供了多种方式支持,但客户端验证支持不好,同时在form一级的支持不好,通常需要项目自己定制。

同样提供多种方式支持;此外提供客户端的Validation;天然地支持form一级支持。

类似Tapestry。

I18N

较好的支持。

较好的支持。

很好的支持,额外提供预览功能。

 

Testability

Struts1的测试不容易,Strut2测试容易简单。

测试支持简单容易。

Tapestry4的测试不容易,不过Tapestry5的测试可以很简单。

不容易测试。

Extensibility

 

良好

良好

良好

Industry Momentum

广泛使用,目前各种资源都不错。

JSF业界标准,业内厂商支持会比较多,不过未必不会出现EJB2的结局。

应用范围小于Struts,之前的版本学习曲线太高。

微软地主老财,有大把的钱;此外,大量的第三方公司提供支持。

Migrate

 

从Struts迁移不难;

从Struts或者JSP迁移难度较大些。

 


因为工作原因,最近一直在使用Spring Web Flow,与之上几个Web框架对比优点是:
1. 页面流程明确, 除去JSF外,其它几类框架要明确获取页面流程信息并不容易. 对于企业开发来说,这点其实蛮重要的. 一般的互联网网站没有特别的好处.
2. 不需要再写Action等Web控制类. 虽然Struts2,JSF和Tapestry都是POJO了,但依然存在属于Web层范畴的类,而Spring Web Flow不需要,逻辑写在Flow文件中, 直接访问Service对象,获取Domain Model(我们还同时省略了VO). 当然这点可能有同学持反对意见.仁者见仁了!
3. Spring Web Flow提供单元测试能可以容易覆盖页面流程了.
分享到:
评论

相关推荐

    go-web-framework-comparison:Golang Web框架比较

    Golang Web框架比较 该套件旨在比较各种Go Web框架和路由器的公共API。 注意虽然代码块是自解释的,但PRO的列表很受欢迎,而CON则很受关注,目标是Go 1.7+。 即使某些框架有更多 :thumbs_down: 他们仍然很棒,并且...

    Web前端框架技术综述.pdf

    "Web前端框架技术综述" 在了解Web前端框架技术的重要性之前,我们首先需要了解什么是Web前端框架技术。Web前端框架技术是一种基于Web的开发模式,它提供了一种高效、灵活的方式来开发和部署Web应用程序。这种技术的...

    UI框架 界面框架 WEB框架

    "UI框架与界面框架的 WEB 框架解决方案" 在当今的 WEB 应用开发中,UI 框架与界面框架扮演着非常重要的角色。它们为开发者提供了一整套的解决方案,可以快速地开发出美观、功能强大的 WEB 应用程序。本文将围绕“UU...

    架构探险 从零开始写Java Web框架.pdf

    完善相关细节,并对已有代码进行优化:然后基于传统Servlet框架搭建一款轻量级Java Web框架,一-切都是从零开始,逐个实现类加载器、Bean容器、loC框架、MVC框架,所涉及的代码也是整个框架的核心基础。为了使框架...

    基于Python的Web技术

    Python Web 框架比较 Python 有多种流行的 Web 框架,每种框架都有其特点和优缺点。下面是 Python Web 框架的比较: * Django: Django 是一种流行的 Python Web 框架,具有高效、可靠、灵活等优点。 * Pyramid:...

    java web框架开发技术

    Java Web 框架开发技术 本资源摘要涵盖了 Java Web 框架开发技术的基本概念、Struts2 框架的应用、Web 应用程序开发的基本步骤、实验项目的设置和实验内容、评分办法等方面的知识点。 一、Java Web 框架概述 Java...

    web框架搭建.pdf

    Web框架搭建 在本文中,我们将详细介绍如何搭建一个基于Spring、Struts2和iBATIS的Web框架。这个框架可以帮助开发者快速构建一个基于Java的Web应用程序。 一、框架下载 在开始搭建Web框架之前,我们需要下载相关...

    java web开发框架

    Java Web框架提供了多种视图技术,如JSP(JavaServer Pages)、FreeMarker或Thymeleaf,它们允许开发者创建动态页面并绑定模型数据。 3. **控制器(Controller)**:控制器作为模型和视图之间的桥梁,处理用户的...

    可用于插件的web框架程序

    在IT行业中,Web框架是构建Web应用程序的一种结构化方法,它提供了一套规则和工具,帮助开发者更高效地编写Web应用。"可用于插件的Web框架程序"这一标题表明我们讨论的是一个支持插件功能的Web框架,这通常意味着...

    Delphi+Web前端开发教程基于TMS+WEB+Core框架.pdf

    **Delphi Web开发工具比较** 在Delphi的Web开发领域,有几款重要的框架,包括IntraWEB、uniGUI和TMS WEB Core。这些框架各有特色,比如IntraWEB以其实时更新和高度定制性闻名,uniGUI则以其广泛的组件库和易于学习...

    C++开发web服务框架之HTTP Web框架的设计与实现

    在C++领域,开发Web服务框架,特别是HTTP Web框架,是一项技术性强且具有挑战性的任务。本主题将探讨如何利用Microsoft的Visual Studio 2015集成开发环境(IDE)以及Boost库来设计和实现这样的框架。Boost库是C++...

    spring mybatis web框架

    spring mybatis web框架

    axure web框架原型

    axure的web后台框架,包含菜单和内联框架,高保真,非常的好看,大家可以放心下载;axure的web后台框架,包含菜单和内联框架,高保真,非常的好看,大家可以放心下载

    技术文档web框架

    Web框架是用于构建Web应用程序的一种软件框架,它提供了一种结构和规范,让开发者能够更高效、更快速地编写Web应用。本技术文档将深入探讨Web框架的核心概念、常用框架及其特性,以及如何利用这些框架来开发高效、可...

    OpenERP_6.1_web框架指南

    OpenERP_6.1_web框架指南

    .Net Web 开发简易框架

    .Net Web 开发简易框架 .Net Web 开发简易框架 .Net Web 开发简易框架

    快速搭建web项目框架

    在IT行业中,Web框架是开发高效、可维护的Web应用程序的关键工具。本教程将带你了解如何快速搭建一个Web项目框架,特别适用于初学者和个人自学。首先,我们需要理解Web框架的基本概念。 **Web框架** 是一组预定义的...

    web网页框架教程

    在Web开发中,框架主要通过和标签实现。标签定义了框架集,即窗口布局的结构,而标签则定义了每个框架内加载的HTML文档。在内,可以使用rows属性来定义水平分栏,cols属性来定义垂直分栏,这些属性后面跟随具体的...

Global site tag (gtag.js) - Google Analytics