Welcome to the iPlus-Framework repository! This open-source project is designed to empower developers to create flexible, scalable, and efficient software solutions for the industry.
- Introduction
- Features
- What you can create with it
- Technology
- Getting Started
- Contributing
- License
- Contact
The iPlus Framework is a hybrid solution that combines classical programming with a low-code platform, addressing the needs of developers and integrators who aim to create updateable, individualized software solutions. Our mission is to provide an alternative to proprietary systems, offering a platform that empowers users to maintain control and independence throughout the entire software lifecycle.
In today's fast-paced technological landscape, businesses often find themselves dependent on large corporations for software solutions, leading to a loss of autonomy. The iPlus Framework counters this trend by offering an open-source software platform that encourages decentralized collaboration and innovation. By licensing our software under the GPL, we ensure that any solutions built with our framework remain open and accessible, fostering a community-driven approach to software development.
The iPlus Framework is designed to meet the complex requirements of modern software development, particularly in industrial environments. Key features include:
- Hybrid Programming Model: Combines traditional coding with low-code capabilities, allowing for maximum development freedom while maintaining a consistent programming paradigm.
- Component-Based Architecture: Enables easy extension and customization of the framework to meet specific industry needs, supporting both transaction-based and real-time, time-critical solutions.
- Declarative Programming: Focuses on minimizing maintenance and increasing compatibility, ensuring that software changes and extensions can be carried out during runtime.
- Seamless Integration: Bridges the gap between ERP and field levels (IT/OT). Bridges the gap between database oriented programming, network programming and unified UI programming.
- Simulation and Real-Time intervention: Allows for the mapping and simulation of processes and object states. Advanced system diagnostics during runtime and changing object states via network.
- Features: Compositum pattern, network transparent programming, Remote-Properties, synchronous- and asynchronous RMI over network, Object-Persistance, Messages/Alarms, Entity framework, Virtual inheritance, UI-designer, scripting, packaging, multithreading, workflow-engine, report engine, software package management, customization...more on our website
- SCADA: Out of the box. With builtin PLC-Connections, OPC-UA-Client and OPC-UA-Server
- DCS, MES: Distributed Control Systems, Manufacturing Execution System. Use the iPlus-MES repository for a out of the box usage in combination with iplus-MES-Mobile.
- Custom industrial applications: Any applications/components can be developed and provided as packages that are managed by the runtime.
- HMI or OEM Software: Standalone installations. Software for single board computers with linux based operating systems (armbian, raspbian).
- ERP: On Premise ERP-Software
- Mobile: Mobile Solutions.
- ...
- Build on .NET Platform: .NET Core, Entity Framework, WCF, WPF
- Serverside without UI: Windows, Linux
- Clientside with UI: Windows. On Linux/Android currently with WINE, but in the future with Avalonia XPF (see library exception in our GPL-v3 license) also on Linux, Android, macOS, iOS and Web-Browser.
To get started with the iPlus Framework, follow these steps:
-
Clone the Repository:
git clone https://github.com/iplus-framework/iPlus.git -
Install a Microsoft SQL-Server Edition:
https://learn.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server?view=sql-server-ver16 -
Restore a iplus-database file
Restore the SQL Server backup file located in the "Database" folder. -
Open project in Microsoft Visual Studio:
- Modify the ConnectionStrings.config file: Follow the instructions on gipSoft's documentation site
- Compile the solution an set gip.iplus.client.exe as start project.
- Execute gip.iplus.client.exe
- Login with user "superuser" and password "superuser" to start as a client. Login with user "00" and password "00" to start as a service. After starting the service, your local IP is remembered and you can start a second instance an logon as client to establish the Client-Server-Connection. If you have problems, that the Client doesn't connect with the server read the network configuration section. For running on Linux read here.
- Important: Every time you pull a newer version from GitHub, you should hold down the CTRL key while clicking on the login button in the login window so that your local databases are updated. Otherwise, the application will not be able to start.
- 🤗 Have fun trying it out and watch our videos to get started. However, we recommend online training.
We welcome contributions from the community!
Are you passionate about open-source development and eager to make a real impact in the world of industrial software? The gipSoft is looking for talented developers like you to help us push the boundaries of innovation and autonomy in software solutions.
By contributing to the iPlus-framework, you'll be part of a dynamic community dedicated to creating flexible, scalable, and efficient software that empowers businesses to thrive in the era of Industry 4.0. Your expertise and creativity will directly influence the evolution of our platform, helping to solve complex technical challenges and drive the future of manufacturing technology.
Why Contribute?
Make an Impact: Your contributions will help shape a powerful tool that supports businesses worldwide in achieving greater autonomy and efficiency. Collaborate and Innovate: Work alongside a passionate community of developers and industry experts, sharing knowledge and driving innovation.
Revenue Sharing: As a token of our appreciation, contributors will receive a share of the revenue generated from the commercial edition of the iPlus framework, recognizing your valuable input and dedication. Join us on GitHub and be part of a project that values collaboration, innovation, and shared success. Together, we can build a more sustainable and independent future for industrial software.
Contribute today and let's create something amazing together! More about our rewarding model.
The following features and bugs, from Microsoft's repositories, prevent the efficient and productive use of iplus-framework:
-
Ability to refresh a context from the database dotnet/efcore#16491
This point is problematic if you are working with long-term database contexts and already loaded entity objects and relationships to other objects have to be reloaded from the database. An example would be if you change a workflow on the client side that was already in use on the server side and it has to be reloaded. -
DetectChanges slow in long term contexts dotnet/efcore#31819
This point is problematic when you work with long-term database contexts and larger amounts of data, because the system then becomes slow. -
Reverting changes dotnet/efcore#14594
-
Obsolete constructor public StackTrace(Thread targetThread, bool needFileInfo) dotnet/runtime#80555
This point is more of an important "nice to have". Pausing threads, analyzing the stack trace and then letting them continue running is used to analyze deadlocks in multi-threaded applications and to be able to perform good system diagnostics so that you can identify which program parts and objects are responsible for higher system loads. -
Improved INotifyCollectionChanged Handling dotnet/wpf#52
We have a workaround, but it should still be resolved by MS. -
DataContractSerializerOperationBehavior: Create a serializer with Resolver CoreWCF/CoreWCF#512
We have a workaround, but it should still be resolved by MS.
IMPORTANT: Please GIVE these issues a THUMBS-UP 👍 so that they can be prioritized and Microsoft developers can finally start implementing them. If you want to use iplus-framework as a pure SCADA system, then the issues mentioned above are no obstacle to productive use and you can use it. If you develop your own database-based products where long-term contexts are required, then you have to wait for the fix from the EF team or you can use our previous version 4 of iplus-framework, which works with Entity Framework 4. The program code that you develop is compatible with this V5 version and you can then later convert your libraries to dotNET 8 with little adaptation work.
For now, please use the documentation on our website.
We are working on transferring the content to the iPlus.docs on gitHub and ask for your patience.
The iPlus-framework is licensed under the GPL-V3 License. See the LICENSE file for more details.
The commercial edition is intended for end customers for commercial use. See this LICENSE file for more details.
For questions, suggestions, or feedback, please contact us directly at.
We look forward to your contributions and hope you enjoy working with the iPlus-framework!