XAllegro C++ Web Application Framework
Designed to get easier developing of web apps using the most advanced patterns:
- 100% object-oriented coding: increased understanding, maintenance and evolution of the code.
- MVC model-view-controlled implementation: split page output / code algorithm.
- Modular, scalar, extensible design, making each component independent.
- HTML5-CSS3 compliance: the view module (XSLT) implements HTML5, making form generation and validation easier.
- Control: web pages accessible from both CGI interface and Web Services.
- Security: automatic security checks performed on libraries’ calling.
- C++ standard: our framework is based on C++11 aka C++0x and is fully portable over different operating systems.
- OS-Platform: Windows, Linux, Mac OS X, Raspberry
- Memory management with SmartPointer
- Configration: One Configuration File
Built-in operation’s library with no-coding security checks:
- HTTP requests: providing API to read parameters from GET or POST HTTP requests performing internal security checks.
- Database abstraction layer: joining communications between code and databases provides a single API to execute and manage different operations, giving independence to the code from the database engine.
- Database qeury: collections support for Result Set (via std:map).
- Super Globals Variables: REQUEST, RESPONSE and Web Services.
- Databse Partitioning: multiples database configuration (Session and authentication, Read, Write).
- XML manipulation: ready-to-go methods to manipulate XML objects performing various operations as converting strings and/or files to DOM, counting nodes, evaluating XPath expressions etc.
- XSLT parsing: platform-independent methods to parse XML strings, files or documents, setting XSL values which results into HTML text.
- Client-server side encryption to protect HTTP communication from the client to the server, including SHA, AES, DES via OpenSSL.
- Session Management: the framework comes with methods to manage single-sign-on sessions and cookies between Apps sharing the same framework.
- Detailed and flexible Authentication-Permissions-ACL: unlimited users, GUI to set role-based permissions and ACL.
- Translations: unlimited languages and GUI-guided translation, so to ease internationalisation and localisation.
- Dropdown-boxes management: fully GUI-manageable option list in dropdown boxes stored in a single database table.
- Logging: built-in methods defining different logging levels.
- Outbound calls with Curl and sockets: handling of Curl calls to external websites managing responses or TCP/IP sockets with external servers.
- Mail: ready-to-use methods to send emails.
- Error and info page: automatic methods to generate error and info messages.
- Character encoding: multiple UTF-8 characters dealing with XML entities and special characters, simplifying conversion to or from URL or Base64, etc.
- Time Functions: ready-to-use methods to manipulate dates
- Currency Management
- Casting: Ready to use casting method
- Xml Web Services: ready to go Controller and Interfaces to publish Xml Web Services
Raspberry PI:
- GPIOs : ready-to-use methods to control GPIO
- UART : ready-to-use methods for UART
Ease of learning, featuring:
- Design patterns: that means the framework is quick, easy to learn and ready to use.
- Detailed knowledge of the system not required.
- Selective learning: thanks to modular design and model-view-controlled patterns, programmers would need to learn only selected functions relative to their project goal, scope and role.