Skip to content

Implemented features #26

@fis-cz

Description

@fis-cz
  • Basic features

    • Developed in Visual Studio 2015
    • Currently using TypeScript 2.2.1
    • Extenal (3rd party) JavaScript library support
      • Currently only "manual" dependency resolving and library initialization
        • libinit function started automatically when library pack loads
          • initialize libraries
          • apply polyfills
        • Webpack can be used to build 3rd party .js libs
      • External libraries used:
        • es6-promise
        • source-map
  • Index.html

    • Offline support
    • Load phase exception handling
      • Customizable error handling
    • Progress bar, welcome page, error page
    • Only 2 (4 with external libraries) js files need to be included
      • ajs.js
      • ajs.lib.js
      • [app].js
      • [app].lib.js
        • application library can be also loaded later using resource manager
    • Standard HTML5 features
      • Responsive UI support (meta tags)
      • Favicon for various browsers / operating system support
  • Boot process control

    • Offline support (currently with application cache browser feature)
      • Automatic reload when App Cache changes
    • Boot phase exception handling
      • Customizable error handling
    • Framework configuration
    • DI containter configuration for core Ajs services
    • Application startup control
  • Application

    • Applicaton level unhandled exception handling
      • Customizable error handling
    • Initial resource and template loading
    • Configuration support
      • Support for configuration of Ajs and Application services
    • "beforeunload" support
  • Dependancy injection container

    • Configurable automatic DI container / resolver
    • Support for Singleton, scoped and transient services
    • Auto-resolving of the complete graph of services
  • Resource management

    • Based on Async-Promise code
    • Key/Value storage (based on local/session/indexedDB storages)
    • Support for both textual and binary data
    • Automatic resource cache management
      • Three caching storages supported - Local / Session / Memory
    • Configurable size of the cache
    • Caching policies supported - None, Permanent or Last Recently Used
    • Loading preference support - Cache or server
    • Support for "loading" progress progress bar
    • Automatic script evaluation on load
  • Navigation

    • Browser navigation event management (popstate / hashchange)
    • Navigation to the same origin or remote origin resources
    • Redirection Support (currently simple without RegExps)
  • Routing

    • Configurable routing based on RegExps to route request to appropriate model view
  • Event Notifier

    • Notifier based on Subscribe / Unsubcribe functionality
  • Document manager

    • Support for render target
      • output can be rendered to any HTML DOM Document and any Element tag)
    • DOM Updater based on React.js idea with the full Ajs component support
      • Only changed elements / attributes / text nodes are updated for the maximum performance
    • Support for document style management
    • Currently, support for loading of stylesheets from templates
  • MVVM

    • View

      • Full support of templating features
      • Automatic DOM updating based on View Component state changes usind the DOM Manager
    • View Component (view model)

      • Full support of templating features
      • Automated & queued state management
        • State filtering prior the state is applied to the View Component
      • Automated, CPU friendly tree rendering based on the state changes
      • Support for dynmic View Component creation from the Application code
      • Visual state transition support
    • Model

      • Currently under review
  • Templating

    • new terminology is used to support the innovative approach to templating:
      • Visual Style (CSS),
      • Visual Component (HTML template),
      • View Component (Model View / Code behind)
      • View (TS Class is managing the view)
    • support for Visual Style related resources managed by the resource manager
    • Dynamic Visual Style state representation of the Visual Component is determined by the CSS rules and TAG attributes only
    • its not necessary to manipulate tag class or style attribute from the code, just to set the visual state properties correctly and map them to the tag visual style state attributes
    • Support for separate Visual Styles for various templates as
      • style tag directly in the template
      • stylesheets attribute within the template tag
    • Logic-less templates (almost) - only the one logic performing statement is IF
    • Minimum of additional tags or attributes to be learned
    • DOM Event mapping to View Component DOM listeners
    • Reusable view components
    • Automated mapping of the data based on the data structure and View Component structure
  • Basic UI

    • Loading progress bar support
    • Custom error screen (for unhandled errors) support
    • Render target wrapper (show, hide)
  • Debugging tools

    • Modular debugging console based on TSX templates
      • Limited reactive TSX renderer just to support debugging modules UI without DOM update support
      • Together with the browser javascript console gives developed great overview about whole system
    • Available console modules:
      • Logger with log browser
        • Configurable logger
        • Breakpoint support (breaks on n-th occurence of given log record type)
        • Log records time difference measuring
  • Development Tools and Utilities

    • utf8.bom to utf file converter (PowerShell)
    • cache.manifest post-build generator (PowerShell, reworking to Node.js script - see bellow)
    • Visual Studio 2015 Support
      • Solution, Project and Item templates available
      • Debugging inside VS possible, but it is recommended to use a browser debugging tool
    • AjsWebApp project for final application build (completes the application from multiple projects)
      • Node.js command line tools integrated with VS for best developer experience
    • AtsDoc documentation generator for AjsDoc
    • AjsDoc - the documentation browser
  • Code examples

    • HelloWorld
    • SimpleApp
    • AjsHTMLControls
    • Exceptions
    • ToDos
    • ToDosOffline
    • Language & Translation

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions