Skip to content

Description of Application Layers

Presentation Layer

  • Key Assets
  • Site.aspx, Site.aspx.cs, Site.html – main site host pages.
  • Login.html – login entry point.
  • Views/ and pages/ – page templates and shared layouts.
  • touch-settings.json – controls UI branding, app name ("ConproSoft" for TouchUI), start pages, and user experience settings.

  • Responsibilities

  • Render user interfaces for desktop and mobile browsers.
  • Integrate JavaScript, CSS, and themes for responsive UI.
  • Delegate all data operations to the metadata-driven framework controllers and services.

Application Layer

  • Controller Metadata (/app/controllers)
  • Each controller XML file defines:

    • Fields and data bindings
    • Views (grid, form, etc.)
    • Actions and action groups (including email, export, custom actions)
    • Filters, sorting, and business rule hooks
  • Business Rules (/app/App_Code/custom/Rules)

  • SharedBusinessRules.cs – shared behaviours, validation, and extensions applied across multiple controllers.
  • Additional override files handle authentication and custom application behaviour.

  • Services (/app/App_Code/Services)

  • ApplicationServices.cs and related files implement the application's service pipeline and REST endpoints.
  • Scheduling support (via Scheduler and ScheduleStatus) can be used for sys/schedules-based automation where configured.

  • Security (/app/App_Code/Security)

  • MembershipBusinessRules.cs and related classes integrate ASP.NET membership and role management with standard ASP.NET security models.

Data Layer

  • Data Access (/app/App_Code/Data)
  • Provides abstraction over ADO.NET to execute commands against the SQL Server database.
  • Uses the MyCompany connection string from web.config.

  • Database

  • Contains the schema generated and used by the controllers: tables, views, stored procedures, and membership tables.

  • BLOB Storage

  • BLOB adapters configured via <appSettings> in web.config (e.g. GoodsReceiptAttachmentBlobAdapter, PaymentsAttachmentBlobAdapter, PersonResourceProfilePictureBlobAdapter, etc.).
  • These adapters determine how and where attachments are stored and retrieved.

The application layer is largely metadata-driven. Controllers are defined as XML metadata, and custom C# rules in App_Code handle specialized logic. Modifications to controllers are made by editing the XML files and regenerating the associated business rule classes.