ShareX Architecture and Porting
Platform Abstractions and Native Code Rules
All platform specific functionality must be isolated behind platform abstraction interfaces.
No code outside XerahS.Platform.* projects may reference:
- NativeMethods
- NativeConstants, NativeEnums, NativeStructs
- Win32 P/Invoke
- System.Windows.Forms
- Windows specific handles or messages
Direct calls to Windows APIs are forbidden in Common, Core, Uploaders, Media, or other backend projects.
Required Architecture
Define platform neutral interfaces in XerahS.Platform.Abstractions.
Implement Windows functionality in XerahS.Platform.Windows.
More from sharex/xerahs
design-ui-window
Redesigns or normalises any XerahS Avalonia .axaml page, dialog, or tool window to consistent app quality. Enforces layout, spacing, theming, surfaces, buttons, scrollbars, accessibility, and visual hierarchy. Only changes visuals, layout, and styles; never business logic, bindings, or public view-model API. Reusable by updating target_view_path.
71sharex core standards
License headers, build configuration rules, dependency version guidance, and general coding standards for XerahS
61sharex workflow and versioning
Canonical Git, commit/push, and Directory.Build.props versioning workflow for XerahS. Use for any task that changes version numbers or requires commit/push.
61changelog management
Rules and workflows for updating CHANGELOG.md, including version grouping, consolidation, and commit handling.
59sharex feature specifications
Detailed specifications for Uploader Plugin System and Annotation Subsystem features
58avalonia-api
Comprehensive reference for Avalonia UI framework including XAML syntax, controls, data binding, MVVM patterns, styling, custom controls, layout system, responsive layout, navigation, and best practices. Covers CommunityToolkit.Mvvm integration, compiled bindings, dependency properties, attached properties, control templates, container queries, and cross-platform development patterns.
38