| Introduction | Features | History | Comparison | Java Conformance | Library | ACDK DMI | Framework | Method | Standard |
ACDK is a rich toolset to create plattform independ applications.
Here a brief listing of all features the framework.
This page will be included by acdk_about_features and acdk_hb_onepage
ACDK is a set of class libraries with currently about 56 MB source code
in 3,000 files with about 1,500,000 lines of codes and 5,000 classes.
- Core Features
- Java like language constructs in C++
- Garbage Collection for Objects
- Java like object modell with classes and interfaces
- Source code is pure C++
- Provided for many major plattforms:
- Windows 2000, Windows XP, Windows 2003
- Linux
- FreeBSD
- Solaris
- Java like core library
- Standard Java Features
- Unicode support with several character encodings
- Threads
- Objects with wait and notify/notifyAll
- Synchronization of methods or blocks
- Exceptions with Backtrace
- Java like arrays from classes and basic atomic types (like int)
- Locale support.
- Enhancement relative to Java
- Object variables as stack variables with better performance
- Extensionable string encoding framework in acdk::locale.
- Function argument attributes IN, OUT, INOUT, BYVAL, BYVALIN, BYVALOUT, BYVALINOUT
- Enhanced Allocator concept and customizable Garbage Collection.
- Connectable Information to every language definition part (classes, methods, parameter, and so on)
as Attributes.
- Many string Convience methods integrated in the acdk::lang::String.
- Reflection
- Runtime Information about:
- class name, namespace, base classes and public/private
- Member, static, public/protected/private, Type of member, name of member
- Constructor with arguments (see methods)
- Methods, static, public/protected/private, with type of of return value,
type and name of argument, throw specifications.
- Attributes similar to to C# Attributes and Java Annotations.
- Load classes and library by name
- Dynamic Method Invocation Interface (DMI).
- create objects by class name
- Read/Write normal and static member variables identified by name
- Invoke normal and static methods, identified by name.
- Serialization and Persistenz
- Further library based features
- Enhanced IO library byte and char based
- All IO-Classes implements Reader/Writer CharReader/CharWriter interfaces
- all IO-Classes implements FilterReader/FilterWriter or
Storage interface
- Free combination and chaining of Readers/Writers
- Enhanced File interface
- Interface to different file systems.
- Normal OS file system
- Ressource file system embedded in an executable or library
- ZIP file system for ZIP archives
- TAR file system for TAR archives
- FTP file system for remote internet file access
- HTTP(S) url file system.
- Networking
- TCP client/server Sockets
- UDP client/server Sockets
- SSL Sockets
- HTTP URLs
- HTTPS URLs
- Regular Pattern matching.
- Regular Pattern matching
- XML Handling
- Parsing using SAX(2) Interfaces
- Parsing to DOM
- Validating XML files
- Selecting XML using XPath
- Building in memory DOM trees
- Serialize/Deserialize ACDK Objects to/from XML
- dom4j like extentions for the standard dom modell.
- JDBC like Database connectivity
- Configuration - Tests - Debugging
- Plattform neutral make files, generating
Makefiles for gmake, bsd make, nmake,
Microsoft Visual Studio (.dsw/.dsp).
- Regression tests through a unit test concept.
- Documentation system following JavaDoc convention
- Online Reference and HTML-Help.
- Integrated Tracing and Logging with log4j like framework.
- Online Debugger (Alpha)
- view Dump of all ACDK objects in a hierarchical view
grouped in static global data and working sets of
the threads.
- Modify value while system is running.
- Trace monitor.
- Object Tracer
- Garbage Collector Monitor
- Object Profiler
- Telnet Lisp/CfgScript console to
- inspect data
- modify data
- calling Objects methods
- Integration of Scripting
- All ACDK object can be invoked with scripting languages without
any further stub or interface code using ACDK DMI facility.
- Embedding a full featured script interpreter into ACDK:
- with CfgScript
- Lisp
- Perl
- Java
- Tcl
- Python
- JavaScript
- VBScript
-
- Platform independed GUI programming
- Create rich GUIs for Windows and Unix
- Using ACDK WX to create GUI application in ACDK C++ or CfgScript.
- Integration of Distributed Computing
- CORBA
- Most classes and interfaces can be used as CORBA server object implementation
without any further programming or code generation.
- Embedded Generation of Skeleton and Stub for native simple and powerfull
ACDK language mapping (similar to Java language mapping).
- DII, DSI and IR support for any ACDK class.
- Most CORBA objects can be used in ACDK, without further Skeleton or Stub
- Enhanced CORBA Object communication for ACDK object supporting
function overloading using IIOP.
- COM
- All classes and interfaces can be used as COM/ActiveX component implementation
without any further programming or code generation.
- All ActiveX components can be easely used in ACDK without
any further programming or code generation using a simple and powerfull
language mapping.
- An VBScript or JavaScript-Interpreter can be embedded in your application.
- Planned: Full access to ActiveX components from Linux, Solaris, MacOS X and FreeBSD
without any further programming or code generation.
- Planned: Full access to Server components running Linux, Solaris, MacOS X and FreeBSD
through DCOM from Windows
- Transparent, buildin Remote Method Calls via ACDK RDMI.
- .NET / C-Sharp (Planned)
- Full access to .NET libraries without any programming or code generation.
- All ACDK classes can be called through any .NET language without any
programming or code generation.
- Planned: Integration of .NET application (server or client) on Linux, Solaris,
MacOS X and FreeBSD.
- XML-RPC (Planned)
- Full-Featured remote invokation using XML and TCP/IP
- Enhanced SOAP (Planned)
- Standard SOAP HTTP-Server
- Static methods of ACDK classes can be called via SOAP
- Enhancements for Distributed Computing not addressed in SOAP
- Full interaction between the scripting languages and Distributed Computing technologies
- Steer CORBA objects through ActiveX clients
- Control DCOM application through CORBA clients
- using Perl to control ActiveX applications
- using Visual Basic to use CORBA server application
- Use Scripting to implement C++ Interfaces, derive from
C++ classes.
- Use Script classes to serve as COM/CORBA server objects.
- and many other combinations ....
|