Index | Prev | Next
Niagara Developer Guide Index
Framework
- Overview
Provides a high level overview of the Niagara Framework
and its problem space.
- Architecture
Provides a broad overview of the architecture and introduces key concepts
such as station, workbench, daemon, fox, and modules.
- Directory Structure
Provides an overview of the the Niagara 4 directory structure, highlighting the
differences from NiagaraAX.
- API Information
Provides an overview of API stability designation and public versus
implementation APIs.
- Modules
Provides an introduction to modules which are the software
deliverables in the Niagara Framework.
- Object Model
An introduction to the Niagara type system.
- Component Model
An introduction to the Niagara component model.
- Entity Model
An introduction to the Niagara entity model.
- Building Simples
Details for building simple Types.
- Building Enums
Details for building enum Types.
- Building Complexes
Details for building complex struct and component Types.
- Registry
The Niagara registry is used to query details about what is installed
on a given system.
- Collections
Details on the Niagara Collections API.
- Naming
The Niagara ord naming architecture and its APIs.
- Links
Discusses object links.
- Execution
Discusses the runtime execution environment.
- Station
Discusses station lifecycle.
- Remote Programming
Describes how the component model is programmed across the network.
- Files
Discusses how files are mapped into the Niagara object model.
- Localization
Discusses localization in the Niagara Framework.
- Spy
An overview of the Niagara diagnostics framework.
- Licensing
An overview of the Niagara licensing framework.
- XML
An overview of Niagara XML document model and parser APIs.
- Bog Format
Details of the Bog (Baja Object Graph) XML schema and APIs used
to encode and decode component graphs.
- Distributions
An overview of Niagara Distributions.
- Test
How to use Niagara's test framework.
- Virtual Components
An overview of using transient, on-demand (virtual) components.
User Interface
In Niagara AX there are three different types of User Interface Technology a developer can choose from...
-
bajaui: Niagara's own Java based User Interface toolkit. The Workbench Applet is required to run this User Interface in the browser.
-
Hx: A light weight Servlet based approach to creating HTML based User Interfaces.
-
Mobile: An HTML5 based User Interface technology specifically designed for smart tablets and phones. This is now deprecated. From Niagara 4.6 onwards,
the HTML5 Hx Profile is mobile friendly.
In Niagara 4 we're trying to transition away from these technologies because....
-
Modern web browsers are moving away from supporting the Java plug-in.
-
Three different skills sets are required to cover all bases (bajaui, Hx and Mobile).
-
Three times the amount of effort is needed to cover all bases.
Niagara 4 has a new User Interface stack based upon HTML5...
-
Workbench has an HTML5 Web Browser: you can now surf the web in Workbench. We recognize a lot of Niagara AX developers have created their existing User Interfaces in Java. By adding a browser to Workbench, you can transition away from Java for User Interfaces and use HTML5 instead.
-
JavaScript: use JavaScript, HTML and CSS to create your Web Applications. We've provided a suite of JavaScript libraries to make this as easy as possible. This includes BajaScript, bajaux and much more.
-
Web Server: we've switched our web server to use Jetty. We've improved our Java Servlet support along the way.
-
bajaui and Hx: due to the massive investment our customers have in Niagara AX User Interface technology, we still support both bajaui and Hx in Niagara 4.
Niagara 4 Open Web Technologies
Our new User Interface technology uses HTML5. This consists of HTML, JavaScript and CSS. For information on developing your own applications using this technology, please see the section on Building JavaScript Applications.
-
User Interfaces from AX to N4: an overview for Niagara AX developers transitioning to Niagara 4.
-
Serving HTML from the Station's File System: information and best practices on serving static web content directly from the Station's file system.
-
RequireJS: used to write Modular JavaScript code. In Java, packages are used to organize your code. In JavaScript, AMD (Asynchronous Module Definition) is the mechanism for defining modules of reusable JavaScript code. All new JavaScript code in Niagara 4 is modular and uses AMD.
-
BajaScript: a JavaScript library that's used to access Niagara data. It's important to note that BajaScript isn't a User Interface library. It's just for the data.
-
bajaux: used to write User Interface Widgets in JavaScript. Code once and use everywhere. A bajaux Widget will run in both Hx and Workbench. These tutorials cover a lot of ground and utilize BajaScript, lexicons, dashboards and dialogs to create HTML5 web applications.
-
webEditors: a library of widgets, editors, and frameworks built using bajaux.
-
managers: create views on component containers to easily organize and batch manipulate their contents with tables.
-
driver: contains managers for working with Points and Devices within driver networks.
-
lexicon: translate your HTML5 Widgets into different languages.
-
log: use JavaScript to log data in the browser and in the station.
-
dialogs: add dialog boxes to your HTML5 Widgets.
-
dashboards: allow the user to change and save the state of Px WebWidgets in real-time without the Px Editor.
Niagara AX - bajaui
- Gx
Provides an overview of gx graphic toolkit.
- Bajaui
Provides an overview of the widget component toolkit.
- Workbench
Overview of the workbench shell.
- Web
Overview of web APIs.
- Hx
Overview of Hx APIs.
- Px
Overview of Px technology.
Niagara AX - Hx
Niagara Theme Modules
Niagara Login Screen Customization
Niagara Session Expiry - Notes
Web Server
Niagara's web server can be extended in 3 different ways. In Niagara AX, you could extend via Servlet Views and Web Servlet Components.
In Niagara 4, you can also extend via standard Java Servlets.
In Niagara AX 3.7, we added support for Apache Velocity to Niagara. Velocity is a powerful Server Side Templating tool.
Niagara RPC
From Niagara 4.1 onwards, a developer can easily create Remote Procedure Calls that can be invoked from FOX, BOX (including BajaScript) and through a Web Servlet.
For more information please click here.
Horizontal Applications
- Control
Overview of the control and automation module.
- History
Overview to the historical database module.
- Alarm
Overview to the alarming module.
- Schedule
Overview of the scheduling module.
- Report
Overview of the reporting module.
- Hierarchy
Overview of the hierarchy module.
Queries (BQL, NEQL, Search)
Drivers
Architecture Diagrams
- Software Stack
Provides an illustration of the major software subsystems in Niagara.
- Communication
Illustrates Niagara's software processes and their protocols.
- Remote Programming
Provides an overview of programming with remote components over fox.
- Driver Hierarchy
Illustration of driver hierarchy.
- ProxyExt
Illustration of proxy point design.
- Driver Learn
Illustration of AbstractManager learn with discovery job.
Security
Index | Prev | Next
Copyright © 2000-2019 Tridium Inc. All rights reserved.