热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TWaver图形界面之道(三)TWaver产品家族

接上篇:TWaver图形界面之道(二)TWaver介绍TWaver产品家族TWaverJavaTWaverJava是TWaver产品家族中历史最悠久、功能最

接上篇:TWaver图形界面之道(二)TWaver介绍

TWaver产品家族

TWaver Java

TWaver Java是TWaver产品家族中历史最悠久、功能最强大、应用最广泛的一个分支。TWaver Java基于Java 2D和Java Swing技术,相比于JS、Flex、Silverlight、HTML5这些现在热门的Web前段技术,关注Java Swing技术的越来越少,但从技术的成熟性和运行效率考虑,不太在乎Web化,那么TWaver Java将是最佳选择,因为Java版本是目前TWaver所有产品分支中运行效率最高的,而且Java具有良好的跨平台支持,也可以嵌入到网页中,部署和发布都很方便。

TWaver Web

Web 2.0的时代,程序Web化大势所趋,即使是相对保守的企业级应用,也追求全面的Web化,于是TWaver Web孕育而生。最早我们将TWaver Java界面输出VML图形(那时候IE一统天下),后来改用了更加标准化的SVG方案,转换的工作充满着挑战,但当我们将所有TWaver Java的demo输出,效果不分伯仲时,我们知道一切努力都是值得的。后台输出图形,前台Javascript交互,动态请求图形数据,更新界面,这些正是TWaver Web的设计思想和运行模式。

TWaver Flex

TWaver Web解决了大量客户的需求,但技术在发展,RIA(Rich Internet Application)开始流行,Adobe Flex是RIA的主流技术,TWaver团队与时俱进,积极寻求Flex解决方案。

Flex使用MXML和ActionScript语言开发,ActionScript源于动态脚本语言,兼具动态语言和静态语言的特性,发展到Flex2,其实际使用已经很接近Java,因此,有了Java和Javascript的基础,学习Flex变得容易,经过两年的研发,TWaver Flex产品诞生,成为客户最为关注的产品分支。

TWaver .NET

RIA的另一种解决方案是Silverlight,Java阵营的最大竞争者是.NET阵营,所以.NET成为一块不得不重视的蛋糕。TWaver Flex开发的同时,我们也在对.NET以及Silverlight技术预言,预言的结果令团队大受鼓舞:Silverlight与Flex有着惊人的相似性。于是在TWaver Flex正式发布不久,TWaver .NET也开始提供试用版本,TWaver .NET完全依照TWaver Flex的设计模式和命名,甚至示例也是完全照搬,软件世界殊途同归真是件大好事,让同一种思想在多个平台落地开花,带来了更多选择。

当然,TWaver .NET并非简单的Copy,它有自己的特点,TWaver .NET分两个版本:TWaver .NET for WPF、TWaver .NET for Silverlight,两者共用大部分代码,另外的那部分通过预处理条件加以区分,TWaver .NET以Silverlight为标准兼容WPF代码。相比Flex版本,.NET版本中使用更多C#高级语言特性,泛型、get/set、委托、事件、Lambda表达式等等,此外.NET版本有很高的运行效率,是Flex版本的两倍以上,这也说明了平台移植的重要性。

各种编程语言和UI技术

不同的编程语言有不同的特性,适用于不同的应用场景,有各自的特点:有的性能高,有的跨平台,有的适合Web应用,下面介绍各种编程语言和UI技术的特点和适用场景:

Java

Java程序适合企业桌面应用,成熟稳定,跨平台,也能嵌入浏览器(虽然Applet显得笨重了点),Java是面向对象的编程语言,简单易学,拥有众多的熟练的程序开发人员的支持;

Swing

Java最早的图形界面技术是AWT,AWT依赖原生平台,AWT控件由本地操作系统对应的控件生成,不同操作系统下效果完全不同,这违背了Java跨平台支持的初衷,于是就有了Swing技术。Swing完全由Java写成,具有良好的设计模式,支持切换LookAndFeel改变程序外观,是Java基础类库的一部分,是主要的Java GUI工具包,TWaver Java基于Swing技术;

Javascript

Javascript技术适合Web应用环境,Javascript语言很灵活,快速开发,无需编译,直接运行与调试,一个熟练的Javascript程序员可以随心所欲的编写代码,但这也带来Javascript代码难以维护的问题,Javascript语言入门容易,精通难,TWaver Web前端交互使用Javascript+SVG+HTML技术,TWaver HTML5使用Javascript + HTML5技术;

SVG

SVG是一种文本矢量图形标准,全称:Scalable Vector Graphics,可伸缩矢量图像,SVG本身是XML格式,可与脚本语言(如Javascript)混合使用,这种XML与JS的混用方式,被后来的Flex,WPF与Silverlight承袭,后者是现在新潮的UI技术,而前者(SVG)则是十多年前的产物,这点也说明了SVG设计的强大,目前大多数浏览器都已支持SVG,TWaver Web使用SVG呈现拓扑图界面;

Flex

Flex是Flash发展的产物,Flash是一种制作动画的技术,采用了场景,画布,帧,时间线的设计,这些与窗体,按钮,表格这样的标准控件格格不入,Flex的发展很有趣,最早是一种J2EE的应用,JSP标签库,将MXML和ActionScript脚本动态的编译成Flash文件,在浏览器中呈现,这个时期的Flex还是做动画,到后来界面上需要标准控件,于是就出现了按钮,面板,窗体等等,加上前后台通讯,数据传输,最后成了富客户端应用的完整解决方案。Flex界面延续了Flash的图形绘制基础,Flex程序与普通的Flash文件不同,Flex只有两帧,第一帧是启动界面,第二帧是程序界面,此后程序按第二帧的频率(默认是24帧每秒)启动定时器,周期性的重绘,也就是Flex组件的无效-生效周期;

.NET Framework

.NET Framework是微软公司的一个软件框架,主要运行于Windows操作系统,它包含一个通用语言运行器(Common Language Runtime,简称CLR)和大量的类库(Framework Class Library,简称FCL),支持多种编程语言,C#,VB.NET,VC++.NET等等;

C#

C#是微软公司专门针对.NET框架而设计的编程语言,它借鉴了其他编程语言,尤其是Java语言,通常我们认为C#是一种面向对象的编程语言,事实也确实如此,准确的说C#是一种多范型的编程语言,包括强类型式,命令式,声明式,函数式,泛型,面向对象和面向组件的编程方式,TWaver .NET可以使用C#语言开发;

WPF

全称:Windows Presentation Foundation,为Windows软件提供用户界面的一种图形软件系统,自.NET Framework 3.0被引入。相比旧的GDI系统,WPF使用了DirectX硬件加速,渲染效率得以提高,此外WPF采用XML配置和代码编写结合的编程方式,这点与Flex相似,WPF是.NET Framework推荐使用的主流界面系统技术;

Silverlight

Silverlight是一种运行于浏览器上的客户端技术,与Flash技术相似,支持多种操作系统,多种浏览器,多种设备。Silverlight是简化版的.NET,或者说是简化版的WPF,它包含一个核心呈现框架(WPF的一个子集),.NET框架中的Silverlight部分 (.NET 框架的一个子集),安装器和更新器;

HTML5

HTML5是第五版的HTML标准,相比HTML4,增加了一些新的标签,比如


推荐阅读
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • Annotation的大材小用
    为什么80%的码农都做不了架构师?最近在开发一些通用的excel数据导入的功能,由于涉及到导入的模块很多,所以开发了一个比较通用的e ... [详细]
author-avatar
婧氏橙奂
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有