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/andpages/– 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.csand related files implement the application's service pipeline and REST endpoints.-
Scheduling support (via
SchedulerandScheduleStatus) can be used for sys/schedules-based automation where configured. -
Security (
/app/App_Code/Security) MembershipBusinessRules.csand 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
MyCompanyconnection string fromweb.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>inweb.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.