`
winzenghua
  • 浏览: 1370062 次
  • 性别: Icon_minigender_2
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

对Web前端的优缺点做的精辟分析(节选自javalobby)

阅读更多

source: http://java.dzone.com/news/desktop-versus-web-application

Advantange:

1- Web is shaping software world: After client-server applications era, every company tried to port their applications to web. But this was very hard since this selection requires very different technologies; HTTP, HTML, XHTML, DOM, XML, CSS, Ajax, JavaScript. ERP vendors still hasn't completed this effort since complete rewrite needed. Web world is still evolving; Web 2.0 and client-side Web is recently booming.

2- Browsers are deployment tool: One of the most important problems of application is release and deployment management. This problem had 2 part; 1st is for server-side and 2nd part is client-side. Web-based applications solves nearly all problems of client deployment since requires zero installation. Browsers are evolving in their own direction with many improvements and standard support (i.e. caching, rendering, new CSS specification support); browser-based Web applications utilize all new features with zero price.

3- Network is getting faster: One of the most important problems of the web application is downloading pages and its content. As the network speed increases every day, both in home and offices, web page downloading becomes faster and faster. This leads much more satisfactory user experience in the UI.

4- Web programming is easy: In java, this is true but for other languages like VB or Delphi this may not be true. java has very strong server-side capabilities. HTML and JSP provides declarative programming which is much more easy compared with desktop-based applications UI development. If true frameworks are used or developed, code generation is very easy. I think the only hard part is in client-side JavaScript which Ajaxian libraries are still trying to solve. Hardness of the JavaScript programming is caused by both the nature dynamic language and the distribution of client function into both client and server code.

Today, after years of heavy server-side only development and lack of understanding even JavaScript and java difference, software world are awaked of client-side capabilities. In 2002, we were working our own JavaScript libraries and I had noticed that although many DHTML features added to JavaScript, there was mere usage in software world. Ajax is not a new JavaScript technique, we were using this technology with the name of Remote Scripting. Coming to 2004 and 2005, eventually Ajax had appeared as the cure of some problems. Today, web and desktop application gap is not yet filled. Some part of this problem is from the reason that JavaScript features are inefficiently or wrongly used (i.e. missing of server-side code support). Some part is caused by the nature of web platform.

Let’s try to list what was the rich functionality of desktop applications that we are still trying to fill:

1- Windowing System: Multiple document function is much more advanced in desktop applications compared with browser pages. Inter-document relation is very hard since some events may require navigation and this causes delay. Popup pages can’t be customized very easily; for example IE modal dialogs don’t allow you to navigate (we could achieve this with iframes). For filling this gap, many JavaScript libraries try to invent their own windowing system with layers, but most of them problematic (heavy or not easy to integrate with server-side).

2- Tab Component: Tab pages are micro edition of windows. Every tab page should be matched with a JSP page. But again JavaScript libraries were loading every tab content at one time. Partial loading of tabs may be recently utilized. We developed our own tab components which supports many sub-tab levels which were not existed in even most of advanced JavaScript libraries at the moment. We could implement that because of the help of server-side JSP pages. I think, currently available rich tabs are still can’t be easily integrated with your server-side page or object model.

3- Grid Component: We have searched a grid component many times but for many years web-based grids couldn’t reach to the desktop grid functionality. Only a few years ago, in-line editing etc. could be added to the feature list of web grids that DOM capabilities explored at last. We firstly developed a list component for the some functions of grid component (Sorting, Filtering, Selection, Paging). We could finally developed a grid component with has in-line editing with the help of Ajax. Our grid component supports many cell input types, insert row which eases data entry.

4- Master-Detail Forms: To provide this functionality, we must have grid functionality since Detail is formed with many input lines. After developing grid component, we easily supported this structure with detail tabs. One of the most important problems of this structure is mapping master-detail form into JSP pages. Current web-based master-detail solutions mostly don’t have detail tabs (One detail) or detail in-line editing and insert row causing to navigate another page for insertion.

5- Poor-Featured HTML Components: For many years, native form components are not improved. HTML 5 had many exciting components but should be earlier. Every JS library developed their own components to add features, but complexity and heaviness of those components still prevents us using them. I see many efforts; magical combo-boxes, super auto-completing text boxes, masked inputs etc. I think added feature value of these libraries doesn’t weigh its cost. We could only use partial codes like menus, tooltips etc. not the whole JS library. One of the big challenges for this is browser compatibility which still a burden of JavaScript coders.

6- Navigation: Page navigation causes UI interruption and users have to wait your page or component load. With the poor of server or network performance, users’ application satisfaction diminishes. Ajax libraries try to decrease page navigation, and this brings new problems. One of the major problems is that we have to synchronize server-side JSP page state with client-side state. Everything done in JSP pages should be done in JavaScript which causes us to keep track of 2 states. This is duplication of efforts and another burden on Web programmers.

7- Client Host Access: HTML doesn’t have this functionality. You can’t access client PC from Browser since security. The only feasible way to achieve this was using ActiveX components which are platform dependent and requires some security setting changes. Web site may not require this feature but as ERP web applications, we needed native printing or some manufacturing device access through the client host. Desktop applications are much more comfortable since have nearly no restrictions.

As the development and enhancement continues in Web world, we will see if this gap filled in the coming years. As a supporter of Web-based development, I think desktop applications will not be replaced completely with web applications. Both architectures had some powerful aspects and every software should be placed to the true platform considering software requirements. I give following link as a supporter of this idea: http://www.infoworld.com/article/06/10/02/40FEbrowseapp_1.html

分享到:
评论

相关推荐

    Javalobby Community Platform-开源

    通过研究JLCP的源代码,开发者不仅可以学习到构建大型Java社区平台的实践经验,还能了解到最新的技术和最佳实践,这对个人技能提升和职业发展都大有裨益。同时,参与开源项目也是贡献社区、提升影响力的好方式。

    spring in action 第三版(英文)

    - JDBC模板、Hibernate集成、MyBatis集成等多种数据访问技术的应用场景及优缺点比较。 - 事务管理的实现机制及注意事项。 - JPA与Spring Data JPA的使用技巧。 5. **测试**: - 单元测试与集成测试的区别及重要...

    GWT in Action, Second Edition 完整版

    - Amazon读者Yong Sung Kim对写作质量和覆盖面深度印象深刻。 #### 二、GWT简介 - **定义:** Google Web Toolkit (GWT) 是一个开源框架,用于开发高性能的客户端/服务器Web应用程序。 - **特点:** - 支持将...

    [jQuery实战第二版].jQuery.in.Action.2nd.Edition.pdf

    - **David Sills**(JavaLobby, Dzone):高度赞扬本书为“优秀的作品”,是一本值得所有Web开发者收藏的重要参考书。 - **David Hayden**(MVPC#, Codebetter.com):强烈推荐本书作为学习 jQuery 基础知识的入门书...

    Lucene In Action

    - **JavaLobby**:“如果你计划在应用中使用 Lucene 或者对 Lucene 能为你做什么感兴趣,这绝对是必读的书。” - **Computing Reviews**:“本书成功地阐明了 Lucene 的 API,并通过许多代码示例和精辟的解释,打开...

    Spring.in.Action.2nd.Edition.Aug.2007.pdf

    该书不仅受到了广大读者的好评,还被多个权威平台如Computing Reviews、Internet Bookwatch、JavaLobby.org等高度推荐。 - **Computing Reviews**:本书将软件产品的教程与优秀的软件设计思想及设计模式相结合,是...

    spring in action 3ed 正式版

    - JavaLobby.org:本书内容丰富,易于阅读,获得五星评价。 - Internet Bookwatch:本书组织结构良好,语言流畅。 - Books-On-Line:本书轻松易读,带有恰到好处的幽默元素。 - Computing Reviews:这是一本难得...

    spring in action

    - **JavaLobby.org**指出本书是一份珍贵的资源,清晰地定义了Spring为企业程序员带来的强大功能,以及Spring如何抽象化了许多复杂的J2EE服务。本书经过了严格的早期访问计划,因此语法错误和代码错误几乎不存在。 - ...

    Spring+in+Action Manning+20

    6. **广泛赞誉**:从专业书评到个人博客,本书受到了来自多个领域的广泛赞誉,包括《计算评论》、《互联网图书观察》、《在线图书》以及Bill Siggelkow的博客和JavaLobby.org,他们都对本书给予了高度评价。...

    jQuery.in.Action.2nd.Edition.Jun.2010.pdf

    - **David Sills**(JavaLobby、Dzone):该书是Manning“in Action”系列的优秀作品之一,内容详实且易于阅读,其中包含大量实用代码示例,特别推荐给所有Web开发人员。 - **David Hayden**(MVP C#、Codebetter....

    java学习教程网站pdf.pdf

    Java是一门广泛应用于企业级应用、移动开发(尤其是Android平台)、Web服务等领域的编程语言。对于想要学习Java的人来说,掌握丰富的学习资源是至关重要的。以下是一些重要的Java学习网站和相关知识点: 1. **Java...

    restClient

    标题中的"RESTClient"指的是一个用于测试和调试RESTful Web服务的工具。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,以轻量级、无状态、标准化的方式进行数据...

    [jQuery实战第二版].pdf

    - **David Sills (JavaLobby, Dzone)**:这本书是一本优秀的作品,是Manning出版社“in Action”系列中的一个值得骄傲的继承者。它易于阅读且充满了实用代码。实验室页面是一种探索库的奇妙方式,应该成为每个Web...

    java学习类网站,让你有菜鸟变高手

    - **内容介绍**:提供Sun认证Java程序员的基础培训资料,包括理论知识讲解和实践案例分析,适合初学者系统性地掌握Java基础知识。 2. **Java官方文档** - **网址**:http://java.sun.com/products/jsp/faq.html...

    全部的java学习网站

    - **内容概述**: 专注于Java多线程技术的文章,适合于对并发编程感兴趣的开发者。 3. **ACM Crossroads** - **网址**: http://www.acm.org/crossroads/xrds4-2/serial.html - **内容概述**: 提供了一系列关于...

    jQuery.in.Action.2nd.Edition

    David Sills在其博客JavaLobby和Dzone上给予了五星好评,称赞本书不仅内容丰富、易读性强,而且还包含大量可运行的代码示例,特别是“Lab页面”这一特色部分更是为开发者提供了宝贵的实践资源。David Hayden则认为这...

    camel-cometd-demo:在Apache Camel中使用Cometd通道端点的示例

    在网上在DZone Javalobby上精选 在我的博客上先决条件您需要安装和配置Java(JDK)和Maven它能做什么这个单独的演示项目将打开3个窗口(2个终端和一个浏览器): 终端窗口-运行ActiveMQ \ Camel服务器-带有CometD...

Global site tag (gtag.js) - Google Analytics