`
炫烂彩虹
  • 浏览: 16952 次
  • 性别: Icon_minigender_2
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

表示层界面开发技术总结

阅读更多

    市场上现有的表示层的一些界面开发技术如下图:

    表示层界面技术

 

   

横轴表示偏向服务器端的技术。从左往右依次看:

1)         CGI是早期所用的通用网关接口,早已被抛弃,目前只在一些特定设备如网关上还存在。

2)         SERVLETJAVA编写的服务器端小程序,通过writer/print函数输出html页面。

3)         JSPSERVLET的扩展,引入了模板技术来生成网页,使网页编程变成以html为主体,在其中嵌入动态代码。其衍生的JSTL技术能提供自定义标签,可以达成页面组件化目标,不过缺点是自定义标签的开发难度很高,需要极高的编程技巧。

4)         JSF,在jsp的基础上进一步深入组件化,能以单机软件的模式来构建。并改变了通常的“请求-转发”的MVC模式,以“事件驱动”的思路来取而代之。缺点是性能差,jsf组件的设计越加复杂,需要专用IDE的支持。

5)         Portal,是jsf的一种应用,用来组合集成各类系统,方便实现门户级别的整合,缺点是非常昂贵(如websphereweblogic的解决方案等),性能差,部署复杂,二次开发有较高技术门槛。

6)         GWTgoogle的产品, 用类swing的方式来开发界面和软件,然后用js编译器将java代码翻译成js代码(翻译一次即可)。目标也是透明化浏览器和服务器的差异,而与jsf不同的是,GWT在运行期之前生成js,运行期通过ajax与服务器通讯。不过使用得不广泛,主要是因为调试困难,而且性能优化难度太高。

这个横轴越往右表明与服务器的关联越紧密,用更多的java,用更少的js,这是典型的java程序员的思维模式:什么都让java解决。

 

我们再来看另一个领域:浏览器。

纵轴表示的是偏向浏览器端的技术,从下往上依次看:

1)         HTML超文本标记语言。

2)         DOM是浏览器实现的文档模型 ,然后给它嵌入一个脚本语言解释器(javascript/vbscript)来操作。只是,dom模型和js语言都实现得太粗糙,很难用。(56年前那种复制黏贴的js特效代码满天飞的现象不是没有原因的)

3)         js函数库,如prototypejquerymootools 目标是弥补dom/js的低效和杂乱,努力减轻web程序员的工作,弥补js在“OOPDOM操作,组件化”等方面的先天不足。这些优秀类库是现代ajax的核心,催生出了一个web 2.0时代,界面开发开始重新向js回归(上一个努力是AppletFlash)。其中jQuery以强大灵活的选择器、链式调用和丰富易用的插件体系脱颖而出,成为大多数Ajax项目的首选。

4)         js特效库,如script.aculo.us(基于prototype),jquery plugin(基于jquery),dojo等,它们都提供了一些富客户端页面中常见的效果,如动画,拖放等。

5)         js组件库,如YUIYahoo UI),EXT(即YUI-EXT),Dojo等,它们提供了一些通用的组件库。jQuery plugin系列也有丰富的可选库。其中商业化最成功的就是EXT,已经自成一套体系,体积庞大,结构复杂,适合于内网的纯Ajax开发,二次开发难,界面风格调整不易。相比之下,jQuery作为js核心类库大大强于EXTcore,通用组件虽然不及EXT全面,但胜在易学易用,开源,易于二次开发,目前其plugin lib仍在不断增长,具备很高的采用价值(包括jquery UI)。

6)         嵌入式对象。FlashFLEXAPPLETsilverlightJavaFXgoogle gears是几大类页面嵌入实现,其中flash以庞大的装机率成为事实上的标准已经很多年了。

7)         HTML5,从浏览器出发,吸取Flash的精华,打造更强大的webHTML5将是今后的主角,flash杀手。浏览器凭借HTML5的普及,终将走向真正的富客户端。 

这个次序越往上,其与服务器关系越小,交给浏览器做的计算就越多。 

选用与服务器关系紧密的方式,服务器端生成页面的方式会对服务器造成性能压力,浪费服务器很多的计算能力,尤其是使用复杂的标签情况。选用偏向浏览器端的通用组件方式,其难度相当于需要掌握一门新的技术语言,难上手。技术越集成,则复杂度越高,越不容易使用。功能的强大与开发的简单是一对矛盾,往往需要在中间取一个平衡点。由服务器端生成,还是由客户端生成界面?我认为数据更适合由服务器处理,界面适合由浏览器生成。

    纵观近十年来的B/S技术流行趋势,风云变换,可以发现总的趋势是在向浏览器(富客户端)发展,越来越强调客户端体验(动态界面、异步刷新),实际上已经回到了传统C/S程序的老路上——客户端和服务端只传递数据,不再传递整个界面是未来的必然趋势。而数据的传递,则从单纯的get/post演变为ajax,继而演变成js端的rpc调用(dwr,buffalo等),模糊页面和服务器的界限(与GWT正好相反)。

 

    本篇是为公司写的前端界面技术方案的一段。本只想说明何种组件更适合公司,却不觉演变为一篇界面开发技术的分析。这其中最应该感谢的就是我偶像,给了我不少提携,其中的图就是在他的建议下建立,而服务器端的技术对我本是很模糊,也经由偶像指点得以流畅清晰。此段的文字更是在偶像的渲染之下变得生动有势。Thank you and I love you。

  • 大小: 43.1 KB
分享到:
评论

相关推荐

    三层开发技术文档(zhangmingshao)

    三层开发技术是软件架构设计中的一种常见模式,它将应用逻辑分为三个主要层次:表示层、业务逻辑层和数据访问层。这种结构有利于提高代码的可维护性、可扩展性和可重用性,同时便于团队协作。以下是关于三层开发技术...

    NET,三层开发

    1. 表示层:这是用户与应用交互的界面,通常由Web页面、Windows Forms或WPF等组件构成。在.NET C#中,我们可以使用ASP.NET MVC或ASP.NET Core来构建表示层。这一层主要负责接收用户输入,显示数据,并将用户的请求...

    MVC 三层架构应用

    1. **表示层接收用户的请求**:当用户通过界面发起某个操作时,表示层接收到这个请求。 2. **业务逻辑层处理请求**:表示层将请求转发给业务逻辑层,后者根据业务规则处理请求。 3. **数据访问层执行数据库操作**:...

    web课程设计报告(自认为还不错)

    在Web开发领域,这通常涉及到前端技术、后端技术以及服务器管理等多个方面。以下是相关知识点的详细说明: 1. **Web基础**:Web课程设计的基础是理解HTTP协议、URL工作原理以及网页的构成元素,包括HTML(超文本...

    C#三层架构经典源代码 C#三成架构实例 三层架构入门实例

    总结来说,C#三层架构是一种结构化的设计模式,它将应用程序划分为表示层、业务逻辑层和数据访问层,以实现代码的清晰组织和高效维护。对于初学者,通过学习和实践这样的实例,可以加深对软件工程原则的理解,并提升...

    详细的net三层框架

    在实际项目中,例如开发一个在线购物系统,表示层可能是Web界面,用户可以浏览商品、添加到购物车、填写订单等。业务逻辑层会处理这些操作,比如验证库存、计算价格、检查用户资格等。数据访问层则负责与数据库交互...

    ASP.NET技术的B/S三层结构设计和实现

    用户表示层也称为用户界面层,是应用系统与用户之间的直接接口。它负责展示信息给用户,并接收用户的输入。在B/S架构中,这部分主要由HTML、CSS和JavaScript等前端技术实现。用户表示层通常负责数据的展示和收集,但...

    java面试知识点总结--JSF界面控制层技术.pdf

    JavaServer Faces(JSF)是一种用于构建Web应用程序的Java EE技术,主要负责界面控制层,提供了丰富的组件库和生命周期管理。以下是对JSF界面控制层技术的一些关键知识点的详细解释: 1. **核心类**: - **...

    三层金字塔.pptx

    例如,在一个项目的资源分配上,50%的时间用于表示层的开发,35%的时间用于业务逻辑层的实现,剩下的15%则用于数据访问层的工作。这种比例分配有助于确保各个层面都能得到充分的关注和发展。 ### 总结 三层金字塔...

    java三层结构

    1. **表示层**:负责用户界面的展示和数据的输入输出。这里的用户界面可以是Web界面或其他类型的用户交互界面。表示层主要处理与用户交互相关的逻辑,如接收用户输入、展示结果等。 2. **业务逻辑层**:承担应用...

    ASP.NET的三层构架(可做其他技术的三层构架参考)

    1. **表示层(Presentation Layer)**:负责用户界面的设计与展示,通常包括各种视图、控制器等组件。 2. **业务逻辑层(Business Logic Layer)**:处理应用程序的核心业务规则和流程,是应用程序的核心。 3. **...

    基于三层体系架构的高校体检管理信息系统的开发

    例如,用户通过体检单进行体检时,表示层会提供相应的界面和服务。 事务层是业务逻辑处理的层,它起到桥梁的作用,将表示层的请求转换为对数据库的操作,并将结果返回给表示层。在这个过程中,事务层还会进行命令的...

    三层架构开发的联机考试系统

    在这个“联机考试系统”项目中,我们可以理解到这个系统是按照业务层、数据访问层和表示层(或用户界面层)的结构来构建的。接下来,我将详细解释这三层架构及其在考试系统中的作用。 1. 表示层(Presentation ...

    三层架构实例 学生管理系统

    在学生管理系统中,表示层可能包含登录界面、学生信息显示、操作按钮等,负责接收用户输入并展示处理结果。 2. **业务逻辑层**:也称为中间层,负责处理业务规则和流程。在这个例子中,业务逻辑层可能包含对学生的...

    pb11+webservice开发分布式三层应用

    1. **表示层**:通常由用户界面组成,负责与用户交互。在PB11中,我们可以创建窗口、菜单、控件等,来提供用户友好的交互界面。 2. **业务逻辑层**:处理所有业务规则和操作,如计算、验证等。它是应用的核心,负责...

    软件开发专业实习总结.doc

    【软件开发专业实习总结】 软件开发实习是一次将理论知识转化为实践经验的重要过程。在清华IT的实习经历让我深刻体会到,所学的理论知识并非无用,而是为实际工作打下了坚实的基础。实习期间,我接触到了软件开发的...

    Pcb四层板开发

    在阅读了关于四层板开发的文档后,我们可以了解到在使用Protel软件设计四层印刷电路板(PCB)时涉及到的多个设计要点和技术细节。下面我将详细介绍这些关键知识点,帮助理解四层板开发的核心内容。 ### PCB四层板的...

    三层架构 asp.net

    【三层架构 ASP.NET】是一种广泛应用于Web应用开发的技术框架,主要特点是将应用程序的逻辑分解为三个独立的层次:表示层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access ...

    三层协议-管理系统

    在Visual Studio 2010中,可以使用ASP.NET或Windows Forms等技术构建表示层。UI层负责接收用户输入,显示数据,并调用业务逻辑层进行处理。UI层的设计应注重用户体验,提供直观的操作和反馈。 4. **开发工具与环境*...

Global site tag (gtag.js) - Google Analytics