Root / Assembly / ARCDoc / Class

PRich

Class

KeyValue
_DescriptionAll classes with some AgoRapide specific attributes found in assembly ARCDoc.
AppleThe Apple class is implemented as a 'standard' AgoRapide entity-class.

It is somewhat memory-hungry due to inheriting PRich but very easy to implement.

Note that apart from the convenience method Name (which is not necessary), the Apple class itself is totally empty.

All the descriptions of this class (except this text) are found in AppleP something which is consistent with the principle of TaggingOfPropertyKeys.

_Member, AssemblyName, BaseTypes, BoilerplateCodeProperties, ClassType, CorrespondingEnumType, Description, Interfaces, LongDescription
BananaThe Banana class is implemented as an example of how you can use traditional property storage instead of the somewhat memory-hungry approach of inheriting PRich which uses a Dictionary<PK,IP> storage (like for instance as found in the Apple class).

The Banana class is memory efficient (in the sense that any 'traditional' C# object is memory efficient).

Note how this class is also much more complicated to implement than the Apple class.
But do also note that you do not have to write this code yourself, because you can rely on BoilerplateCodePropertiesAndStorage to give you autogenerated code to turn your class into a traditional storage class.

NOTE: Instead of Banana you would probably prefer to use the PExact<EnumType> NOTE: if memory usage is your main concern.
NOTE: It is almost as effective regarding memory consumption and much easier to use (see Orange for an example).

Note how all the flexibility of PropertyAccess is conserved, including what happens if values are not set (TryGetP etc).

See BoilerplateCodePropertiesAndStorage for more details.

See also MemoryConsumption / PropertyAccess.

_Member, AssemblyName, BoilerplateCodeProperties, ClassType, CorrespondingEnumType, Description, Interfaces, LongDescription
DemonstratorDemonstrates various concepts from ARCCore.

_Member, AssemblyName, ClassType, Description
DocumentatorGeneral class for documenting AgoRapide and also your own ApplicationSpecificCode.

See also DocumentatorP.

Note that you are not required to generate documentation / use this library (ARCDoc), your application works quite fine without it.

Typical methods involved for generating rudimentary HTML documentation are:
BuildDocumentationHierarchy,
ToHTMLSimpleAsStaticFiles,
InsertLinks,
WriteAllHTMLFilesToDisk.

Note that the AgoRapide library ARCAPI offers much richer functionality for generating HTML views (and also JSON views) than the somewhat rudimentary process outlined above (especially because it offers search and filtering functionality).

HINT: If you want to test concepts like PropertyStream and CoreDB then this class is a good generator of properties for the stream. Just call ToPropertyStream on this class after calling BuildDocumentationHierarchy and you will have a sizeable chunk of property stream lines available for testing.

_Member, AssemblyName, BaseTypes, BoilerplateCodeProperties, ClassType, CorrespondingEnumType, Description, Interfaces
Documentator+PotentialHTMLLinksResult of calling FindPotentialHTMLLinks.

Building block for providing LinkInsertionInDocumentation.

_Member, AssemblyName, ClassType, Description
DummyEnumFully flexible storage. Can store anything. Typical inherited for entity representations like 'Customer' or 'Order'.

PRich = rich property. Rich in the sense that it can store a wide amount of information.

Can also function as a 'root' storage for all data.

Inherently not thread-safe due to using Dictionary and not ConcurrentDictionary as storage.
See tips about locking in documentation for OutsideLocalReceiver and some practical code in ARCDoc

See PConcurrent for a (somewhat more) thread-safe alternative.
See PExact<EnumType> for a more memory efficient alternative.

A more expensive (memory-wise) 'property'-object to use compared to PValue<T>.

Probably suitable when you want full flexibility about which metadata to store (see PP) and / or want to store child properties.
Most probably the one to use for 'ordinary' entities like 'Customer', 'Product' and so on, whereas PValue<T> is often used for single values for these instances (like 'FirstName', 'Price' and so on).

An instance of this class can also be used as the single total in-memory data storage in your application.
A typical representation would then consist of dictionaries inside dictionaries, with IK-keys and either PRich-values or specific IP-subclass instances (like 'Customer') values inside those again.
Such a usage would be very typical for a Client but also possible for ArmDB (enabling it to answer AdHocQuery over an TCP/IP connection.
With such a usage the instance of this class would typically populated by calling -ParseAndStore-.



_Member, AssemblyName, BaseTypes, BoilerplateCodeProperties, ClassType, CorrespondingEnumType, Description, Interfaces, LongDescription
ExtensionsContains various extension methods for IP and IKIP related to documentating / reporting / HTML.

See for instance ToHTMLSimpleAsStaticFiles which transforms any IP object into an HTML representation.

_Member, AssemblyName, ClassType, Description
HTMLFileWithLocationContainer class describing a single HTML file with its location (in a hierarchial folder structure).

See HTMLLinkWordWithLocation for information about how references to instances of this class is expected to turn up as references in other instances of this class.

This class is immutable

_Member, AssemblyName, ClassType, Description
HTMLLinkWordWithLocationDescribes to where a single HTML link points.

By link we mean a link according to LinkInsertionInDocumentation, that is words in an HTML-document like -MyCustomerClass-.

By HTML we mean that LinkWordHTML is encoded in HTML, so for instance a link to a generic class like -MyCustomerClass<T>- actually looks like -MyCustomerClass&lt;T&gt;-.

Used as input to InsertLinksSingleFile (telling it what to look for, and how to replace the text with a corresponding '<a href = ...' tag)

Note how there is almost a one-to-one match between HTMLFileWithLocation and HTMLLinkWordWithLocation with the latter pointing to a corresponding instance of the former. It is only when we have duplicate filenames that HTMLLinkWordWithLocation will instead point to a dedicated '_TargetResolution' page for that filename.

This class is immutable

_Member, AssemblyName, ClassType, Description
OrangeDemonstrates use of PExact<EnumType>.


_Member, AssemblyName, BaseTypes, BoilerplateCodeProperties, ClassType, CorrespondingEnumType, Description, Interfaces, LongDescription
PKDocAttributeDescribes documentation and presentation of a property.
See also PKDocAttributeP.

_Member, AssemblyName, BaseTypes, BoilerplateCodeProperties, ClassType, CorrespondingEnumType, Description, Interfaces
SomeApplicationComponentDemonstrates how also your actual application classes, not only your data classes, should implement IP.
The goal is ExposingApplicationState.

_Member, AssemblyName, BaseTypes, BoilerplateCodeProperties, ClassType, CorrespondingEnumType, Description, Interfaces

13 items


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