IDE Checklist
Essential IDE Tasks for Administrators
To customize portal pages, implement business logic, and extend portal functionality, the Integrated Development Environment (IDE) must be properly understood and utilized with comprehensive knowledge of page types, controller implementation, code organization practices, and debugging workflows. The IDE provides browser-based development capabilities that enable administrators with coding expertise to create sophisticated portal experiences while maintaining centralized control over customization activities across organizational communities.
Foundation Setup
☐ Understanding the IDE Interface Familiarize yourself with the comprehensive IDE workspace including tabbed interface for simultaneous multi-file editing, sidebar navigation for accessing Pages, Templates, Contents, Controllers & Classes, Triggers, Static Assets, Entities, and Labels, global search functionality across all development elements, and integrated tools including Event Logs, Query Console, and Font Icon library. Understand how the IDE provides centralized access to all development resources without requiring navigation through multiple administrative menus.
☐ Accessing the IDE Navigate to the Integrated Development Environment by clicking on your avatar in the portal header, selecting Setup from the dropdown menu, navigating to the Develop section in the sidebar, and clicking on IDE. Understand that only users assigned to the Administrator role can access the IDE, ensuring that development capabilities remain restricted to authorized personnel with appropriate technical expertise.
☐ Understanding Page Types and Use Cases Master the three primary page development options including Active Pages that support controller logic for dynamic, data-driven experiences following Model-View-Controller architecture, Templates that provide purely HTML-based reusable layouts without controller support for consistent design frameworks, and Content Pages that offer WYSIWYG editing for administrators who need to create pages without writing code directly. Understand when each page type is appropriate based on complexity requirements, controller needs, and developer skill levels.
Development Environment Navigation
☐ Working with Tabs and Multi-File Editing Learn to open multiple development elements simultaneously through double-clicking sidebar items or right-click context menus, manage multiple open tabs with independent save states for each file, switch between open files through tab selection, and close tabs individually using the X button with save confirmation prompts for unsaved changes. Understand that the IDE does not include automatic save functionality and requires explicit save actions to preserve work and trigger code validation.
☐ Using Global Search Functionality Utilize the search field in the top-right corner to quickly locate specific pages, templates, content pages, controllers, classes, and triggers by name or keyword. Understand that search results provide immediate access to desired elements without manual navigation through folder hierarchies, improving development efficiency when working with large numbers of customization files.
☐ Navigating the Sidebar Structure Master sidebar organization including expandable tree structures for Pages, Templates, and Contents, Controllers & Classes grouped in a single section, Triggers listed separately with entity associations, Static Assets organized in customizable folder hierarchies, Entities browser for schema exploration, and Labels library for translation reference. Understand how sidebar navigation provides quick access to all development resources within a unified interface.
Creating and Managing Pages
☐ Creating Active Pages Access the File menu and select New Page, ensure Active Page is selected as the Type (default selection), enter a descriptive Label that will display in the sidebar navigation, define the Path portion of the URL (following /aspx/) using valid URL characters, and click Create to generate the new page. Understand that Active Pages support optional controller association for implementing business logic and data manipulation.
☐ Adding Controllers to Active Pages Open an existing Active Page in the editor, locate the "+ Add Controller" button in the top-right corner of the page editor, click the button to automatically create an associated controller class, and understand that the controller name will be the page name appended with "Controller" (mandatory naming convention). Recognize that once created, the button changes to display the controller name and clicking it opens the controller file for editing.
☐ Creating Templates for Reusable Layouts Access the File menu and select New Template, enter a descriptive Label for sidebar identification, define a Unique Name for template reference in code, ensure Template is selected as the Type, and click Create. Understand that Templates provide purely HTML-based structures without controller support, designed for establishing consistent visual frameworks and shared design elements across multiple portal areas.
☐ Creating Content Pages with WYSIWYG Editing Access the File menu and select New Content Page, enter a descriptive Label, define the Path portion following /aspx/ using valid URL characters, select Active Content Page as the Type (default for content), and click Create. Understand that Content Pages offer visual editing tools for administrators who need to create HTML pages without writing code directly while generating valid HTML output.
☐ Opening and Editing Existing Pages Navigate to the Pages, Templates, or Contents section in the sidebar, locate the desired page in the tree structure, and double-click the page name to open it in a new tab (alternatively, right-click and select Open). Understand that multiple pages can remain open simultaneously with independent editing sessions and save states for each file.
☐ Deleting Pages, Templates, and Content Right-click on the page name in the sidebar under Pages, Templates, or Contents sections, select Delete from the context menu, and confirm the deletion when prompted. Understand that deleted Active Pages, Templates, and Content Pages can be recovered from the Recycle Bin, providing a safety mechanism for accidental deletions.
Working with Controllers and Classes
☐ Understanding Controllers vs. Classes Recognize that Controllers provide the business logic layer behind Active Pages, implementing C# code that executes server-side before page rendering, while Classes enable creation of modular, reusable code components that can be referenced across multiple controllers, triggers, and other classes. Understand that Controllers should contain page-specific logic while Classes should contain business logic and utility functions needed in multiple locations.
☐ Creating Standalone Controllers Access the File menu and select New Controller, enter a descriptive Name for the controller (the system will automatically append "Controller" to create the class name, which is mandatory), and click Create. Understand that standalone controllers can be manually associated with pages through code references, though the preferred method is creating controllers directly from Active Pages using the "+ Add Controller" button.
☐ Creating Classes for Code Reusability Access the File menu and select New Class, enter a descriptive Name that reflects the class purpose and functionality, and click Create. Understand that classes support efficient code organization by enabling shared business logic, utility functions, and common operations to be centralized and maintained in a single location rather than duplicated across multiple controllers.
☐ Opening and Editing Controllers and Classes Navigate to the Controllers & Classes section in the sidebar, locate the desired controller or class in the tree structure, and double-click the name to open it in a new tab. Understand that the same open, edit, save, and close workflows apply to controllers and classes as apply to pages and templates.
☐ Deleting Controllers and Classes Right-click on the controller or class name in the sidebar under the Controllers & Classes section, select Delete from the context menu, and confirm the deletion. Understand that deleted Controllers and Classes can be recovered from the Recycle Bin, and that deleting classes or controllers that are referenced by other code files will cause compilation errors in those dependent files, requiring careful impact assessment before deletion.
Implementing Triggers
☐ Understanding Trigger Purpose and Function Recognize that Triggers implement event-driven logic that executes automatically when specific entity records are created, updated, or deleted, enabling complex business rules, data validation, automated notifications, and integration workflows that respond to data changes throughout the portal ecosystem without requiring manual user actions.
☐ Creating Triggers for Entities Access the File menu and select New Trigger, enter a descriptive Name for the trigger that will be appended with "Trigger" for identification purposes, select the Entity from the dropdown list that this trigger will monitor for data changes, and click Create. Understand that multiple triggers can be created for the same entity, enabling separation of concerns and modular implementation of different business rules.
☐ Managing and Renaming Triggers Open triggers through double-clicking in the sidebar under the Triggers section, edit trigger logic in the code editor, save changes to compile and validate code, and understand that renaming triggers updates the trigger identifier but does not affect existing code or references. Recognize that trigger names serve primarily for developer identification and organization rather than functional requirements.
☐ Deleting Triggers Right-click on the trigger name in the sidebar under the Triggers section, select Delete from the context menu, and confirm the deletion. Understand that deleted Triggers can be recovered from the Recycle Bin, providing protection against accidental removal of critical event-driven business logic.
Managing Static Assets
☐ Creating Folder Structures for Asset Organization Navigate to the Static Assets section in the sidebar, right-click on the Root folder or any existing folder, select New Folder from the context menu, enter a descriptive folder name, and click Create. Understand that nested folder structures support logical organization based on project requirements, functionality groupings, or organizational standards without depth limitations or restrictions.
☐ Uploading JavaScript, CSS, and Images Right-click on the desired folder in the Static Assets tree, select Upload Asset(s) from the context menu, browse to select one or multiple files from your local system, and confirm the upload. Understand that all common web asset types are supported including JavaScript (.js), CSS (.css), and image formats without file size restrictions.
☐ Adding Assets to Pages with Automatic Code Insertion Ensure an Active Page or Template is open in the editor, right-click on the desired asset in the Static Assets tree, select Add to Page from the context menu, and understand that the IDE automatically inserts properly formatted HTML code at the cursor position. Recognize that JavaScript files generate script tags, CSS files generate link tags, and images generate img tags with correct path references.
☐ Renaming and Deleting Static Assets Right-click on any asset or folder in the Static Assets tree, select Rename to modify the asset name (updating references in code must be performed manually), or select Delete to permanently remove the asset after confirmation. Understand that Static Asset deletions are permanent and cannot be recovered from the Recycle Bin, requiring careful confirmation before proceeding and maintenance of external backups for critical assets.
☐ Organizing Assets with Best Practices Implement consistent naming conventions that indicate asset purpose, functionality, and version information, create dedicated folders for different asset types or functional areas, and maintain organized hierarchies that prevent naming conflicts and enable efficient asset location. Understand that disciplined organization supports long-term maintainability as customization libraries grow.
Using the Entity Browser
☐ Exploring Entity Schemas Navigate to the Entities section in the sidebar, expand any entity to view its complete field list, data types, and relationships, and understand that the Entity Browser provides read-only access to all standard and custom entities within the organization's portal. Recognize that this reference eliminates the need to switch to administrative setup menus or external documentation during development.
☐ Viewing Child Relationships Expand the Child Relationships section under any entity to display all entities that reference the selected entity through lookup or master-detail relationships. Understand that this visualization helps developers understand data model connections, navigate complex schemas, and identify available relationship fields for queries and data manipulation logic.
☐ Understanding Field Types and Relationships Review field listings to identify data types (string, number, date, boolean, etc.) and relationship fields that reference other entities. Understand that relationship fields provide object references (e.g., "Account") while ID fields provide the actual stored values (e.g., "AccountId"), and both may be used depending on development requirements.
☐ Inserting Field Names into Code Open an Active Page, Controller, Class, or Trigger in the editor, position the cursor where the field name should be inserted, navigate to the Entities section, expand the desired entity and locate the target field, right-click on the field name, and select the insert option to automatically place the field API name at the cursor position. Understand that this feature eliminates manual typing and reduces field name errors.
☐ Searching for Entities Use the search field within the Entities section to quickly locate specific entities by name rather than manually scrolling through the complete entity list. Understand that efficient entity location accelerates development workflows when working with large data models containing numerous standard and custom entities.
Utilizing IDE Tools
☐ Accessing Event Logs for Debugging Access the Tools menu and select Event Logs to open the logging interface in a new tab, review log entries that display Actions, Description, Type, User, and Created Date columns, use the search functionality to filter log entries by keyword, and click Clear Logs to remove all entries when debugging sessions are complete. Understand that Event Logs serve as the primary debugging mechanism since interactive debugging is unavailable.
☐ Implementing Logging Best Practices Insert log statements strategically throughout code during development to capture execution flow, variable states, conditional logic outcomes, and error conditions, remove or disable logging statements from production code after testing completion to prevent performance impacts, and regularly clear accumulated logs to maintain system performance and prevent database growth.
☐ Using the Query Console for Data Exploration Access the Tools menu and select Query Console to open the query interface, write Magentrix SQL queries to retrieve entity data for verification and testing purposes, execute queries to view results in tabular format with the number of rows returned displayed, and understand that the Query Console supports data verification, query syntax testing, and schema exploration during development. See Magentrix SQL Reference.
☐ Browsing the Font Icon Library Access the Tools menu and select Font Icons to open the icon browser displaying available glyphicons, hover over any icon to view its HTML code in a tooltip, manually copy the displayed HTML code for use in Active Pages and Templates, and understand that no automatic copy function is available requiring careful transcription to avoid errors.
Code Editing and Validation
☐ Understanding Syntax Highlighting Recognize that the code editor automatically provides syntax highlighting for HTML, CSS, JavaScript, and C# code through visual differentiation of language elements, keywords, strings, and comments. Understand that syntax highlighting improves code readability and reduces syntax errors but does not provide autocomplete or IntelliSense-style assistance.
☐ Saving and Validating Code Save pages, controllers, classes, and triggers frequently using save buttons or keyboard shortcuts, review validation results that appear automatically upon save, and address any compilation errors indicated with specific line numbers and error descriptions at the bottom of the editor. Understand that code validation occurs only when files are explicitly saved, requiring disciplined save practices during development.
☐ Using Find and Replace Open the find and replace functionality through keyboard shortcuts or editor menus, enter search terms to locate specific text patterns within the current file, navigate between search result occurrences, and perform replacements to update code efficiently. Understand that find and replace operates on individual files rather than across multiple files simultaneously.
☐ Implementing Undo and Redo Operations Use keyboard shortcuts (Ctrl+Z / Command+Z for undo, Ctrl+Y / Command+Y for redo) to reverse or reapply recent code changes, experiment with code modifications while maintaining the ability to revert unsuccessful attempts, and understand that undo history is maintained per file during editing sessions but is lost when tabs are closed.
☐ Handling Unsaved Changes Recognize visual indicators on tabs that display unsaved change status, respond to save confirmation prompts when attempting to close tabs with unsaved changes, and understand that the IDE does not include automatic save functionality requiring explicit save actions to preserve work and prevent loss of development progress.
Working with Translation Labels
☐ Viewing Available Labels Navigate to the Labels section in the sidebar to display all translation labels configured in Translation Studio, review the complete label library including label names and preview text, and understand that labels support multi-language portal implementations by separating user-facing text from code logic.
☐ Searching for Labels Use the search field within the Labels section to quickly locate specific labels by name or content rather than scrolling through the complete list. Understand that efficient label location accelerates development when implementing internationalization features or referencing existing translations.
☐ Inserting Labels into Code Open an Active Page, Controller, Class, or Trigger in the editor, position the cursor where the label reference should appear, navigate to the Labels section, locate the desired label, right-click on the label name, and select the insert option to automatically place the label reference at the cursor position. Understand that this integration ensures consistent use of approved translations.
☐ Coordinating Label Creation with Translation Studio Identify needed labels during development that do not yet exist in the Labels library, coordinate with Translation Studio administrators to create required label definitions, and understand that labels cannot be created or edited directly within the IDE. See Translation Studio documentation.
Window and Session Management
☐ Managing Multiple Open Tabs Open multiple pages, controllers, classes, and triggers simultaneously through sidebar navigation, switch between tabs by clicking tab headers, monitor unsaved change indicators on tab labels, and close individual tabs using the X button with save confirmation when changes exist. Understand that multi-tab workflows enable efficient cross-referencing and context switching between related development artifacts.
☐ Closing All Tabs Efficiently Access the Window menu and select Close All Tabs to close all open development files simultaneously, respond to save confirmation prompts for any files with unsaved changes, and use this function when transitioning between projects or development sessions to clear the workspace completely.
☐ Accessing Setup Menu During Development Access the Window menu and select Open Setup Menu to open the Administrator Setup interface in a new browser tab, perform administrative configuration tasks without losing IDE workspace state, and understand that this navigation method maintains all open tabs and development context in the original IDE window.
☐ Opening Portal Home for Testing Access the Window menu and select Open Home Tab to open the portal home page in a new browser tab, preview deployed changes and test user-facing functionality, verify that customizations render correctly for end users, and return to the IDE window to continue development without disrupting active sessions.
☐ Exiting the IDE Properly Access the File menu and select Exit to close the IDE and return to the portal home page, respond to save confirmation prompts for any files with unsaved changes before navigation completes, and understand that exiting closes all tabs and terminates the development session completely.
Development Best Practices
☐ Organizing Code with Controllers and Classes Create dedicated classes for business logic that requires reuse across multiple controllers or triggers, maintain separation between page-specific controller logic and shared utility functions, implement consistent naming conventions that indicate component purpose and functionality, and understand that proper code organization supports efficient development, reduces duplication, and enables centralized maintenance.
☐ Planning URL Path Structures Define Active Page and Template paths that follow consistent patterns reflecting site structure and functionality, consider user-facing URL readability and search engine optimization requirements, organize related pages logically within the /aspx/ namespace, and understand that path planning influences site navigation, bookmarking, and external link management.
☐ Optimizing Static Assets Optimize image files, JavaScript libraries, and CSS stylesheets for web delivery before upload to minimize page load times, use minified JavaScript and CSS files to reduce file sizes while maintaining functionality, implement consistent naming conventions that indicate asset purpose and version, and understand that asset optimization directly impacts portal performance for all users.
☐ Testing Code Before Deployment Test all pages, controllers, classes, and triggers in non-production environments before activating in user-facing portals, verify functional requirements, error handling, edge cases, and integration points with existing functionality, implement code review processes to ensure quality standards and security best practices, and understand that thorough testing prevents user-facing errors and maintains portal reliability.
☐ Managing Event Log Cleanup Review and clear Event Logs regularly to prevent database growth and maintain system performance, remove development logging statements from production code after testing completion, implement logging only when actively debugging specific issues, and understand that continuous logging impacts portal response times and database storage capacity.
Troubleshooting and Support
☐ Addressing Code Validation Errors Review error messages displayed at the bottom of the editor after save operations, identify specific line numbers and error descriptions provided by the compiler, correct syntax errors, type mismatches, and compilation issues systematically, and save again to re-validate code. Understand that validation feedback provides essential guidance for resolving code issues before deployment.
☐ Debugging with Event Log Statements Insert log statements at key execution points during development, execute code and review Event Log entries to verify execution flow and variable states, use log output to identify where code execution deviates from expected behavior, and understand that systematic logging compensates for the absence of interactive debugging tools.
☐ Identifying Missing Dependencies Recognize compilation errors that indicate missing class references, undefined methods, or incorrect entity/field names, use the Entity Browser to verify correct field API names and relationships, review class and controller code to ensure all dependencies are properly defined, and understand that careful reference management prevents runtime errors.
☐ Recovering from Deletions Understand that Active Pages, Templates, Content Pages, Controllers, Classes, and Triggers can be recovered from the Recycle Bin if accidentally deleted, while Static Asset deletions are permanent and cannot be recovered. Maintain external backups or version control for critical static assets, confirm deletion operations carefully before proceeding for all assets, and implement recovery procedures through the Recycle Bin for code elements or restoration from backup sources for static assets when deletions occur.
<< About IDE | Working with Pages, Templates, and Content >>