IONDV. Framework: A Node.js Framework for ERP Apps
See a new and exciting Node.js framework!
Join the DZone community and get the full member experience.
Join For FreeHello World! We're finally ready to meet the international community and get to know each other better. Let's talk about who are we and what we're doing. We worked long and hard to share our experience and technologies with you today.
We are a team of IT specialists with experience in developing and implementing the most substantial information systems in the field of state and municipal AIS, leading the entire development cycle in the Russian Far East. Yes, you heard it right, the Far East of Russia, this is where the winter lasts half a year. (We're about 10k km from Moscow).
Sooo it's not so easy to build on the IT community when a bear plays the balalaika nearby and borrows your valenki ;).
The well-established technological context in the enterprise app-development market dictates its own rules for dev app: reliable and proven software architecture, closed source. This results in higher complexity of version release, high restrictions on modernization, and limited UI customization.
Is it possible to reduce the cost and speed up the creation process of ERP apps while maintaining the flexibility of modernization? Believe us, it is possible.
Structure
So, what is IONDV. Framework and how is it different from other frameworks already well-represented out in the world? In a nutshell, it is an open source framework made to create high-level web applications based on metadata, which does not require high programming skills.
The framework's basis is an independent data model, core APIs, functional modules, and view templates. We use MongoDB to store application settings, metadata, and the data itself. The framework runs in the Node.js environment.
The combination of IONDV. Studio, IONDV. Framework, and IONDV. Apps (application builder from the repository) is a rapid prototyping system. You can develop a web app to test business logic and data structures, security, and REST APIs. Also, there is a SOAP to work out integration.
Let's talk about the functional features of the Core and the Registry module, the main module of the framework.
Core:
Authorization and Security.
Presentation of data in a DBMS.
File storage.
Data calculations.
Registry:
Universal presentation of data in forms.
Basic data actions: create, delete, and edit.
Search and navigation.
Printing forms.
There are international RAD platforms, such as Apache Isis, which allows you to create an application with a ready-made interface, but in our opinion is slightly customized, but a possible solution. OpenXava is quite close to it. Paladin is a Microsoft framework, and Oracle is a popular solution by ADF.
What are our technological characteristics? We, like many frameworks, support declarative programming. Our concept is a description of business logic models. Initially, the algorithms are delivered as ready-made components, and we use the Node.js technology stack, which is a definite advantage.
Here, we have gathered the key market players in our niche. Most of them are written in Java. In Java, multithreading is implemented; this leads to the fact that to support a large number of connections, we begin to increase resources, memory, and computational capabilities.
It turns into very heavy-weight decisions, based on our experience, which is very difficult to scale. Another type is Django and Rails. Although this is a different development language, they have the same multithreading concept. We assume that the asynchrony model implemented in JS is a significant advantage for developing web applications.
Architectural Features
Our framework allows you not to deal with input-output, conversion, exchange, data display, security, database abstraction, caches, and clustering. It's all ready out-of-the-box. At the same time, we were able to create some patterns that allow us to conduct development quite efficiently.
It includes runtime domain model — configuration, human-readable files, subject-oriented design of data models, MVC, modernization up to the replacement of core components, functional modules. At the same time, we are dealing with principles, such as SOLID, DI hierarchy. Dependencies form the core, the division of logic into layers of abstraction (reduction of antipatterns), a combination of declarative programming, and metadata configuration.
There are still many things I'm eager to talk about, but hopefully, this is enough to give IONDV a try. And in case something does not work or seems controversial to you, don't hesitate to ask for help in our social networks or GitHub.
You can view the official website here.
Further Reading
Opinions expressed by DZone contributors are their own.
Comments