webCOMAND

webCOMAND 4 Roadmap

4.0

  • User Interface Updates
    • Dashboard left side menu.  Similar to Windows 10 start button, but tied to each panel in the dashboard. When the dashboard is opened, the narrow left column under the dashboard button should display a list of icons to represent each dashboard panel (instead of "webCOMAND").  Click them to show (scroll into view and focus) the selected panel.  This will be particularly useful on mobile devices and narrow browser windows.
    • App menu - All built-in apps should display a button in the upper-left (immediately underneath the dashboard icon) that can be in three states (remembered across sessions):
      • Collapsed - Only the button is there, absolutely positioned in the upper-right corner of the app to minimize screen real-estate and provide consistent and easy access to the main app menu.
      • Sliver - A column below the app button will push the entire app UI to the right just a sliver to make room for icons that represent each menu option in the menu.  This should be the initial default for most apps/users.
      • Expanded - A full-width menu (typically 320px wide, but can be a "mega menu" that even uses the entire screen, similar to the dashboard, but for the app).  From here
  • Package Version Awareness - Package Installers and Class Loader will be updated to install packages older than the latest version to a folder with a version suffix, such as packages/com_webcomand_framework_1.0.0. The loader will need to be made aware of which package versions are valid in the context of the App that is running, so it can look in the appropriate package folder to load the correct version of a class or other file. With this in place, the developer basically code without worry about versions and the appropriate versions of all classes their package depends on will be loaded automatically.
  • Market - Create App that allows authorized users to discover, purchase (functioning ecommerce), download and install Products, which can contain apps, components, objects, etc.
  • cQuery Processor - Extend cPath to support method calls and related features including cQuery parameters, etc.
  • cScript 2.0 - True and more efficient OO programming language. Arrays, functions, methods, classes that save as content types, etc. Will also add cQuery support and extend ${} cScript notation to support cQuery.
  • Core Content Types extend Content - Update all core content types to extend Content, except content types used to implement version control features, such as Session and Content Log. Significant changes to the storage engine may be required to efficiently maintain past field data for older versions of a content type.
  • Methods - Content Type Templates become methods, and Actions extend methods with friendly titles, etc. for interface buttons.
  • SQL Schema Updates
    • OIDs - ContentReference table will switch from Type/ID pairs to OIDs, which will optimize lookup speed (fewer column matches) and reduce table and index sizes (faster writes). ParentFieldOID will support extending ContentTypeField.
    • ContentReference per Field - A duplicate ContentReference table may be broken out per field to improve query speeds when used. The same duplicate data will continue to be maintained in ContentReference as well, for appropriate "global" queries. Per field table will be used for queries to get all objects referenced by this specific field. The aggregate table will be used for queries to get all references, from any field, to or from an object.
    • Embedded References - Embedded references will be duplicated (for read speed) or completely moved into ContentReference table, which adds a join, but supports non-UNION queries to get embedded objects that may extend or mix content types for the field type (ie. extending ContentTypeField).
    • Extend Content Type and Field - The changes above will make it possible to extend ContentType and ContentTypeField content types.
    • (Data Type)Query - New Text Line data type that will store a cQL or cPath query to produce an input selection of object references. This will be used to update the Field.Location field type and replace the built-in "(Data Type)Location". The Field.Location will also be updated to use Choices that are based on a Publication List, which will produce the list previously provided by the built-in "(Data Type) Location": Embedded, References, back-references (now called attributes) and Publication Lists (replaced by "Other" option for choices, and the query moves from a Publication List to direct entry cQL, cPath or cScript that returns a collection of objects (now possible with COMAND Script 2).
    • MIME Conversion - MIME Type conversion content type methods to easily move and access content in repositories from file system (FTP, download and drag and drop in web interface, webDAV).
  • InnoDB The MySQL storage engine will update all tables to InnoDB to improve performance.
  • cQL Namespaces - May also add cPath and cQuery equivalents.
  • cQuery - A new query language will be introduced to extend cPath to handle method calls and resolve to data type values.
  • Repository Object Transfer - New API / Server level services and features:
    • Sync - Object and folder sync across repositories in a controlled private or loose knit public cluster, based on repository/folder rules.
    • Replication - Object high availability, by automatic mirroring to designated mirror repos.
  • Interface Updates:
    • Integrate Views - Interface views are migrated to COMAND Script 2 and moved into repo, so they do not need to be installed at server/file level, and can be synced like any repo object.
    • Actions - Content Type methods can be exposed as buttons in action bar.
    • Website Manager - Website Manager App, web page view that allows editing single web page in Content Manager view, as if in Website Manager.
  • Content Type Library - New library of common content types and related custom views.

4.5

  • Website Manager - Website Manager WYSIWYG web page editor, and related content manager views.