********
Commands
********
Commands is Building block of BasisCore language and Present in :abbr:`XML (Extensible Markup Language)` notation format mixed with :abbr:`HTML (Hyper Text Markup Language)`.
All basisCore commands inherit from :doc:`command-base`.
For list of BasisCore built-in commands in :doc:`builtin-commands`
.. code-block:: html
:linenos:
:caption: Simple BasisCore print command
hello world!
Some BasisCore Command is void element like :doc:`management/cookie`, for Example:
.. code-block:: html
:caption: BasisCore cookie void command
:linenos:
.. tip::
For more information about :abbr:`XML (Extensible Markup Language)` see `wikipedia `_ and for learn it, visit `w3schools `_.
For more information about :abbr:`HTML (Hyper Text Markup Language)` syntax see `w3.org `_.
Remarks
=======
All command internally use :doc:`/host/context-object` for perform their processing.
For example some command like :doc:`source/dbsource` add data source to this object that server with other command.
Some command like :doc:`renderable/print` use this :class:`Context` object for retrieve needed data source for perform rendering process.
Other type of commands like :doc:`collection/group` or :doc:`management/export` change pipeline of generating result.
In BasisCore we have four kind of commands:
Renderable Commands
-------------------
Commands that generate html tags as output to generate result like :doc:`renderable/print`.
For more information see :doc:`renderable/renderable`.
Source Commands
---------------
Commands that fetch data from :abbr:`DBMS (Data Base Management System)` with data Providers like :doc:`source/dbsource`.
For more information see :doc:`source/source`.
Collection Commands
-------------------
Commands that present mechanism form manage collection of commands like :doc:`collection/group`.
For more information see :doc:`collection/collection`.
Management Commands
-------------------
Commands that present mechanism for manage process of generate response like :doc:`management/cookie`.
For more information see :doc:`management/management`.
Basic Concepts
==============
There are some concept and mechanism that you may be know when writing web page with BasisCode Commands:
[## Notation
------------
Syntax for inject data to text at run time.
For more information see :doc:`[-sharp-sharp-notation`.
Expression
----------
Logic for writing boolean expression for evaluated in runtime.
For more information see :doc:`expression`.
Data Binding
------------
Bind data source to command as input for process and generate result as output.
For more information see :doc:`data-binding`.
.. toctree::
:titlesonly:
:caption: Related Topics
:hidden:
expression
[-sharp-sharp-notation
data-binding
builtin-commands
command-base
renderable/renderable
source/source
collection/collection
management/management