Root / Assembly / ARCCore / AREnumType / DocumentationOnlyEnum / ARComponents / _Member



ARAAPIThe corresponding template application for ARCAPI demonstrating its usage, providing an HTTP / HTTPS interface with the help of Microsoft.AspNetCore.Mvc.

Description, EnumMember, EnumType
ARAClientA template application for a Client (linking to ARCCore).

Contains some sample code for you to use as building blocks for your own Client application.

Description, EnumMember, EnumType, LongDescription
ARADBAn application constituting the full functionality of a CoreDB (linking to ARCCore).
TODO: Add reading of instructions from command-line (for outgoing connections).
TODO: This will enable use of this program also as ArmDB.

The standard version of ARADB may also fully constitute the functionality of ArmDB, or even a Client but usually you will add some ApplicationSpecificCode to them, especially Client.
(when adding functionality, clone the repository for ARADB and expand from there.

Description, EnumMember, EnumType, LongDescription
ARCAPIA library providing an API on top of the PropertyStream.

The API can for instance be offered over HTTP / HTTPS with the help of Microsoft.AspNetCore.Mvc (see ARAAPI).

The API provided supports both
1) GraphQL (GQController) and
2) REST (RQController).

In addition to JSON format the API also provides a rudimentary HTML / Javascript based interface for direct user interaction (nominally for administrative users / power users).

The HTML views are created automatically based on TaggingOfPropertyKeys, including Javascript forms for creating new properties.

The HTML interface automatically constructs views also for GraphQL queries, meaning that rich functionality can be programmed from 'outside' the API in line with the GraphQL philosophy.

This HTML interface is quite sufficient as an internal administrative tool / support department tool for your application.

Depends on ARCDoc, ARCQuery and ARCSec.

See also BaseController and AddController.

Description, EnumMember, EnumType
ARCCoreA necessary library (.DLL in Windows terms) that every ARNodeType should link to.

Contains the basic structure of AgoRapide, like BasePKAttribute, IP and StreamProcessor.

Note that if your only need is to SEND single PropertyStreamLines to a CoreDB then there is actually little purpose in linking to ARCCore.
You just open a standard TCP/IP connection and send the lines straight away. See ARCDoc for an example of this.
(This is actually quite a unique capability of AgoRapide as a data storage system, that no client libraries are needed.).
(Remember though that minimal encoding will be needed, like encoding line endings into 0x000D0x000A, see especially EncodeValuePartStringToPropertyStreamFormat.)

Description, EnumMember, EnumType
ARCDocA library supporting documentation and demonstrating usage of AgoRapide.

Offers the following functionality:

1) Generation of documentation by extracting BaseAttribute tags (like this one) for the different parts of your application. Compiling everything together in a coherent HTML presentation with links between the different topics.

2) Demonstration of practical use of AgoRapide, through small easy to follow examples, like:
a) 'Normal' AgoRapide classes and their usage.
b) Demonstrate BoilerplateCodeProperties.
c) Demonstrate BoilerplateCodePropertiesAndStorage.

TODO: Extract the actual code examples from ARCDoc into this documentation text.

Description, EnumMember, EnumType
ARCQueryA library with support for fluent query expression and entity-relations.

Enables fluent queries like for instance
'Order/WHERE Amount > 1000 EUR/REL Customer/SKIP 100/TAKE 50/SELECT FirstName, LastName' or
'OrderLine/PIVOT Created.YearMonth() BY Product SUM Amount'

Supports queries and linking between entities. Understands what properties like 'Order/43/CustomerId = 42' mean.

Enables automatic suggestions in ARCAPI for adding of related entities / navigating to related entities.

See also QueryExpression,
CompoundKey (like ForeignKey, EntityMethodKey and NewKey),
QuantileKey and

Note also how extension method TryGetP (ARCQuery.Extensions.TryGetP) understands, through use of reflection, read-only properties of your entity classes.

Description, EnumMember, EnumType
ARCSec(Not implemented as of March 2020)

A library providing security like secure communications (SSL), secure authentication and authorization (access rights), logging of access and similar.

Will probably contain a BasePKAttribute sub-class called -PKSecAttribute-.

Description, EnumMember, EnumType
ARCSync(Not implemented as of March 2020)

A library providing a basic framework for synchronizing with other data sources (data sources outside of AgoRapide).

Background: One important use of AgoRapide is envisaged to be analyzing of existing databases (with the help of for instance ARCQuery). In order to do the analysis the data has to be converted into the format of AgoRapide (PropertyStream and continously kept synchronized in an efficient manner.

ARCSync is also what you use when you do not want AgoRapide to be your main database.
As long as your main database uses the 'key-value' principle and you can query data from it in chronological order, it is usually quite easy to keep AgoRapide synchronized to it.

Some database especially well suited in this regard are:
- Amazon AWS DynamoDB
- Azure Cosmos DB
AgoRapide integrates quite naturally with these.
Note that using AgoRapide against these databases also reduces egress costs since downstream caching is inbuilt in AgoRapide.
In a typical situation you can have one AgoRapide node subscribing to the key-value stream, with all other nodes connecting to that one.
When the occasional need for an AdHocQuery arises that would be O(n) in AgoRapide you can instead query directly against the main database (which would more probably have a performance of O(1)).
If that query turns out to be permanently needed, then you set up a Subscription for it against CoreDB in order to cache it locally, eliminating the egress cost and ensuring an even speedier response.

ARCSync is not to be confused with the concept of how different AgoRapide based nodes synchronize between themselves (see Subscription. That functionality is built into ARCCore.

Description, EnumMember, EnumType

9 items

Generated 2020-10-13 11:11:01.013 UTC