前言
如题,我们来直接回答Vision和Perspective的区别是什么?Vision和Perspective的区别细分的话还是挺多的,但是其根本的区别就是Vision基于CS架构,Perspective基于BS架构。
竟然咱们的主题是Vison和Perspective的区别,那么前提就是二者肯定是有不少通用点的。在ignition中,Vision和Perspective都是用于项目页面开发的模块,二者在实际开发中都是通过拖拉拽组件,定义其属性、大小、形状和布局等来开发整个页面的。在实际使用手法上,两者区别不大,但是基于CS架构和BS架构的特性来讲,二者的实际开发还是有区别的。 官网中,先对Vision模块做了详细的讲解后,在介绍Perspective中也添加了一条“A Vision-Oriented Guide to Perspective”通过其二者的相似性来对Perspective的使用做了一个引导,同时在该条中官方也对Vision和Perspective的区别做出了解释和对比,可以点击链接访问该页面查阅官方对二者区别的讲解。下面二张图片展示了在ignition用户手册中对核心模块Vision和Perspective的目录。
二张图片中,Vision和Perspective都使用Designer进行界面开发、使用Components进行设计、都有Scripting、Security等。 下面我们根据Vision和Perspective的目录来仔细分析一下Vison和Perspective的区别。
- 根本区别:Vision基于CS架构,Perspective基于BS架构。
- 页面开发不同:Vision中的Window对应Perspective的Pages。Window or Pages
- 组件及其属性类型不同。Component
CS or BS
我们先来介绍一下CS和BS后再往下展开。对CS架构和BS架构记忆不清晰的可以看以下二篇文章:BS和CS的区别---掘金社区或者CS与BS架构区别、比较、及现状与趋势分析---CSDN技术社区
BS即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。
CS即Client/Server(客户机/服务器)结构,该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的局限性。
Vision基于CS,那么如果是使用Vision模块来开发,客户的正常访问和使用就需要安装对应的软件来进行底层支持,即客户需要安装我们的客户端才能正常使用和访问对应的项目。并且,因为ignition底层是基于Java开发的,如果想要运行Vision客户端的话,还需要安装Java环境,而Perspective是基于BS的,在开发和客户的使用过程中,都可以直接通过浏览器来进行访问和使用。因为Vision和Perspective的架构方式不同,使用Vision和Perspective进行布局和项目设计的方式也是有很大的区别的。很直接的来说,Vison和Perspective的所有区别,本质上都是为了适应CS和BS二种架构方式所做出的适应性改变。
综上,简而言之就是CS模式下客户需要安装我们开发的项目才能进行正常使用和访问,而BS模式下用户通过浏览器就能直接访问和使用我们的开发的项目。
Window Or Pages
Vision将开发的页面称为Window,分为Main Winodw、Popup Window、Docked Window,相信大家看名字都可以看出来三种window对应的应用场景,在Vision中,各个window放在Windows目录下,Template目录中则可以使用window编辑一个页面模板进行快速开发。而在Perspective中,Perspective将开发的页面称之为Pages,一个Pages由单个或多个View构成,View可以看作Docked Window,不过这个“Docked Window”是置于最底层的并且可以铺满整个屏幕。一个Pages可以由于单个铺满屏幕的View构成,也可以由多个View进行相对定位和固定定位构成。Perspective的Pages有一个单独的入口需要进行配置,而所有View在Perspective的Views目录下。
在Vison的window中,所有组件可以直接拖到任何winodw类型中,在Perspective中,组将拖放在View中进行开发,不能直接在Pages中进行组件开发,Pages由View构成。如下两图分别为window和Page的创建页面。window在创建是直接选择什么类型的window进行创建和使用,在main window设计中添加Docked winodw或Popup window来来构成页面。而Pages中,可以设计Pages布局,分别在不同的位置设置所需要的View构成Pages,如果各个位置没有添加View进行设置的话,默认Pages所关联的View就是整个页面。
Component
Vision和Perspective都是使用组件进行开发的,但是因为二者架构方式不同,所以说二个模块对组件的使用还是有区别的。一是二者架构方式不同,所以并不是所有在Vision中的组件Perspective都会有,反之同理,即组件数量区别,但是使用方式几乎相同。二是二者开发组件的属性的表达方式不同,即组件属性数据类型不同。在Vision中,组件的属性如name、width、value和Enabled等属性都是固定的基本数据类型如int,String等或者是Dataset,但是在Perspective中,所有的组件属性都以JSON格式存储在对应的组件或容器的JSON对象上。所以在Perspective中的组件属性没有固定的数据类型,他对应的属性是什么数据类型,取决于怎么去使用该属性。