IDO Architecture and the Mongoose Runtime
The Mongoose runtime hosts IDOs as managed objects that handle CRUD operations, execute business logic through methods, and manage data access through property collections. Each IDO maps to one or more database views or tables and exposes properties (columns) and methods (business operations). The runtime manages connection pooling, transaction scope, and caching.
Understanding how the runtime resolves IDO requests, from the initial call through property resolution, method execution, and response packaging, is essential for writing performant custom IDOs.
- IDOs use property collections mapped to SQL views, not direct table access, for data retrieval
- Custom IDO methods execute within the Mongoose runtime's transaction scope automatically
- The IDO runtime caches metadata aggressively, restart the application server after IDO changes
- Use IDO Request tracing in the Mongoose admin console to debug data flow issues
Building Custom IDO Methods and Extensions
Custom IDO methods extend SyteLine's business logic layer. NET code compiled into assemblies or as stored procedures registered through the IDO metadata. NET methods offer flexibility and access to the full IDO context, while stored procedures offer raw performance for data-intensive operations.
NET methods.
- Write stored procedure-based methods for high-volume data operations requiring raw SQL performance
- Use .NET IDO methods when you need access to the IDO context, session info, or external APIs
- Follow the standard method signature pattern: accept parameters via the method context object
- Register custom IDO assemblies in the IDO Extensions form and deploy to all application servers
IDO Performance and Troubleshooting
IDO performance issues manifest as slow form loads, API timeouts, and background process bottlenecks. The most common causes are inefficient SQL views underlying IDOs, missing indexes on filter columns, excessive property loading (selecting all columns when few are needed), and N+1 query patterns in custom methods. Use SQL Profiler in combination with IDO Request tracing to identify the exact queries and their execution plans.
- Optimize IDO SQL views with appropriate indexes on commonly filtered and sorted columns
- Use property lists in IDO requests to load only required columns, not the full property set
- Avoid N+1 patterns in custom methods by batching database calls with set-based operations
- Monitor the Mongoose connection pool for exhaustion during peak usage periods
Try it here, free
SyteLine Customization Technical Debt Scorer
Measure how much upgrade drag, risk, and maintenance cost your SyteLine customizations have accumulated, and learn where to pay it down first.
Need Mongoose IDO expertise? Our developers have built and optimized hundreds of custom IDOs, get in touch.