Vision and Perspective are fundamentally different in technology, design, and purpose, making 100% direct conversion not possible. Here’s why:
Technological Differences between Ignition Perspective and Vision
- Technology Stack
- Vision: Built on Java Swing (desktop-focused). Java Swing is part of the Java Standard Edition (Java SE), which is maintained and updated by Oracle.
- Perspective: Built on HTML5, CSS, JavaScript (web/mobile-first). World Wide Web Consortium (W3C) oversees the development of web standards, including HTML, and WHATWG (Web Hypertext Application Technology Working Group) now primarily drives the evolution of HTML5, ensuring it remains open and community-driven. CSS (Cascading Style Sheets) is also governed by the W3C, which defines its standards as part of web styling. JavaScript is standardized by ECMA International under the ECMAScript specification and TC39 (Technical Committee 39) is the group responsible for evolving the JavaScript language.
- Layout System
- Vision: Fixed, pixel-perfect layouts with Coordinate Containers.
- Perspective: Responsive layouts using Flex, Grid, and Coordinate Containers.
- Component Library
- Vision-only: Power Table, Template Repeater.
- Perspective-only: Map, Time Series Chart.
- Styling
- Vision: Static styling via component properties (e.g., fonts, colors).
- Perspective: Dynamic styling with CSS-based Style Classes.
- Event and Scripting Models
- Vision: Python scripting for desktop interactions (e.g.,
onMouseClick
). - Perspective: Python and JavaScript-like events for web/mobile (e.g.,
onTouchStart
,onResize
).
- Vision: Python scripting for desktop interactions (e.g.,
- Security
- Vision: Basic role-based authentication.
- Perspective: Supports advanced Identity Providers (IdPs) like OAuth and SSO.
- Deployment
- Vision: Runs on desktop clients via Java Runtime.
- Perspective: Runs in web browsers and mobile apps.
Key Takeaways
- Direct Conversion: Not feasible due to incompatible technologies and design approaches.
- Manual Rebuilding: Necessary to adapt layouts, components, scripts, and styles.
- Hybrid Use: Consider using both modules to leverage their strengths.
Ignition Vision and Ignition Perspective Projects Conversion
Step | Vision to Perspective | Perspective to Vision |
---|---|---|
1. Evaluate Project Scope | Identify components, layouts, and scripts that require rework. | Determine if mobile-specific features can be simplified. |
2. Rebuild Layouts | Use Flex/Grid Containers for responsive design. | Recreate fixed layouts using Coordinate Containers. |
3. Replace Components | Swap Vision-only components (e.g., Power Table) with Perspective equivalents (e.g., Table, Embedded View). | Use Vision alternatives for Perspective components (e.g., Map → Static Image). |
4. Adapt Styling | Convert static styles to CSS Style Classes. | Manually apply static styles (e.g., color, font). |
5. Rewrite Scripts | Rewrite Python scripts to use Perspective’s event model (e.g., onTouchStart ). | Simplify event scripts for Vision’s desktop events (e.g., onMouseClick ). |
6. Redesign Security | Configure Identity Providers (IdPs) for authentication. | Use Vision’s role-based security settings. |
7. Test and Validate | Test responsiveness across browsers and devices. | Verify layouts and functionality on desktop clients. |
8. Deploy and Optimize | Publish the project to a web and mobile audience. | Ensure smooth operation on industrial PCs or desktops. |
Notes on Workflow
- Not All Components Transfer:
- Some features in Vision (e.g., Power Table) or Perspective (e.g., Maps) may need complete redesigns as they lack direct equivalents.
- Manual Conversion Required:
- There’s no automation for converting layouts, components, or scripts between the two modules. This requires hands-on effort.
- Hybrid Approach:
- Use Vision for desktop environments and Perspective for mobile and web-friendly dashboards when conversion isn’t fully practical.